Внутренняя организация файловой системы (FS). Системные данные FS на томе. Типы файловых систем

Всякая операционная система создает на каждом томе (дискете, диске, пакете дисков, CD-ROM и пр.) со­вокупность системных данных, которая называется файловой систе­мой (файловой структурой).

Файловая система включает в себя таблицу содержания и об­ласть данных — совокупность блоков на диске, идентифицируемых своими номерами / адресами. Обычно адрес блока состоит из 3 чи­сел — № цилиндра (совокупность дорожек, доступных при фикси­рованном положении блока головок считывающего устройства), № поверхности (дорожки в цилиндре), № блока на дорожке.

Пример простейшей (абстрактной) таблицы содержания, оглав­ления тома (диска, пакета дисков), которая в разных ОС имеет раз­личные наименования — "VTOC — Volume Table of Content (Таблица Содержания Тома), FAT -- File Allocation Table (Таблица Размеще­ния Файлов), FDT — File Definition Table (Таблица Определения Файлов) и т. п., 'Приведена на рис. 1.6. Она состоит из трех областей:

область файлов: Это таблица, имеющая обычно ограниченное (в приведенном примере N=6) число строк N (в MS-DOS, например, N— 500, т. е. число файлов не более 500). Количе­ство столбцов М (в примере М = 5) обычно выбирается из тех соображений, чтобы 85—95 % файлов, создаваемых пользова­телями, содержало бы не более М блоков, что зависит как от размера блока и типа пользователя, так и от общего уровня развития информационного и программного обеспечения. Первый столбец таблицы в каждой строке (заглавная запись -Title Record) содержит данные о файле, в данном примере -имя файла;

область переполнения — дополнительная таблица аналогичной структуры, в которую записываются номера блоков особо длинных файлов (в примере — File_l). Организация таблицы
размещения в форме области файлов и области переполнения, очевидно, позволяет сэкономить на объеме таблицы в целом, не ограничивая в то же время вероятной длины файла;

* список свободных блоков — необходимая информация для размещения создаваемых или расширяемых файлов. Список создается при инициализации и включает все блоки, кроме поврежденных, а затем корректируется при создании, удалении, модификации файлов;

* список сбойных блоков. Это таблица, создаваемая при инициализации (разметке) тома (диска), пополняемая программами диагностики (примером которых может служить хорошо известный пользователям NDD — Norton Disk Doctor) и предотвращающая распределение испорченных областей на магнитном носителе под файлы данных.

Типы файловых систем

Для Linux

Ext 2/3

ReiserFS

XFS

SwapFS

JFS

Для Windows и DOS

FAT12, 16, 32

NTFS Windows NT, 2000, XP


Множественность файловых систем (FS) современных ОС. Файловые системы ОС Windows: FAT12, FET16, FAT32, CDFS, NTFS (NTFS5), сетевые FS. Диспетчер файловых систем (IFS ), драйверы FS.

Файловые системы операционных систем создают для пользователей некоторое виртуальное представление внешних запоминающих устройств ЭВМ, позволяя работать с ними не на низком уровне команд управления физическими устройствами (например, обращаться к диску с учётом особенностей его адресации), а на высоком уровне наборов и структур данных. Файловая система скрывает от программистов картину реального расположения информации во внешней памяти, обеспечивает независимость программ от особенностей конкретной конфигурации ЭВМ, или, как ещё говорят, логический уровень работы с файлами. Файловая система также обеспечивает стандартные реакции на ошибки, возникающие при обмене данными. Пользователь, работая в контексте определённого языка программирования, обычно использует файлы как поименованные совокупности данных, хранимые во внешней памяти и имеющие определённую структуру. При работе с файлами пользователю предоставляются средства для создания новых файлов, операции по считыванию и записи информации и т. д., не затрагивающие конкретные вопросы программирования работы канала по пересылке данных, по управлению внешними устройствами.

Файловая система (file system) – функциональная часть операционной системы, которая отвечает за обмен данными с внешними запоминающими устройствами.

