- •Алгоритмические основы программной инженерии Конспекты
- •Глава 4. Файловые системы.
- •§0. Вступление
- •§1. Файлы
- •Представления Unicode
- •Разница между текстовым и бинарным представлением файла
- •Логическая организация файла
- •Физическая организация и адрес файла
- •2. Определение по символьному имени файла его уникального имени.
- •4. Проверка прав доступа для выполнения запрашиваемой операции.
- •§2. Файловая система fat
- •1. Загрузочный сектор с загрузочной записью.
- •2. Зарезервированные секторы.
- •4. Корневой каталог.
- •§3. Файловая система ntfs
Алгоритмические основы программной инженерии Конспекты
Глава 4. Файловые системы.
§0. Вступление
Файловая система — это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами.
Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени.
Общая модель файловой системы
§1. Файлы
Файлы, с точки зрения файловой системы, делятся на обычные файлы, файлы каталоги и специальные файлы.
Обычные файлы:
— текстовые (с ASCII символами, например).
— двоичные.
Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере.
Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл.
============================================
Unicode
Юникод (англ. Unicode) — стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира.
Стандарт состоит из двух основных частей:
1. Универсальный набор символов (англ. Universal character set, UCS). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F.
2. Семейство кодировок (англ. Unicode transformation format, UTF).
Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле.
Представления Unicode
UTF-8 — представление Юникода, обеспечивающее наибольшую компактность и обратную совместимость с 7-битной системой ASCII; текст, состоящий только из символов с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII и может быть отображён любой программой, работающей с ASCII; и наоборот, текст, закодированный 7-битной ASCII может быть отображён программой, предназначенной для работы с UTF-8.
UTF-16 (англ. Unicode Transformation Format) — один из способов кодирования символов из Юникода в виде последовательности 16-битных слов.
UTF-32 (англ. Unicode Transformation Format) — один из способов кодирования символов Юникода, использующий для кодирования любого символа ровно 32 бита. Остальные кодировки, UTF-8 и UTF-16, используют для представления символов переменное число байтов.
В потоке данных UTF-16 младший байт может записываться либо перед старшим (англ. UTF-16 little-endian, UTF-16LE), либо после старшего (англ. UTF-16 big-endian, UTF-16BE). Аналогично существует два варианта четырёхбайтной кодировки — UTF-32LE и UTF-32BE.
Разница между текстовым и бинарным представлением файла
d (decimal) — десятичное число.
h (hexadecimal) — шестнадцатеричное число.
b (binary) — двоичное число.
Текстовое представление файла:
0123
Бинарное представление файла:
48495051d
30313233h
110000110001110010110011b
============================================
Специальные файлы — файлы, ассоциированные с устройствами ввода-вывода, которые позволяют пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла.
Эти команды вначале обрабатываются файловой системой, а затем на этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройствам.
Файлы-каталоги — файлы, в которых содержатся списки содержащихся в них файлах, а также атрибуты этих файлов либо в явном виде (как в MS DOS), либо через указатели на таблицы атрибутов (как в UNIX).
Виды иерархий каталогов:
— Дерево.
— Сеть.
Каталоги образуют дерево, если файлу разрешено находится только в одном каталоге (как в MS DOS) или сеть, если файл может находится в нескольких каталогах (как в UNIX).
Файл-каталог имеет такое же символьное имя, как и любой другой файл.