(Ливак Е.Н.) Операционные системы. Семейство Windows

advertisement
Обзорная лекция № 38
для студентов специальности «Прикладная математика»
доцента кафедры ИВТ, к.т.н. Ливак Е.Н.
ОПЕРАЦИОННЫЕ СИСТЕМЫ.
СЕМЕЙСТВО Windows
Основные понятия, факты
Назначение, классификация, сравнительный анализ операционных систем.
Графический интерфейс пользователя. Структура файловых систем. Загрузка
операционной системы.
Навыки и умения
Управление ресурсами персонального компьютера средствами операционной
системы.
ПОДРОБНЕЕ см.
1. Системное программное обеспечение / А.В. Гордеев, А.Ю. Молчанов. –
СПб.: Питер, 2001. – С. 22-49, 129-219.
2. Д.В. Иртегов. Введение в операционные системы. - СПб.: БХВ-Петербург,
2002. - 624 с.
3. Э. Таненбаум Современные операционные системы. 2-е изд. - СПб.: Питер,
2002. - 1040 с.
4. Сетевые операционные системы / В.Г. Олифер, Н.А. Олифер. - СПб.: Питер,
2002. - 544 с.
Назначение и функции операционной системы
ОС управляет всеми устройствами компьютерной системы (процессорами,
оперативной памятью, дисками, клавиатурой, монитором, принтерами,
сетевыми устройствами и др.) и обеспечивает пользователя удобным
интерфейсом для работы с аппаратурой.
Общепринятого определения Операционной системы, вообще говоря, нет.
Обычно ОС определяется через ее функции.
Под ОС обычно понимают комплекс управляющих и обрабатывающих
программ, который, с одной стороны, выступает как интерфейс между
аппаратурой компьютера и пользователем с его задачами, а с другой -
предназначен для наиболее эффективного использования ресурсов
вычислительной системы и организации надежных вычислений.
Другими словами, две основные функции (назначение) ОС:
1) предоставлять пользователю некую расширенную виртуальную машину, с
которой легче работать (легче программировать), чем непосредственно с
аппаратурой реального компьютера или реальной сети;
Для пользователя (приложения) работа с различными ресурсами
(процессор, память, диски, периферийные устройства) выглядит так, как
будто эти ресурсы находятся в его полном распоряжении, при этом в
одной системе может выполняться одновременно несколько приложений,
каждое со своим собственным набором ресурсов. В этом смысле говорят,
что ОС реализует виртуальную машину, предоставляя приложениям
средства многозадачности.
2) управлять ресурсами вычислительной системы.
Поэтому в специальной литературе ОС представляется всегда двояко:
1) как расширенная виртуальная машина и
2) как система управления ресурсами.
Функции ОС
 прием от пользователя (оператора) заданий или команд, сформулированных
на соответствующих языках, и их обработка;
 загрузка в ОП программ и их исполнение;
 инициация программы (передача ей управления);
 прием и исполнение программных запросов на запуск, приостановку,
остановку других программ; организация взаимодействия между задачами;
 идентификация всех программ и данных;
 обеспечение работы системы управления файлами и/или систем управления
БД;
 обеспечение режима мультипрограммирования (многозадачности);
 планирование и диспетчеризация задач;
 обеспечение функций по организации и управлению операциями
ввода/вывода;
 удовлетворение жестким ограничениям на время ответа в режиме реального
времени (для соответствующих ОС);
 управление памятью, организация виртуальной памяти;
 организация механизмов обмена сообщениями и данными между
выполняющимися программами;
 защита одной программы от влияния другой; обеспечение сохранности
данных;
 аутентификация, авторизация и другие средства обеспечения безопасности;
 предоставление услуг на случай частичного сбоя системы;
 обеспечение работы систем программирования;
 параллельное исполнение нескольких задач.
Функции ОС автономного компьютера обычно группируются в соответствии с
типами локальных ресурсов, которыми управляет ОС. Такие группы называют
подсистемами.
Наиболее важные
 подсистема управления процессами,
 подсистема управления памятью,
 подсистема управления файлами,
 подсистема управления внешними устройствами,
 подсистема пользовательского интерфейса,
 подсистема защиты данных и администрирования.
Замечание. Часто под ОС обычно понимается то ПО, которое запускается в
режиме ядра (привилегированном режиме, режиме супервизора).
Классификация ОС
Операционные системы различаются особенностями реализации внутренних
алгоритмов управления основными ресурсами компьютера (процессорами,
памятью, устройствами), особенностями использованных методов
проектирования, типами аппаратных платформ, областями использования и
многими другими свойствами.
Приведем классификация ОС по нескольким наиболее основным признакам.
Особенности алгоритмов управления ресурсами. От эффективности
алгоритмов управления локальными ресурсами компьютера во многом зависит
эффективность всей сетевой ОС в целом. Поэтому, характеризуя ОС, приводят
важнейшие особенности реализации функций ОС по управлению процессорами,
памятью, внешними устройствами автономного компьютера.
Например, в зависимости от особенностей использованного алгоритма
управления процессором, операционные системы делят на
 многозадачные и однозадачные,
 многопользовательские и однопользовательские,
 на системы, поддерживающие многонитевую обработку и не
поддерживающие ее,
 на многопроцессорные и однопроцессорные системы.
Поддержка многозадачности. По числу одновременно выполняемых задач
операционные системы могут быть разделены на два класса:
 однозадачные (например, MS-DOS, MSX);
 многозадачные (мультизадачные) (OC EC, OS/2, UNIX, Windows 95).
Однозадачные ОС в основном выполняют функцию предоставления
пользователю виртуальной машины, делая более простым и удобным
процесс взаимодействия пользователя с компьютером. Однозадачные ОС
включают средства управления периферийными устройствами, средства
управления файлами, средства общения с пользователем. Многозадачные
ОС, кроме вышеперечисленных функций, управляют разделением совместно
используемых ресурсов, таких как процессор, оперативная память, файлы и
внешние устройства.
Поддержка многопользовательского режима. По числу одновременно
работающих пользователей ОС делятся на:
 однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);
 многопользовательские (UNIX, Windows NT).
