Файловые системы функции и назначение. Дайте определение термину «цилиндр». Иерархическая структура файловой системы

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

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

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

В широком смысле понятие "файловая система" включает:

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

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

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

Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

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

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

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

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

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

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

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

21.2.1 Обзор файловой системы FAT

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

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

Цилиндр – это совокупность всех дорожек, принадлежащих разным поверхностям и находящихся на равном удалении от оси вращения.

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

Поскольку размер FAT –таблицы ограничен, то для дисков, размер которых превышает 32 Мбайт, обеспечить адресацию к каждому отдельному сектору не представляется возможным. В связи с этим группы секторов условно объединяются в кластеры (блоки).

Кластер – наименьшая единица адресации к данным. Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска.

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

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

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

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

Размер кластера, в отличие от размера сектора, не фиксирован и зависит от емкости диска. Файловая система ОС, реализующих 16-разрядные поля в таблицах размещения файлов, называется FAT 16. Она позволяет разместить в FAT –таблицах не более 216 записей о местоположении единиц хранения данных и, соответственно, для дисков объемом от 1 до 2 Гбайт длина кластера составляет 32 Кбайт (64 сектора). Это не вполне рациональный расход рабочего пространства, поскольку любой файл (даже очень маленький) полностью оккупирует весь кластер, которому соответствует только одна адресная запись в таблице размещения файлов. С дисками же размером более 2 Гбайт файловая система FAT 16 вообще работать не может.



Файловая система ОС, реализующих 32-разрядные поля в таблицах размещения файлов, называется FAT 32

Каталог FAT не имеет определенной структуры, и файлы записываются в первом обнаруженном свободном месте на диске. Кроме того, файловая система FAT поддерживает только четыре файловых атрибута: «Системный», «Скрытый», «Только чтение» и «Архивный».

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

21.2.2 Обзор файловой системы NTFS

Файловая система NTFS (New Technology File Sistem ) была выпущена вместе с Windows NT 3.5 в 1993 году. По сравнению с FAT, NTFS обладает достоинствами: эффективность, надежность и совместимость. Файловая система NTFS применяется в операционной системе Windows NT/2000/XP/6/7.

Как и любая другая система, NTFS делит все полезное место на кластеры. NTFS поддерживает почти любые размеры кластеров – от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт.

При установке NTFS , диск разделяется на три неравные части: первая отводиться под MFT (Master File Table – общая таблица файлов), называется MFT –зоной и занимает порядка 12% от общего размера диска. MFT лежит в начале диска и занимает около 1 Кбайт, каждая запись в MFT соответствует какому-либо файлу. По своей сути это каталог всех файлов находящихся на диске. Любой элемент данных в NTFS рассматривается как файл, даже MFT.

MFT –зона всегда держится пустой – это делается для того, чтобы самый главный, служебный файл (MFT ) не фрагментировался при своем росте.

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

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

Первые 16 файлов (метафайлы) в MFT – зоне являются особой кастой. В них содержится служебная информация, они имеют фиксированное положение и они недоступны даже операционной системе. Кстати, первым из этих 16 является сам MFT – файл.

Рисунок 21.1

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

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

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

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

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

Система восстановления NTFS гарантирует корректность файловой системы, а не данных.

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

Перечислим основные функции файловой системы.

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти.

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

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

4. Обеспечение защиты от несанкционированного доступа.

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

6. Обеспечение высокой производительности.

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

37. Простейшая таблица оглавления тома и её элементы

Файловая система включает в себя таблицу содержания и область данных – совокупность блоков на диске, идентифицируемых своими номерами / адресами. Пример простейшей (абстрактной) таблицы содержания, оглавления тома (диска, пакета дисков), которая в разных ОС имеет различные наименования – VTOC – Volume Table of Content(Таблица Содержания Тома), FAT – File Allocation Table (Таблица Размещения Файлов), FDT – File Definition Table (Таблица Определения Файлов) и т. п., приведена на рис. 1.

Рис. 1. Простейшая таблица оглавления тома

Она состоит из трех областей:

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

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

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

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

Перечислим особенности ситуации, зафиксированной на рис.1. в простейшей (искусственной) файловой системе.

File_l занимает 6 блоков, это число больше максимального, по­этому адрес блока № 6 (23) размещен в таблице переполнения;

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

