Файловая система позволяет систематизировать программы и данные и организовать упорядоченное управление этими объектами.

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

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

Файловая система – это система управления данными.

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

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

Файловая система (назначение):

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

Файловая структура

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

Используется древовидная структура каталогов – дерево каталогов . Заимствована у Unix. Иерархическая структура – структура системы, части (компоненты) которой связаны отношениями включения или подчинения.

Иерархическая структура изображается ориентированным деревом, в котором вершины соответствуют компонентам, а дуги – связям.

дерево каталогов диска G

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

Деревья используются при описании и проектировании иерархических структур.

Корень – начальная позиция, листья – заключительная позиция.

Разделы

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

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

Имя диска – обозначение логического диска; запись в корневом каталоге.

Логические диски (разделы) обозначаются латинскими буквами A, B, C, D, E, … (32 буквы от A до Z).

Буквы A, B зарезервированы для обозначения дискет.

С – жесткий диск, обычно с которого производится загрузка ОС.

Остальные буквы – логические диски, компакт-диски и т.д. Максимальное количество логических дисков для ОС Windows – бесконечное.

В таблице разделов указывается расположение начала и конца этого раздела и число секторов в этом разделе (место и размер).

Файловая структура логического диска

Чтобы обратиться к информации на диске, находящейся в файле, надо знать физический адрес первого сектора (№ поверхности + № дорожки + № сектора), общее количество кластеров, занимаемое данным файлом, адрес следующего кластера, если размер файла больше, чем размер одного кластера

Элементы файловой структуры:

    стартовый сектор (начальной загрузки, Boot-сектор);

    таблица размещения файлов (FAT – File Allocation Table);

    корневой каталог (Root Directory);

    область данных (оставшееся свободным дисковое пространство).

Boot -сектор

Boot -сектор – первый (начальный) сектор диска. Находится на 0- стороне, 0-дорожке.

Boot-сектор содержит служебную информацию:

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

    местоположение FAT-таблицы (в вoot-секторе находится указатель на то, где расположена FAT-таблица);

    размер FAT-таблицы;

    количество FAT-таблиц (всегда есть как минимум 2 копии таблицы для обеспечения надежности и безопасности, т.к. разрушение FAT ведет к потере информации и трудно восстанавливается);

    адрес начала корневой директории и ее максимальный размер.

В вoot-секторе находится блок начальной загрузки (загрузчик) – загрузочная запись Boot Record.

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

FAT (таблица размещения файлов)

FAT (File Allocation Table) – таблица размещения файлов. В ней определено, какие участки диска относятся к каждому файлу.Область данных диска представлена в ОС как последовательность пронумерованных кластеров.

FAT – это массив элементов, адресующих кластеры области данных диска. Каждому кластеру области данных соответствует один элемент FAT. Элементы FAT служат в качестве цепочки ссылок на кластеры файла в области данных.

Структура таблицы размещения файлов:

FAT состоит из элементов длиной 16 /32/64 бита. Всего в таблице может быть до 65520 таких элементов, каждый из них (кроме первых двух) соответствует кластеру диска. Кластер является той единицей, в которой распределяется пространство в области данных на диске для файлов и каталогов. Первые два элемента таблицы (с номерами 0 и 1) зарезервированы, а каждый из остальных элементов таблицы описывает состояние кластера диска с тем же номером. Элемент может указывать, что кластер свободен, что кластер дефектный, что кластер принадлежит файлу и является последним кластером в файле. Если кластер принадлежит файлу и не является его последним кластером, то элемент таблицы содержит номер следующего кластера в этом файле.

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

Для разных ОС необходимы разные версии FAT

Windows 95 FAT 16, FAT 32

Windows NT (XP) NTFS

Novell Netware TurboFAT

UNIX NFS,ReiserFS

Логическая структура носителя информации

КОНТРОЛЬНА РОБОТА

з дисциплини

" Информатика и компьютерная техника" на тему:

"Операционные системы"

"Файловые системы"

1. Операционные системы

2. Файловые системы

3. Файловые системы и имена файлов

Список литератури

1. Операционные системы

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

При включении компьютера операционная система загружается в память раньше остальных программ и затем служит платформой и средой для их работы. Помимо вышеуказанных функций ОС может осуществлять и другие, например, предоставление пользовательского интерфейса, сетевое взаимодействие и т.п. С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются ОС семейства Microsoft Windows и Windows NT, Mac OS и Mac OS X, системы класса UNIX, и Unix подобные (особенно GNU/Linux).

Операционные системы могут быть классифицированы по базовой технологии ([Юникс] -подобные или подобные Windows), типу лицензии ([собственническое программное обеспечение|проприетарная] или [открытое программное обеспечение|открытая]), развивается ли в настоящее время (устаревшие DOS или NextStep или современные GNU/Linux и Windows), для рабочих станций (DOS, Apple), или для серверов (), [операционная система реального времени|ОС реального времени] и [встроенная операционная система|встроенные ОС] (, ), , или специализированные (управление производством, обучение, и т. п). Назначение и основные возможности программы MS EXCEL. Интерфейс программы. Основные элементы интерфейса. Понятие электронной таблицы, ячейки, строки, столбца, система адресации. Движение по табличному полю. Ввод данных. Типы данных. Редактирование содержимого ячейки. Изменение ширины и высоты ячейки. Свойства ячейки (команда “Формат ячеек”).