Главным отличием многопользовательских систем от однопользовательских
является наличие средств защиты информации каждого пользователя от
несанкционированного доступа других пользователей. Следует заметить, что
не всякая многозадачная система является многопользовательской, и не
всякая однопользовательская ОС является однозадачной.
Вытесняющая и невытесняющая многозадачность. Важнейшим
разделяемым ресурсом является процессорное время. Способ распределения
процессорного времени между несколькими одновременно существующими
в системе процессами (или нитями) во многом определяет специфику ОС.
Среди множества существующих вариантов реализации многозадачности
можно выделить две группы алгоритмов:
 невытесняющая многозадачность (NetWare, Windows 3.x);
 вытесняющая многозадачность (Windows NT, OS/2, UNIX).
При невытесняющей многозадачности активный процесс выполняется до тех
пор, пока он сам, по собственной инициативе, не отдаст управление
операционной системе для того, чтобы та выбрала из очереди другой
готовый к выполнению процесс. При вытесняющей многозадачности
решение о переключении процессора с одного процесса на другой
принимается операционной системой, а не самим активным процессом.
Поддержка многонитевости. Важным свойством операционных систем
является возможность распараллеливания вычислений в рамках одной
задачи. Многонитевая ОС разделяет процессорное время не между задачами,
а между их отдельными ветвями (нитями).
Многопроцессорная обработка. Другим важным свойством ОС является
отсутствие или наличие в ней средств поддержки многопроцессорной
обработки - мультипроцессирование. Мультипроцессирование приводит к
усложнению всех алгоритмов управления ресурсами.
Многопроцессорные ОС могут классифицироваться по способу организации
вычислительного процесса в системе с многопроцессорной архитектурой:
асимметричные ОС и симметричные ОС. Асимметричная ОС целиком
выполняется только на одном из процессоров системы, распределяя
прикладные задачи по остальным процессорам. Симметричная ОС
полностью децентрализована и использует весь пул процессоров, разделяя их
между системными и прикладными задачами.
Обратим внимание, что нами были рассмотрены характеристики ОС, связанные
с управлением только одним типом ресурсов - процессором. Важное влияние на
облик операционной системы в целом, на возможности ее использования в той
или иной области оказывают особенности и других подсистем управления
локальными ресурсами - подсистем управления памятью, файлами,
устройствами ввода-вывода.
Особенности областей использования операционных систем
Многозадачные ОС подразделяются на три типа в соответствии с
использованными при их разработке критериями эффективности:
 системы пакетной обработки (например, OC EC);
 системы разделения времени (UNIX, VMS);
 системы реального времени (QNX, RT/11).
Системы пакетной обработки предназначены для решения задач в основном
вычислительного характера, не требующих быстрого получения результатов.
Главной целью и критерием эффективности систем пакетной обработки
является максимальная пропускная способность, то есть решение
максимального числа задач в единицу времени.
Схема функционирования: в начале работы формируется пакет заданий, каждое
задание содержит требование к системным ресурсам; из этого пакета заданий
формируется мультипрограммная смесь, то есть множество одновременно
выполняемых задач. Для одновременного выполнения выбираются задачи,
предъявляющие отличающиеся требования к ресурсам, так, чтобы
обеспечивалась сбалансированная загрузка всех устройств вычислительной
машины (например, в мультипрограммной смеси желательно одновременное
присутствие вычислительных задач и задач с интенсивным вводом-выводом).
Таким образом, выбор нового задания из пакета заданий зависит от внутренней
ситуации, складывающейся в системе, то есть выбирается "выгодное" задание.
Следовательно, в таких ОС невозможно гарантировать выполнение того или
иного задания в течение определенного периода времени. В системах пакетной
обработки переключение процессора с выполнения одной задачи на выполнение
другой происходит только в случае, если активная задача сама отказывается от
процессора, например, из-за необходимости выполнить операцию ввода-вывода.
Поэтому одна задача может надолго занять процессор, что делает невозможным
выполнение интерактивных задач. Таким образом, взаимодействие пользователя
с вычислительной машиной, на которой установлена система пакетной
обработки, сводится к тому, что он приносит задание, отдает его диспетчеруоператору, а в конце дня после выполнения всего пакета заданий получает
результат. Очевидно, что такой порядок снижает эффективность работы
пользователя.
Системы разделения времени призваны исправить основной недостаток
систем пакетной обработки - изоляцию пользователя-программиста от процесса
выполнения его задач.
Каждому пользователю системы разделения времени предоставляется терминал,
с которого он может вести диалог со своей программой.
В системах разделения времени каждой задаче выделяется только квант
процессорного времени, ни одна задача не занимает процессор надолго, и время
ответа оказывается приемлемым. Если квант выбран достаточно небольшим, то
у всех пользователей, одновременно работающих на одной и той же машине,
складывается впечатление, что каждый из них единолично использует машину.
Системы разделения времени обладают меньшей пропускной способностью,
чем системы пакетной обработки, так как на выполнение принимается каждая
запущенная пользователем задача, а не та, которая "выгодна" системе, и, кроме
того, увеличивается время работы, так как используется частое переключение
процессора с задачи на задачу.
Критерием эффективности систем разделения времени является не
максимальная пропускная способность, а удобство и эффективность работы
пользователя.
Системы реального времени применяются для управления различными
техническими объектами, такими, например, как станок, спутник, научная
экспериментальная установка или технологическими процессами, такими, как
гальваническая линия, доменный процесс и т.п.
Существует предельно допустимое время, в течение которого должна быть
выполнена та или иная программа, управляющая объектом, в противном случае
может произойти авария: спутник выйдет из зоны видимости,
экспериментальные данные, поступающие с датчиков, будут потеряны, толщина
гальванического покрытия не будет соответствовать норме.
Таким образом, критерием эффективности для систем реального времени
является их способность выдерживать заранее заданные интервалы времени
между запуском программы и получением результата (управляющего
воздействия). Это время называется временем реакции системы, а
соответствующее свойство системы - реактивностью. Для этих систем
мультипрограммная смесь представляет собой фиксированный набор заранее
разработанных программ, а выбор программы на выполнение осуществляется
исходя из текущего состояния объекта или в соответствии с расписанием
плановых работ.
Некоторые операционные системы могут совмещать в себе свойства систем
разных типов, например, часть задач может выполняться в режиме пакетной
обработки, а часть - в режиме реального времени или в режиме разделения
времени. В таких случаях режим пакетной обработки часто называют фоновым
режимом.
Особенности архитектуры (структуры) операционных систем
Главной особенностью структурной организации ОС является способ
построения ядра системы. По способом построения ядра ОС подразделяются на
монолитные и микроядерные. Ввиду особой важности данных подходов
рассмотрим их подробнее.
_____________________________________________________________________
_____________
Напомним необходимые основные моменты.
Микропроцессоры Intel x86/Pentium аппаратно поддерживают 4 уровня
привилегий (режима): 0..3.
Большинство ОС поддерживают двухуровневую систему привилегий:
привилегированный режим (режим ядра, пространство ядра) и
пользовательский режим (пространство пользователя). (Например, Windows NT,
UNIX)
В режиме ядра (kernel mode) выполняются все разрешенные инструкции, в
ходе выполнения доступна вся оперативная память и любые регистры. На время
выполнения кода ОС микропроцессор переключается в режим ядра.
В пользовательском режиме (user mode) доступ к регистрам и памяти
ограничен. Приложению не будет позволено работать с памятью за пределами
набора адресов, установленного ОС, или обращаться напрямую к регистрам
устройств.
_____________________________________________________________________
____________
Под архитектурой ОС обычно понимают структурную организацию ОС на
основе программных модулей.
Современные ОС представляют собой хорошо структурированные модульные
системы.
Единой архитектуры ОС не существует, но существуют универсальные подходы
к структурированию ОС.
Наиболее общим подходом к структуризации ОС является подразделение
модулей две группы:
 модули, выполняющие основные функции ОС - ядро ОС;
 модули, выполняющие вспомогательные функции ОС.
