В данной статье мы оценим организацию ядра FreeBSD двояко.
1. Как статическую основную часть программного обеспечения, категоризируемую по выполняемым функциям, предлагаемым составляющими ядро модулями.
2. По его динамической работе, категоризируемой в соответствии со службами, предоставляемыми пользователям.
Самая большая часть ядра реализует системные службы, к которым приложения получают доступ через системные вызовы. В FreeBSD это программное обеспечение организовано следующим образом.
· Базовые средства ядра: таймер и обработка системного времени, управление дескрипторами и процессами.
· Поддержка управления памятью: замещение страниц и подкачка.
· Общие системные интерфейсы: операции ввода/вывода, управления и мультиплексирования, осуществляемые с дескрипторами.
· Файловая система: файлы, каталоги, преобразование имен путей, блокировки файлов и управление буферированием ввода/вывода.
· Поддержка управления терминалами: интерфейс псевдотерминалов и дисциплины линий связей терминалов.
· Средства межпроцессного взаимодействия: сокеты.
· Поддержка сетевой коммуникации: коммуникационные протоколы и общие сетевые средства, такие, как маршрутизация.
Большая часть программного обеспечения в данных категориях является машинно-независимой и переносимой между различными аппаратными архитектурами.
Машинно-зависимые аспекты ядра изолированы от основного кода. В частности, машинно-независимый код не содержит условного кода для определенных архитектур. Когда необходимо зависимое от архитектуры действие, машинно-независимый код вызывает архитектурно-зависимую функцию, которая размещается в машинно-зависимом коде. Машинно-зависимое программное обеспечение включает следующее.
· Низкоуровневые действия по запуску системы.
· Обработка исключений и отказов.
· Низкоуровневая работа с контекстом времени выполнения процесса.
· Конфигурирование и инициализация аппаратных устройств.
· Поддержка устройств ввода/вывода времени выполнения.
Лишь небольшая часть ядра отвечает за загрузку системы. Этот код используется во время начальной загрузки и отвечает за установку аппаратного и программного окружения. Некоторые операционные системы (особенно с ограниченной физической памятью) сбрасывают или перекрывают (overlay) программное обеспечение, осуществляющее эти функции, после их отработки. Ядро FreeBSD не восстанавливает память, используемую кодом инициализации, поскольку это пространство памяти занимает лишь 0,2 процента ресурсов ядра, используемых на обычной машине. Код инициализации не находится также в каком-то определенном месте ядра - он разбросан везде и появляется обычно в местах, логически связанных с тем, что инициализируется.
- 10/05/2010 05:46 - Управление памятью
- 09/05/2010 22:28 - Группы процессов и сеансы
- 09/05/2010 13:03 - Сигналы
- 09/05/2010 05:44 - Управление процессами
- 08/05/2010 19:43 - Службы ядра
- 08/05/2010 03:47 - Ядро
- 07/05/2010 22:30 - Средства FreeBSD и ядро
- 07/05/2010 14:45 - Конкуренция операционных систем
- 07/05/2010 05:50 - Обновление версий FreeBSD
- 06/05/2010 19:33 - Структура разработки проекта