Современные ОС имеют архитектуру, основанную на разделении всех ее модулей на две группы:
- ядро – модули, выполняющие основные функции ОС;
- модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют такие базовые функции ОС, как управление процессами, памятью, устройствами ввода-вывода и т. п. В состав ядра входят модули, решающие задачи организации вычислительного процесса, такие как переключение контекстов, загрузка/выгрузка станиц, обработка прерываний. Эти функции недоступны для обычных пользовательских приложений. Другой класс функций ядра служит для поддержки приложений, создавая для них так называемую прикладную программную среду. Приложения могут обращаться к ядру с запросами — системными вызовами — для выполнения тех или иных действий, например для открытия и чтения файла, вывода графической информации на дисплей, получения системного времени и т. д. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования — API.
Функции, выполняемые модулями ядра, наиболее часто используются при работе ОС, поэтому скорость их выполнения определяет производительность всей системы в целом. Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными.
Как правило, ядро оформляется в виде программного модуля специального формата, отличающегося от формата пользовательских приложений.
К остальным модулям ядра ОС могут быть отнесены программы архивирования данных на магнитном диске, дефрагментации диска, текстового редактора. Вспомогательные модули ОС оформляются либо в виде приложений, либо в виде библиотек процедур.
Вспомогательные модули ОС обычно подразделяются на следующие группы.
- утилиты — программы, решающие задачи управления и сопровождения компьютерной системы, такие, например, как программы сжатия дисков, дефрагментации дисков;
- системные обрабатывающие программы — текстовые или графические редакторы (блокнот), компиляторы, компоновщики, отладчики;
- программы предоставления пользователю дополнительных услуг - специальный вариант пользовательского интерфейса, калькулятор, игры, программа поиска файлов и данных;
- библиотеки процедур различного назначения, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. д.
Обычные приложения, утилиты, обрабатывающие программы и библиотеки ОС, обращаются к функциям ядра посредством системных вызовов.
Модули ОС, оформленные в виде утилит, системных обрабатывающих программ и библиотек, обычно загружаются в оперативную память только на время выполнения своих функций, то есть являются транзитными.
Важным свойством архитектуры ОС, основанной на ядре, является возможность защиты кодов и данных операционной системы за счет выполнения функций ядра в привилегированном режиме.