Главная Форум Wiki Почта Jabber Devel NIX-FILES
Материал из AltLUG Wiki
Перейти к: навигация, поиск

Ядро и модули

Ядро — центральная часть операционной системы, содержит инструкции и данные, ответственные за взаимодействие пользовательских процессов с оборудованием и между собой.

Для того, чтобы не позволить обыкновенным программам вмешиваться в работу всего компьютера, все совреемнные процессоры (общего назначения) используют техгологию Protected Mode - защищенного режима. Только ядро исполняется в незащищенном режиме, пользовательским программам защищенный режим, в котором они исполняются, запрещает производить некоторые критические операции, такие, как, например, обращение к портам ввода/вывода.

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

Взаимодействие пользовательских процессов и оборудования происходит посредством Системных вызовов. Системный вызов - это цепочка инструкций ядра, представляющая из себя функцию. Системному вызову передаются входные данные, после исполнения системного вызова вызвавший процесс получает ответ. Помимо того, с компьютером происходят (если позволено) нужные процессу изменения, разрешенные потому что ядро исполняется в незащищенном режиме. Примеры системных вызовов - open(), close() - предназначены для открытия и закрытия файлов процессом. Работа с файлами требует исполнения "опасных" инструкций ввода-вывода, потому может производиться только в режиме ядра.

Некоторая, если не вся часть данных ядра обязана постоянно находиться в оперативной памяти компьютера. Так, по состоянию на 2007 год ядро GNU/linux явдяется невыгружаемым. (http://kerneltrap.org/node/8206)

В прошлом ядра операционных систем были неизменяемые. Это означает, что для внесения изменения в ядро приходилось останавливать операционную систему на старом ядре и запускать её на новом. Современные операционные системы имеют модульные ядра. Для внесения изменений в модульное ядро, что может потребоваться при подключении нового оборудования, не нужно останавливать всю операционную систему. Вместо того достаточно подключить к ядру соответствующий изменениям модуль, который может существовать в виде отдельного файла.

Для работы с модулями в-ручную в ОС GNU/Linux существует утилита modprobe. Для того, чтобы посмотреть, какие модули подключены к ядру в данный момент, можно воспользоваться коммандой lsmod. Модули принято хранить в файлах с расширением .ko .

Личные инструменты