personality(2) - wariua/manpages-ko GitHub Wiki

NAME

personality - ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 도메인 μ„€μ •ν•˜κΈ°

SYNOPSIS

#include <sys/personality.h>

int personality(unsigned long persona);

DESCRIPTION

λ¦¬λˆ…μŠ€λŠ” 각 ν”„λ‘œμ„ΈμŠ€λ§ˆλ‹€ λ‹€λ₯Έ μ‹€ν–‰ 도메인, 즉 인격을 μ§€μ›ν•œλ‹€. μ‹€ν–‰ λ„λ©”μΈμ˜ μ—¬λŸ¬ μ—­ν•  μ€‘μ—λŠ” μ‹œκ·Έλ„ 번호λ₯Ό μ‹œκ·Έλ„ λ™μž‘μœΌλ‘œ 사상할 방식을 λ¦¬λˆ…μŠ€μ—κ²Œ μ•Œλ €μ£ΌλŠ” 것이 μžˆλ‹€. μ‹€ν–‰ 도메인 μ‹œμŠ€ν…œμ„ 톡해 λ¦¬λˆ…μŠ€κ°€ λ‹€λ₯Έ μœ λ‹‰μŠ€ 계열 운영 μ²΄μ œμ—μ„œ 컴파일 ν•œ λ°”μ΄λ„ˆλ¦¬λ₯Ό μ œν•œμ μœΌλ‘œλ‚˜λ§ˆ 지원할 수 μžˆλ‹€.

personaκ°€ 0xffffffffκ°€ μ•„λ‹ˆλ©΄ personality()λŠ” 호좜자의 μ‹€ν–‰ 도메인을 persona둜 μ§€μ •ν•œ κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€. personaλ₯Ό 0xffffffff둜 μ§€μ •ν•˜μ—¬ ν˜„μž¬ 페λ₯΄μ†Œλ‚˜λ₯Ό λ³€κ²½ 없이 μ–»μ–΄μ˜¬ 수 μžˆλ‹€.

μ‚¬μš© κ°€λŠ₯ν•œ μ‹€ν–‰ λ„λ©”μΈμ˜ λͺ©λ‘μ„ <sys/personality.h>μ—μ„œ 찾을 수 μžˆλ‹€. μ‹€ν–‰ 도메인은 32λΉ„νŠΈ 값이며 κ·Έ 쀑 μƒμœ„ μ„Έ λ°”μ΄νŠΈλŠ” 컀널이 νŠΉμ • μ‹œμŠ€ν…œ 호좜의 λ™μž‘ 방식을 κ³Όκ±° λ‚΄μ§€ μ•„ν‚€ν…μ²˜μ— ν•œμ •λœ νŠΉμ΄μ„±μ„ 흉내내도둝 λ³€κ²½ν•˜κ²Œλ” ν•˜λŠ” ν”Œλž˜κ·Έλ“€μ„ μœ„ν•œ 것이닀. μ΅œν•˜μœ„ λ°”μ΄νŠΈλŠ” 컀널이 μ·¨ν•΄μ•Ό ν•˜λŠ” 인격을 κ·œμ •ν•˜λŠ” 값이닀. ν”Œλž˜κ·Έ 값듀은 λ‹€μŒκ³Ό κ°™λ‹€.

