По основному архитектурному принципу операционные системы разделяются на микроядерныеи макроядерные (монолитные).В некоторой степени это разделение тоже условно, однако можно в качестве яркого примера микроядерной ОС привести ОСРВ QNX, тогда как в качестве монолитной можно назвать Windows 95/98 или ОС Linux. Если ядро ОС Windows мы не можем изменить, нам недоступны его исходные коды и у нас нет программы для сборки (компиляции) этого ядра, то в случае с Linux мы можем сами собрать то ядро, которое нам необходимо, включив в него те программные модули и драйверы, которые мы считаем целесообразным включить именно в ядро (ведь к ним можно обращаться и из ядра)[3].
1.2 Свойства операционной системы
Свойства операционной системы, прежде всего, вытекают из требований предъявляемых к ним, таких как:
Надежность.Операционная система должна быть надежной, как и аппаратура, с которой она взаимодействует. Она должна иметь возможность определения и диагностирования собственных ошибок, а также восстановления работоспособности компьютера после большинства характерных ошибок, происходящих по вине пользователя. Кроме того, ОС должна минимизировать вред, который пользователь может причинить системе своими неправильными действиями.
Защита программ и данных.Операционная система должна защищать выполняемые программы и данные от взаимного влияния их друг на друга.
Предсказуемость.Операционная система должна отвечать на запросы пользователя предсказуемым образом. Результаты выполнения любых команд пользователя должны быть одними и теми же, вне зависимости от последовательности, в которой эти команды посылаются на исполнение.
Удобство. Операционная система должна облегчать работу пользователю, освобождая его от задач по управлению ресурсами ЭВМ и распределению их между программами. Система должна быть спроектирована с учетом основных факторов человеческой психологии.
Эффективность.При распределении ресурсов операционная система должна использовать минимум системных ресурсов для собственных нужд, максимально предоставляя их выполняющимся задачам (программам) пользователя.
Гибкость.ОС должна позволять увеличивать или уменьшать используемые аппаратные ресурсы для того, чтобы улучшать эффективность и скорость работы программ.
Модифицируемость.ОС должна иметь возможность добавления новых функциональных модулей, появляющихся в процессе ее совершенствования.
Ясность.Пользователь может оставаться в неведении относительно механизма внутренних операций ОС, но в то же время должен иметь возможность получения полного отчета о ходе их выполнения[4].
1.3 Состав операционной системы и назначение компонент
Важнейшим достоинством большинства ОС является модульность.Это свойство позволяет объединить в каждом модуле определенные логически связанные группы функций. Если возникает необходимость в замене или расширении такой группы функций, это можно сделать путем замены или модификации лишь одного модуля, а не всей системы.
Большинство ОС состоит из следующих основных модулей: базовая система ввода-вывода (BIOS– BasicInputOutputSystem); загрузчик операционной системы (BootRecord); ядро ОС; драйверы устройств; командный процессор; внешние команды (файлы).
Базовая система ввода-вывода (BIOS)– это набор микропрограмм, реализующих основные низкоуровневые (элементарные) операции ввода-вывода. Они хранятся в ПЗУ компьютера и записываются туда при изготовлении материнской платы. Данная система, по сути, «встроена» в компьютер и является одновременно его аппаратной частью и частью операционной системы.
Первая функция BIOS– автоматическое тестирование основных компонентов компьютера при его включении. При обнаружении ошибки на экран выводится соответствующее сообщение и / или выдается звуковой сигнал.
Далее BIOS осуществляет вызов блока начальной загрузки операционной системы, находящейся на диске (эта операция выполняется сразу по окончании тестирования). Загрузив в ОЗУ этот блок, BIOS передает ему управление, а он в свою очередь загружает другие модули ОС.
Еще одна важная функция BIOS– обслуживание прерываний. При возникновении определенных событий (нажатие клавиши на клавиатуре, щелчок мыши, ошибка в программе и т.д.) вызывается одна из стандартных подпрограмм BIOS по обработке возникшей ситуации.
Загрузчик операционной системы– это короткая программа, находящаяся в первом секторе любого загрузочного диска (дискеты или диска с операционной системой). Функция этой программы заключается в считывании в память основных дисковых файлов ОС и передаче им дальнейшего управления ЭВМ.
ЯдроОС реализует основные высокоуровневые услуги, загружается в ОЗУ и остается в ней постоянно. В ядре ОС выделяют несколько подсистем, каждая из которых отвечает за выполнение той или иной задачи:
– файловая система (отвечает за размещение информации на устройствах хранения);
– система управления памятью (размещает программы в памяти);
– система управления программами (осуществляет запуск и выполнение программ);
– система связи с драйверами устройств (отвечает за взаимодействие с внешними устройствами);
– система обработки ошибок;
– служба времени (предоставляет всем программам информацию о системном времени).
Модуль расширения BIOS придает гибкость операционной системе, позволяя добавлять драйверы, обслуживающие дополнительные устройства.
Драйверытребуются в тех случаях, когда обмен информацией с устройствами должен происходить иначе, чем определено в BIOS. Драйверы устройств – это программы, управляющие работой внешних (периферийных) устройств на физическом уровне. Они дополняют систему ввода-вывода ОС и обеспечивают обслуживание новых устройств или нестандартное использование имеющихся. Они передают или принимают данные от аппаратуры и делают пользовательские программы независимыми от ее особенностей.
Драйверы загружаются в память компьютера при загрузке операционной системы; необходимость и порядок их загрузки указываются в специальных файлах конфигурации. Такая схема облегчает подключение к машине новых устройств и позволяет делать это, не затрагивая системные файлы ОС.
Командный процессор – этопрограмма, функции которой заключаются в следующем:
– прием и синтаксический разбор команд, полученных с клавиатуры или из командного файла;
– исполнение внутренних команд операционной системы;
– загрузка и исполнение внешних команд (реализованных в виде самостоятельных программ) операционной системы и прикладных программ пользователя (файлы с расширением СОМ, ЕХЕ или ВАТ).
Некоторые стандартные команды (TYPE, DIR и другие) командный процессор выполняет сам. Такие команды называются внутренними(как правило, это основные команды работы с файлами и каталогами). Для выполнения внешних команд пользователя командный процессор ищет на дисках программу с соответствующим именем и расширением СОМ, ЕХЕ (например, FORMAT.COM), и если находит ее, то загружает в память и передает ей управление. По окончании работы программы командный процессор удаляет ее из памяти. Таким образом, внешние команды ОС – это программы, поставляемые вместе с операционной системой в виде отдельных файлов.
В функции командного процессора входит также исполнение командных файлов (это текстовые файлы с набором команд и расширением ВАТ). Когда в качестве команды задается имя такого файла, командный процессор начинает последовательно читать и интерпретировать содержащиеся в нем строки, каждая из которых может содержать одну команду, метку или комментарий. Если в очередной строке стоит команда, осуществляющая вызов какой-то программы, выполнение командного файла приостанавливается и начинается работа вызванной программы. После ее завершения происходит выполнение следующей команды командного файла[5].
1.4 Организация дискового пространства
Размещение информации (в том числе файлов) на том или ином устройстве характеризует порядок ее хранения на физическом уровне. В качестве примера рассмотрим организацию дискового пространства для наиболее широко используемых носителей – магнитных дисков.
Все пространство диска разбивается на дорожкив виде концентрических окружностей, которые в свою очередь разделяются на секторы. Для их создания используется специальная процедура, которая называется форматированием и выполняется с помощью средств операционной системы (например, в MSDOS это команда FORMAT). Фактически при этом осуществляются две различные операции, называемые форматированием низкогои высокого уровней.Низкоуровневое (физическое) форматирование состоит в нанесении на диск электронных меток для обозначения дорожек и секторов. При форматировании высокого уровня (его называют также логическим) осуществляется создание служебных областей на диске.
Перед использованием магнитный диск обязательно должен быть отформатирован. Программа форматирования проверяет также работоспособность диска, отсутствие ошибок при записи и считывании информации. Дефектные секторы специальным образом помечаются и в дальнейшем не используются. Если диск уже форматировался ранее и на нем записана какая-то информация, то повторная процедура форматирования полностью уничтожает ее.
Обе стадии форматирования гибких дисков выполняются одновременно, но когда та же самая команда применяется к жестким дискам, то выполняется форматирование только высокого уровня; при этом предполагается, что форматирование низкого уровня уже проведено изготовителем.
В первом физическом секторе жесткого диска располагается главная загрузочная запись (masterbootrecord, MBR)и таблица разделов диска. MBR при загрузке с жесткого диска считывает и загружает в память первый физический сектор на активном разделе диска, называемый загрузочным сектором (bootsector).Каждая запись в таблице разделов (partitiontable)содержит начальную позицию и размер каждого раздела на жестком диске, а также информацию о том, первый сектор какого раздела содержит загрузочную запись.