Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Общая организация традиционного ядра ОС UNIX

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

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

Машинно-зависимая часть традиционного ядра включает следующие компоненты:

- инициализация системы на низком уровне;

- первичная обработка внутренних и внешних прерываний;

- управление памятью (в той части, которая относится к особенностям аппаратной поддержки виртуальной памяти);

- переключение контекста процессов между режимами пользователя и ядра;

- части драйверов устройств, связанные с особенностями целевой платформы.

Основные функции ядра

К основным функциям ядра принято относить следующие:

- Инициализация системы. Ядро ОС обеспечивает средство раскрутки (bootstrap), которое обеспечивает загрузку полного ядра в память компьютера и запускает ядро.

- Управление процессами и нитями – функция создания, завершения и отслеживания существующих процессов и нитей.

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

- Управление файлами – функция, реализующая абстракцию файловой системы – иерархию каталогов и файлов.

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

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

Принципы взаимодействия с ядром

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

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

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

Принципы обработки прерываний

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

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

Файловая система Linux

Файловая система Linux, в отличие от файловых систем DOS и Windows, является единым деревом. Корень этого дерева – каталог, называемый root (рут), и обозначаемый "/". Части дерева файловой системы могут физически располагаться в разных разделах разных дисков или вообще на других компьютерах, – для пользователя это прозрачно. Процесс присоединения файловой системы раздела к дереву называется монтированием, удаление - размонтированием. Например, файловая система CD ROM в ALT Linux монтируется по умолчанию в каталог mnt/cdrom (путь в Linux обозначается с использованием / , а не \, как в DOS/Win). Текущий каталог обозначается "./" . Любую файловую систему можно смонтировать используя команду mount и размонтировать используя umount.

Файловая система ALT Linux содержит каталоги первого уровня:

/bin (командные оболочки (shell), основные утилиты),

/boot (содержит ядро системы),

/dev (псевдофайлы устройств, позволяющие работать с ними напрямую),

/etc (файлы конфигурации),

/home (личные каталоги пользователей),

/lib (системные библиотеки, модули ядра),

/mnt (каталоги для монтирования файловых систем сменных устройств и внешних файловых систем),

/рrос (файловая система на виртуальном устройстве, ее файлы содержат информацию о текущем состоянии системы),

/root (личный каталог администратора системы),

/sbin (системные утилиты),

/usr (программы и библиотеки, доступные пользователю),

/var (рабочие файлы программ, очереди, журналы),

/tmp (временные файлы).

Для работы Linux необходимо создать на жестком диске (дисках) по крайней мере два раздела: корневой (то есть тот, который будет содержать каталог /) и раздел своппинга (swap, раздел подкачки). Размер последнего, как правило, составляет от однократной до двукратной величины оперативной памяти компьютера. Можно создавать отдельные разделы для каталогов /usr, /home, /var и т.д..

Все физические устройства ПК с установленной ОС Linux отображаются в каталог /dev файловой системы. Диски IDE (в том числе жесткие диски, дисководы CD ROM, ATAPI floppy) имеют имена:

/dev/hda - первый на первом канале IDE,

/dev/hdb - второй на первом канале IDE,

/dev/hdc - первый на втором канале IDE,

/dev/hdd - второй на втором канале IDE.

Жесткие диски SCSI обозначаются /dev/sdX, где Х - a,b,c,d,e,... в зависимости от порядкового номера диска на шине SCSI.

Раздел диска обозначается числом после его имени. Например, /dev/hdb4 – четвертый раздел второго диска на первом канале ide.

Управление файлами и каталогами в Linux осуществляется при помощи команд вводимых в командной строке или при помощи файловых менеджеров. Встроенным в ОС Linux файловым менеджером является программа Midnight Commander, которая имеет очень близкий к Norton Commander интерфейс.

Задание на лабораторную работу

1. Изучить предложенный теоретический материал и подготовить ответы на следующие вопросы:

- Какова структура операционной системы MS DOS и назначение основных подсистем ОС?

- Что такое прерывание и таблица векторов прерываний?

- Какова последовательность загрузки ОС MS DOS и назначение файлов Config.Sys и Autoexec.Bat?

- Опишите средства управления файлами в ОС MS DOS. Приведите примеры.

- Охарактеризуйте назначение основных подсистем ОС Windows и взаимодействие прикладных программ с ресурсами ЭВМ под управлением этой ОС.

- Что такое «аппарат событий» и как он используется в ОС Windows?

- Что такое DLL-библиотеки и в чем их отличие от программных модулей?

- Что такое системный реестр, каково его назначение и структура?

- Опишите структуру системного каталога ОС Windows.

- Охарактеризуйте средства управления файлами в ОС Windows. Приведите примеры.

- Дайте краткую характеристику структуры ОС Linux.

- Охарактеризуйте средства взаимодействия прикладных программ с ядром операционной системы Linux.

- Опишите организацию файловой системы в ОС Linux.

- Какие средства используются в ОС Linux для управления файлами? Приведите примеры.

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

3. Подготовить отчет о проделанной работе.

Последнее изменение этой страницы: 2016-07-23

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...