Модули ядра выполняют базовые функции ОС

управление процессами,

управление памятью,

управление устройствами ввода-вывода.
Функции, входящие в состав ядра можно разделить на два класса.
1 класс. Функции для решения внутрисистемных задач организации
вычислительного процесса (переключение контекстов процессов,
загрузка/выгрузка страниц, обработка прерываний). Эти функции недоступны
для приложений.
2 класс. Функции для поддержки приложений (доступны приложениям). Эти
функции создают для приложений так называемую прикладную программную
среду и образуют интерфейс прикладного программирования - API.
Приложения обращаются к ядру с запросами - системными вызовами. Функции
API обслуживают системные вызовы - предоставляют доступ к ресурсам
системы в удобной и компактной форме, без указания деталей их физического
расположения.
Функции модулей ядра - наиболее часто используемые функции ОС 
Скорость выполнения этих функций определяет производительность всей
системы в целом  Все (большинство) модули ядра являются резидентными.
Вспомогательные модули ОС
Остальные модули ОС выполняют полезные, но менее обязательные функции.
Например, к таким вспомогательным модулям могут быть отнесены программы
архивирования, дефрагментации диска и т.п. Вспомогательные модули ОС
оформляются либо в виде приложений, либо в виде библиотек процедур и
фугкций.
Обычно вспомогательные модули подразделяются на следующие группы:

утилиты - программы, которые решают отдельные задачи управления и
сопровождения компьютерной системы (сжатие, дефрагментация
…продолжить???);

библиотеки процедур и функций различного назначения (библиотека
математических функций, библиотека функций ввода-вывода и т.д.);

программы предоставления пользователю дополнительных услуг специальный вариант пользовательского интерфейса, калькулятор,
некоторые игры (какие, например, поставляются в составе ОС???);

системные обрабатывающие программы - текстовые и графические
редакторы, компиляторы, компоновщики, отладчики (Замечание. Чаще эти
программы являются частью систем программирования).
Обратим внимание, вспомогательные модули ОС обращаются к функциям ядра,
как и обычные приложения, посредством системных вызовов.
Вспомогательные модули, в отличие от модулей ядра, являются транзитными.
Обратим внимание на то, что многие модули ОС оформлены как обычные
приложения.Решение о том, является ли какая-либо программа частью ОС или
нет, принимает производитель ОС. Некоторая программа может существовать
определенное время как пользовательское приложение, а потом стать частью
ОС (например, Web-браузер компании Microsoft - сначала поставлялся как
отдельное приложение, затем стал частью ОС Windows, затем по решению суда
снова превратился (уже?) в самостоятельное приложение).
_____________________________________________________________________
___________
Для того, чтобы многозадачная ОС могла выполнять функции защиты
приложений от влияния друг друга и защиты самой себя от приложений, для нее
на аппаратном уровне обеспечиваются определенные привилегии.
Подразумевается, что ОС или некоторые ее части работают в
привилегированном режиме, а приложения - в пользовательском режиме.
Привилегии ОС обеспечиваюся тем, что выполнение некоторых инструкций в
пользовательском режиме запрещается. Например, выполнение инструкции
доступа к памяти для приложения разрешается, если происходит обращение к
области памяти, отведенной данному приложению, и запрещается при
обращении к областям памяти, занимаемым ОС или другими приложениями.
Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро та, часть ОС, которая работает в привилегированном режиме.
Однако, при современных скоростях процессоров снижение
производительности в 20% не считается фатальным.
Разработчики ОС не всегда жестко придерживаются принципа минимизации
функций ядра ради повышения производительности.
РЕЗЮМЕ по микроядерной архитектуре ОС
 Микроядерная архитектура является альтернативой классическому способу
