Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Акуленок_часть1.doc
Скачиваний:
43
Добавлен:
13.11.2019
Размер:
1 Мб
Скачать
☆

4.2.4. Блоки данных и свободные блоки

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

4.3. Типы файлов

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

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

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

  • обычные – файлы общего назначения, используемые для хранения программ и данных любого типа;

  • каталоги – служат для размещения справочной информации о размещении файлов, принадлежащих данному каталогу;

  • устройства – ассоциируются с устройствами ввода–вывода;

  • символические ссылки – содержат ссылки на другие файлы;

  • именованные каналы – служат для обмена данными между процессами;

  • сокеты – служат для реализации сетевого взаимодействия.

4.3.1. Обычные файлы

Обычные (или регулярные) файлы (ordinary files) – это наиболее общий тип файлов, содержащие данные в некотором формате. Для операционной системы обычные файлы реально представляют собой просто последовательность байтов на устройстве внешней памяти, на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную информацию. Файловая система не предписывает обычным файлам какую–либо структуру, обеспечивая на уровне пользователей представление обычного файла как последовательности байтов. Используя базовые системные вызовы (или функции библиотеки ввода/вывода, которые мы рассмотрели в разделе 3.7), пользователи могут, как угодно структурировать файлы. В частности, многие СУБД хранят базы данных в обычных файлах ОС UNIX. Для некоторых файлов, которые должны интерпретироваться компонентами самой операционной системы, UNIX поддерживает фиксированную структуру. Наиболее важным примером таких файлов являются объектные и выполняемые файлы. Структура этих файлов поддерживается компиляторами, редакторами связей и загрузчиком. Однако, эта структура неизвестна файловой системе. Для нее такие файлы по–прежнему являются обычными файлами.

4.3.2. Каталоги

Каталоги (directories) – это специальные файлы, которые хранят имена других файлов (в том числе и имена других каталогов). В нем также для каждого элемента хранится номер индексного дескриптора (inode number), который определяет, где находятся информация о файле и адреса физического хранения данных в файловой системе.

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

4.3.3. Специальные файлы

Специальные файлы (special files) – это файлы устройств, которые представляют интерфейс между ядром системы и реальным внешним периферийным устройством. Эти специальные файлы обеспечивают доступ к физическим устройствам. В UNIX различают символьные (character special device) и блочные (block special device) файлы устройств. Доступ к устройствам осуществляется путем открытия, чтения и записи в специальный файл устройства.

Блочные специальные файлы ассоциируются с такими внешними устройствами, обмен с которыми производится блоками байтов данных, размером 512, 1024, 4096 или 8192 байтов. Типичным примером подобных устройств являются магнитные диски. Файловые системы всегда находятся на блочных устройствах.

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

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

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