Ядро является частью системы, работающей в защищенном режиме и обеспечивающей доступ всех пользовательских программ к нижележащему оборудованию (например, центральному процессору, клавиатуре, монитору, дискам, сетевым соединениям) и программным конструкциям (например, файловой системе, сетевым протоколам). Ядро предоставляет основные системные средства; оно создает и управляет процессами и предоставляет функции для доступа к файловой системе и средствам коммуникации. Эти функции, называемые системными вызовами, выглядят для пользовательских процессов как библиотечные подпрограммы. Эти системные вызовы являются лишь интерфейсами, которые есть у процессов для этих средств.
Ядро, в традиционной терминологии операционных систем, является небольшой центральной частью программного обеспечения, предоставляющей лишь минимальные средства, необходимые для реализации дополнительных служб операционной системы. На протяжении большей части 1980-х гг. исследовательские операционные системы, такие, как Chorus [Rozier et al., 1988], Mach [Accetta et al., 1986], Tunis [Ewens et al., 1985] и V Kernel [Cheriton, 1988], пытались разделить функциональность на более чем одну логическую единицу. Службы, такие, как файловые системы и сетевые протоколы, были реализованы в виде клиентских прикладных процессов центральной части или ядра. Эти микроядра в значительной степени потерпели неудачу из-за больших накладных расходов по переключениям между процессами ядра.
Ядро FreeBSD не разделено на несколько процессов. Это базовое проектное решение было сделано в самых ранних версиях UNIX. Две первые реализации Кена Томпсона не имели отображения памяти и поэтому не делали аппаратно осуществляемого разделения между пространствами пользователя и ядра [Ritchie, 1988]. Так же легко, как действительно реализованная модель процессов ядра и пользователей, могла бы быть реализована система, передающая сообщения. Монолитное ядро было выбрано для обеспечения простоты и производительности. И первые ядра были небольшими; добавление таких возможностей, как работа в сети, увеличило их размер, хотя ядро по-прежнему небольшое по сравнению со многими приложениями, которые работают с ним.
Пользователи обычно взаимодействуют с системой посредством интерпретатора командного языка, называемого оболочкой, и посредством дополнительных программ пользователя. Такие программы и оболочка реализованы в виде процессов, а не части ядра.
- 09/05/2010 22:28 - Группы процессов и сеансы
- 09/05/2010 13:03 - Сигналы
- 09/05/2010 05:44 - Управление процессами
- 08/05/2010 19:43 - Службы ядра
- 08/05/2010 13:45 - Организация ядра
- 07/05/2010 14:45 - Конкуренция операционных систем
- 07/05/2010 05:50 - Обновление версий FreeBSD
- 06/05/2010 19:33 - Структура разработки проекта
- 06/05/2010 14:01 - Открытый исходный код
- 06/05/2010 04:47 - Модель разработки FreeBSD