Имеются следующие конфликтные ситуации:

· File_3 не содержит ни одного блока (следовательно, файл был удален, но заглавная запись сохранилась);

· File_4 и File_l ссылаются на блок № 3. Это ошибка, посколь­ку каждый блок должен быть закреплен за единственным фай­лом;

· в списке свободных блоков содержатся номера блоков № 12 (помеченный как сбойный) и № 13 (распределенный под File_1).

38. Логическая структура разделов диска на примере IBM- и MS-совместимых файловых систем


Логическими дисками D и E

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

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

Запись расширенного раздела называют SMBR (Secondary Master Boot Record ). Отличие этой записи заключается в том, что она не имеет загрузчика, а таблица разделов состоит из двух записей: основной раздел и расширенный раздел.

39. Файловая система FAT. Структура тома FAT

40. Файловая система NTFS. Структура тома NTFS

41. Реестр ОС Windows

42. Операционные системы семейства Windows NT

43. Некоторые архитектурные модули Windows NT

44. Управление жесткими дисками в Windows NT

45. Проективные операционные системы, их принципы, преимущества, недостатки

46. Процедурные операционные системы, их принципы, преимущества, недостатки

47. История развития и идеология построения ОС Unix

48. Структура ОС Unix

49. Пользовательские интерфейсы Unix

50. Диспетчеризация процессов (задач) в Unix

51. ОС Linux и ее основные преимущества

52. Реализация графического режима в ОС Linux

53. Основные принципы работы в ОС Linux

54. Основные файлы конфигурации ОС Linux

55. Работа с дисковыми накопителями в ОС Linux

56. Приложения для ОС Linux

Файловая система – это совокупность средств и правил размещения и перемещения файлов на внешних носителях.

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

Расположение файлов на жестком диске

Жесткий диск разбивается на сектора. Емкость дорожки в пределах сектора обычно равна 512 байт.

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

Существуют файловые системы с фрагментированным и не фрагментированным расположением файла.

Не фрагментированное расположение файла

Файл располагается в смежных кластерах

Фрагментированное расположение файла

Файл может располагаться в несмежных кластерах.

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

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

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

Файловые системы ОС Windows являются системами с фрагментированным расположением файла.

Диски, папки, файлы. Логическая структура файловой системы

Системы учета файлов в современных файловых системах как правило строятся по иерархическому принципу: диск (устройство памяти) – папка – файл. Дискам (устройствам) в системе даются логические имена. Например, один физический жесткий диск обычно при форматировании разбивается на несколько логических с именами C, D, E..., устройство оптических дисков получает логическое имя F и т.д.

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

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

Путь к файлу – это последовательность папок, в которых находится файл. Имена папок в пути к файлу разделяются символом "\" – "слэш".

Полное имя файла состоит из пути к файлу и собственно имени файла. Например:

    D:\Факультет\Группа\Иванов\реферат.doc;

    C:\WINDOWS\MEDIA\ringin.wav.

Так, в первом примере путь к файлу: D:\Факультет\Группа\Иванов, имя файла: реферат.doc.

23. Параметры файлов

К параметрам файлов относятся:

Имя файла служит для идентификации файла. В ОС Windows имя может содержать до 255 символов, в том числе символы русского алфавита, цифры, специальные символы (за исключением некоторых). Например:

Мой файл 25

Символы после последней точки образуют так называемое расширение имени и определяют тип файла. Расширение обычно присваивает та программа, с помощью которой создается файл. Например: .doc – присваивает MS Word;

Xls – присваивает Excel;

Bmp – присваивает графический редактор Paint.

Тип файла свидетельствует о характере хранимых данных. Например:

документ MS Word;

книга Excel;

растровый рисунок bmp;

звукозапись в формате mp3.

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

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

    создание новой папки;

    удаление папки (файла);

    копирование папки (файла);

    перемещение папки (файла);

    переименование папки (файла).

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

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

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

Саморазмножение – создание вирусом своих копий, внедрение их в др. программы или файлы.

Сп-бы защиты:

    проверка носителей с помощью антивирусных программ

    отказ от работы с носителями сомнительного происхождения

    немедленное удаление сомнительных ненужных программ, полученных по Интернету.

Виды антивирусных программ: сканеры и ревизоры.

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

Меры защиты:

1) профилактика

