Сайт о телевидении

Сайт о телевидении

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

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

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

з дисциплини

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

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

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

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 (.) обозначает родительский каталог текущего каталога. Корневой каталог является предком самому себе.

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

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

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

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

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

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

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

c:\Papka1\papka2\uchebnik.doc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кластер

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

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

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

Расширение

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

Системным

Графическим

Архивным

Временным

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

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

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

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

Каталог

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

Кластер

Драйвер

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

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

Считывание

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

Системным

Графическим

Исполняемым

Временным

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

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


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

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


  • -

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


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

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

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


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

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

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

    UNIX не использует букв дисков, или других имен дисков в пути. Это значит, что не нужно писать c:/foo/bar/readme.txt в UNIX.

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

    Точкой монтирования называется каталог, который будет соответствовать корню смонтированной файловой системы. Стандартные точки монтирования включают /usr, /var, /tmp, /mnt и /cdrom. Эти каталоги обычно перечислены в файле /etc/fstab, в котором указаны файловые системы и их точки монтирования. Большинство файловых систем, описанных в /etc/fstab монтируются автоматически, если только для них не указана опция noauto.

    Монтирование файловых систем во FreeBSD

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

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

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

    По некоторым разделам есть определенные соглашения:

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

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

    Слайсы нумеруются с 1 по 4. Номера слайсов следуют за именем устройства, предваряемые строчной s, начиная с 1. Так "da0s1" это первый слайс первого SCSI устройства.

    Может быть только четыре физических слайса на диске, но могут быть логические слайсы нужного типа внутри физических слайсов. Эти дополнительные слайсы нумеруются начиная с 5, так что "ad0s5" это первый дополнительный слайс на первом IDE диске. Эти устройства используются файловыми системами, занимающими весь слайс.

    Слайсы, "эксклюзивно выделенные (dangerously dedicated)" физические устройства и другие устройства содержат разделы, представляемые буквами от a до h. Эти буквы добавляются к имени устройства. "da0a" это раздел a на первом устройстве da, который "эксклюзивно выделен". "ad1s3e" это пятый раздел в третьем слайсе второго IDE диска.

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

    Код Значение
    ad ATAPI (IDE) диск
    da SCSI direct access диск
    acd ATAPI (IDE) CDROM
    cd SCSI CDROM
    fd Floppy disk

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

    Полное описание иерархии файловой системы есть в справочном руководстве (man hier). В таблице ниже перечислены наиболее важные каталоги.

    Каталог Описание
    / Корневой каталог файловой системы.
    /bin/ Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
    /boot/ Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы.
    /boot/defaults/ Конфигурационные файлы с настройками по умолчанию, используемые в процессе загрузки операционной системы
    /dev/ Файлы устройств
    /etc/ Основные конфигурационные файлы системы и скрипты.
    /etc/defaults/ Основные конфигурационные файлы системы с настройками по умолчанию
    /etc/mail/ Конфигурационные файлы для систем обработки почты
    /etc/namedb/ Конфигурационные файлы для утилиты named
    /etc/periodic/ Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно
    /etc/ppp/ Конфигурационные файлы для утилиты ppp
    /mnt/ Пустой каталог, часто используемый системными администраторами как временная точка монтирования.
    /proc/ Виртуальная файловая система, отображающая текущие процессы
    /rescue/ Статически собранные программы для восстановления после сбоев.
    /root/ Домашний каталог пользователя root.
    /sbin/ Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах.
    /tmp/ Временные файлы. Содержимое /tmp обычно теряется во время перезагрузки системы.
    /usr/ Большинство пользовательских утилит и приложений.
    /usr/bin/ Пользовательские утилиты и приложения общего назначения.
    /usr/include/ Файлы стандартных библиотек.
    /usr/libdata/ Файлы данных для различных утилит.
    /usr/libexec/ Системные демоны и утилиты (выполняемые другими программами).
    /usr/local/ Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри /usr/local иерархия каталогов должна следовать стандарту иерархии для /usr. Исключение составляют каталог man, который расположен непосредственно в /usr/local, а не в /usr/local/share, и документация портов, которая расположена в share/doc/port.
    /usr/obj/ Архитектурно-зависимые файлы и каталоги, образующиеся в процессе сборки системы из исходных текстов в /usr/src.
    /usr/ports/ Коллекция портов FreeBSD (опционально).
    /usr/sbin/ Системные утилиты и утилиты администрирования (исполняемые пользователем).
    /usr/share/ Архитектурно-независимые файлы.
    /usr/src/ Исходные тексты BSD и/или программ.
    /usr/X11R6/ Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно).
    /var/ Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей.
    /var/log/ Различные файлы системных журналов.
    /var/mail/ Почтовые ящики пользователей.
    /var/spool/ Файлы очередей печати, почты, и пр.
    /var/tmp/ Временные файлы, которые обычно сохраняются во время перезагрузки системы, если только /var не является файловой системой в памяти.

    Типы и виды файлов

    В отличие от ОС Windows, в UNIX расширение файла не определяет его тип и может вообще отсутствовать. Расширение обычно используется для удобства пользователя и операционной системе не требуется. Вместо этого, UNIX определяет тип файла с помощью магии (подсистемы magic), которая на основании магических чисел (magic numbers), полученных в результате анализа содержимого файла делает вывод о типе файла. Таблица магических чисел постоянно обновляется и уточняется и содержит сигнатуры различных типов файлов. Кроме того, в UNIX существуют различные виды файлов, информация о которых содержится атрибутах файловой системы для этих файлов. Всего в UNIX существует 6 различных видов файлов:

    • Обычный файл (regular file)
    • Каталог (directory)
    • Специальный файл устройства (special device file)
    • FIFO, или именованный канал (named pipe)
    • Символьная ссылка (symbol link)
    • Сокет (socket)

    Файлы устройств и каталог /dev

    Термин "устройство" используется в основном по отношению к аппаратному обеспечению системы, такому как диски, принтеры, графические адаптеры, устройства ввода текста. В UNIX доступ к большинству этих устройств можно получить через специальные файлы устройств, расположенные в каталоге /dev. При добавлении в систему нового устройства или добавлении поддержки дополнительных устройств потребуется создать один или несколько файлов устройств для нового оборудования. Для устранения необходимости в этих действиях в FreeBSD используется Device filesystem, или DEVFS. Она предоставляет доступ к пространству устройств ядра через общую файловую систему. Вместо создания и модификации файлов устройств, DEVFS создает специальную файловую систему.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Вопросы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Упражнения

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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