2. Файловые системы

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

Основные функции файловой системы можно разделить на две группы:

Функции для работы с файлами (создание, удаление, переименование файлов и т.д.)

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

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

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

Принцип организации файловой системы - табличный. Данные о том, в каком месте на диске записан файл, хранится в таблице размещения файлов (File Allocation Table, FAT).

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

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

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

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

Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). Затем в MS-DOS была введена 16-разрядная версия FAT для более крупных дисков.

Операционные системы MS DOS, Win 95, Win NT реализуют 16 - разрядные поля в таблицах размещения файлов. Файловая система FAT32 была введена в Windows 95 OSR2 и поддерживается в Windows 98 и Windows 2000.

FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт.

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

В Windows XP применяется FAT32 и NTFS. Более перспективным направлением в развитии файловых систем стал переход к NTFS (New Technology File System - файловая система новой технологии) с длинными именами файлов и надежной системой безопасности.

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

По способам именования файлов различают “короткое" и “длинное” имя.

Согласно соглашению, принятому в MS-DOS, способом именования файлов на компьютерах IBM PC было соглашение 8.3., т.е. имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводится 8 символов, а на его расширение - 3 символа.

Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита. Имена файлов, записанные в соответствии с соглашением 8.3, считаются “короткими".

С появлением операционной системы Windows 95 было введено понятие “длинного" имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. “Длинное” имя может содержать любые символы, кроме девяти специальных: \ /: *? “ < > |.

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

Уникальность имени файла обеспечивается тем, что полным именем файла считается собственное имя файла вместе с путем доступа к нему. Путь доступа к файлу начинается с имени устройства и включает все имена каталогов (папок), через которые проходит. В качестве разделителя используется символ “\” (обратный слеш - обратная косая черта). Например: D: \Documents and Settings\ТВА\Мои документы\lessons-tva\ robots. txt Несмотря на то, что данные о местоположении файлов хранятся в табличной структуре, пользователю они представляются в виде иерархической структуры - людям так удобнее, а все необходимые преобразования берет на себя операционная система.

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

Компонент под названием имя файла является строкой длиной до 255 символов. Эти имена хранятся в файле особого типа, который называется каталогом . Информация о файле в каталоге называется записью каталога и включает, кроме имени файла, указатель на сам файл. Записи каталога могут ссылаться как на другие каталоги, так и на обычные файлы. Таким образом формируется иерархия каталогов и файлов, которая и называется файловой системой filesystem ;

Рисунок 2-2. Небольшая файловая система

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

Файловая система образует дерево, начало которого находится в корневом каталоге , иногда называемому по имени слэш , которое соответствует символу одинарной наклонной черты (/). Корневой каталог содержит файлы; в нашем примере на Рисунке 2.2, он содержит vmunix, копию выполнимого объектного файла ядра. В нем также расположены каталоги; в этом примере он содержит каталог usr. Внутри каталога usr располагается каталог bin, который в основном содержит выполнимый объектный код программ, таких, как ls и vi.

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

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

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

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

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

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



Как работает файловая система. Для каждого файла Windows создает путь, представляющий собой имя локального диска и названия каталогов и подкаталогов. Таким образом, путь – это своего рода адрес, по которому программа находит файл. Путь к некоторым полезным файлам вы найдете во врезке внизу. Когда программе требуется определенный файл, она посылает Windows запрос, который операционная система перенаправляет файловой системе. Используя путь, файловая система определяет физическое расположение объекта на жестком диске и передает его Windows. Файловая система создает базу данных, которая привязывает различные адреса файлов на жестком диске к соответствующим путям. В популярной файловой системе NTFS подобная база данных называется MFT (Master File Table – главная файловая таблица).

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

Рис. 3.8. Копирование файлов

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

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

Какие существуют файловые системы. В компьютерах используются пять типов файловых систем.

FAT16 (File Allocation Table 16). Была разработана в 1983 году и могла корректно работать только с файлами размером до 2 Гб. Допускалось использование накопителей данных емкостью не более 4 Гб и хранение не более 65 536 файлов. В настоящее время эту устаревшую файловую систему заменили FAT32 и NTFS.

FAT32. В связи с тем, что объемы данных, которые хранились на жестком диске, постоянно росли, в 1997 году была введена фай­ловая система FAT32. Она поддерживает файлы размером не более 4 Гб, жесткие диски емкостью приблизительно до 8 Тб и позволяет хранить около 270 млн файлов. Помимо Windows 95 и выше файловую систему FAT32 могут использовать также и другие операционные системы, например Mac OS X от Apple. В настоящее время средний размер файла значительно увеличился – так, объем видеофильма много больше 4 Гб, поэтому FAT32 имеет смысл использовать только на сменных накопителях (флэшках или внешних жестких дисках).

