Патч к ядру Linux: использование

From EjudgeWiki
Revision as of 20:23, 21 August 2008 by Cher (talk | contribs) (Включение безопасного режима работы процесса)

Навигация: Главная страница/Система ejudge/Патч к ядру Linux/использование

В данном разделе описывается использование патча для ядер серии 2.6. Здесь описываются нискоуровневые интерфейсы, которые могут измениться (и изменяются) от версии к версии ядра. Поэтому рекомендуется использовать библиотеку reuse.

Включение безопасного режима работы процесса

Для включения безопасного режима работы используется системный вызов ptrace:

ptrace(0x4281, 0, 0, 0)

Здесь 0x4281 — «магическое» число - код запроса. Безопасный режим включается у текущего процесса. После включения безопасного режима процесс имеет право выполнить один системный вызов execve, то есть запустить на выполнение другую программу. Запускаемая программа будет работать в безопасном режиме, но уже не будет иметь право выполнять системный вызов exec.

При успешном завершении (то есть когда патч установлен в работающее ядро) системный вызов ptrace возвращает значение 0. Если патч не установлен, ptrace вернет значение -1, а переменная errno будет содержать код ошибки EINVAL.

Установка ограничения времени работы процесса в миллисекундах

Контроль ошибки Memory Limit Exceeded

Контроль ошибки Security Violation