Что такое файловая система компьютера
Одной из компонент ОС является файловая система – основное хранилище системной и пользовательской информации. Все современные ОС работают с одной или несколькими файловыми системами, например, FAT (File Allocation Table), NTFS (NT File System), HPFS (High Performance File System), NFS (Network File System), AFS (Andrew File System), Internet File System.
Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися во внешней памяти, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие «файловая система» включает:
– совокупность всех файлов на диске;
– наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
– комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файловая система используется обычно как при загрузке ОС после включения компьютера, так и в процессе работы. Файловая система выполняет следующие основные функции:
– определяет возможные способы организации файлов и файловой структуры на носителе;
– реализует методы доступа к содержимому файлов и предоставляет средства работы с файлами и файловой структурой. При этом доступ к данным может быть организован файловой системой как по именам, так и по адресам (номер сектора, поверхности и дорожки носителя);
– отслеживает свободное пространство на носителе.
Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жестком диске или блоке флэш-памяти) он записан. Все, что знает программа – это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы, весь диск представляет собой набор кластеров (участков памяти) размером от 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные. Чтобы ясно представлять, как же хранятся данные на дисках, и как ОС обеспечивает доступ к ним необходимо представлять, хотя бы в общем виде логическую структуру диска.
3.1.5 Логическая структура диска
Для того чтобы компьютер мог хранить, читать и записывать информацию жесткий диск предварительно должен быть размечен. На нем с помощью соответствующих программ создаются разделы – это и называется «разбить жесткий диск». Без этой разметки на жесткий диск не удастся установить операционную систему (хотя Windows XP и 2000 могут устанавливаться на неразбитый диск, но они такую разметку проводят сами в процессе установки).
Жесткий диск можно разбить на несколько разделов, каждый из которых будет использоваться автономно. Для чего это надо? Один диск может содержать несколько различных операционных систем, расположенных в разных разделах. Внутренняя структура раздела, выделенного какой-либо ОС, полностью определяется этой операционной системой.
Кроме того, существуют и другие причины разбиения диска на разделы, например:
– возможность использования под управлением MS DOS дисков с емкостью большей, чем
32 Мб;
– в случае повреждения диска, пропадает только та информация, которая находилась на этом диске;
– реорганизация и выгрузка диска маленького размера проще и быстрее, чем большого;
– каждому пользователю можно выделить свой логический диск.
Операция подготовки диска к работе называется форматированием, или инициализацией. Всё доступное дисковое пространства разбивается на стороны, дорожки и сектора, причем дорожки и стороны нумеруются с нуля, а сектора – с единицы. Совокупность дорожек, находящихся на одинаковом удалении от оси диска или пакета дисков, называется цилиндром. Таким образом физический адрес сектора определяется следующими координатами: номер дорожки (цилиндра – С), номер стороны диска (головки – H), номера сектора – R, т.е. CHR.
В самом первом секторе жесткого диска (C=0, H=0, R=1) содержится главная загрузочная запись –Master Boot Record. Эта запись занимает не весь сектор, а только его начальную часть. Главная загрузочная запись является программой – внесистемным загрузчиком.
В конце первого сектора жесткого диска располагается таблица разделов диска – Partition Table. Эта таблица содержит четыре строки, описывающих максимально четыре раздела. Каждая строка в таблице описывает один раздел:
1) активный раздел или нет;
2) номер сектора, соответствующего началу раздела;
3) номер сектора, соответствующего концу раздела;
4) размер раздела в секторах;
5) код операционной системы, т.е. какой ОС принадлежит данный раздел.
Раздел называется активным, если он содержит программу загрузки операционной системы. Первым байтом в элементе раздела идет флаг активности раздела (0 – не активен, 128 (80H) – активен). Он служит для определения, является ли раздел системным (загрузочным), и для необходимости производить загрузку операционной системы с него при старте компьютера. Активным может быть только один раздел. Небольшие программы, называемые менеджерами загрузки (Boot Manager), могут располагаться в первых секторах диска. Они интерактивно запрашивают пользователя, с какого раздела производить загрузку и соответственно корректируют флаги активности разделов. Поскольку в Partition Table четыре строки, то на диске может быть до четырех различных ОС, следовательно, диск может содержать несколько первичных разделов, принадлежащих разным операционным системам.
Пример логической структуры жесткого диска, состоящего из трех разделов, два из которых принадлежат DOS, а один принадлежит UNIX, приведен на рисунке 3.2а.
Каждый активный раздел имеет свою загрузочную запись – программу, которая осуществляет загрузку данной ОС.
На практике диск разбивается чаще всего на два раздела. Размеры разделов, объявление их активными или нет, устанавливаются пользователем в процессе подготовки жесткого диска к работе. Делается это с помощью специальных программ. В DOS эта программа называется FDISK, в версиях Windows-XX – Diskadministrator.
В DOS первичный раздел – Primary Partition, это тот раздел, который содержит загрузчик операционной системы и саму ОС. Таким образом, первичный раздел является активным разделом, используется как логический диск с именем C:.
Операционная система WINDOWS (а именно WINDOWS 2000) изменила терминологию: активный раздел называется системным, а загрузочным называется логический диск, который содержит системные файлы WINDOWS. Загрузочный логический диск может совпадать с системным разделом, но может находиться в другом разделе того же жесткого диска или на другом жестком диске.
Расширенный раздел Extended Partition может разбиваться на несколько логических дисков с именами от D: до Z:.
На рисунке 3.2б представлена логическая структура жесткого диска, в котором всего два раздела и четыре логических диска.
а | б |
Рисунок 3.2 – Логическая структура диска: а – с тремя разделами; б – с двумя разделами и четырьмя логическими дисками |
3.1.6 Файловая структура диска
Рассмотрим подробнее файловую структуру логического диска, созданного в расширенном разделе на жестком диске. В начале логического диска располагается сектор, в котором находится загрузочная запись, а в конце сектора – таблица логических дисков. Фактически эта таблица является расширением Partition Table, имеет тот же формат, но содержит всего две строки, два элемента. Первый элемент указывает на первый сектор первого логического диска, второй указывает на следующую таблицу логических дисков. В таблице логических дисков последнего логического диска, устанавливается код, означающий окончание списка.
Диски одного компьютера могут хранить огромное количество файлов, и для обеспечения возможности обращения к ним пришлось бы вести и составлять громоздкие каталоги, в которых бы для каждого файла были указаны занимаемые им сектора. Однако операционная система освобождает пользователя от необходимости вести эти каталоги и делает это сама, автоматически.
в процессе форматирования ОС разбивает общее количество секторов на логическом диске на четыре непрерывные области:
1) стартовый сектор;
2) таблица размещения файлов FAT- File Allocation Table;
3) корневой каталог – Root Directory;
4) пространство данных.
Размер этих областей зависит от размера логического диска, но общая структура и порядок расположения не меняется.
Стартовый сектор (загрузочная записьBoot Record)
Это своего рода визитная карточка любого диска. Он содержит необходимые ОС сведения для работы с диском. Под него выделяется первый сектор диска на дорожке 00 поверхности 0. Этот сектор содержит короткую программу блока начальной загрузки ОС, независимо от того системный диск или нет. Кроме того в загрузочной записи находятся параметры, описывающие характеристики логического диска:
· размер секторов диска в байтах;
· количество копий FAT (обычно 2);
· количество элементов в корневом каталоге;
· количество секторов на диске;
· указатель типа магнитного носителя информации;
· количество секторов, занимаемых FAT;
· количество секторов на дорожку;
· размер кластера и т.д.
Конец загрузочной записи заканчивается двухбайтовой подписью 55АА.
Таблица размещения файлов FAT
Таблица размещения файлов является важнейшей файловой структурой диска. В процессе работы содержимое области данных постоянно меняется: добавляются новые файлы, изменяется их содержимое, файлы удаляются, перемещаются и т.п. Выполнение этих операций требует наличия специального механизма, позволяющего распределять дисковое пространство между файлами и обеспечивать доступ к ним. Таким механизмом распределения дискового пространства и доступа к файлам и является таблица размещения файлов.
По содержимому FAT можно определить физическое расположение на диске всех файлов и каталогов. ОС разбивает всю область диска на участки одинакового размера, называемые кластерами. Размер кластера зависит от емкости диска, но всегда кратен размеру сектора. Несмотря на то, что минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор, ОС выделяет место на диске целыми кластерами, если кластер больше сектора, то он занимает последовательные сектора.
Файл на диске, как правило, не занимает последовательную цепочку кластеров. Если дисковое пространство позволяет, то файл записывается в смежные кластеры, если нет – то в разные. В первом случае файл называется непрерывным, в последнем случае – фрагментированным. Если размер файла не кратен размеру кластера, то последний кластер лишь частично заполняется данными. Минимальный размер файла, даже если данные его занимают один байт, составляет целый кластер.
Для того чтобы определить физическое расположение файлов на диске, следует указать все входящие в него кластеры, причем в том порядке, в котором записывалась в кластеры содержимое файла.
FAT представляет собой таблицу, в которой число элементов, совпадает с числом кластеров на диске. Если на диске какой-то кластер свободен, то в FAT соответствующий ему элемент содержит код 000. Если файл на диске занимает несколько кластеров, то с помощью FAT эти кластеры связываются в цепочку. Например, файлу выделены кластеры №7, №8, №10, №14, №17, №11, №12. Элемент FAT №7 хранит номер следующего кластера, выделенного файлу, т.е. №8. Элемент №8 хранит 10 и т.д., пока не будет достигнут последний кластер, выделенный файлу. В этом последнем кластере записан специальный код FFF – признак конца файла.
FFF | FF7 |
FF7 |
Рисунок 3.3 – Фрагмент таблицы размещения файлов
Запись в каталоге, соответствующая данному файлу, содержит номер первого кластера (точка входа), выделенного файлу, в нашем примере это №7.
Кластеры, приходящиеся на испорченные участки диска, помечаются в FAT специальным кодом FF7 и исключаются из свободной области. Когда файл удаляют, то все записи в FAT, соответствующие его цепочки кластеров маркируются как свободные, однако данные файла из кластеров не удаляются до тех пор, пока в эти кластеры не будут записаны новые данные.
Операционная система MS DOS поддерживает 16-битовый формат FAT, а ОС Windows – 32-битовый. Это означает, что для записи адреса элемента таблицы необходимо 16 или 32 бита, соответственно. Отсюда следует, что при 16-битовом формате можно пронумеровать 2 16 =65536 кластеров. В связи с этим ограничением операционные системы не позволяют работать с жесткими дисками размером более 2 Гбайт.
Таблица 3.1 иллюстрирует, какой максимальный размер дискового пространства может обслуживать FAT16 и FAT32.
Таблица 3.1 – Максимальный объём памяти диска при использовании FAT16 и FAT32
Размер диска | Размер кластера для 16-битовой FAT | Размер кластера для 32-битовой FAT |
256-511 Мб | 8 Кб | Не поддерживается |
512-1024 Мб | 16 Кб | 4 Кб |
1024 Мб-2Гб | 32 Кб | 4 Кб |
2 Гб-8 Гб | Не поддерживается | 4 Кб |
8 Гб-16 Гб | 8 Кб | |
16 Гб-32 Гб | 16 Кб | |
Более 32 Гб | 32 Кб |
К очень негативным явлениям относится фрагментация файлов. По мере удаления старой информации в пространстве данных будут появляться кластеры, помеченные в FAT, как свободные. Вновь образованные файлы заполняют эти кластеры, что приводит к их фрагментации. Чем сильнее фрагментирован файл, тем больше времени уходит на его чтение или запись. Поскольку каждый файл, независимо от своего размера занимает целое число кластеров на диске, и целое число записей в FAT, то последний кластер используется не полностью. Недоступная часть кластера, недоступна и для других кластеров. Чем больше размер кластера, тем больше напрасный расход места на диске.
Более совершенная файловая система – FAT32 с 32-разрядными полями в таблицах размещения файлов, например, в ОС Windows 98/2000, позволяет уменьшать размер кластеров, что сокращает потери дисковой памяти и позволяет работать с жесткими дисками любого объёма. Ряд файловых систем, например, HPFS, WinFAT, сетевая Novell Netware, имеют механизмы дописывания остатков блоков различных файлов в частично заполненные кластеры. Этим обеспечивается более рациональное использование пространства внешней памяти.
В организации FAT могут возникать определенные дефекты. Ряд утилит позволяет диагностировать как логические ошибки в файловой системе, так и физические дефекты на поверхности диска.
Не нашли то, что искали? Воспользуйтесь поиском:
ФАЙЛОВАЯ СИСТЕМА: РАСПРЕДЕЛЕНИЕ ДИСКА
Те, кто устанавливал систему хоть раз, заметили, что даже операции по форматированию предшествуют одна обязательная — распределение диска или его части. После это диск готов к приёму любой ОС-и.
Традиционный подход любого производителя компьютера, в том числе и производителя ОС Windows, заключается в том, что они давно решили за нас один важный момент: жёсткий диск должен быть один. Хватит. Для многих так оно и есть. Для немалого числа пользователей это АБСОЛЮТНО неприемлемо. И это тоже тенденция: разбиение на логические диски или тома уже не просто правила хорошего тона:
Объёмы хранилищ только растут. Кстати, позволю себе, раз блог о компьютерах, напомнить вам некоторые единицы в системе измерения данных:
КСТАТИ
Обращайте внимание на регистр букв, которые принимают участие в описании скоростей. Если есть возможность прочитать данные на английском, присмотритесь, как обозначается скорость: большая В на латинском означает байты, а малая b — биты информации. К примеру SATA 1.0 диски имеют пропускную способность 1.5 Гб/сек (гигабит), а более современная модель SATA 2.0 — 300МБ/сек (мегабайт). Что быстрее? Быстренько умножаем:
300 × 1,048,576 × 8 бит = 2.34 Гб/сек
Как это работает
Файловая система, созданная на носителе информации, позволяет получать к ней доступ программному обеспечению — читать и записывать данные на накопитель, т.е. вообще работать с ним.
Операционная система видит накопитель информации, как один большой набор кластеров, в которых хранятся данные. Размер этих кластеров определяет файловая система. При записи файлов она разбивает их на части по размеру кластера, структурирует и записывает каждый в свой кластер по определенному порядку.
Когда программное обеспечение хочет получить доступ к какому-либо файлу, хранящемуся на носителе, оно запрашивает у ФС его по имени, размеру и атрибутам. Когда же происходит запись то, наоборот, отправляет в ФС все эти данные, а она уже сама осуществляет запись в соответствии со своими правилами.
Прочитает ли ваше устройство флешку или SD карту с определенной файловой системой, определяет то, какая операционная система установлена на этом устройстве. С компьютерами все просто, здесь читается практически любая ФС на носителях, и более того — мы сами можем определять ее при форматировании. Windows, Linux, Mac OS, Android и IOS — универсальные ОС, которые поддерживают сразу несколько разных видов файловых систем.
А вот в случае с оборудованием типа: магнитол, телевизоров, DVD плееров с USB входом и другим аналогичным — прочитает ли оно флешку, к примеру, в формате NTFS, будет зависеть уже от производителя этого оборудования. Поэтому, перед тем, как покупать такую аппаратуру, или записывать файлы для нее на накопитель, посмотрите какую ФС она вообще поддерживает.
Интересно! Термин файловая система раньше использовался для описания метода хранения бумажных документов/файлов. Только в 1 961 году его начали применять для использования к компьютерам, причем своего значения он не потерял.
Есть определенные файловые системы, которые используются повсеместно, это: FAT32, NTFS и exFAT. Это универсальные ФС, которые видят все ОС: Windows, Linux, Mac OS, IOS, Android и другие. А также их читают практически все фотоаппараты, видеокамеры, телевизоры и другое оборудование. Есть и ФС, которые были специально разработаны для работы в определенных приложениях, к примеру, ISO 9660 разработана специально для оптических дисков.
Интересно! ФС могут быть напрямую не связанными с накопителем информации. Есть и виртуальные, и сетевые ФС, они определяют способ доступа к данным, хранящимся на удаленной машине.
FAT (таблица размещения файлов) — это простая ФС с классической архитектурой. Была разработана еще в 1 976 годах Биллом Гейтсом и Марком МакДональдом для MS-DOS и Windows. До сих пор применяется для некоторых флеш накопителей. Используется исключительно для небольших флеш накопителей, дисков и простых структур папок.
Представляет собой групповой метод организации информации. Чтобы размещать файлы выделена отдельная логическая область в начале тома.
Существует четыре версии этой ФС, самые известные и распространенные на данный момент — FAT32 и exFAT (FAT64). Цифра в конце названия означает количество бит, которые отведены для хранения кластера.
Взгляд на файловую систему с точки зрения программирования
Изучая понятие ФС, следует понимать, что это многоуровневая составляющая, на первом из которых преобладает трансформатор файловых систем, обеспечивающий эффективное взаимодействие между самой системой и определенным программным приложением. Именно он отвечает за преобразование запроса к электронным данным в определенный формат, который и распознается драйверами, что влечет за собой эффективную работу с файлами, то есть к ним открывается доступ.
У современных приложений, которые имеют стандарт работы клиент-сервер, требования к ФС очень высоки. Ведь современные системы просто обязаны обеспечивать самый эффективнейший доступ ко всем имеющимся типам электронных единиц, а также оказывать колоссальную поддержку носителей больших объемов, а также устанавливать защиту всех данных от нежелательного доступа иными пользователями, а также обеспечивать целостность информации, хранимой в электронном формате.