NTFS (New Technology File System). В настоящее время это стандартная файловая система для Windows. Она может управлять файлами с немыслимым до настоящего времени размером в 16 Тб и поддерживает жесткие ди­ски емкостью до 256 Тб. Файловая система позволяет хранить практически неограниченное количество файлов – более 4 млрд. На случай, если будут использоваться файлы больших размеров и жесткие диски большей емкости, функции NTFS можно расширить. Еще одним преимуществом системы является журналирование. С помощьюданной технологии все изменения файлов NTFS записывает вначале в отдельную область на жестком диске. Это позволяет избежать потери данных в процессе их сохранения, например при возникновении перебоя в подаче электроэнергии.

exFAT (Extended File Allocation Table). Была создана для карт памяти, чтобы обеспечить возможность сохранения файлов большего размера. Однако exFAT ра­ботает только в Windows с пакетом обновления ServicePack 2 и выше, в Windows Vista с пакетом обновления ServicePack 1 или в Windows 7. Поскольку данную файловую систему поддерживает только Windows, она практически не применяется.

HSF+ (Hierarchical File System+). Стандартная файловая система в операционных системах Mac OS. Как и NTFS, она подходит для работы с очень большими файлами и жесткими дисками. Это журналируемая файловая система. Тому, кто захочет использовать в Windows жесткий диск с HSF+, необходимо установить дополнительную программу, например MacDrive.

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

Рис. 3.9. Операции над файлами

Можно ли изменить файловую систему. Да, но для этого необходимо отформатировать жесткий диск. Какие файловые системы будут предлагаться на выбор, зависит от установлвенной операционной системы или программы, с помощью которой выполняется форматирование. В Windows, например, это FAT32 и NTFS. При использовании жесткого диска исключительно в компьютерах на базе Windows рекомендуется ввиду всех перечисленных достоинств в качестве файловой системы выбрать NTFS. Если в целях обмена данными вы планируете подключать внешний жесткий диск к компьютеру Mac, единственно правильным выбором станет FAT32. При этом возникает следующая проблема: хотя при использовании FAT32 Windows может работать с жесткими дисками любой емкости, однако в процессе форматирования максимальный размер раздела или жесткого диска ограни­чивается ею до 32 Гб. Выход: с помощью программ для работы с жесткими дисками, такими как Paragon Disk Manager, удастся отформатировать весь жесткий диск в FAT32.

Что такое библиотеки. В Windows 7 появилась дополнительная функция управления файлами – библиотеки. Доступны четыре типа библиотек: Видео, Документы, Изображения и Музыка. Они показывают все файлы соответствующего типа в одной папке, независимо от их местоположения. И хотя файлы физически располагаются не в папках библиотек, с ними можно выполнять любые операции, будь то копирование, переименование и удаление, непосредственно в соответствующей библиотеке. Некоторые программы, среди них Picasa, также используют библиотеки для рационального размещения файлов. Они могут даже самостоятельно выполнять поиск изображений или других файлов на жестком диске.

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

Рис. 3.10. Организация доступа к данным

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

Рис. 3.11. Работа с файловой системой

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

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

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

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

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

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

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

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

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

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

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

    файловая система операционной системы 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.

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

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

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

Виды файловых систем
В процессе развития операционных систем и накопителей создавалось множество файловых систем. Сегодня для работы с жёсткими дисками и флеш-накопителями часто используются следующие:
FAT32 . Максимальный поддерживаемый размер диска - 8 Тб. Файловая система работает с файлами размером не больше 4 Гб.
NTFS . Максимальный поддерживаемый размер диска - 16 Эб (эксабайт). Поддерживает работу с файлами размером до 16 Тб.
Ext3, ext4 . Используются в операционных системах Linux. Максимальный размер тома составляет 32 Тб для ext3 и 1 Эб для ext4. Поддерживается работа с файлами размером до 2 и 16 Тб соответственно.
HFS Plus . Используется в системах OS X. Максимальный размер тома - 8 Эб, максимально поддерживаемый размер файла тоже составляет 8 Эб.

Для работы с лазерными дисками используются:
ISO9660 . Максимальный размер файла - 2 Гб.
UDF . Максимальный размер файла - 1 Эб.

Особенности FAT32 и NTFS
Наиболее часто используемыми файловыми системами являются FAT32 и NTFS по причине широкого распространения операционной системы Windows. Для рядового пользователя может быть не важно, каким образом устроена и работает та и другая ФС, для него в контексте бытового использования могут быть принципиальны максимальные поддерживаемые размеры тома и файла. По этим параметрам FAT32 уступает NTFS, как указано выше. Кроме того, при использовании FAT32 возможна потеря данных при отключении подачи электрического питания на диск (сама файловая система часто остаётся целой).

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

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