ADDR_COMPAT_LAYOUT (λ¦¬λˆ…μŠ€ 2.6.9λΆ€ν„°)
이 ν”Œλž˜κ·Έκ°€ 섀정돼 있으면 ꡬ식 가상 μ£Όμ†Œ 곡간 λ ˆμ΄μ•„μ›ƒμ„ μ œκ³΅ν•œλ‹€.
ADDR_NO_RANDOMIZE (λ¦¬λˆ…μŠ€ 2.6.12λΆ€ν„°)
이 ν”Œλž˜κ·Έκ°€ 섀정돼 있으면 μ£Όμ†Œ 곡간 배치 λ¬΄μž‘μœ„ν™”λ₯Ό λˆλ‹€.
ADDR_LIMIT_32BIT (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
μ£Όμ†Œ 곡간을 32λΉ„νŠΈλ‘œ μ œν•œν•œλ‹€.
ADDR_LIMIT_3GB (λ¦¬λˆ…μŠ€ 2.4.0λΆ€ν„°)
이 ν”Œλž˜κ·Έκ°€ 섀정돼 있으면 mmap(2)μ—μ„œ 가상 λ©”λͺ¨λ¦¬ 덩어리λ₯Ό νƒμƒ‰ν•˜λŠ” μ˜€ν”„μ…‹μœΌλ‘œ 0xc0000000을 μ‚¬μš©ν•œλ‹€. μ•„λ‹ˆλ©΄ 0xffffe000을 μ‚¬μš©ν•œλ‹€.
FDPIC_FUNCPTRS (λ¦¬λˆ…μŠ€ 2.6.11λΆ€ν„°)
μ‹œκ·Έλ„ ν•Έλ“€λŸ¬μ— λŒ€ν•œ μ‚¬μš©μž 곡간 ν•¨μˆ˜ 포인터가 (νŠΉμ • μ•„ν‚€ν…μ²˜μ—μ„œ) λ””μŠ€ν¬λ¦½ν„°λ₯Ό 가리킨닀.
MMAP_PAGE_ZERO (λ¦¬λˆ…μŠ€ 2.4.0λΆ€ν„°)
νŽ˜μ΄μ§€ 0을 읽기 μ „μš©μœΌλ‘œ λ§΅ ν•œλ‹€. (SVr4의 이 λ™μž‘ 방식에 μ˜μ‘΄ν•˜λŠ” λ°”μ΄λ„ˆλ¦¬λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄μ„œ.)
READ_IMPLIES_EXEC (λ¦¬λˆ…μŠ€ 2.6.8λΆ€ν„°)
이 ν”Œλž˜κ·Έκ°€ 섀정돼 있으면 mmap(2)μ—μ„œ PROT_READκ°€ PROT_EXECλ₯Ό ν•¨μ˜ν•œλ‹€.
SHORT_INODE (λ¦¬λˆ…μŠ€ 2.4.0λΆ€ν„°)
효과 μ—†μŒ(?).
STICKY_TIMEOUTS (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
이 ν”Œλž˜κ·Έκ°€ 섀정돼 있으면 select(2), pselect(2), ppoll(2)이 μ‹œκ·Έλ„ ν•Έλ“€λŸ¬μ— μ˜ν•΄ 쀑단될 λ•Œ λ°˜ν™˜λ˜λŠ” νƒ€μž„μ•„μ›ƒ 인자λ₯Ό λ³€κ²½ν•˜μ§€ μ•ŠλŠ”λ‹€.
UNAME26 (λ¦¬λˆ…μŠ€ 3.1λΆ€ν„°)
uname(2)이 3.x 버전 번호 λŒ€μ‹  2.6.40+ 버전 번호λ₯Ό λ³΄κ³ ν•˜κ²Œ ν•œλ‹€. 2.6.xμ—μ„œ 3.x둜의 컀널 버전 λΆ€μ—¬ 방식 변경을 μ²˜λ¦¬ν•  수 μ—†λŠ” 문제 μ‘μš©λ“€μ„ μ§€μ›ν•˜κΈ° μœ„ν•œ μž„μ‹œλ°©νŽΈμœΌλ‘œ μΆ”κ°€λ˜μ—ˆλ‹€.
WHOLE_SECONDS (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
효과 μ—†μŒ(?).

μ‚¬μš© κ°€λŠ₯ν•œ μ‹€ν–‰ 도메인은 λ‹€μŒκ³Ό κ°™λ‹€.

PER_BSD (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
BSD. (효과 μ—†μŒ.)
PER_HPUX (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
32λΉ„νŠΈ HP/UX 지원. 이 지원은 ν•œλ²ˆλ„ μ™„λ²½ν•œ 적이 μ—†λ‹€κ°€ κ²°κ΅­ μ€‘λ‹¨λ˜μ—ˆκ³ , κ·Έλž˜μ„œ λ¦¬λˆ…μŠ€ 4.0λΆ€ν„° 이 값은 νš¨κ³Όκ°€ μ—†λ‹€.
PER_IRIX32 (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
IRIX 5 32λΉ„νŠΈ. ν•œλ²ˆλ„ μ™„μ „ν•˜κ²Œ λ™μž‘ν•œ 적이 μ—†μ—ˆκ³  λ¦¬λˆ…μŠ€ 2.6.27μ—μ„œ 지원 쀑단됨. STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨.
PER_IRIX64 (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
IRIX 6 64λΉ„νŠΈ. STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_IRIXN32 (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
IRIX 6 μ‹  32λΉ„νŠΈ. STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_ISCR4 (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_LINUX (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
λ¦¬λˆ…μŠ€.
PER_LINUX32 (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
[λ¬Έμ„œν™” ν•„μš”.]
PER_LINUX32_3GB (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
ADDR_LIMIT_3GBλ₯Ό ν•¨μ˜ν•¨.
PER_LINUX_32BIT (λ¦¬λˆ…μŠ€ 2.0λΆ€ν„°)
ADDR_LIMIT_32BITλ₯Ό ν•¨μ˜ν•¨.
PER_LINUX_FDPIC (λ¦¬λˆ…μŠ€ 2.6.11λΆ€ν„°)
FDPIC_FUNCPTRSλ₯Ό ν•¨μ˜ν•¨.
PER_OSF4 (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
OSF/1 v4. μ•ŒνŒŒμ—μ„œ, iov_lenλ₯Ό int둜 μ •μ˜ν–ˆλ˜ OSF/1 이전 λ²„μ „λ“€κ³Όμ˜ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μ‚¬μš©μž λ²„νΌμ—μ„œ iov_len의 μƒμœ„ 32λΉ„νŠΈλ₯Ό λ‚ λ¦°λ‹€.
PER_OSR5 (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
STICKY_TIMEOUTS와 WHOLE_SECONDSλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_RISCOS (λ¦¬λˆ…μŠ€ 2.2λΆ€ν„°)
[λ¬Έμ„œν™” ν•„μš”.]
PER_SCOSVR3 (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTS와 WHOLE_SECONDS, SHORT_INODEλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_SOLARIS (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_SUNOS (λ¦¬λˆ…μŠ€ 2.4.0λΆ€ν„°)
STICKY_TIMEOUTSλ₯Ό ν•¨μ˜ν•¨. 라이브러리 및 동적 링컀 탐색 μœ„μΉ˜λ₯Ό /usr/gnemul둜 λ°”κΎΌλ‹€. 버그가 많고 μ „λ°˜μ μœΌλ‘œ 관리가 μ•ˆ λ˜μ—ˆκ³  거의 쓰이지 μ•Šμ•˜λ‹€. λ¦¬λˆ…μŠ€ 2.6.26μ—μ„œ 지원이 μ œκ±°λλ‹€.
PER_SVR3 (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTS와 SHORT_INODEλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_SVR4 (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTS와 MMAP_PAGE_ZEROλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_UW7 (λ¦¬λˆ…μŠ€ 2.4λΆ€ν„°)
STICKY_TIMEOUTS와 MMAP_PAGE_ZEROλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_WYSEV386 (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTS와 SHORT_INODEλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.
PER_XENIX (λ¦¬λˆ…μŠ€ 1.2.0λΆ€ν„°)
STICKY_TIMEOUTS와 SHORT_INODEλ₯Ό ν•¨μ˜ν•¨. κ·Έ μ™Έμ—λŠ” 아무 효과 μ—†μŒ.

RETURN VALUE

성곡 μ‹œ 이전 personaλ₯Ό λ°˜ν™˜ν•œλ‹€. 였λ₯˜ μ‹œ -1을 λ°˜ν™˜ν•˜λ©° errnoλ₯Ό 적절히 μ„€μ •ν•œλ‹€.

ERRORS

EINVAL
μ»€λ„μ—μ„œ 인격을 λ°”κΏ€ 수 μ—†λ‹€.

VERSIONS

λ¦¬λˆ…μŠ€ 1.1.20μ—μ„œ (λ”°λΌμ„œ μ•ˆμ • 컀널 λ¦΄λ¦¬μŠ€λ‘œλŠ” λ¦¬λˆ…μŠ€ 1.2.0μ—μ„œ) 이 μ‹œμŠ€ν…œ 호좜이 처음 λ“±μž₯ν–ˆλ‹€. glibc 2.3μ—μ„œ 라이브러리 지원이 μΆ”κ°€λ˜μ—ˆλ‹€.

CONFORMING TO

personality()λŠ” λ¦¬λˆ…μŠ€ μ „μš©μ΄λ―€λ‘œ 이식성이 μžˆμ–΄μ•Ό ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œλŠ” μ‚¬μš©ν•˜μ§€ 말아야 ν•œλ‹€.

SEE ALSO

setarch(8)


2017-09-15

⚠️ **GitHub.com Fallback** ⚠️