Когда Windows NT впервые вышла в свет, в ней была предусмотрена поддержка трех файловых систем. Это таблица размещения файлов (FAT), обеспечивавшая совместимость с MS-DOS, файловая система повышенной производительности (HPFS), обеспечивавшая совместимость с LAN Manager, и новая файловая система, носившая название Файловой системы новых технологий (NTFS). NTFS обладала рядом преимуществ в сравнении с использовавшимися на тот момент для большинства файловых серверов файловыми системами. Для обеспечения целостности данных в NTFS имеется журнал транзакций. Подобный подход не исключает вероятности утраты информации, однако, значительно увеличивает вероятность того, что доступ к файловой системе будет возможен даже в том случае, если будет нарушена целостность системы сервера. Это становится возможным при использовании журнала транзакций для отслеживания незавершенных попыток записи на диск при последующей загрузке Windows NT. Журнал транзакций также используется для проверки диска на наличие ошибок вместо проверки каждого файла, в случае использования таблицы размещения файлов. Одним из основных преимуществ NTFS является безопасность. NTFS предоставляет возможность вносить записи контроля доступа (Access Control Entries, ACE) в список контроля доступа (Access Control List, ACL). ACE содержит идентификационное имя группы или пользователя и маркер доступа, который может быть использован для ограничения доступа к определенному каталогу или файлу. Этот доступ может предполагать возможность чтения, записи, удаления, выполнения и даже владения файлами. С другой стороны, ACL представляет собой контейнер, содержащий одну или более записей ACE. Это позволяет ограничить доступ отдельных пользователей или групп пользователей к определенным каталогам или файлам в сети. Кроме того, NTFS поддерживает работу с длинными именами, имеющими длину до 255 символов и содержащими заглавные и строчные буквы в любой последовательности. Одной из главных характеристик NTFS является автоматическое создание эквивалентных имен, совместимых с MS-DOS. Также NTFS имеет функцию сжатия, впервые появившуюся в NT версии 3.51. Она обеспечивает возможность сжатия любого файла, каталога или диска NTFS. Единственным недостатком сжатия NTFS является невысокий, в сравнении со схемами сжатия MS-DOS, уровень компрессии. Зато NTFS отличается более высокой надежностью и производительностью.

Особенности NTFS5:

Самое главное, за что ругали NT4, и в чём она уступала NetWare, это за отсутствие квотирования. Квотирование - это ограничение максимального объёма дискового пространства для пользователя, которое он сможет использовать. Устанавливаются квоты через Свойства NTFS раздела, закладка Квота. Через Записи Квот можно выставлять квоты для каждого отдельного пользователя.

Второе, достаточно важное отличие NTFS5 от старой версии - возможность поиска файла, по имени его владельца. С помощью Списка Управления Доступом, можно легко проверить, какие файлы доступны пользователю, и установить права доступа к отдельным файлам или каталогам.

Кроме непосредственного изменения самой структуры NTFS, в XP добавлен Microsoft Index Server, который значительно ускоряет поиск файлов, особенно по их содержимому, за счёт индексации содержимого дисков.

В NTFS5 добавлена такая функция как точки монтирования или, по-другому, точки соединения (junction point). Функция эта давно знакома пользователям различных вариантов Unix/Linux, но в продуктах Microsoft она появилась впервые недавно (только с W2k). С помощью этой технологии можно присоединить любой дисковый ресурс в любое место файловой системы.

Список файловых систем, поддержка которых стандартно включена в Windows 2000/XP:

• NTFS — исключительно для NT-систем.
• FAT12 — поддержка дискет.
• FAT16 — для совместимости с MS-DOS.
• FAT32 — ФС, используемая в Windows 95 и 98.
• CDFS — файловая система компакт-дисков.
• UDF — универсальный формат дисков.

Также поддерживается распределенная файловая система (Distributed File System — DFS) и файловая система с шифрованием (Encrypted File System — EFS). Строго говоря, это не настоящие ФС. DFS представляет собой расширение сетевого сервиса и позволяет объединять в единый логически том сетевые ресурсы, а EFS — надстройка над NTFS, обеспечивающая функции шифрования. Ну, а теперь остановимся подробнее на каждой файловой системе.

CDFS

CDFS (Compact Disk File System), используемая в Windows 2000 (вроде, и в XP) выполнена по стандарту ISO 9660, согласно которому к именам файлов предъявляются следующие требования:

• Имя не превышает 32 символа.
• Все буквы строчные.
• Глубина вложения каталогов — не более 8 уровней.
Опытные пользователи заметят, что эти ограничения в большинстве случаев обходятся без проблем. В XP встроены средства для записи дисков с этой ФС.

UDF

UDF (Universal Disk Format) — файловая система, соответствующая стандарту ISO 13346, предназначенная для доступа в режиме чтения к DVD-ROM- и CD-ROM-дискам. В будущем планируется обеспечить доступ и на запись.

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

Элементы таблицы FAT представляют собой 12-, 16- и 32-битовые шестнадцатеричные числа.

В FAT использовались две идентичные таблицы, одна из которых служила основной, вторая при выполнении обычных процедур постоянно обновлялась, заполняясь при этом возможными ошибками первой копии. FAT32, при невозможном считывании данных из основной таблицы, обращается ко второй копии, которая и становится основной. Основным недостатком FAT32 является несовместимость с более ранними файловыми системами, а также системой NTFS.


FAT12
ФС FAT (File Allocation Table) получила свое название из-за способа организации данных — таблицы размещения файлов. Она ориентирована на небольшие диски и простые структуры каталога. FAT12 является 12-битной верcией FAT, соответственно она может адресовывать 212 кластеров (минимальных логически адресуемых единиц данных на диске). Это ограничение и небольшое количество вхождений в корневой каталог определяет использование этой ФС. Сейчас она применяется на дискетах, раньше ее использовали на винчестерах, но эта ФС была быстро вытеснена улучшенной версией — FAT16. Диск с использованием любой FAT имеет следующую структуру (см. рис.1).

Корневой каталог имеет фиксированный размер. Каталоги — специальные файлы с элементами для каждого файла, содержащегося в этом каталоге. Эти элементы включают:

