Операционная система является очень большой и сложной программной системой, по этому, она должна быть хорошо структурирована.
Операционная система - набор модулей и подсистем с четко разграниченной функциональностью и определенным интерфейсом.
Ядро - часть операционной системы, резидентно размещенная подсистема, управляющая всеми остальными подсистемами.
Основным критерием для разделения модулей является частота использования (подсистема, управляющая внешними устройствами не используется непрерывно, по этому, держать ее в основной памяти нет смысла). Поэтому в ядро включаются те модули, которые работают постоянно.
Функции ядра:
- Распределение/перераспределение основной памяти под задачи.
- Управление процессами переключения.
- Первоначальная обработка прерываний
- Планирование и распределение ресурсов.
Кроме того ядро управляет передачей управления, в нужный момент подкачивает операционные подсистемы.
Ядро всегда работает в привилегированном режиме, в котором становятся доступны системные данные, функции, к которым запрещено обращение обычных программ, работающих в пользовательском режиме. Все обращения к вычислительной системе происходят только через ядро.