Обзор операционных систем и ядер

Обзор операционных систем и ядер

Из-за неуклонного роста возможностей и не очень качественного построения некоторых современных операционных систем, понятие операционной системы стало несколько неопределенным. Многие пользователи считают, что то, что они видят на экране, — и есть операционная система. Обычно, и в этой книге тоже, под операционной системой понимается часть компьютерной системы, которая отвечает за основные функции использования и администрирования. Это включает в себя ядро и драйверы устройств, системный загрузчик (boot loader), командный процессор и другие интерфейсы пользователя, а также базовую файловую систему и системные утилиты. В общем, только необходимые компоненты. Термин система обозначает операционную систему и все пользовательские программы, которые работают под ее управлением.

Конечно, основной темой этой книги будет ядро операционной системы. Интерфейс пользователя — это внешняя часть операционной системы, а ядро — внутренняя. В своей основе ядро — это программное обеспечение, которое предоставляет базовые функции для всех остальных частей операционной системы, занимается управлением аппаратурой и распределяет системные ресурсы. Ядро часто называют основной частью (core) или контроллером операционной системы. Типичные компоненты ядра — обработчики прерываний, которые обслуживают запросы на прерывания, планировщик, который распределяет процессорное время между многими процессами, система управления памятью, которая управляет адресным пространством процессов, и системные службы, такие как сетевая подсистема и подсистема межпроцессного взаимодействия. В современных системах с устройствами управления защищенной памятью ядро обычно занимает привилегированное положение по отношению к пользовательским программам. Это включает доступ ко всем областям защищенной памяти и полный доступ к аппаратному обеспечению. Состояние системы, в котором находится ядро, и область памяти, в которой находится ядро, вместе называются пространством ядра (или режимом ядра, kernel-space). Соответственно, пользовательские программы выполняются в пространствах задач (пользовательский режим, режим задач, user-space). Пользовательским программам доступно лишь некоторое подмножество машинных ресурсов, они не могут выполнять некоторые системные функции, напрямую обращаться к аппаратуре и делать другие недозволенные вещи. При выполнении программного кода ядра система находится в пространстве (режиме) ядра, в отличие от нормального выполнения пользовательских программ, которое происходит в режиме задачи.

Прикладные программы, работающие в системе, взаимодействуют с ядром с помощью интерфейса системных вызовов (system call) (рис. 1.1). Прикладная программа обычно вызывает функции различных библиотек, например библиотеки функций языка С, которые, в свою очередь, обращаются к интерфейсу системных вызовов для того, чтобы отдать приказ ядру выполнить определенные действия от их имени. Некоторые библиотечные вызовы предоставляют функции, для которых отсутствует системный вызов, и поэтому обращение к ядру — это только один этап в более сложной функции. Давайте рассмотрим всем известную функцию printf(). Эта функции обеспечивает форматирование и буферизацию данных и лишь после этого один раз обращается к системному вызову write() для вывода данных на консоль. Некоторые библиотечные функции соответствуют функциям ядра один к одному. Например, библиотечная функция open() не делает ничего, кроме выполнения системного вызова open(). В то же время некоторые библиотечные функции, как, например, strcpy(), надо полагать, вообще не используют обращения к ядру. Когда прикладная программа выполняет системный вызов, то говорят, что ядро выполняет работу от имени прикладной программы. Более того, говорят, что прикладная программа выполняет системный вызов в пространстве ядра, а ядро выполняется в контексте процесса. Такой тип взаимодействия, когда прикладная программа входит в ядро через интерфейс системных вызовов, является фундаментальным способом выполнения задач.

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

В функции ядра входит также управление системным аппаратным обеспечением. Практически все платформы, включая те, на которых работает операционная система Linux, используют прерывания (interrupt). Когда аппаратному устройству необходимо как-то взаимодействовать с системой, оно генерирует прерывание, которое прерывает работу ядра в асинхронном режиме[6].

Обычно каждому типу прерываний соответствует номер. Ядро использует номер прерывания для выполнения специального обработчика прерывания (interrupt handler), который обрабатывает прерывание и отправляет на него ответ. Например, при вводе символа с клавиатуры, контроллер клавиатуры генерирует прерывание, чтобы дать знать системе, что в буфере клавиатуры есть новые данные. Ядро определяет номер прерывания, которое пришло в систему и выполняет соответствующий обработчик прерывания. Обработчик прерывания обрабатывает данные, поступившие с клавиатуры, и даст знать контроллеру клавиатуры, что ядро готово для приема новых данных. Для обеспечения синхронизации выполнения ядро обычно может запрещать прерывания: или все прерывания, или только прерывание с определенным номером. Во многих операционных системах обработчики прерываний не выполняются в контексте процессов. Они выполняются в специальном контексте прерывания (interrupt context), который не связан ни с одним процессом. Этот специальный контекст существует то только для того, чтобы дать обработчику прерывания возможность быстро отреагировать на прерывание и закончить работу.

Контексты выполнения заданий полностью определяют всю широту возможных действий ядра. Фактически, можно заключить, что в операционной системе Linux процессор в любой момент времени выполняет один из трех типов действий.

• Работа от имени определенного процесса в режиме ядра в контексте процесса.

• Работа по обработке прерывания в режиме ядра в контексте прерывания, не связанном с процессами.