2) диагностика

3) лечение.

Виды антивир. программ:

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

2) Доктора или фаги, программы-вакцины – обнаруживают и обезвреживают вирусы, т.е. удаляют из файла тело программы вируса, возвращая файлы в исх. состояние. Требуется регулярное обновление.

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

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

5) Вакцины или иммунизаторы – предотвращают заражение рядом известных вирусов, путем их вакцинации.

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

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

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



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

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

Функции файловых систем

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

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

В широком смысле понятие «файловая система» включает:

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

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

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

Основные функции файловой системы:

1. Идентификация файлов. Связывание имени файла с выделенным ему пространством внешней памяти

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

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

4. Обеспечение защиты от НСД.

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

6. Обеспечение высокой производительности.

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

Имена файлов

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

Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c(файл, содержащий текст программы на языке Си) или autoexec.bat (файл, содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями.

Пользователи (или процессы) дают файлам символьные имена, при этом учитываются накладываемые ОС ограничения, как на используемые в имени символы, так и на длину имени. Например, в ОС Unix учитывается регистр при вводе имени файла (case sensitive), а в MS-DOS - нет. В популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Так, в соответствии со стандартом POSIX, в ОС UNIX допускаются имена длиной до 255 символов, та же самая длина устанавливается для имен файлов и в ОС Windows NT для файловой системы NTFS.

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

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

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

Типы файлов

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

Обычные файлы в свою очередь подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы. Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями.cрр, .pas, .txt - ASCII файлы, файлы с расширениями.exe - выполнимые, файлы с расширениями.obj, .zip - бинарные и т.д.

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

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

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

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

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

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

· информация о разрешенном доступе,

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

· владелец файла,

· создатель файла,

· признак "только для чтения",

· признак "скрытый файл",

· признак "системный файл",

· признак "архивный файл",

· признак "двоичный/символьный",

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

· признак блокировки,

· длина записи,

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

· длина ключа,

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

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

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

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

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

Отдельная проблема способ хранения атрибутов файла. Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS-DOS (рис.36), или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX (рис. 37).

Рис. 36. Вариант записи в директории MS-DOS

Рис. 37. Вариант записи в директории Unix

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

Число директорий зависит от системы. В ранних ОС имелась только одна корневая директория, затем появились директории для пользователей (по одной директории на пользователя). В современных ОС используется произвольная структура дерева директорий.

Каталоги могут образовывать иерархическую структуру за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня (рис. 38). Иерархия каталогов может быть деревом или сетью.

Рис. 38. Логическая организация файловой системы
а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)

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

Поиск в директории

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

Линейный поиск

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

Хеш таблица

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

Другие методы поиска

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

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


Описание общих характеристик файловой системы

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

Виды файловой системы

На каждом компьютерном устройстве применим особый тип ФС. Особо распространенные следующие ее типы:

— предназначенная для жестких дисков;
— предназначенная для магнитных лент;
— предназначенная для оптических носителей;
— виртуальная;
— сетевая.

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

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

В зависимости от того какие свойственные особенности присущи системе, с такими данными она и будет эффективно работать. А это и есть предпосылкой классификации ее на типы и виды.

Взгляд на файловую систему с точки зрения программирования

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

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

Ниже мы рассмотрим все существующие на сегодня ФС и их достоинства и недостатки.

ФС — FAT

Это самый древний тип файловой системы, который был разработан еще в далеком 1977 году. Она работала с операционкой ОС 86-DOS и не способна работать с жесткими носителями информации, и рассчитана на гибкие их типы и хранение информации до одного мегабайта. Если ограничение размера инфы сегодня не актуально, то иные показатели остались востребованными в неизменном виде.

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

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

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

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

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

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

ФС — NTFS

С операционкой ОС Windows NT работает современная файловая система NTFS, в принципе на нее она и была нацелена. В ее составе действует утилита convert, которая отвечает за конвертацию томов с формата HPFS или FAT, в формат томов NTFS.

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

Эта файловая система позволяет создавать информационные файлы с именами длинной в 255 символов.

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

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

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

ФС — EFS

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

ФС – RAW

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

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

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

ФС – UDF

Это файловая система для оптических дисков, котрая имеет свои особенности:

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

Работает она с операционкой Windows XP.

ФС — EXFAT

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

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