Двухуровневая модель системы представлена на Рисунок 1.1 - Модель системы UNIX.
Рисунок 1.1 - Модель системы UNIX
В центре находится ядро (kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенности ее архитектуры. Ядро предоставляет набор услуг прикладным программам. К услугам ядра относятся операции ввода/вывода (открытия, чтения, записи и управления файлами), создания и управления процессами, их синхронизации и межпроцессорного взаимодействия. Все приложения запрашивают услуги ядра посредством системных вызовов.
Второй уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс UNIX. Несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы.
Далее рассмотрим отдельные компоненты ядра системы.
Ядро
Ядро системы обеспечивает базовую функциональность операционной системы:
- создает процессы и управляет ими;
- распределяет память;
- обеспечивает доступ к файлам и периферийным устройствам.
Взаимодействие прикладных задач с ядром происходит посредством стандартного интерфейса системных вызовов. Интерфейс системных вызовов представляет собой набор услуг ядра и определяет формат запросов на услуги. Процесс запрашивает услугу посредством системного вызова определенной процедуры ядра, похожего на обычный вызов библиотечной функции. Ядро от имени процесса выполняет запрос и возвращает процессу необходимые данные. Структура ядра представлена на Рисунок 1.2 - Внутренняя структура ядра UNIX.