Page 40 - 2578
P. 40
Ідентифікатор процесу
Кожному новому процесові привласнюється унікальний
номер — PID. Фактичне значення PID особливої ролі не
відіграє: номери призначаються ядром просто один за одним,
розпочинаючи з 0 й завершуючи 65535. Коли номери
закінчуються, ядро розпочинає знову з 0, пропускаючи
процеси, які ще існують в PID.
Ідентифікатор батьківського процесу
Новий процес в UNIX утворюється шляхом клонування
одного з існуючих процесів, після чого текст (тобто набір
інструкцій для процесора) нового процесу замінюється на
текст програми, котру цей процес має виконати. В UNIX
вихідний процес називають батьківським, а його клон –
породженим, або дочірнім.
Окрім власного ідентифікатора PID, кожен процес має
атрибут свого батьківського процесу – PPID.
Ідентифікатор користувача і групи
Кожен процес має UID – ідентифікаційний номер
користувача, який створив даний процес. Вносити зміни в
процес можуть лише його творець та привілейований
користувач (root). В процесі також є EUID – це так званий
«ефективний» UID. Він використовується для того, щоби
визначити, до яких ресурсів в процесі є право доступу.
Зазвичай EUID та UID збігаються. Розрізнюються вони для
програм, в яких установлено біт зміни ідентифікатора
користувача (так звані suid-програми).
Аналогічно, GID — ідентифікаційний номер групи
користувача, котрий створив даний процес, EGID —
«ефективний» GID. Коли процес запускається, його GID
дорівнює GID батьківського процесу. Якщо процес спробує
звернутися до файла, на який у власника немає прав доступу,
ядро перевірить, чи можна дозволити звертання на підставі
EGID.
39