Ядро Linux включает следующие компоненты:
- интерфейс системных вызовов SCI — API для вызова функций ядра из пространства пользователя;
- управление процессами — подсистема управления потоками и планировщик потоков;
- управление памятью — подсистема работы с виртуальными страницами памяти (4 КБ или 2 МБ), например, механизм распределения страниц (slab allocator) и кэширования страниц в файле подкачки;
- виртуальная файловая система (VFS) — интерфейс к файловым системам и их кэшам;
- сетевой стек — реализация сетевых протоколов;
- драйверы устройств.
Доступ к функциям ядра обеспечивается через интерфейс системных вызовов. Работа системы безопасности ядра основана на проверке контекста системного вызова и передаваемых данных.
Сначала запрос из пространства пользователя, передается в слой системных вызовов. Перед выполнением функции выполняется проверка передаваемых данных и полномочий пользователя. Если проверки успешны, выполняются необходимые действия. Иначе системный вызов возвращает сообщение об ошибке.
В связи с тем, что практически любое действие или взаимодействие процесса требует обращения к операционной системе, подобный подход позволяет строить политики безопасности, достаточные для большинства практических применений.
Комментариев нет :
Отправить комментарий