построения ОС.
 В привилегированном режиме остается работать только маленькая часть
ОС, называемая микроядром. Все остальные функции ядра оформляются в
виде приложений, работающих в пользовательском режиме.
 Микроядерные ОС обладают переносимостью, расширяемостью,
надежностью, поддерживают распределенные приложения. За эти
достоинства приходится платить снижением производительности.
Наиболее ярким представителем микроядерных ОС является ОС реального
времени QNX. Микроядро QNX поддерживает только планирование и
диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и
сетевые службы нижнего уровня. Микроядро обеспечивает всего лишь пару
десятков системных вызовов, но благодаря этому оно может быть целиком
размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные
версии этой ОС имеют различные объемы ядер — от 8 до 46 Кбайт.
Чтобы построить минимальную систему QNX, требуется добавить к микроядру
менеджер процессов, который создает процессы, управляет процессами и
памятью процессов. Чтобы ОС QNX была применима не только во встроенных и
бездисковых системах, нужно добавить файловую систему и менеджер устройств.
Эти менеджеры исполняются вне пространства ядра.
Тенденции развития ОС
Микроядерные ОС в настоящее время разрабатываются чаще монолитных.
Множество исследований в области ОС фокусируется на констуировании
расширяемых ОС (следовательно, микроядерных).
Многие разработанные ОС позволяют пользователям добавлять свой
собственный код к ядру (проблема обеспечения безопасности).
Загрузка ОС
Для рассмотрения процесса загрузки ОС напомним основные моменты
структуры магнитного диска
Информация на магнитных дисках размещается и передается блоками, которые
называются секторами. Секторы расположены на дорожках диска
(концентрические окружности).
Группа дорожек одного радиуса образует цилиндр.
Каждый сектор состоит из поля данных и поля служебной информации,
ограничивающей и идентифицирующей его.
Физический адрес сектора на диске определяется триадой [c-h-s], где c - номер
цилиндра (cylinder), h - номер рабочей поверхности диска (магнитной головки,
head), s - номер сектора на дорожке (sector).
В самом первом секторе на винчестере (по физическому адресу [0-0-1])
располагается главный загрузочный сектор.
В главном загрузочном секторе содержится главная загрузочная запись
винчестера - Master Boot Record (MBR).
Формирование главной загрузочной записи происходит во время
первоначальной установки компьютера и разделения его жесткого диска
на разделы (логические диски).
MBR обычно не зависит от ОС (на платформе Intel она используется для запуска
любой из ОС).
Главная загрузочная запись - MBR - состоит из
 выполняемого кода - программы начальной загрузки (внесистемный
загрузчик non-system bootstrap)
 и таблицы разделов, или таблицы разбиения диска (Disk Partition Table).
Главный загрузочный сектор заканчивается специальной сигнатурой АА55h (2
байта).
По наличию этой сигнатуры BIOS проверяет, что первый сектор был загружен
успешно.
Программа начальной загрузки предназначена для анализа
(сканирования) таблицы разделов, выбора активного (Bootable) раздела,
считывания в ОП загрузочной записи активного раздела (Boot Record) и
передачи ему управления. 446 байт.
Таблица разделов содержит сведения о положении и характеристиках
имеющихся на винчестере разделов. Она располагается в MBR по смещению
Оx1ВЕ и занимает 64 байта. Для описания каждого раздела отводится по 16
байт (16 * 4 = 64).
Жесткий диск может быть разбит на несколько разделов, которые в принципе
затем могут использоваться либо одной, либо различными ОС.
На каждом разделе может быть организована своя файловая система.
Разделы диска могут быть двух типов:
 primary (первичный, простейший);
 extended (расширенный).
Процесс загрузки ОС
Сразу после того, как включается питание компьютера, начинает работать
процедура проверки POST (Power On Self Test). В ходе проверки определяется
конфигурация компьютера, проверяется работоспособность основных
подсистем. Процедура POST записана в микросхеме постоянного
запоминающего устройства (ПЗУ), расположенного на системной плате
компьютера. Часто ее называют системным загрузчиком.
Затем из CMOS-памяти считываются значения текущей даты и времени,
конфигурация дисковой подсистемы.
Затем процедура определяет первое готовое устройство из списка
разрешенных и доступных (гибкий или жесткий диск, CD-ROM, сетевой
адаптер или другое устройство) и пытается загрузить с него в ОП главную
программу загрузчик.
Необходимо заметить, что почти все современные системные платы и
версии программы Setup позволяют изменить порядок загрузки
компьютера.
Для жесткого диска - это программа-загрузчик из MBR. Повторим, что
она анализирует таблицу разбиения диска, выбирает активный (Bootable) раздел
и считывает загрузочную запись активного раздела (Boot Record). Эта (system
bootstrap) загрузочная запись продолжает загрузку операционной системы. Она
заключается в считывании с диска необходимых файлов операционной системы
и передачи им управления.
Заметим, что в случае загрузки с гибкого диска - программа-загрузчик,
записанная в загрузочном секторе дискеты, аналогична загрузочной записи
активного раздела. Таким образом, при загрузке с дискеты опускается этап
анализа таблицы разбиения и поиска активного раздела.
Загрузка ОС DOS
Для ОС DOS считываютcя и загружаются в оперативную память файлы
IO.SYS и MSDOS.SYS. Оба эти файла являются скрытыми системными
файлами. Для операционных систем, совместимых с MS-DOS, эти имена
могут отличаться. Например, в ОС IBM PC-DOS загружаются файлы
IBMIO.COM и IBMSYS.COM. Для упрощения работы этой программы
оба файла размещаются в определенных постоянных местах на дискете.
Это избавляет программу загрузки от необходимости искать их в
справочнике дискеты.
Системная дискета отличается от обычной тем, что на ней в
определенных местах находятся два системных файла IO.SYS и
MSDOS.SYS. Важно помнить, что тем не менее загрузочная запись
присутствует даже на несистемной дискете.
Затем считывается файл конфигурации CONFIG.SYS, если он есть.
Анализируется его содержимое и загружаются указанные в нем драйверы.
После этого с дискеты считывается командный процессор
COMMAND.COM и управление передается ему. Командный процессор
завершает загрузку операционной системы и выполняет команды,
записанные в файле AUTOEXEC.BAT. После выполнения команд файла
AUTOEXEC.BAT командный процессор ожидает ввода команд
пользователя. Наличие файлов CONFIG.SYS и AUTOEXEC.BAT не
обязательно.
Загрузка ОС Windows 98
…
Код главной загрузочной записи определяет расположение загрузочного
(активного) раздела, считывая таблицу разделов.
Если активный раздел найден, производится чтение его загрузочного
сектора и определяется, является ли он действительно загрузочным.
Попытка чтения может осуществляться до пяти раз, в противном случае
выдаётся сообщение об ошибке, и система останавливается.
Если загрузочный сектор найден, Master Boot Record передаёт управление
коду загрузочного сектора в активном (загрузочном) разделе, который
содержит загрузочную программу и таблицу параметров диска.
Загрузочный сектор раздела просматривает блок параметров BIOS в
поисках расположения корневого каталога, а затем копирует из него в
память системный файл IO.SYS и передаёт ему управление.
IO.SYS загружает драйверы некоторых устройств и выполняет ряд
операций, связанных с загрузкой. Сначала IO.SYS считывает файл
MSDOS.SYS. Напомним, что этот файл не похож на одноимённые файлы
из предыдущих версий DOS. В Windows 98 MSDOS.SYS является
текстовым файлом, содержащим опции процедуры запуска.
Затем загружается и отображается файл LOGO.SYS (стартовая заставка).
На следующем этапе IO.SYS считывает информацию из системного реестра, а
также исполняет файлы CONFIG.SYS и AUTOEXEC.BAT (при их наличии в
корневом каталоге). При этом загружаются драйверы устройств, работающих в
реальном режиме работы процессора, выполняются некоторые системные
установки.
Например, загружаются следующие драйверы и программы:
DBLSPACE.BIN или DRVSPACE.BIN. Драйвер сжатия дисков.
HIMEM.SYS. Администратор верхней памяти в реальном режиме работы
процессора.
IFSHLP.SYS. Оказывает содействие при загрузке VFAT и прочих
файловых систем, поддерживающих Windows 98.
SETVER.EXE. Утилита, подменяющая номер версии операционной
системы. Существуют программы, ориентированные на более ранние
версии операционных систем и отказывающиеся функционировать под
Windows 98. Благодаря SETVER.EXE подобной программе возвращается
именно тот номер версии DOS, который её устраивает.
На последнем этапе загружается и запускается файл WIN.COM. Он
обращается к файлу VMM32.VXD. Если в компьютере установлен достаточный
объём ОЗУ, то этот файл загружается в память, в противном случае
организуется доступ к этому файлу на жёстком диске, что, естественно,
увеличивает время загрузки.
Загрузчик драйверов реального режима сравнивает копии виртуальных
драйверов устройств (VxD) в папке Windows/System/VMM32 и файле
VMM32.VXD. Если виртуальный драйвер устройства существует и в
папке и в файле, копия виртуального драйвера “помечается” в файле
VMM32.VXD как незагружаемая.
Виртуальные драйверы устройств, не загруженные с помощью файла
VMM32.VXD, загружаются из раздела [386 Enh] файла SYSTEM.INI
папки Windows. Во время описанного процесса загрузчик драйверов
виртуальных устройств реального режима постоянно проверяет
правильность загрузки всех необходимых виртуальных драйверов
устройств, а при появлении ошибки при загрузке нужного драйвера он
пытается выполнить эту операцию ещё раз.
После загрузки виртуальные драйверы устройств реального режима
инициализируются, затем файл VMM32.VXD переключает процессор в
защищённый режим, и начинается процесс инициализации виртуальных
драйверов устройств согласно их параметру InitDevice.
Процедура загрузки ОС заканчивается загрузкой файлов KRNL32.DLL,
GDI.EXE, USER.EXE и EXPLORER.EXE.
Если компьютер подключён к сети, то загружается сетевое окружение.
Пользователю предлагается ввести имя и пароль для входа в сеть.
Затем из системного реестра загружается конфигурация с параметрами,
установленными по умолчанию.
На последней фазе загрузке операционной системы производится
обработка содержимого папки Startup (Автозагрузка) и запускаются
указанные в ней программы. После этого ОС готова к работе.
Файловые системы. Структура файловой системы
Данные на диске хранятся в виде файлов. Файл - это именованная часть диска.
Для управления файлами предназначены системы управления файлами.
Возможность иметь дело с данными, хранящимися в файлах, на логическом
уровне предоставляет файловая система. Именно файловая система определяет
способ организации данных на каком-либо носителе данных.
Таким образом, файловая система - это набор спецификаций и
соответствующее им программное обеспечение, которые отвечают за создание,
уничтожение, организацию, чтение, запись, модификацию и перемещение
файловой информации, а также за управление доступом к файлам и за
управлением ресурсами, которые используются файлами.
Система управления файлами является основной подсистемой в абсолютном
большинстве современных ОС.
С помощью системы управления файлами
 связываются по данным все системные обрабатывающие программы;
 решаются проблемы централизованного распределения дискового
пространства и управления данными;
 предоставляются возможности пользователю по выполнению операций над
