Файловые системы Microsoft Windows
Рассмотрим основные файловые системы, поддерживаемые в ОС семейства Windows – FAT16, FAT32, NTFS, а также системы CDFS и UDF. Каждая файловая система имеет свои особенности.
Система FAT16 существовала ещё до МS-DOS. Её название – таблица расположения файлов (File Allocation Table) – отлично отражает физическую организацию файловой системы. FAT16 использует 16-битную адресацию и, соответственно, количество кластеров фиксировано и составляет 216. Размер кластера зависит от размера тома (логического диска) и колеблется от 512 байт до 64 Кбайт. Максимальный размер поддерживаемого дискового пространства не превышает 4 Гбайт. Отличием корневого каталога от всех прочих является фиксированное число вхождений (512 файлов и каталогов).
Система FAT32 обладает расширенными возможностями, использует 32-битную адресацию. Максимальный размер тома составляет 2 Тбайта а соответствующий размер кластера – 32 Кбайт. Ограничение на число вхождений для корневого каталога составляет 65535. Основное преимущество FAT32 по сравнению с FAT16 заключается в более эффективном использовании пространства больших дисков из-за уменьшения размера кластеров.
Начиная с версии Windows NT 4 поддерживается новая файловая система NTFS (New Technology File System), основанная на использовании специального файла MFT (Master File Table). Часть пространства диска (12 %) отводится под записи MFT. В одной записи MFT обычно содержится информация о размещении и атрибутах одного файла. Но если у файла большой набор атрибутов или он становится слишком фрагментированным, то для хранения информации о нём могут создаваться дополнительные записи. Данные о файлах и каталогах небольшого размера (до 1500 байт) полностью содержатся в одной записи.
Ключевые преимущества NTFS:
- гарантируется сохранность данных за счёт использования протокола и алгоритмов восстановления информации;
- возможность сжатия отдельных файлов. Такие сжатые файлы при чтении автоматически распаковываются, а при закрытии и сохранении снова упаковываются;
- защита файлов и каталогов путём задания атрибутов доступа;
- поддержка резервной копии загрузочного сектора, располагаемой в конце тома;
- поддержка системы шифрования содержимого файлов Encrypted File System (EFS), обеспечивающей защиту от неавторизованного доступа.
Файловая система CDFS (Compact Disk File System) соответствует стандарту ISO 9660, описывающему расположение информации на CD-ROM. Поддерживаются длинные имена файлов.
Файловая система UDF (Universal Disk Format) соответствует стандарту ISO 13346 и используется для обмена данными с накопителями CD-ROM и DVD.
Драйверы устройств
Программа управления устройством ввода-вывода, подключённым к компьютеру, называется драйвером устройства. Обычно драйвер пишется производителем и распространяется вместе с устройством. Каждый драйвер устройства поддерживает один тип устройства или, максимум, класс близких устройств. Например, драйвер дисков может поддерживать различные диски, отличающиеся размерами и скоростями. Поскольку для каждой ОС требуются специальные драйверы, производители устройств обычно поставляют драйверы для нескольких наиболее популярных операционных систем. Производители ОС также стараются включить в поставку ОС драйвера наиболее распространённых (стандартных) устройств.
Чтобы получить доступ к аппаратной части устройства, т.е. к регистрам контроллера, драйвер устройства должен быть частью ядра операционной системы. Хотя возможно создать и драйвер, работающий в пространстве пользователя, современные операционные системы предполагают работу драйверов в ядре (рис. 5.3).
Рис. 5.3. Программно-аппаратное взаимодействие
при управлении устройствами ввода-вывода
Операционная система обычно классифицирует драйверы по нескольким категориям в соответствии с типами обслуживаемых ими устройств. В большинстве операционных систем определены два стандартных интерфейса, один из которых должен поддерживать все блочные драйверы (например, диски, содержащие блоки данных, к которым возможна независимая адресация), а второй – все символьные драйверы (клавиатуры и принтеры, формирующие или принимающие поток символов).
Некоторые ОС представляют собой двоичную программу, содержащую в себе все необходимые драйверы. Такая схема в течение многих лет была нормой для ОС UNIX, так как они предназначались для работы в компьютерных центрах, где устройства ввода-вывода менялись редко. При добавлении нового устройства системный администратор просто перекомпилировал ядро с новым драйвером, получая новый двоичный модуль.
С появлением персональных компьютеров с их огромным разнообразием устройств ввода-вывода такая модель неэффективна. Далеко не все пользователи могут самостоятельно перекомпилировать и собрать ядро. Поэтому операционные системы, начиная с MS-DOS, перешли к модели динамической подгрузки драйверов.
Драйвер устройства выполняет следующие функции:
- инициализирует устройство;
- управляет энергопотреблением устройства;
- обрабатывает запросы программного обеспечения (чтение/запись), возвращает вызывающей программе информацию о завершении операции;
- проверяет входные параметры (если они не удовлетворяют определённым критериям, драйвер возвращает ошибку. Безошибочные абстрактные параметры преобразуются в конкретные. Например, дисковый драйвер может преобразовывать линейный номер блока в номера головки, дорожки и секторы);
- проверяет использование устройства в данный момент. (Если устройство занято, запрос может быть поставлен в очередь. Если устройство свободно, проверяется его состояние. Возможно, требуется подготовить устройство, прежде чем начнётся перенос данных. Как только устройство готово, может начинаться собственно управление устройством.)
Управление устройством подразумевает выдачу ему серии команд. После того как драйвер передал все команды контроллеру, ситуация может развиваться по двум сценариям. В одних случаях драйвер устройства должен ждать, пока контроллер не выполнит для него определённую работу, поэтому он блокируется до тех пор, пока прерывание от устройства его не разблокирует. В других случаях операция завершается без задержек и драйверу не нужно блокироваться.
Служебные программы
Антивирусные средства будут рассмотрены в лекции по защите информации. Большую часть служебного ПО составляет так называемое сервисное ПО или утилиты (от лат. utilitas – польза) – это программы, выполняющие вспомогательные операции и обслуживание ЭВМ (диагностика, тестирование, оптимизация использования дискового пространства, восстановления информации и др.). Эти программы расширяют возможности ОС либо решают самостоятельные задачи.
Файловые менеджеры (оболочки операционных систем) предназначены для облегчения работы с файлами (для ОС с неграфическим интерфейсом). Наиболее известные программы: Norton Commander (DOS), Total Commander (бывший Windows Commander), FAR Manager и Frigate. Основные возможности файловых менеджеров:
- просмотр содержимого дисков и папок;
- просмотр и редактирование файлов;
- создание новых папок и файлов;
- копирование, удаление, перемещение папок и файлов;
- поиск папок и файлов по имени (шаблону);
- работа с архивными файлами;
- получение информации о компьютере и оперативной памяти;
- сравнение папок;
- просмотр и изменение атрибутов файлов;
- настройка параметров отображения и др.
Для сжатия графики, звука и видео существуют утилиты-конверторы, использующие алгоритмы сжатия с потерями. Архиваторы предназначены для «упаковки файлов» за счёт использования алгоритмов устранения избыточной информации – сжатия без потерь. Это алгоритм Хаффмана и алгоритм Лемпеля-Зива-Вельха (LZW), а также их модификации и комбинации. Степень сжатия зависит как от типа сжимаемых данных, так и от алгоритма. Для любого алгоритма сжатия можно подобрать такой файл, для которого выбранный алгоритм окажется наиболее эффективным. А можно подобрать и такой, что этот же алгоритм окажется наименее эффективным по сравнению с другими алгоритмами.
Наиболее популярны архиваторы WinZip и WinRAR (рис. 5.4), позволяющие создавать самораспаковывающиеся (SelF eXtract – SFX) архивы, устанавливать пароль на открытие, поддерживать другие форматы (*.arj, *.lzh, *.tar и др.).
Рис. 5.4. Окно архиватора WinRAR
Программы резервирования данных позволяют создавать резервные копии важных файлов, образы целых дисков, обеспечивая, при необходимости, восстановление утраченной или повреждённой информации.
К сервисному ПО можно также отнести программы записи компакт-дисков, просмотра и конвертации файлов различных форматов (например, *.pdf), сравнения заданных и поиска похожих файлов.