• Выполнение кода пользовательской программы в режиме задачи.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

2.7.2. Установка других операционных систем после Linux

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

2.7.2. Установка других операционных систем после Linux При инсталляции MS-DOS и Windows 95/98 ее стандартный загрузчик независимо от вашего желания записывается в Master Boot Record (MBR), а признак активности в таблице разделов ставится на раздел MS-DOS (Windows 95/98). А стандартный загрузчик MS-DOS и Windows


2.4. Установка нескольких операционных систем

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

2.4. Установка нескольких операционных систем Прежде чем устанавливать несколько операционных систем на одном компьютере, сделайте резервное копирование важной информации, т.к. процесс установки операционной системы включает в себя переразбиение жесткого диска на


3 Контраст: сравнение философии Unix и других операционных систем

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

3 Контраст: сравнение философии Unix и других операционных систем Если ваша проблема выглядит неприступной, найдите пользователя Unix, который покажет, как ее решить. Информационный бюллетень Дилберта (Dilbert), 3.0, 1994 —Скотт Адаме Способы создания операционных систем, как


3.2. Сравнение операционных систем

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

3.2. Сравнение операционных систем Логика выбора конструкции Unix становится более очевидной в сравнении с другими операционными системами. Ниже приводится только общий обзор конструкций19.На рис. 3.1. отражены генетические связи между рассматриваемыми операционными


3 Контраст: сравнение философии Unix и других операционных систем

Из книги Системное программирование в среде Windows автора Харт Джонсон М

3 Контраст: сравнение философии Unix и других операционных систем Если ваша проблема выглядит неприступной, найдите пользователя Unix, который покажет, как ее решить. Информационный бюллетень Дилберта (Dilbert), 3.0, 1994 —Скотт Адамс Способы создания операционных систем, как


3.2. Сравнение операционных систем

Из книги В начале была командная строка автора Стивенсон Нил

3.2. Сравнение операционных систем Логика выбора конструкции Unix становится более очевидной в сравнении с другими операционными системами. Ниже приводится только общий обзор конструкций[23].На рис. 3.1. отражены генетические связи между рассматриваемыми операционными


Основные возможности операционных систем

Из книги Windows Vista. Трюки и эффекты автора Зозуля Юрий

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


Дыроверт операционных систем

Из книги Linux автора Стахнов Алексей Александрович

Дыроверт операционных систем ОпСистема «Юних» всегда держалась провокационно на фоне войн операционных систем, подобно Русской Армии. Большинство людей знают только ее репутацию, и предположения о ее репутации, по типу как в мультфильме про Дильберта, смутны. Но все


11.3. Установка нескольких операционных систем с помощью виртуальной машины

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

11.3. Установка нескольких операционных систем с помощью виртуальной машины Общие сведения о виртуальных машинахДля запуска нескольких операционных систем на одном компьютере все чаще используются виртуальные машины. Виртуальная машина – это программа, которая


Глава 38 Сосуществование операционных систем

Из книги Атака на Internet автора Медведовский Илья Давыдович

Глава 38 Сосуществование операционных систем Как бы мы ни старались, а полностью жить в операционной системе Linux в современном мире не получается. Так сложилась жизнь, что множество программ написаны под операционные системы MS Windows или DOS. И зачастую по тем или иным


Платформы для операционных систем

Из книги Как раскрутить и разрекламировать Web-сайт в сети Интернет автора Загуменов Александр Петрович

Платформы для операционных систем Платформы сервера Firebird включают следующие операционные системы, но не ограничиваются только ими.* Linux, FreeBSD и другие варианты ОС UNIX.* Платформы Microsoft Windows, поддерживающие сервисы: NT 4, Windows 2000 (сервер или рабочая станция), XP Professional и Server 2003.


Глава 9 Прошлое и настоящее сетевых операционных систем

Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

Глава 9 Прошлое и настоящее сетевых операционных систем Извечной и зловещей мечтой вирусов является абсолютное мировое господство, и, как ни ужасны методы, коими они в настоящее время пользуются, им нельзя отказать в настойчивости, изобретательности и способности к


Обзор поисковых систем

Из книги Разработка ядра Linux автора Лав Роберт

Обзор поисковых систем Российские поисковые системыЯndex Поисковая машина Яndex (http://www.yandex.ru/) обладает наибольшей в российской части Internet базой данных и развернутой системой формирования запроса. Ею индексируется информация российских (домены RU и SU) и зарубежных серверов,


Исследование программных интерфейсов приложений операционных систем

Из книги автора

Исследование программных интерфейсов приложений операционных систем Операционные системы предоставляют или не предоставляют интерфейсы с уровнем сетевых соединений. Рассмотрим несколько операционных систем, для того чтобы определить, как они взаимодействуют с их


Книги по основам построения операционных систем

Из книги автора

Книги по основам построения операционных систем В этих книгах рассмотрены принципы работы операционных систем в объеме учебных курсов. В них описываются основные понятия, алгоритмы и проблемы, связанные с построением высокофункциональных операционных систем, а также


Книги о ядрах других операционных систем

Из книги автора

Книги о ядрах других операционных систем Понимать врагов, точнее не врагов, а конкурентов, — никогда не повредит. В этих книгах обсуждаются основы работы и особенности реализации операционных систем, отличных от операционной системы Linux. Смотрите, что у них хорошо, а