файлами (создание и т.п.), по обмену данными между файлами и различными
устройствами, по защите файлов от несанкционированного доступа.
В некоторых ОС может быть несколько систем управления файлами, что
обеспечивает им возможность работать с несколькими файловыми системами.
Постараемся различать файловую систему и систему управления файлами.
Термин «файловая система» определяет принципы доступа к данным,
организованным в файлы.
Термин «система управления файлами» относится к конкретной реализации
файловой системы, т.е. это комплекс программных модулей, обеспечивающих
работу с файлами в конкретной ОС.
Итак, для работы с файлами, организованными в соответствии с некоторой
файловой системой, для каждой ОС должна быть разработана соответствующая
система управления файлами. Эта система УФ будет работать только в той ОС,
для которой она создана.
Например, всем известная файловая система FAT имеет множество
реализаций как система управления файлами. Так, система, разработанная
для первых ПК, называется FAT12 (раньше просто FAT). Затем ее
усовершенствовали для работы с жесткими дисками большего объема, эта
реализация называется FAT16. Так называется и система управления
файлами ОС MS-DOS. Реализация системы управления файлами для OS/2
(основанной на принципах FAT) называется super-FAT (предоставляет
возможность поддерживать для каждого файла расширенные атрибуты).
Существуют системы управления файлами, организованными в
соответствии с принципами FAT, и для Windows 95/98, Windows NT и т.д.
Для семейства ОС Windows в основном используются файловые системы:
VFAT, FAT32, NTFS.
Рассмотрим структуру этих файловых систем.
В файловой системе FAT дисковое пространство любого логического диска
делится на две области:
 системную область и
 область данных.
Системная область создается и инициализируется при форматировании, а
впоследствии обновляется при манипулировании файловой структурой.
Системная область состоит из следующих компонентов:
 загрузочного сектора, содержащего загрузочную запись (boot record);
 зарезервированных секторов (их может и не быть);
 таблицы размещения файлов (FAT, File Allocation Table);
 корневого каталога (Root directory, ROOT).
Эти компоненты расположены на диске друг за другом.
Область данных содержит файлы и каталоги, подчиненные корневому.
Область данных разбивают на так называемые кластеры. Кластер - это
один или несколько смежных секторов области данных. С другой стороны,
кластер - это минимальная адресуемая единица дисковой памяти, выделяемая
файлу. Т.е. файл или каталог занимает целое число кластеров. Для создания и
записи на диск нового файла операционная система отводит для него несколько
свободных кластеров диска. Эти кластеры не обязательно должны следовать
друг за другом. Для каждого файла хранится список всех номеров кластеров,
которые предоставлены данному файлу.
Разбиение области данных на кластеры вместо использования секторов
позволяет:
 уменьшить размер таблицы FAT;
 уменьшить фрагментацию файлов;
 сокращается длина цепочек файла  ускоряется доступ к файлу.
Однако слишком большой размер кластера ведет к неэффективному
использованию области данных, особенно в случае большого количества
маленьких файлов (ведь на каждый файл теряется в среднем полкластера).
В современных файловых системах (FAT32, HPFS, NTFS) эта проблема
решается за счет ограничения размера кластера (максимум 4 Кбайта)
Картой области данных является по сути Таблица размещения файлов
(File Allocation Table - FAT) Каждый элемент таблицы FAT (12, 16 или 32 бит)
соответствует одному кластеру диска и характеризует его состояние: свободен,
занят или является сбойным кластером (bad cluster).
 Если кластер распределен какому-либо файлу (т.е., занят), то
соответствующий элемент FAT содержит номер следующего кластера файла;
 последний кластер файла отмечается числом в диапазоне FF8h - FFFh
(FFF8h - FFFFh);
 если кластер является свободным, он содержит нулевое значение 000h
(0000h);
 кластер, непригодный для использования (сбойный), отмечается числом
FF7h (FFF7h).
Таким образом, в таблице FAT кластеры, принадлежащие одному файлу
связываются в цепочки.
Таблица размещения файлов хранится сразу после загрузочной записи
логического диска, ее точное расположение описано в специальном поле в
загрузочном секторе.
Она хранится в двух идентичных экземплярах, которые следуют друг за другом.
При разрушении первой копии таблицы используется вторая.
В связи с тем, что FAT используется очень интенсивно при доступе к диску, она
обычно загружается в ОП (в буфера ввода/вывода или кэш) и остается там
настолько долго, насколько это возможно.
Основной недостаток FAT - медленная работа с файлами. При создании файла
работает правило - выделяется первый свободный кластер. Это ведет к
фрагментации диска и сложным цепочкам файлов. Отсюда следует замедление
работы с файлами.
Для просмотра и редактирования таблицы FAT можно использовать утилиту
Disk Editor.
Подробная информация о самом файле хранится в другой структуре,
которая называется корневым каталогом. Каждый логический диск имеет свой
корневой каталог (ROOT, англ. - корень).
Корневой каталог описывает файлы и другие каталоги. Элементом
каталога является дескриптор (описатель) файла.
Дескриптор каждого файла и каталога включает его
 имя
 расширение
 дату создания или последней модификации
 время создания или последней модификации
 атрибуты (архивный, атрибут каталога, атрибут тома, системный, скрытый,
только для чтения)
 длину файла (для каталога - 0 )
 зарезервированное поле, которое не используется
 номер первого кластера в цепочке кластеров, отведенных файлу или
каталогу; получив этот номер, операционная система, обращаясь к таблице
FAT, узнает и все остальные номера кластеров файла.
Итак, пользователь запускает файл на выполнение. Операционная система
ищет файл с нужным именем, просматривая описания файлов в текущем
каталоге. Когда найден требуемый элемент в текущем каталоге, операционная
система считывает номер первого кластера данного файла, а затем по таблице
FAT определяет остальные номера кластеров. Данные из этих кластеров
считываются в оперативную память, объединяясь в один непрерывный участок.
Операционная система передает управление файлу, и программа начинает
работать.
Для просмотра и редактирования корневого каталога ROOT можно также
использовать утилиту Disk Editor.
Замечание. В последнее время объемы дисковых механизмов намного
превысили максимально допустимый размер, приемлемый для FAT, - 8,4 Гбайт.
Этот предел объясняется максимально возможными значениями в адресе
сектора, для которого отводится всего 3 байта. Поэтому в подавляющем
большинстве случаев при работе в среде Windows-систем FAT не используется
(используют либо FAT32, либо NTFS).
Корпорация Microsoft рекомендует использовать FAT для разделов объемом 256
Мбайт и менее.
Файловая система VFAT
Файловая система VFAT (виртуальная FAT) впервые появилась в Windows for
Workgroups 3.11 и была предназначена для файлового ввода/вывода в
защищенном режиме.
Используется эта файловая система в Windows 95.
Поддерживается она также и в Windows NT 4.
VFAT - это «родная» 32-разрядная файловая система Windows95. Ее
контролирует драйвер VFAT.VXD.
VFAT использует 32-разрядный код для всех файловых операций, может
использовать 32-разрядные драйверы защищенного режима.
НО, элементы таблицы размещения файлов остаются 12- или 16-разрядными,
поэтому на диске используется та же структура данных (FAT). Т.е. формат
таблицы VFAT такой же, как и формат FAT.
VFAT наряду с именами «8.3» поддерживает длинные имена файлов. (Часто
говорят, что VFAT - это FAT с поддержкой длинных имен).
Основной недостаток VFAT - большие потери на кластеризацию при больших
размерах логического диска и ограничения на сам размер логического диска.
Файловая система FAT32
Это новая реализация идеи использования таблицы FAT.
FAT32 - это полностью самостоятельная 32-разрядная файловая система.
Впервые использовалась в Windows OSR2 (OEM Service Release 2).
В настоящее время FAT32 используется в Windows 98 и Windows ME.
Она содержит многочисленные усовершенствования и дополнения по
сравнению с предыдущими реализациями FAT.
1. Намного эффективнее расходует дисковое пространство за счет того, что
использует кластеры меньшего размера (4 Кб) - подсчитано, что экономится
до 15%.
2. Имеет расширенную загрузочную запись, которая позволяет создавать копии
критических структур данных  повышает устойчивость диска к
нарушениям структур диска
3. Может использовать резервную копию FAT вместо стандартной.
4. Может перемещать корневой каталог, другими словами, корневой каталог
может находиться в произвольном месте  снимает ограничение на размер
корневого каталога (512 элементов, т.к. ROOT должен был занимать один
кластер).
5. Усовершенствована структура корневого каталога
Появились дополнительные поля, например, время создания, дата создания, дата
последнего доступа, контрольная сумма
По-прежнему для длинного имени файла используется несколько дескрипторов.
Файловая система NTFS
Файловая система NTFS (New Technology File System) содержит ряд
значительных усовершенствований и изменений, существенно отличающих ее
от других файловых систем.
Заметим, что за редкими исключениями, с разделами NTFS можно работать
напрямую только из Windows NT, хотя и имеются для ряда ОС
соответствующие реализации систем управления файлами для чтения файлов из
томов NTFS.
Однако полноценных реализации для работы с NTFS вне системы Windows NT
пока нет.
NTFS не поддерживается в широко распространенных ОС Windows 98 и
Windows Millennium Edition.
Основные особенности NTFS
 работа на дисках большого объема происходит эффективно (намного
эффективнее, чем в FAT);
 имеются средства для ограничения доступа к файлам и каталогам  разделы NTFS обеспечивают локальную безопасность как файлов, так и
каталогов;
 введен механизм транзакций, при котором осуществляется журналирование
файловых операций  существенное увеличение надежности;
 сняты многие ограничения на максимальное количество дисковых секторов
и/или кластеров;
 имя файла в NTFS, в отличие от файловых систем FAT и HPFS, может
содержать любые символы, включая полный набор национальных алфавитов,
так как данные представлены в Unicode — 16-битном представлении, которое
дает 65535 разных символов. Максимальная длина имени файла в NTFS —
255 символов.
 система NTFS также обладает встроенными средствами сжатия, которые
можно применять к отдельным файлам, целым каталогам и даже томам (и
впоследствии отменять или назначать их по своему усмотрению).
Структура тома с файловой системой NTFS
Раздел NTFS называется томом (volume). Максимально возможные размеры
тома (и размеры файла) составляют 16 Эбайт (экзабайт 2**64).
Как и другие системы, NTFS делит дисковое пространство тома на кластеры —
блоки данных, адресуемые как единицы данных. NTFS поддерживает размеры
кластеров от 512 байт до 64 Кбайт; стандартом же считается кластер размером 2
или 4 Кбайт.
Все дисковое пространство в NTFS делится на две неравные части.
M
F
T
Зона
MFT
Зона для размещения
файлов и каталогов
Зона для размещения
файлов и каталогов
Копия
пер-вых
16 запи-сей
MFT
Первые 12 % диска отводятся под так называемую MFT-зону — пространство,
которое может занимать, увеличиваясь в размере, главный служебный
метафайл MFT.
Запись каких-либо данных в эту область невозможна. MFT-зона всегда
держится пустой — это делается для того, чтобы MFT-файл по возможности не
фрагментировался при своем росте.
Остальные 88 % тома представляют собой обычное пространство для хранения
файлов.
MFT (master file table - общая таблица файлов) по сути - это каталог всех
остальных файлов диска, в том числе и себя самого. Он предназначен для
определения расположения файлов.
MFT состоит из записей фиксированного размера. Размер записи MFT
(минимум 1 Кб и максимум 4 Кб) определяется во время форматирования тома.
Каждая запись соответствует какому-либо файлу.
Первые 16 записей носят служебный характер и недоступны операционной
системе — они называются метафайлами, причем самый первый метафайл —
сам MFT.
Эти первые 16 элементов MFT — единственная часть диска, имеющая строго
фиксированное положение. Копия этих же 16 записей хранится в середине тома
для надежности.
Остальные части MFT-файла могут располагаться, как и любой другой файл, в
произвольных местах диска.
Метафайлы носят служебный характер - каждый из них отвечает за какой-либо
аспект работы системы. Метафайлы находятся в корневом каталоге NTFS-тома.
Все они начинаются с символа имени «$», хотя получить какую-либо
информацию о них стандартными средствами сложно. В табл. приведены
основные метафайлы и их назначение.
Имя
метафайла
$MFT
$
$MFTmirr
$LogFile
$Volume
$AttrDef
Назначение метафайла
Сам Master File Table
Копия первых 16 записей MFT, размещенная посередине
тома поддержки операций журналирования
Файл
Служебная информация — метка тома, версия файловой
системы
и т. д.
Список стандартных
атрибутов файлов на томе
Корневой каталог
Карта свободного места тома
Загрузочный сектор (если раздел загрузочный)
Файл, в котором записаны права пользователей на
использование дискового пространства (этот файл начал
работать лишь в Windows 2000 с системой NTFS 5.0)
$Upcase
Файл — таблица соответствия заглавных и прописных
букв в именах файлов. В NTFS имена файлов
записываются в Unicode (что составляет 65 тысяч
различных символов) и искать большие и малые
эквиваленты в данном случае — нетривиальная задача
В соответствующей записи MFT хранится вся информация о файле:
 имя файла,
 размер;
 атрибуты файла;
 положение на диске отдельных фрагментов и т. д.
