Ядро системы FreeBSD является главным исполняемым файлом, который выполняется самым первым в момент загрузки компьютера (сервера) при запуске системы и постоянно действует до момента остановки машины.
В обязанности ядра входит мониторинг всех процессов, работающих в системе, обработка стека протоколов TCP/IP и прочих сетевых аспектов, управление и разграничение доступа всех устройств между собой, контроль использования памяти (дисковой, оперативной) и т.д.
Всякая операционная система, от самой первой до тех, которые создаются в наше время, имела ядро.
В одних ОС системное ядро скрыто от пользователей гораздо лучше, чем в других. Для примера, ОС Windows, ядро содержится в системных каталогах %windir%\system, %windir%\system32, в операционной системе FreeBSD ядро содержится в корневом каталоге /, в иных версиях – в каталоге /boot.
FreeBSD немного отличается от классических систем Linux и Windows и уж тем более Mac OS, и целого ряда операционных систем (которых на самом деле великое множество) используется архитектура микроядра. Это означает, что само ядро имеет малый размер, но является модульным.
Архитектура монолитного ядра очень положительно влияет на скорость выполнения кода ядра, но в то же время она является не очень удобной и сложной в плане развития операционной системы разработчиками, да и администратору системы в некоторых случаях необходимо будет перекомпилировать ядро, особенно это выражено при добавлении поддержки устройств, которые до этого ядром не поддерживались.
Среди широкого спектра современных операционных систем довольно непросто выделить различия между микроядром или ядром монолитным. Современные версии операционных систем Linux довольно интенсивно работают с модулями ядра, в то же время ядро операционной системы FreeBSD бывает нужно перекомпилировать по некоторым причинам, связанным с добавлением новых функций и оборудования, изначально в стандартное ядро не входящих. Отличие этих двух архитектур (микроядро и монолитное ядро) не столь выражено, и лежит скорее в философском восприятии концепций построения операционных систем.
Вполне разумно, что ни одно ядро не может функционировать в точном соответствии с его философскими концепциями. Самое серьёзное отличие, которое можно назвать фундаментальным, в том, что микроядро имеет особый механизм передачи определённых системных вызовов из ядра на пользовательский уровень обработки, иначе называемый «кольцо», а не обрабатывает все вызовы самостоятельно, возлагая на само ядро операционной системы высокопривилегированные задачи высокого статуса выполнения.
Наличие в ядре только самых нужных функций благоприятно сказывается на надёжности среды выполнения и позволяет сделать процессы ядра более понятными. Кроме того, такая концепция обеспечивает более высокий уровень защиты за счёт того, что упрощается поддержка модульного кода драйверов и компонентов.
Опять же, здесь палка о двух концах, и в противовес этой ситуации то, что микроядро похоже на объектно-ориентированный язык программирования. Это значит, что ядро не может работать так быстро, как, например, монолитная программа или программа, построенная на процедурных вызовах, но зато она намного легче для понимания и позволяет более эффективно использовать её базовые компоненты.
Далее, в рамках серии материалов, посвященных ядру FreeBSD, расскажу о перекомпиляции, модулях и способах расширения внутреннего микроядра системы FreeBSD и других способах, позволяющих удовлетворить вашим нуждам и нуждам системы.
Comments: