Файл - логическая единица распределения памяти . Он является также совокупностью логически взаимосвязанной информации. Файловая система располагается во внешней памяти (на дисках) и организована по уровням. Структура многоуровневой файловой системы изображена на рис. 19.11.

Рис. 19.11. Многоуровневая файловая система.

На верхнем уровне абстракции работают пользовательские программы, использующие высокоуровневые примитивы вида WriteLine(F, X) .Уровнем ниже располагаются модули интерфейса логических файлов – логических записей, блоков и операций обмена. Еще ниже следуют модули организации файлов, затем – операции базовой системы файлов. На нижних уровнях располагаются драйверы устройств (управление вводом-выводом) и аппаратура (устройства ввода-вывода и их контроллеры).

– структура в памяти, содержащая информацию о файле. Типовая структура блока управления файлом представлена в таблица 3.

Системные структуры в памяти для управления файловой системой

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

Рис. 19.12. Структуры ОС в памяти для управления файловой системой.

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

Ключевые термины

Network File System (NFS) – широко распространенная система общего доступа к файлам через локальную сеть .

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

Атрибуты файла общие свойства, описывающие содержимое файла.

Блок – логическая единица информации (часть) файла, как правило, объединяющая несколько записей , с целью оптимизации операций ввода-вывода .

Блок управления файлом (File control block - FCB) – структура в памяти, содержащая информацию о файле и используемая операционной системой.

Директория (справочник, папка) - directory , folder – структура во внешней памяти, содержащая символьные имена файлов и других директорий и ссылки на них.

Дополнение к файлу объектного кода (ДФОК) :в системе "Эльбрус" - файл , содержащий в унифицированном виде таблицы именованных сущностей, определенных в программе и ее процедурах (метаданные ).

Заголовок файла – головная запись файла, в которой содержатся его атрибуты .

Запись (record) – элементарная единица , часть файла, в терминах которых выполняются операции обмена с файлом.

Защита (Protection) – управляющая информация , задающая полномочия чтения, изменения и исполнения файла.

Контейнер (в системе "Эльбрус") – хранилище файлов на одном или нескольких дисках.

Монтирование – подсоединение отдельного поддерева еще не смонтированной файловой системы к какой-либо вершине (точке монтирования) общего дерева доступных файловых систем.

Набор данных (data set) - термин фирмы IBM для обозначения файла .

Общий доступ (sharing) – возможность доступа к файлам и директориям различным пользователям, в том числе – по локальной сети.

Относительный путь - путь доступа к файлу относительно некоторой текущей директории .

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

Путь (path) – многослоговое имя файла или директории, состоящее из имени корневой директории (или логического диска) и последовательности имен директорий последующих уровней.

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

Резервное копирование (back-up) копирование файлов и директорий на внешние носители – ленту (стример ), flash-память , внешний переносной жесткий диск , компакт-диск (CD , DVD ), с целью их сохранности.

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

Точка монтирования (mount point) – узел в дереве файловых систем, к которому подсоединяется новая файловая система при монтировании .

Файл (file) – смежная область логического адресного пространства, как правило, хранящаяся во внешней памяти.

Файл объектного кода (ФОК) – в системе "Эльбрус": файл , в котором хранится двоичный код исполняемой программы.

Файловая система поддерево директорий на некоторой машине, расположенных в одном разделе .

Вопросы

1. Что такое файл?

2. Какого типа информация может храниться в файле?

3. Какую структуру может иметь файл?

4. Какие программы интерпретируют содержимое файла?

5. Каковы основные атрибуты файла ?

6. Каковы основные операции над файлом?

7. Каким образом система определяет тип файла?

8. Какие расширения имен используются в операционных системах?

9. Какие методы доступа к файлам Вам известны?

10. Какие операции определены над файлами прямого доступа?

11. Какие операции определены над файлами последовательного доступа ?

12. Что такое индексный файл и для чего он используется?

13. Что такое директория?

14. Каковы особенности, достоинства и недостатки файловой системы "Эльбруса"?

15. Что такое раздел?

16. Каковы основные операции над директорией?

17. Каковы цели логической организации директорий?

18. Какая организация директорий является наиболее предпочтительной и почему?

19. Какие проблемы возникают при организации директорий в виде произвольного графа?

20. Что такое монтирование файловых систем?

21. Что такое точка монтирования?

22. Что такое общий доступ к файлам и почему он необходим?

23. Что такое NFS ?

24. Что такое защита файлов ?

25. Какие полномочия защиты и для каких пользователей рассматриваются в UNIX?

26. Что такое блок управления файлом?

27. Какие уровни абстракции можно выделить в реализации файловых систем?

28. Какие структуры в памяти создает ОС при открытии файла и для управления операциями обмена?

Упражнения

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