Если для информации не хватает одной записи MFT, то используется несколько
записей, причем не обязательно идущих подряд.
$.
$Bitmap
$Boot
$Quota
Если файл имеет не очень большой размер, то данные файла хранятся прямо в
MFT, в оставшемся от основных данных месте в пределах одной записи MFT.
Файл в томе с NTFS идентифицируется так называемой файловой ссылкой
(File Reference), которая представляется как 64-разрядное число.
Файловая ссылка состоит из
 номера файла, который соответствует номеру записи в MFT,
 и номера последовательности. Этот номер увеличивается всякий раз, когда
данный номер в MFT используется повторно, что позволяет файловой
системе NTFS выполнять внутренние проверки целостности.
Каждый файл в NTFS представлен с помощью потоков (streams), то есть у него
нет как таковых «просто данных», а есть потоки.
Один из потоков - это и есть данные файла.
Большинство атрибутов файла - это тоже потоки.
Таким образом, получается, что базовая сущность у файла только одна — номер
в MFT, а все остальное, включая и его потоки, — опционально.
Данный подход может эффективно использоваться — например, файлу можно
«прилепить» еще один поток, записав в него любые данные.
Стандартные атрибуты для файлов и каталогов в томе NTFS имеют фиксированные имена и коды типа.
Каталог в NTFS представляет собой специальный файл, хранящий ссылки на
другие файлы и каталоги.
Файл каталога разделен на блоки, каждый из которых содержит
 имя файла,
 базовые атрибуты и
 ссылку на элемент MFT, который уже предоставляет полную
информацию об элементе каталога.
Корневой каталог диска ничем не отличается от обычных каталогов, кроме
специальной ссылки на него из начала метафайла MFT.
Внутренняя структура каталога представляет собой бинарное дерево, как в
HPFS.
Количество файлов в корневом и некорневом каталогах не ограничено.
Файловая система NTFS поддерживает объектную модель безопасности NT:
NTFS рассматривает каталоги и файлы как разнотипные объекты и ведет
отдельные (хотя и перекрывающиеся) списки прав доступа для каждого типа.
NTFS обеспечивает безопасность на уровне файлов; это означает, что права
доступа к томам, каталогам и файлам могут зависеть от учетной записи
пользователя и тех групп, к которым он принадлежит. Каждый раз, когда
пользователь обращается к объекту файловой системы, его права доступа
проверяются по списку разрешений данного объекта. Если пользователь
обладает достаточным уровнем прав, его запрос удовлетворяется; в противном
случае запрос отклоняется. Эта модель безопасности применяется как при
локальной регистрации пользователей на компьютерах с NT, так и при
удаленных сетевых запросах.
Система NTFS также обладает определенными средствами самовосстановления.
NTFS поддерживает различные механизмы проверки целостности системы,
включая ведение журналов транзакций, позволяющих воспроизвести файловые
операции записи по специальному системному журналу.
При журналировании файловых операций система управления файлами
фиксирует в специальном служебном файле происходящие изменения. В начале
операции, связанной с изменением файловой структуры, делается
соответствующая пометка. Если во время операций над файлами происходит
какой-нибудь сбой, то упомянутая отметка о начале операции остается
указанной как незавершенная. При выполнении процедуры проверки
целостности файловой системы после перезагрузки машины эти незавершенные
операции будут отменены и файлы будут приведены к исходному состоянию.
Если же операция изменения данных в файлах завершается нормальным
образом, то в этом самом служебном файле поддержки журналирования
операция отмечается как завершенная.
Основной недостаток файловой системы NTFS - служебные данные занимают
много места (например, каждый элемент каталога занимает 2 Кбайт) - для
малых разделов служебные данные могут занимать до 25% объема носителя.
 система NTFS не может использоваться для форматирования флоппи-дисков.
Не стоит пользоваться ею для форматирования разделов объемом менее 100
Мбайт.
Семейство ОС Windows в настоящее время представлено
 Windows 95
 Windows NT (New Technology) – 32-разрядная многозадачная сетевая
ОС. Включает клиентскую ОС Windows NT Workstation и серверную ОС
Windows NT Server
 Windows CE (Consumer Electronics) – ОС для бытовой электроники.
Выпущена в 1996 г. ОС для карманных компьютеров на 32-разрядных
RISС-процессорах.

Windows 98 – 32-разрядная ОС на базе Windows 95. Устранены ошибки,
расширена база драйверов, ряд усовершенствований и обновлений.
Существует Windows 98 SE (Second edition).
 Windows 2000 (Windows NT 5) – ОС для процессоров различных
платформ.
 Windows ME (millennium Edition) – является продолжением Windows
95/98. Предназначена для домашнего использования. Изменен состав
компонентов, ряд компонентов обновлен.
 Windows XP – соединились серии потребительских и корпоративных
ОС. Широкая совместимость с аппаратными и программными
продуктами от Windows 95/98 плюс стабильность и безопасность от
Windows NT.
Download