Назначение ядра Linux и его особенности

Linux реализует технологию монолитного ядра. Весь код и структуры данных ядра находятся в одном адресном пространстве. В ядре можно выделить несколько функциональных компонентов:

Ø Планировщик процессов – отвечает за реализацию многозадачности в системе (обработка прерываний, работа с таймером, создание и завершение процессов, переключение контекста).

Ø Менеджер памяти – выделяет отделбное адресное пространство для каждого процесса и реализует поддержку виртуальной памяти.

Ø Виртуальная файловая система – предоставляет универсальный интерфейс взаимодействия с разными файловыми системами и устройствами ввода-вывода.

Ø Драйверы устройств – обеспечивают непосредственную работу с периферийными устройствами. Доступ к ним реализуется через интерфейс виртуальной файловой системы.

Ø Сетевой интерфейс – обеспечивает доступ к раелизации сетевых протоколов и драйверов сетевых устройств.

Ø Подсистема межпроцессового взаимодействия – предлагает механизмы, которые дают возможность разным процессам в системе обмениваться данными между собой.

Некоторые из этих подсистем являются логическими компонентами системы, они загружаются в память вместе с ядром и остаются там постоянно. Компоненты других подсистем (например, драйверы устройств) выгодно реализовать так, что бы их код мог загружаться в память по требованию. Для решения данной задачи Linux поддерживает концепцию модулей ядра.