2. Реализуйте операции последовательного доступа к файлам, используя операции прямого доступа.

3. Реализуйте индексные файлы и операции ускоренного поиска информации по основным файлам с использованием индексных файлов.

4. Реализуйте структуру директорий и основные операции над ней, используя операции над файлами. Храните все ссылки в символической форме.

5. Разработайте и реализуйте алгоритм поиска циклических ссылок в структуре директорий.


©2015-2019 сайт
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11

Структура файловой системы зависит от операционной системы. Одной из первых в компьютерах применялась файловая система FAT (File Allocation Table), которая использовалась в операционной системе MS DOS.

FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта͵ и вначале не предусматривала поддержки жестких дисков. В последующем FAT стала поддерживать файлы и разделы размеров до 2 Гбайт.

В FAT применяются следующие соглашения по именам файлов: имя должно начинаться с буквы или цифры и может содержать любой символ ASCII, за исключением пробела и символов "/\ : ; | = , ^ * ? Длина имени не превышает 8 символов, за ним следует точка и необязательное расширение длиной до 3 символов. регистр символов в именах файлов не различается и не сохраняется.

Файловая система FAT не может контролировать отдельно каждый сектор, в связи с этим она объединяет смежные секторы в кластеры. Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, уменьшается общее количество единиц хранения, за которыми должна следить файловая система. Размер кластера в FAT является степенью двух и определяется размером тома при форматировании диска. Кластер представляет собой минимальное пространство, ĸᴏᴛᴏᴩᴏᴇ может занимать файл. Это приводит к тому, что часть пространства диска расходуется впустую.

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

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

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

c:\Papka1\papka2\uchebnik.doc

Такая запись принято называть маршрут, или путь.

Имя логического диска, стоящее перед именем файла в спецификации, указывает логический диск, на котором следует искать файл. На этом же диске организован каталог, в котором хранятся полные имена файлов, а также их характеристики: дата и время создания; объем (в байтах); специальные атрибуты. По аналогии с библиотечной системой организации каталогов полное имя файла, зарегистрированное в каталоге, будет служить шифром, по которому операционная система находит месторасположение файла на диске.

Каталог- справочник файлов с указанием месторасположения на диске.

В операционной системе WINDOWS понятию каталог соответствует понятие папка.

Различают два состояния каталога - текущее (активное) и пассивное.

Текущий (активный) каталог- каталог, в котором в данный момент времени работает пользователь.

Пассивный каталог- каталог, с которым в данный момент времени не имеется связи.

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

Родительский каталог- каталог, имеющий подкаталоги.

Подкаталог - каталог, который входит в другой каталог.

Τᴀᴋᴎᴍ ᴏϬᴩᴀᴈᴏᴍ, любой каталог, содержащий каталоги нижнего уровня, может быть, с одной стороны, по отношению к ним родительским, а с другой стороны, подчинœенным по отношению к каталогу верхнего уровня.

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

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

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

Файловая система FAT имеет существенное ограничение по поддержке больших объемов дискового пространства, предел равен 2 Гб.

Новые поколения жестких дисков, имеющие большие объемы дискового пространства потребовали более совершенной файловой системы.

Операционная система Windows содержит файловую систему FAT32, которая поддерживает жесткие диски объемом до двух терабайт. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу. Система допускает длинные имена файлов и пробелы в именах. Файловая система FAT32 поддерживается в операционных системах Windows XP и Windows Vista.

Стоит сказать, что для названных операционных систем была разработана еще одна файловая система: NTFS (New Technology File System)

В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам, введено большое число атрибутов, реализована отказоустойчивость, средства динамического сжатия файлов. NTFS позволяет использовать имена файлов длиной до 255 символов

NTFS обладает возможностью самостоятельного восстановления в случае сбоя ОС или оборудования, так что дисковый том остается доступным, а структура каталогов не нарушается.

Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице MFT (Master File Table). NTFS резервирует первые 16 записей таблицы размером около 1 Мб для специальной информации. Записи обеспечивают резервирование главной файловой таблицы, восстановление файлов, контролируют состояние кластеров, определяют атрибуты файлов.

Для уменьшения фрагментации NTFS всœегда пытается сохранить файлы в непрерывных блоках. Она обеспечивает эффективный поиск файлов в каталоге.

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

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

Вопросы для самопроверки.

1.Что такое файловая система?

2. Что такое «файл»?

3. Основные составляющие файловой структуры.

4. Что такое кластер?

5.Назовите основные параметры, характеризующие файл.

6.Как образуется имя файла?

7.Правила присваивания имен файлам в системе FAT.

8.Почему возникает крайне важность дефрагментации диска?

9. Что такое каталог?

10. Объясните понятия «маршрут», «путь».

11.Для чего в именах файлов применяется расширение?

