Идеология структуры и базовый состав ядра ОС ЮНИКС.

Общая идеология структуры ядра системы: 1 и 2-ой нижние уровни.

Системные вызовы Аппаратные и эмулированные прерывания
Управление терминалом Сокеты Именование файла Отображение адресов Страничные прерывания Обработка сигналов Создание и завершение процессов
Необработанный телетайп Обработанный телетайп Сетевые протоколы Файловые системы Виртуальная память
  Маршрутизация Буферный КЭШ Страничный КЭШ Планирование процессов
Символьные устройства Драйверы сетевых устройств Драйверы дисковых устройств Диспетчеризация процессов
Аппаратура
               

Нижний уровень ядра состоит из драйверов устройств и диспетчеризации процессов. Все драйверы UNIX делятся на два класса: драйверы символьных устройств и драйверы блочных устройств. Основное различие между этими классами в том, что на блочных устройствах разрешается операция поиска, а на символьных нет. Технически сетевые устройства представляют собой символьные устройства, но обрабатываются иначе и поэтому образуют отдельный класс. Диспетчеризация процессов проводится при возникновении прерывания. В этом случае низкоуровневая программа останавливает выполнение работающего процесса, сохраняет его состояние в таблицах процессов ядра и запускает соответствующий драйвер. Диспетчеризация процессов проводится так же и тогда когда ядро завершает свою работу и следует снова запустить процесс пользователя. Программа диспетчеризации написана на ассемблере и представляет собой отдельную от процедуры планирования программу.

На более высоком уровне программы отличаются как по исполнению, так и по содержанию. Символьные устройства могут использоваться двояко. Некоторым программам , например текстовым редакторам, требуется только нажатие клавиши для ввода. Другое программное обеспечение принимает на входе уже готовую текстовую программу, позволяя пользователю редактировать её пока не будет нажата клавиша ввода. Сетевое программное обеспечение, чаще всего модульное, с поддержкой различных устройств и протоколов. Уровень выше сетевых драйверов выполняет функции маршрутизации при соблюдении обязательного соответствия между обрабатываемыми пакетами программ и устройствами или блоками управления протоколами. Большинство систем UNIX содержит в ядре полноценный маршрутизатор для сети INTERNET. И хотя его производительность ниже, чем у аппаратного маршрутизатора, это программа присутствует, так как появилась раньше. Над уровнем маршрутизации располагается стек с протоколами IP и прочими сетевыми. Над сетевыми протоколами располагается интерфейс сокетов, позволяющий программам создавать сокеты для отдельных сетей и протоколов. Для использования сокетов пользовательские программы получают дескрипторы файлов. Над драйверами дисковых устройств располагаются буферный и страничный КЭШ файловой системы. В некоторых ОС буферный кэш представляет фиксированную область памяти, а остальная используется для страниц пользователя. Однако во многих современных ОС этой фиксированной границы уже не существует и любая страница памяти может быть выделена для того что бы в данный момент удовлетворить систему.Выше расположены файловые системы и виртуальная память. Большинство версий UNIX поддерживает несколько файловых систем. Все они используют общий буферный КЕШ. Выше файловых систем располагается блок именования файлов. Над страничным КЭШем располагается виртуальная память. Здесь вся логика работы со страницами, программа отображения файлов на виртуальную память и высокоуровневая программа управления страничными прерываниями. Над диспетчером располагается планировщик процессов. Если потоками управляет ядро то управление располагается тоже здесь. Иногда управление потоками выносится в пространство пользователя. Над планировщиком расположена программа обработки сигналов и программа создания и завершения процессов. Самый верхний уровень это интерфейс системы. Сюда относятся интерфейс системных вызовов, вход для аппаратных и эмулированных прерываний, страничные прерывания, прерывания ввода/вывода и специфические ситуации процессора.