Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП теория 4 семестра - методичка слайдов Бранцевич Петр Юльянович 2009.doc
Скачиваний:
160
Добавлен:
15.06.2014
Размер:
1.75 Mб
Скачать

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

2.1 Файлы

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

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

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

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

Корнем этого дерева является корневой каталог. Его имя ‘ / ’

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

Пример:

/home/stud/prog1.c

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

Важно, что имя файла является атрибутом файловой системы, а не набора данных, на каком- то носителе. Каждый файл имеет метаданные для связи с ним.

Метаданные – набор данных определяющих характер файла.

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

2.2 Типы файлов

В операционной системе Unix такие типы:

1 обычный файл

2 каталог

3 файлы устройства

4 файлы символичной связи (ссылки)

5 файлы именованных каналов (каналов FIFO)

6 сокеты

3-6 являются специальными типами

2.2.1 Обычные файлы

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

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

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

Длину файла можно изменить при помощи операции усечения файла.

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