spawn and fork implementation in initd
Created by: MeerkatBoss
-
Имплементация
spawn
иfork
перенесена в модульinitd
-
Новые запросы к
initd
:INITD_REQ_FORK
иINITD_REQ_SPAWN
(доступны только ядерным модулям) -
Новые системные вызовы:
SYS_env_set_parent
иSYS_env_downgrade
для установки родительского процесса и перевода процесса в пользовательский режим соответственно. Системные вызовы доступны только ядерным модулям. -
Расширены привилегии ядерных модулей по редактированию адресного пространства и регистров других процессов
-
Замечание
INITD_REQ_FORK
оставляет переменнуюthisenv
дочернего процесса в неактуальном состоянии, что нарушает работу функцииipc_recv_from
. Пользователи этого RPC вызова должны игнорировать значение, возвращаемоеrpc_execute
, вместо этого предлагается самостоятельно обновитьthisenv
и прочитать значение изthisenv->env_ipc_value
closes #9 (closed)