• Имя файла (8+3 символа).
• Байт атрибута (8 бит).
• Время модификации (16 бит).
• Дату модификации (16 бит).
• Первый размещаемый блок (12 бит для FAT12).
• Размер файла (32 бита).

Специальная надстройка над FAT, называемая VFAT (Virtual FAT), обеспечивает поддержку длинных имен файлов. Это следует учесть, так как некоторые старые DOS-утилиты могут запороть диск с длинными именами файлов, считая поврежденной структуру FAT. Все версии FAT не обладают функциями защиты данных и автоматического восстановления, посему я рекомендую их применять только для обеспечения совместимости.

FAT16
Улучшенная версия FAT. Максимальный размер тома равен 4095 Мб, размер кластера определяется размером тома и находится в диапазоне от 512 байт до 64 Кб. Число кластеров не превышает 216.

FAT32
Модифицированная версия FAT. Размер тома увеличен до 127 Гб, число кластеров — до 232. Позволяет использовать при одинаковых размерах томов кластеры меньшего размера, чем FAT16, что увеличивает эффективность организации данных. Впервые поддержка этой ФС появилась в Windows 95 OSR2. Все версии NT до 4.0 включительно ее не поддерживают (для поддержки в NT 4.0 нужен соответствующий Service Pack).

Сетевые FS:

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

С программной точки зрения распределенная файловая система — это сетевая служба.

Сетевая файловая система (ФС) в общем случае включает следующие элементы (рис. 10.1):

· локальная файловая система;

· интерфейс локальной файловой системы;

· сервер сетевой файловой системы;

· клиент сетевой файловой системы;

· интерфейс сетевой файловой системы;

· протокол клиент-сервер сетевой файловой системы.

Сетевая файловая служба на основе протокола FTP (File Transfer Protocol) представляет собой одну из наиболее ранних служб, используемых для доступа к удаленным файлам. До появления службы WWW это была самая популярная служба доступа к удаленным данным в Интернете и корпоративных IP-сетях.

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

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

Протокол FTP выполнен по схеме клиент-сервер.

 

Файловая система NFS (Network File System) создана компанией Sun Microsystems. В настоящее время это стандартная сетевая файловая система для ОС семейства UNIX, кроме того, клиенты и серверы NFS реализованы для многих других ОС.

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

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

Для обеспечения устойчивости клиентов к отказам серверов в NFS принят подход stateless, то есть серверы при работе с файлами не хранят данных об открытых клиентами файлах.

Основная идея NFS — позволить произвольной группе пользователей разделять общую файловую систему. Чаще всего все пользователи принадлежат одной локальной сети, но не обязательно. Можно выполнять NFS и на глобальной сети.

В своей работе файловая система NFS использует два протокола.

Первый NFS-протокол управляет монтированием. Клиент посылает серверу полное имя каталога и запрашивает разрешение на монтирование этого каталога в какую-либо точку собственного дерева каталогов.

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

 

В состав операционной системы Windows 3.1 (рис 8.4) входит системная виртуальная машина System VM, внутри которой размещаются все 16-разрядные приложения Win16, а также код и данные системных DLL, которые обеспечивают выполнение сервисных функций ОС. Приложения Win16 выполняются в общем адресном пространстве внутри системной виртуальной машины. Программы Win16 выполняются в режиме невытесняющей многозадачности. Системные библиотеки USER, GDI и KERNEL предоставляют сервисные функции операционной системы приложениям и отображаются в адресное пространство, совместно используемое приложениями Win16. Приложения DOS запускаются на отдельных виртуальных DOS-машинах (VDM), работающих в режиме вытесняющей многозадачности. Диспетчер устанавливаемых файловых систем (IFS) и драйвер 32-разрядного доступа к файлам (только в Windows for Workgroups 3.11) осуществляют большинство файловых операций в защищенном режиме, что ускоряет доступ к файлам. Драйвер 32-разрядного доступа к диску управляет обменом с диском на физическом уровне.

Архитектура Windows 95 (рисунок 8.5) представляет собой немного улучшенную версию архитектуры Windows 3.1. Внутри системной VM выполняются приложения Win16 и Win32. Большая часть кода операционной системы и данных также размещается здесь. Приложения Win32 работают на основе алгоритма вытесняющей многозадачности в отдельных адресных пространствах. Все приложения Win16 выполняются как единый процесс в общем адресном пространстве на основе алгоритма невытесняющей многозадачности. Библиотеки динамической компоновки USER, USER32, GDI, GDI32, KERNEL и KERNEL32, которые предоставляют системные сервисы всем приложениям, загружаются в системную VM и отображаются в адресные пространства каждого прикладного процесса. Это повышает производительность за счет устранения затрат времени на переходы между кольцами защиты при вызове системных функций. Однако с другой стороны, это также ставит под угрозу целостность системы, открывая доступ к частям ОС для прикладных программ. На виртуальных DOS-машинах (VDM) выполняются DOS-программы. Они работают в режиме вытесняющей многозадачности.