12.Основное назначение файловой системы.

13.Какие файловые системы поддерживаются операционными системами Windows XP, Windows Vista?

1. Логически связанная совокупность данных или программ, для размещения которой во внешней памяти выделяется именованная область, это

Кластер

2. Минимальная единица пространства диска, ĸᴏᴛᴏᴩᴏᴇ может быть отведено файлу

3. Полное имяфайла содержит

Собственно имя

Расширение

4. Файлы, имеющие расширения.ZIP,ARJ, относятся к

Системным

Графическим

Архивным

Временным

5. Файловая система FAT поддерживает дисковое пространство в объеме

6. Шаблон имени файла, который служит для замены одного символа

7. Шаблон имени файла, который служит для замены любой последовательности символов

8. Справочник файлов с указанием их месторасположения на диске

Каталог

Таблица размещения файлов

Кластер

Драйвер

9.Процедура установления связи с размещенным в памяти файлом

Дефрагментация

Считывание

10. Файлы, имеющие расширения.COM,EXE, относятся к

Системным

Графическим

Исполняемым

Временным

РАЗДЕЛ 3. Программные средства реализации информационных процессов

Тема 3.1. Классификация программных средств


  • - Реализация файловой системы. Общая структура файловой системы

    Файловые системы хранятся на дисках. Большинство дисков делится на ряд разделов с независимой файловой системой на каждом разделе. Сектор «0» диска называется главной загрузочной записью (MBR, Master Boot Record) и используется для загрузки компьютера. В конце главной загрузочной... [читать подробенее]


  • -

    [читать подробенее]


  • - Структура файловой системы на диске

    Рассмотрение методов работы с дисковым пространством дает общее представление о совокупности служебных данных, необходимых для описания файловой системы. Структура служебных данных типовой файловой системы, например Unix, на одном из разделов диска, таким образом, может...

    [читать подробенее]


  • - Структура файловой системы

    Реализация файловых систем В данном разделе начнем рассматривать принципы и методы реализации файловых систем, изложение которых продолжено в "Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS". В данной и следующей...

  • Файловые системы. Типы файловых систем. Операции с файлами. Каталоги. Операции с каталогами.

    Файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные.

    Основные цели использования файла.

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

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

    Файловая система (ФС) - это часть операционной системы, включающая:

      совокупность всех файлов на диске;

      наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;

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

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

    Широко известны следующие файловые системы:

      файловая система операционной системы MS - DOS , в основу которой положена таблица размещения файлов - FAT ( File Allocation Table ).

    Таблица содержит сведения о расположении всех файлов (каждый файл делится на кластеры в соответствии с наличием свободного места на диске, кластеры одного файла не обязательно расположены рядом). Файловая система MS-DOS имеет значительные ограничения и недостатки, например, под имя файла отводится 12 байт, работа с жестким диском большого объема приводит к значительной фрагментации файлов;

    Основные функции в такой ФС нацелены на решение следующих задач:

      именование файлов;

      программный интерфейс для приложений;

      отображения логической модели файловой системы на физическую организацию хранилища данных;

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

      OS /2 , называемая HPFS ( High - Performance File System - быстродействующая файловая система).

    Обеспечивает возможность иметь имя файла до 254 символов. Файлы, записанные на диск, имеют минимальную фрагментацию. Может работать с файлами, записанными в MS DOS;

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

    В многопользовательских системах появляется еще одна задача: защита файлов одного пользователя от несанкционированного доступа другого пользователя.

      файловая система операционной системы Windows 95

    Имеет уровневую структуру, что позволяет поддерживать одновременно несколько файловых систем. Старая файловая система MS-DOS поддерживается непосредственно, а файловые системы разработанные не фирмой Microsoft , поддерживаются с помощью специальных модулей . Имеется возможность использовать длинные (до 254 символов) имена файлов.

      файловые системы операционной системы Unix

    Они обеспечивают унифицированный способ доступа к файловым системам ввода-вывода.

    Права доступа к файлу практически определяют права доступа к системе (владелец файла – пользователь, который его создал).

    Типы файлов

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

    Обычные файлы , или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.

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

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

    Современные файловые системы поддерживают и другие типы файлов, такие как символьные связи, именованные конвейеры, отображаемые в память файлы.

    Иерархическая структура файловой системы

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

    Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог (рис. 7.3, б), и сеть - если файл может входить сразу в несколько каталогов (рис. 7.3, в). Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX - сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом, или корнем ( root ).

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

    Частным случаем иерархической структуры является одноуровневая организация, когда все файлы входят в один каталог (рис. 7.3, а).

    Имена файлов

    Все типы файлов имеют символьные имена. В иерархически организованных файловых системах обычно используются три типа имен -файлов: простые, составные и относительные.

    Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в популярной файловой системе FAT длина имен ограничивались схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых системах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

    В иерархических файловых системах разным файлам разрешено иметь одинаковые простые символьные имена при условии, что они принадлежат разным каталогам. То есть здесь работает схема «много файлов - одно простое имя». Для одпозначной идентификации файла в таких системах используется так называемое полное имя.

    Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого каталога. На рис. 7.3, б два файла имеют простое имя main.exe, однако их составные имена /depart/main.ехе и /user/anna/main.exe различаются.

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

    Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/ main.exe.

    В некоторых операционных системах разрешено присваивать одному и тому же файлу несколько простых имен, которые можно интерпретировать как псевдонимы. В этом случае, так же как в системе с сетевой структурой, устанавливается соответствие «один файл - много полных имен», так как каждому простому имени файла соответствует по крайней мере одно полное имя.

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

    Атрибуты файлов

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

      тип файла (обычный файл, каталог, специальный файл и т. п.);

      владелец файла;

      создатель файла;

      пароль для доступа к файлу;

      информация о разрешенных операциях доступа к файлу;

      времена создания, последнего доступа и последнего изменения;

      текущий размер файла;

      максимальный размер файла;

      признак «только для чтения»;

      признак «скрытый файл»;

      признак «системный файл»;

      признак «архивный файл»;

      признак «двоичный/символьный»;

      признак «временный» (удалить после завершения процесса);

      признак блокировки;

      длина записи в файле;

      указатель на ключевое поле в записи;

      длина ключа.

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

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

    Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS (рис. 7.6, а). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R - только для чтения, А - архивный, Н - скрытый, S - системный.

    Рис. 7.6. Структура каталогов: а - структура записи каталога MS-DOS (32 байта), б - структура записи каталога ОС UNIX

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

    В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора.

    Операции над файлами

    Большинство современных ОС рассматривают файл как неструктурированную последовательность байт переменной длины. В стандарте POSIX над файлом определены следующие операции:

      int open ( char * fname , int flags , mode _ t mode )

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

    Параметр char * fname задает имя файла.int flags - это битовая маска, определяющая режим открытия файла.Файл может быть открыт только на чтение, только на запись и начтение и запись; кроме того, можно открывать существующий файл,а можно пытаться создать новый файл нулевой длины.Необязательный третий параметр mode используется толькопри создании файла и задает атрибуты этого файла.

      off _ t lseek ( int handle , off _ t offset , int whence )

    Эта операция перемещает указатель чтения/записи в файле.Параметр offset задает количество байт, на которое нужно сместитьуказатель, а параметр whence - откуда отсчитывать смещение.Предполагается, что смещение можно отсчитывать от начала файла(SEEK_SET), от его конца (SEEK_END) и от текущегоположения указателя (SEEK_CUR). Операция возвращает положениеуказателя, отсчитываемое от начала файла. Таким образом, вызовlseek(handle, 0, SEEK_CUR) возвратит текущее положение указателя,не передвигая его.

      int read(int handle, char * where, size_t how_much)

    Операция чтения из файла. Указатель where задает буфер,куда нужно поместитьпрочитанные данные; третий параметр указывает, сколько данных надо считать.Система считывает требуемое число байт из файла, начиная с указателячтения/записи в этом файле, и перемещает указатель к концу считаннойпоследовательности. Если файл кончился раньше, считывается столько данных,сколько оставалось до его конца. Операция возвращает количествосчитанных байт. Если файл открывался только для записи, вызов readвозвратит ошибку.

      int write(int handle, char * what, size_t how_much)

    Операция записи в файл. Указатель what задает начало буфера данных;третий параметр указывает, сколько данных надо записать.Система записывает требуемое число байт в файл, начиная с указателячтения/записи в этом файле, заменяя хранившиеся на в этом месте данные,и перемещает указатель к концу записанного блока. Если файл кончился раньше,его длина увеличивается. Операция возвращает количество записанных байт.

    Если файл открывался только для чтения, вызов write возвратит ошибку.

      int ioctl(int handle, int cmd, ...) ; int fcntl ( int handle , int cmd , ...)

    Дополнительные операции над файлом. Первоначально, по-видимому,предполагалось, что ioctl - это операции над самим файлом,а fcntl - это операции над дескриптором открытого файла,но потом историческое развитие несколько перемешало функции этих системныхвызовов. Стандарт POSIX определяет некоторые операции как наддескриптором, например дублирование (в результате этой операции мы получаемдва дескриптора, связанных с одним и тем же файлом), так и над самим файлом,например, операцию truncate - обрезать файл до заданной длины.В большинстве версий Unix операцию truncate можноиспользовать и для вырезания данных из середины файла. При считывании данныхиз такой вырезанной области считываются нули, а сама эта область незанимает физического места на диске.

    Важной операцией является блокировка участков файла.Стандарт POSIX предлагает для этой целибиблиотечную функцию, но в системах семейства Unix этафункция реализована через вызов fcntl.

    Большинство реализаций стандарта POSIX предлагает и своидополнительные операции. Так, в Unix SVR 4 этими операциямиможно устанавливать синхронную или отложенную запись и т.д.

      caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int handle, off_t offset)

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

    Еще две операции выполняются уже не над файлом, а над его именем:это операции переименования и удаления файла. В некоторых системах,например в системах семейства Unix , файл может иметьнесколько имен, и существует только системный вызов для удаления имени.Файл удаляется при удалении последнего имени.

    Видно, что набор операций над файлом в этом стандарте очень похожна набор операций над внешним устройством. И то и другое рассматриваетсякак неструктурированный поток байт. Для полноты картины следует сказать,что основное средство межпроцессной коммуникации в системах семействаUnix (труба ) также представляет собойнеструктурированный поток данных. Идея о том, что большинство актов передачиданных может быть сведено к байтовому потоку, довольно стара, ноUnix был одной из первых систем, где эта идея была приближена клогическому завершению.

    Примерно та же модель работы с файлами принята в CP / M ,а набор файловых системных вызовов MS DOS фактическископирован с вызовов Unix v 7 . В свою очередь, OS /2 и Windows NT унаследовали принципы работы с файламинепосредственно от MS DOS .

    Напротив, в системах, не имеющих Unix в родословной,может использоваться несколько иная трактовка понятия файла.Чаще всего файл трактуется как набор записей. Обычно система поддерживаетзаписи как постоянной длины, так и переменной. Например, текстовый файлинтерпретируется как файл с записями переменной длины, а каждой строке текстасоответствует одна запись. Такова модель работы с файлами в VMS и в ОС линии OS /360 -MVS фирмы IBM.

    Классификация, структура, характеристики файловых систем!!!

    1.Понятие, структура и работа файловой системы.

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

    MBR (Master Boot Record) специальная область расположенная в начале диска - содержащая необходимую для BIOS информацию для загрузки операционной системы с жесткого диска.
    Таблица разделов (partition table) также расположена в начале диска, ее задача - хранить информацию о разделах: начало, длина, загрузка. На загрузочном разделе расположен загрузочный сектор (boot sector), хранящий программу загрузки операционной системы.

    Отсчет начинается от MBR (от сектора с номером 0) для всех основных (primary) разделов, как для обычных, так и для расширенного, и только для основных.
    Все обычные логические (not extended logical) разделы задаются сдвигом относительно начала того расширенного раздела, в котором они описаны.
    Все расширенные логические (extended logical) разделы задаются сдвигом относительно начала основного расширенного раздела (extended primary).

    Процесс загрузки операционной системы выглядит следующим образом:
    При включении компьютера управление процессором получает BIOS ,идет загрузка (boot) с винчестера, подгружается в оперативную память компьютера первый сектор диска (MBR) и передается ему управление).

    В MBR может быть записан как "стандартный" загрузчик,

    так и загрузчики типа LILO/GRUB.

    Стандартный загрузчик находит в таблице основных разделов первый раздел с флагом bootable (загрузочный), считывает его первый сектор (boot-сектор) и передает управление коду, записанному в этом boot-секторе. Если вместо стандартного загрузчика MBR стоит другой, то он не смотрит на флаг bootable, может загружать с любого раздела (прописанных в его настройках).

    Например для загрузки операционной системы Windows NT/2k/XP/2003 в boot-секторе записывается код, загружающий с текущего раздела в память основной загрузчик (ntloader).
    Для каждой файловой системы FAT16/FAT32/NTFS используется свой загрузчик. В корне раздела обязательно должен присутствовать файл ntldr. Если вы видете при попытке загрузить Windows сообщение "NTLDR is missing", то это как раз тот случай, когда файл ntldr отсутствует. Также для нормальной работы ntldr возможно нужны файлы bootfont.bin, ntbootdd.sys, ntdetect.com и правильно написанный boot.ini.

    Пример boot.ini

    C:\boot.ini

    timeout=8
    default=C:\gentoo.bin

    C:\gentoo.bin="Gentoo Linux"
    multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP (32-bit)" /fastdetect /NoExecute=OptIn
    multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Windows XP (64-bit)" /fastdetect /usepmtimer

    Пример конфигурационного файла grub.conf

    #grub.conf generated by anaconda
    #
    #Note that you do not have to rerun grub after making changes to this file
    #
    #NOTICE: You have a /boot partition. This means that
    #all kernel and initrd paths are relative to /boot/, eg.
    #root (hdO.O)
    #kernel /vmlinuz-version ro root=/dev/sda2
    #initrd /initrd-version.img
    #boot=/dev/sda default=0 timeout=5
    splashimage=(hdO,0)/grub/splash.xpm.gz
    hiddenmenu
    title Red Hat Enterprise Linux server (2.6.18-53.el 5)
    root (hdO.O)
    kernel /vmlinuz-2.6.18-53.el5 ro root=LABEL=/ rhgb quiet-
    initrd /initrd-2.6.18-53.el5.img

    Структура файла lilo.conf

    # LILO configuration file generated by "liloconfig"
    //Секция описания глобальных параметров
    # Start LILO global section
    //Место, куда записан Lilo. В данном случае это MBR
    boot = /dev/hda
    //Сообщение, которое выводится при загрузке
    message = /boot/boot_message.txt
    //Вывод приглашения
    prompt
    //Time Out на выбор операционной системы
    timeout = 1200
    # Override dangerous defaults that rewrite the partition table:
    change-rules
    reset
    # VESA framebuffer console @ 800x600x256
    //Выбор видеорежима отображения меню
    vga = 771
    # End LILO global section
    //Секция описания параметров загрузки windows
    # DOS bootable partition config begins
    other = /dev/hda1
    label = Windows98
    table = /dev/hda
    # DOS bootable partition config ends
    //Секция описания параметров загрузки QNX
    # QNX bootable partition config begins
    //Путь к операцционной системе
    other = /dev/hda2
    label = QNX
    table = /dev/hda
    # QNX bootable partition config ends
    //Секция описания параметров загрузки Linux
    # Linux bootable partition config begins
    //Путь к образу ядра
    image = /boot/vmlinuz
    root = /dev/hda4
    label = Slackware
    read-only
    # Linux bootable partition config ends


    2.Наиболее известные файловые системы.

    • Advanced Disc Filing System
    • AdvFS
    • Be File System
    • CSI - DOS
    • Encrypting File System
    • Extended File System
    • Second Extended File System
    • Third Extended File System
    • Fourth Extended File System
    • File Allocation Table (FAT)
    • Files - 11
    • Hierarchical File System
    • HFS Plus
    • High Perfomance File System (HPFS)
    • ISO 9660
    • Journaled File System
    • Macintosh File System
    • MINIX file system
    • MicroDOS
    • Next3
    • New Implementation of a Log-structured F (NILFS)
    • Novell Storage Services
    • New Technology File System (NTFS)
    • Protogon
    • ReiserFS
    • Smart File System
    • Squashfs
    • Unix File System
    • Universal Disk Format (UDF)
    • Veritas File System
    • Windows Future Storage (WinFS)
    • Write Anywhere File Layout
    • Zettabyte File System (ZFS)

    3.Основные характеристики файловых систем.

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

    Максимальный (минимальный) размер тома;
    - Максимальное (минимальное) количество файлов в корневом каталоге;
    - Максимальное количество файлов в некорневом каталоге;
    - Безопасность на уровне файлов;
    - Поддержка длинных имен файлов;
    - Самовосстановление;
    - Сжатие на уровне файлов;
    - Ведение журналов транзакций;

    4.Краткое описание наиболее распространенных файловых систем FAT, NTFS, EXT.

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

    FAT (file allocation table) означает «таблица размещения файлов».
    В файловой системе FAT логическое дисковое пространство любого логического диска делится на две области:
    - системную область;
    - область данных.
    Системная область создается при форматировании и обновляется при манипулировании файловой структурой. Область данных содержит файлы и каталоги, подчиненные корневому, и доступна через пользовательский интерфейс. Системная область состоит из следующих компонентов:
    - загрузочной записи;
    - зарезервированных секторов;
    - таблицы размещения файлов (FAT);
    - корневого каталога.
    Таблица размещения файлов представляет собой карту (образ) области данных, в которой описывается состояние каждого участка области данных. Область данных разбивается на кластеры. Кластер – один или несколько смежных секторов в логическом дисковом адресном пространстве (только в области данных). В таблице FAT кластеры, принадлежащие одному файлу (некорневому каталогу), связываются в цепочки. Для указания номера кластера в системе управления файлами FAT16 используется 16-битовое слово, следовательно, можно иметь до 65536 кластеров.
    Кластер – минимальная адресуемая единица дисковой памяти, выделяемая файлу или некорневому каталогу. Файл или каталог занимает целое число кластеров. Последний кластер при этом может быть задействован не полностью, что приведет к заметной потере дискового пространства при большом размере кластера.
    Так как FAT используется при доступе к диску очень интенсивно, она загружается в ОЗУ и находится там максимально долго.
    Корневой каталог отличается от обычного каталога тем, что он размещается в фиксированном месте логического диска и имеет фиксированное число элементов. Для каждого файла и каталога в файловой системе хранится информация в соответствии со следующей структурой:
    - имя файла или каталога – 11 байт;
    - атрибуты файла – 1 байт;
    - резервное поле – 1 байт;
    - время создания – 3 байта;
    - дата создания – 2 байта;
    - дата последнего доступа – 2 байта;
    - зарезервировано – 2 байта;
    - время последней модификации – 2 байта;
    - номер начального кластера в FAT – 2 байта;
    - размер файла – 4 байта.
    Структура системы файлов является иерархической.

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


    Файловая система NTFS.
    Файловая система NTFS (New Technology File System) содержит ряд значительных усовершенствований и изменений, существенно отличающих ее от других файловых систем. С точки зрения пользователей файлы по-прежнему хранятся в каталогах, но работа на дисках большого объема в NTFS происходит намного эффективнее:
    - имеются средства для ограничения доступа к файлам и каталогам;
    - введены механизмы, существенно повышающие надежность файловой системы;
    - сняты многие ограничения на максимальное количество дисковых секторов и/или кластеров.

    Основные характеристики файловой системы NTFS:
    - надежность. Высокопроизводительные компьютеры и системы совместного использования должны обладать повышенной надежностью, для этой цели введен механизм транзакций, при котором ведется журналирование файловых операций;
    - расширенная функциональность. В NTFS введены новые возможности: усовершенствованная отказоустойчивость, эмуляция других файловых систем, мощная модель безопасности, параллельная обработка потоков данных, создание файловых атрибутов, определенных пользователем;
    - поддержка стандарта POSIX. К числу базовых средств относятся необязательное использование имен файлов с учетом регистра, хранение времени последнего обращения к файлу и механизм альтернативных имен, позволяющий ссылаться на один и тот же файл по нескольким именам;
    - гибкость. Распределение дискового пространства отличается большой гибкостью: размер кластера может изменяться от 512 байт до 64 Кбайт.
    NTFS хорошо работает с большими массивами данных и большими томами. Максимальный размер тома (и файла) – 16 Эбайт. (1 Эбайт равен 2**64 или 16000 млрд. гигабайт.) Количество файлов в корневом и некорневом каталогах не ограничено. Поскольку в основу структуры каталогов NTFS заложена эффективная структура данных, называемая «бинарным деревом», время поиска файлов в NTFS не связано линейной зависимостью с их количеством.
    Система NTFS обладает некоторыми средствами для самовосстановления и поддерживает различные механизмы проверки целостности системы, включая ведение журнала транзакций, позволяющий отследить по системному журналу файловые операции записи.
    Файловая система NTFS поддерживает объектную модель безопасности и рассматривает все тома, каталоги и файлы как самостоятельные объекты NTFS. Права доступа к томам, каталогам и файлам зависит от учетной записи пользователя и той группы, к которой он принадлежит.
    Файловая система NTFS обладает встроенными средствами сжатия, которые можно применять к томам, каталогам и файлам.

    Файловая система Ext3.
    Файловая система ext3 может поддерживать файлы размером до 1 ТБ. С Linux-ядром 2.4 объём файловой системы ограничен максимальным размером блочного устройства, что составляет 2 терабайта. В Linux 2.6 (для 32-разрядных процессоров) максимальный размер блочных устройств составляет 16 ТБ, однако ext3 поддерживает только до 4 ТБ.
    Ext3 имеет хорошую совместимость с NFS и не имеет проблемы с производительностью при дефиците свободного дискового пространства.Еще одно достоинство ext3 происходит из того, что она основана на коде ext2. Дисковый формат ext2 и ext3 идентичен; из этого следует, что при необходимости ext3 filesystem можно монтировать как ext2 без каких либо проблем. И это еще не все. Благодаря факту, что ext2 и ext3 используют идентичные метаданные, имеется возможность оперативного обновления ext2 в ext3.
    Надежность Ext3
    В дополнение к ext2-compatible, ext3 наследует другие преимущества общего формата metadata. Пользователи ext3 имеют в своем распоряжении годами проверенный fsck tool. Конечно, основная причина перехода на journaling filesystem - отказ от необходимости периодических и долгих проверок непротиворечивости метаданных на диске. Однако "журналирование" не способно защитить от сбоев ядра или повреждения поверхности диска (или кое-чего подобного). В аварийной ситуации вы оцените факт преемственности ext3 от ext2 с ее fsck.
    Журнализация в ext3.
    Теперь, когда имеется общее понимание проблемы, посмотрим, как ext3 осуществляет journaling. В коде журнализации для ext3 используется специальный API, называемый Journaling Block Device layer или JBD. JBD был разработан для журнализации на любых block device. Ext3 привязана к JBD API. При этом код ext3 filesystem сообщает JBD о необходимости проведения модификации и запрашивает у JBD разрешение на ее проведение. Журналом управляет JBD от имени драйвера ext3 filesystem. Такое соглашение очень удобно, так как JBD развивается как отдельный, универсальный объект и может использоваться в будущем для журналирования в других filesystems.
    Защита данных в Ext3
    Теперь можно поговорить о том, как ext3 filesystem обеспечивает журнализацию и data, и metadata. Фактически в ext3 имеются два метода гарантирования непротиворечивости.
    Первоначально ext3 разрабатывалась для журналирования full data и metadata. В этом режиме (называется "data=journal" mode), JBD журналирует все изменения в filesystem, связанные как с data, так и с metadata. При этом JBD может использовать журнал для отката и восстановления metadata и data. Недостаток "полного" журналирования в достаточно низкой производительности и расходе большого объема дискового пространства под журнал.
    Недавно для ext3 был добавлен новый режим журналирования, который сочетает высокую производительность и гарантию непротиворечивости структуры файловой системы после сбоя (как у "обычных" журналируемых файловых систем). Новый режим работы обслуживает только metadata. Однако драйвер ext3 filesystem по-прежнему отслеживает обработку целых блоков данных (если они связаны с модификацией метаданных), и группирует их в отдельный объект, называемый transaction. Транзакция будет завершена только после записи на диск всех данных. "Побочный" эффект такой "грубой" методики (называемой "data=ordered" mode) - ext3 обеспечивает более высокую вероятность сохранности данных (по сравнению с "продвинутыми" журналируемыми файловыми системами) при гарантии непротиворечивости metadata. При этом происходит журналирование изменений только структуры файловой системы. Ext3 использует этот режим по умолчанию.
    Ext3 имеет множество преимуществ. Она разработана для максимальной простоты развертывания. Она основана на годами проверенном коде ext2 и получила "по наследству" замечательный fsck tool. Ext3 в первую очередь предназначена для приложений, не имеющих встроенных возможностей по гарантированию сохранности данных. В целом, ext3 - замечательная файловая система и достойное продолжение ext2.Есть еще одна характеристика, положительно отличающая ext3 от остальных journaled filesystems под Linux - высокая надежность.

    Файловая система ext4 является достойным эволюционным продолжением системы ext.

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

    В мире UNIX существует несколько разных видов файловых систем со своей структурой внешней памяти. Наиболее известны традиционная файловая система UNIX System V (s5) и файловая система семейства UNIX BSD (ufs). Файловая система s5 состоит из четырех секций (рисунок 2.2,a). В файловой системе ufs на логическом диске (разделе реального диска) находится последовательность секций файловой системы (рисунок 2.2,b).

    Рис. 2.2. Структура внешней памяти файловых систем s5 и ufs

    Кратко опишем суть и назначение каждой области диска.

    • Boot -блок содержит программу раскрутки, которая служит для первоначального запуска ОС UNIX. В файловых системах s5 реально используется boot -блок только корневой файловой системы. В дополнительных файловых системах эта область присутствует, но не используется.
    • Суперблок - это наиболее ответственная область файловой системы, содержащая информацию, которая необходима для работы с файловой системой в целом. Суперблок содержит список свободных блоков и свободные i-узлы (information nodes - информационные узлы). В файловых системах ufs для повышения устойчивости поддерживается несколько копий суперблока (как видно из рисунка 2.2,b, по одной копии на группу цилиндров). Каждая копия суперблока имеет размер 8196 байт, и только одна копия суперблока используется при монтировании файловой системы (см. ниже). Однако, если при монтировании устанавливается, что первичная копия суперблока повреждена или не удовлетворяет критериям целостности информации, используется резервная копия.
    • Блок группы цилиндров содержит число i-узлов, специфицированных в списке i-узлов для данной группы цилиндров, и число блоков данных, которые связаны с этими i-узлами. Размер блока группы цилиндров зависит от размера файловой системы. Для повышения эффективности файловая система ufs старается размещать i-узлы и блоки данных в одной и той же группе цилиндров.
    • Список i-узлов (ilist) содержит список i-узлов, соответствующих файлам данной файловой системы. Максимальное число файлов, которые могут быть созданы в файловой системе, определяется числом доступных i-узлов. В i-узле хранится информация, описывающая файл: режимы доступа к файлу, время создания и последней модификации, идентификатор пользователя и идентификатор группы создателя файла, описание блочной структуры файла и т.д.
    • Блоки данных - в этой части файловой системы хранятся реальные данные файлов. В случае файловой системы ufs все блоки данных одного файла пытаются разместить в одной группе цилиндров. Размер блока данных определяется при форматировании файловой системы командой mkfs и может быть установлен в 512, 1024, 2048, 4096 или 8192 байтов.