Имена файлов

ВВЕДЕНИЕ

Лекция

Файловые системы (2 часа)

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

Краткий план:

1. Имена файлов

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

3. Логическая организация файла

4. Физическая организация и адрес файла

5. Права доступа к файлу

6. Форматы файлов

7. Кэширование диска

8. Общая модель файловой системы

9. Современные архитектуры файловых систем

10. Примеры файловых систем.

11. Процессы и нити в распределенных системах

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

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

Ú совместное использование файлов несколькими пользователями и процессами.

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

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

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

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

Файл - это поименованная совокупность байтов, записанная на носитель информации (жесткий или гибкий магнитный диск, магнитную ленту, CD-ROM, CD-RW, USB дискета и т.д.). Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT16 длина имен ограничивается известной схемой «8.3» (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно вспомнить, содержимое файла. Современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

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

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

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