Что такое операционная система?
Современные операционные системы
Файловые системы
Вы знаете, что данные можно хранить в виде файлов на жёстких дисках, CD- и DVD-дисках, флэш-дисках. Однако жёсткий диск и флэш-диск «ничего не знают» о том, что записанные на них данные в самом деле объединены в файлы и папки.
Вместе с тем когда программа сохраняет файл на диске, она «ничего не знает» о том, в какое место диска эта информация будет записана, указывается только имя файла и каталог. Поэтому между программой и носителем информации необходим «посредник», который определяет, в какое именно место диска будут записаны биты переданных данных. Эту роль выполняет драйвер файловой системы (рис. 6.13).
Рис. 6.13
Файловая система — это порядок размещения, хранения и именования данных на носителе информации.
Файловые системы решают несколько задач:
• определяют правила построения имён файлов и каталогов;
• определяют, как именно размещаются файлы на диске;
• предоставляют программам функции для работы с файлами;
• обеспечивают защиту данных в случае сбоев и ошибок;
• обеспечивают установку прав доступа к данным для каждого пользователя;
• обеспечивают совместную работу с файлами (когда один пользователь открыл файл, для остальных устанавливается режим «только чтение»).
С точки зрения файловой системы, диск делится на кластеры (блоки) размером от 512 байтов до 64 Кбайт (кластер — это один или несколько секторов диска). Каждому файлу выделяется целое число кластеров. Файлу размером 1 байт выделяется целый кластер, остальное место считается занятым, но фактически не используется. Поэтому при большом размере кластера хранить мелкие файлы невыгодно, значительная часть места пропадает впустую. Вместе с тем при увеличении размера кластера скорость чтения и записи больших файлов повышается, кроме того, увеличивается и максимальный объём диска, который поддерживает файловая система.
В операционной системе Linux применяются файловые системы ext3 и ext4. Они поддерживают журналирование, помогающее сохранить данные в случае сбоев. Его суть в том, что перед выполнением операции с файлами ОС записывает «план действий» в специальный журнал. Когда операция полностью закончена, эта запись из журнала удаляется. Если во время операции произошел сбой (например, отключение питания), по записям в журнале можно сразу определить, какие файлы могли быть затронуты.
Таким образом, журналируемая файловая система устойчива к сбоям.
В системе Windows применяют файловые системы NTFS и FAT32. Хотя FAT32 в некоторых случаях работает быстрее и требует меньше памяти, она считается устаревшей.
В отличие от FAT32 файловая система NTFS:
• обеспечивает защиту от сбоев с помощью журналирования (в FAT32 журналирования нет);
• позволяет назначить права доступа к файлам и папкам (в FAT32 каждый пользователь может просматривать и изменять данные всех остальных);
• позволяет задать квоту (ограничение) на использование диска каждому пользователю;
• позволяет использовать сжатие файлов и папок без дополнительных программ.
В операционной системе Mac OS применяется файловая система HFS (англ. Hierarchical File System — иерархическая файловая система).
Первые файловые системы были одноуровневыми, т. е. все файлы хранились в одном каталоге (на дискете). С увеличением ёмкости дисков (и количества файлов!) это стало неудобно, поэтому разработали иерархические (многоуровневые) файловые системы, где файлы группируются в каталоги, а каталоги вложены друг в друга. Такая структура называется деревом каталогов.
В операционной системе Linux существует один корневой каталог (обозначаемый как «/»), остальные файлы и каталоги вложены в него. Любое устройство (включая жёсткие диски, принтеры, сканеры и т. п.) в Linux рассматривается как файл, т. е. входит в состав единой иерархической файловой системы (рис. 6.14).
Рис. 6.14
Вот что хранится в каталогах, показанных на схеме на рис. 6.14:
• bin — команды операционной системы;
• boot — ядро ОС и данные для загрузки;
• dev — файлы устройств, подключённых к ОС; устройства присоединяются к файловой системе (монтируются) с помощью специальной команды;
• etc — файлы с настройками ОС и некоторых программ;
• home — домашние каталоги пользователей;
• usr — установленные пакеты программ;
• var — часто меняющиеся данные, например журналы ОС.
Чтобы указать путь к файлу или каталогу, перечисляют (начиная от корня) все каталоги, в которых он находится, разделяя их символом «/» («слэш»). Например, адрес домашнего каталога пользователя petya запишется как /home/petya, а адрес файла qq.txt в этом каталоге — как /home/petya/qq.txt.
Дерево каталогов в операционной системе Windows строится отдельно для каждого диска (рис. 6.15).
Рис. 6.15
В качестве разделителя при записи адреса файла или каталога (папки) используют обратный слэш «\», например: C:\WINDOWS\System32\shell32.dll.
Для работы с группами файлов применяются маски или шаблоны (англ, wildcards). Кроме символов, которые допустимы в именах файлов, маска может включать два специальных символа: знак «*» заменяет любое количество любых символов, а знак «?» — один любой символ. Приведём несколько примеров:
Маски чаще всего применяют для поиска файла по известной части имени или по расширению. Например, для того чтобы найти все документы Microsoft Word, имя которых содержит слово «отчет», можно использовать маску *отчет*.doc*. При этом будут найдены, например, такие файлы:
отчет2011.doc
Самый_важный_отчет.docx
Новый_отчет_март_2011.docx
В операционной системе Windows заглавные и строчные буквы в названиях файлов и каталогов не различаются, т. е. к файлу с именем Вася.txt можно обращаться как вaся.txt, вAcЯ.txt, BaCя.txt или ВАСЯ.txt. В Unix-подобных ОС (Linux, Mac OS) это не так, все перечисленные имена файлов — разные, и такие файлы могут быть созданы в одном каталоге.
Нужно отметить, что файловая система не обязательно напрямую связана с жёстким диском или другим физическим носителем информации. Существуют, например, сетевые файловые системы, которые являются просто способом обращения к файлам на удалённых компьютерах.
Следующая страница Вопросы и задания