Ядро операционной системы
Ядро (англ. Kernel) – базовая компонента операционной системы, реализующий интерфейс между прикладными процессами и оборудованием компьютера. Загружается в оперативную память компьютера и непосредственно взаимодействует с аппаратурой, обеспечивая управление аппаратными средствами (при этом используются драйверы (модули ядра) подключенного в систему оборудования), поддержку одновременной работы многих пользователей (многопользовательский режим), поддержку параллельного выполнения многих процессов в системе (многозадачность).
Ядро UNIX-подобных систем
Как и в любой другой операционной системе, обеспечивающей защиту пользователей друг от друга и защиту системных данных от любого непривилегированного пользователя, в ОС UNIX является защищенное ядро, управляет ресурсами компьютера и предоставляет пользователям базовый набор услуг.
В результате, ядро большинства современных коммерческих вариантов ОС UNIX представляет собой не очень четко структуризованный монолит большого размера. По этой причине программирования на уровне ядра ОС UNIX продолжает оставаться искусством (если не считать отработанной и понятной технологии разработки драйверов внешних устройств). Эта недостаточная технологичность организации ядра ОС UNIX многих не удовлетворяет. Отсюда стремление к полному воссоздание среды ОС UNIX при полностью иной организации системы (в частности, с применением микроядерного подхода, мы кратко рассмотрим в конце курса).
Общая организация традиционного ядра ОС UNIX
Одно из основных достижений ОС UNIX состоит в том, что система обладает свойством высокой мобильности. Содержание этого качества состоит в том, что вся операционная система, включая ее ядро, сравнительно просто переносится на различные аппаратные платформы. Все части системы, не считая ядра, являются полностью машинно-независимыми. Эти компоненты аккуратно написаны на языке С, и для их переноса на новую платформу (по крайней мере, в классе 32-разрядных компьютеров) требуется только перекомпиляция исходных текстов в коды целевого компьютера.
Конечно, наибольшие проблемы связаны с ядром системы, полностью скрывающая специфику используемого компьютера, но именно зависит от этой специфики. В результате продуманного разделения машиннозалежних и машиннонезалежних компонентов ядра (видимо, с точки зрения операционных систем, в этом состоит наивысшее достижение разработчиков традиционного ядра ОС UNIX) удалось добиться того, что основная часть ядра не зависит от архитектурных особенностей целевой платформы, написана полностью на языке С и для переноса на новую платформу потребует только в перекомпиляции.
Однако сравнительно небольшая часть ядра является машиннозалежною и написана на смеси языка С и языка ассемблера целевого процессора. При переносе системы на новую платформу требуется переписывание этой части ядра с использованием языка ассемблера и учетом специфических черт целевых аппаратуры. Машинно-зависимые части ядра хорошо изолированы от основной машинно-независимой части, и при хорошем понимании назначения каждого машинно-зависимого компонента переписывание машинно-зависимой части является в основном техническим заданием (хотя и требует высокой программистской квалификации).
Машинно-зависимая часть традиционного ядра ОС UNIX включает компоненты:
раскрутку (англ. bootstrap) и инициализация системы на низком уровне (пока это зависит от особенностей аппаратуры);
первичная обработка внутренних и внешних прерываний;
управление памятью (в той части, относящейся к особенностям аппаратной поддержки виртуальной памяти);
переключение контекста процессов между режимами пользователя и ядра;
связанные с особенностями целевой платформы части драйверов устройств.
Основные функции
К основным функциям ядра ОС UNIX принято относить следующие:
(A) Инициализация системы – функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (англ. bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.
(B) Управление процессами и нитями – функция создания, завершения и отслеживания существующих процессов и нитей («процессов», выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является мультипроцесною операционной системой, ядро обеспечивает разделение между запущенными процессами времени процессора (или процессоров в мультипроцессорных системах) и других ресурсов компьютера для создания внешнего ощущения того, что процессы реально выполняются в параллель.
(C) Управление памятью – функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, имеет ограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемое использование тех же областей оперативной памяти несколькими процессами с использованием внешней памяти.
(D) Управление файлами – функция, реализующая абстракцию файловой системы, – иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, файлы, выполняют и т.д. Файлы обычно хранятся на устройствах внешней памяти, доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС UNIX одновременно поддерживают большинство типов файловых систем.
(E) Коммуникационные средства – функция, обеспечивающая возможности обмена данными между процессами, выполняющимися внутри одного компьютера (англ. IPC – Inter-Process Communications), между процессами, выполняющимися в различных узлах локальной или глобальной сети передачи данных, а также между процессами и драйверами внешних устройств.
(F) Программный интерфейс – функция, обеспечивающая доступ к возможностям ядра со стороны пользовательских процессов на основе механизма системных вызовов, оформленных в виде библиотеки функций.
Ядро UNIX-подобных систем
Как и в любой другой операционной системе, обеспечивающей защиту пользователей друг от друга и защиту системных данных от любого непривилегированного пользователя, в ОС UNIX является защищенное ядро, управляет ресурсами компьютера и предоставляет пользователям базовый набор услуг.
В результате, ядро большинства современных коммерческих вариантов ОС UNIX представляет собой не очень четко структуризованный монолит большого размера. По этой причине программирования на уровне ядра ОС UNIX продолжает оставаться искусством (если не считать отработанной и понятной технологии разработки драйверов внешних устройств). Эта недостаточная технологичность организации ядра ОС UNIX многих не удовлетворяет. Отсюда стремление к полному воссоздание среды ОС UNIX при полностью иной организации системы (в частности, с применением микроядерного подхода, мы кратко рассмотрим в конце курса).
Общая организация традиционного ядра ОС UNIX
Одно из основных достижений ОС UNIX состоит в том, что система обладает свойством высокой мобильности. Содержание этого качества состоит в том, что вся операционная система, включая ее ядро, сравнительно просто переносится на различные аппаратные платформы. Все части системы, не считая ядра, являются полностью машинно-независимыми. Эти компоненты аккуратно написаны на языке С, и для их переноса на новую платформу (по крайней мере, в классе 32-разрядных компьютеров) требуется только перекомпиляция исходных текстов в коды целевого компьютера.
Конечно, наибольшие проблемы связаны с ядром системы, полностью скрывающая специфику используемого компьютера, но именно зависит от этой специфики. В результате продуманного разделения машиннозалежних и машиннонезалежних компонентов ядра (видимо, с точки зрения операционных систем, в этом состоит наивысшее достижение разработчиков традиционного ядра ОС UNIX) удалось добиться того, что основная часть ядра не зависит от архитектурных особенностей целевой платформы, написана полностью на языке С и для переноса на новую платформу потребует только в перекомпиляции.
Однако сравнительно небольшая часть ядра является машиннозалежною и написана на смеси языка С и языка ассемблера целевого процессора. При переносе системы на новую платформу требуется переписывание этой части ядра с использованием языка ассемблера и учетом специфических черт целевых аппаратуры. Машинно-зависимые части ядра хорошо изолированы от основной машинно-независимой части, и при хорошем понимании назначения каждого машинно-зависимого компонента переписывание машинно-зависимой части является в основном техническим заданием (хотя и требует высокой программистской квалификации).
Машинно-зависимая часть традиционного ядра ОС UNIX включает компоненты:
раскрутку (англ. bootstrap) и инициализация системы на низком уровне (пока это зависит от особенностей аппаратуры);
первичная обработка внутренних и внешних прерываний;
управление памятью (в той части, относящейся к особенностям аппаратной поддержки виртуальной памяти);
переключение контекста процессов между режимами пользователя и ядра;
связанные с особенностями целевой платформы части драйверов устройств.
Основные функции
К основным функциям ядра ОС UNIX принято относить следующие:
(A) Инициализация системы – функция запуска и раскрутки. Ядро системы обеспечивает средство раскрутки (англ. bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.
(B) Управление процессами и нитями – функция создания, завершения и отслеживания существующих процессов и нитей («процессов», выполняемых на общей виртуальной памяти). Поскольку ОС UNIX является мультипроцесною операционной системой, ядро обеспечивает разделение между запущенными процессами времени процессора (или процессоров в мультипроцессорных системах) и других ресурсов компьютера для создания внешнего ощущения того, что процессы реально выполняются в параллель.
(C) Управление памятью – функция отображения практически неограниченной виртуальной памяти процессов в физическую оперативную память компьютера, имеет ограниченные размеры. Соответствующий компонент ядра обеспечивает разделяемое использование тех же областей оперативной памяти несколькими процессами с использованием внешней памяти.
(D) Управление файлами – функция, реализующая абстракцию файловой системы, – иерархии каталогов и файлов. Файловые системы ОС UNIX поддерживают несколько типов файлов. Некоторые файлы могут содержать данные в формате ASCII, другие будут соответствовать внешним устройствам. В файловой системе хранятся объектные файлы, файлы, выполняют и т.д. Файлы обычно хранятся на устройствах внешней памяти, доступ к ним обеспечивается средствами ядра. В мире UNIX существует несколько типов организации файловых систем. Современные варианты ОС UNIX одновременно поддерживают большинство типов файловых систем.
(E) Коммуникационные средства – функция, обеспечивающая возможности обмена данными между процессами, выполняющимися внутри одного компьютера (англ. IPC – Inter-Process Communications), между процессами, выполняющимися в различных узлах локальной или глобальной сети передачи данных, а также между процессами и драйверами внешних устройств.
(F) Программный интерфейс – функция, обеспечивающая доступ к возможностям ядра со стороны пользовательских процессов на основе механизма системных вызовов, оформленных в виде библиотеки функций.
Хочешь приобрести компьютер или проектор? Свежие обзоры смотри на http://root-master.ru
Просмотров: 4076
Дата: 3-10-2012
Восстановление данных с жёсткого диска
В жизни бывают случаи, когда очень ценная информация (фотографии или текстовые документы) пропадает с жёсткого диска. Многие считают, что нужные файлы удалены безвозвратно. В таких ситуациях
ПОДРОБНЕЕ
Антивирусные программы
Антивирусник – это та программа, которая предназначена для безопасности компьютера, а также данных, которые хранятся на нем. На сегодняшний день самая актуальная проблема для компьютера, эта
ПОДРОБНЕЕ
iOS
iOS (т.н. iPhone OS до июня 2010 года) - это мобильная операционная система от Apple. Разработанная первоначально для iPhone, она стала операционной системой также для iPod Touch, iPad и Apple TV.
ПОДРОБНЕЕ
Изотопы
Распределение изотопов. По горизонтали – заряд ядра (число протонов). По вертикали – атомная масса (число нуклонов). Цвет – стабильность изотопа (продолжительность полураспада). Изотопы – нуклиды
ПОДРОБНЕЕ
Цитоплазма
Схематическая структура типичной животной клетки с указанием различных компонентов. Органеллы: (1) ядрышко (2) ядро (3) рибосома (4) везикула (5) грубый эндоплазматический ретикулум (ЭР) (6) Аппарат
ПОДРОБНЕЕ
Прокариоты
Структура клетки бактерии – одной из двух групп прокариотической жизни. Двухъядерные либо прокариоты (Prokaryotes, от давногрецького pro-перед + karyon орех или ядро, ссылаясь на ядро клетки +
ПОДРОБНЕЕ