Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Общая информация Организация ядра

Организация ядра

В данной статье мы оценим организацию ядра FreeBSD двояко.

1. Как статическую основную часть программного обеспечения, категоризируемую по выполняемым функциям, предлагаемым составляющими ядро модулями.

2. По его динамической работе, категоризируемой в соответствии со службами, предоставляемыми пользователям.

Самая большая часть ядра реализует системные службы, к которым приложения получают доступ через системные вызовы. В FreeBSD это программное обеспечение организовано следующим образом.

· Базовые средства ядра: таймер и обработка системного времени, управление дескрипторами и процессами.

· Поддержка управления памятью: замещение страниц и подкачка.

· Общие системные интерфейсы: операции ввода/вывода, управления и мультиплексирования, осуществляемые с дескрипторами.

· Файловая система: файлы, каталоги, преобразование имен путей, блокировки файлов и управление буферированием ввода/вывода.

· Поддержка управления терминалами: интерфейс псевдотерминалов и дисциплины линий связей терминалов.

· Средства межпроцессного взаимодействия: сокеты.

· Поддержка сетевой коммуникации: коммуникационные протоколы и общие сетевые средства, такие, как маршрутизация.

Большая часть программного обеспечения в данных категориях является машинно-независимой и переносимой между различными аппаратными архитектурами.

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

· Низкоуровневые действия по запуску системы.

· Обработка исключений и отказов.

· Низкоуровневая работа с контекстом времени выполнения процесса.

· Конфигурирование и инициализация аппаратных устройств.

· Поддержка устройств ввода/вывода времени выполнения.

Лишь небольшая часть ядра отвечает за загрузку системы. Этот код используется во время начальной загрузки и отвечает за установку аппаратного и программного окружения. Некоторые операционные системы (особенно с ограниченной физической памятью) сбрасывают или перекрывают (overlay) программное обеспечение, осуществляющее эти функции, после их отработки. Ядро FreeBSD не восстанавливает память, используемую кодом инициализации, поскольку это пространство памяти занимает лишь 0,2 процента ресурсов ядра, используемых на обычной машине. Код инициализации не находится также в каком-то определенном месте ядра - он разбросан везде и появляется обычно в местах, логически связанных с тем, что инициализируется.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 25 гостей онлайн

Реклама на сайте: