Файловая система ос и ее функции. Файловая система пк

19.06.2020

Файловая система ЭВМ, как правило, имеет несколько дисков. Каждому диску присваивается имя, которое задается латинской буквой с двоеточием, например, А:, В:, С: и т. д. Стандартно принято, что А: и В: - это накопители на гибких магнитных дисках, а диски С:, D: и т. д. - жесткие диски, накопители на оптических дисках или электронные диски.

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

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

Диск, на котором записана операционная система, называется системным (или загрузочным) диском. В качестве загрузочного диска чаще всего используется жесткий диск С:. При лечении вирусов, системных сбоях загрузка операционной системы часто осуществляется с гибкого диска.

Выпускаются оптические диски, которые также могут быть загрузочными.

Форматирование - это подготовка диска для записи информации.

Во время форматирования на диск записывается служебная информация (делается разметка), которая затем используется для записи и чтения информации, коррекции скорости вращения диска. Разметка производится с помощью электромагнитного поля, создаваемого записывающей головкой дисковода. Запись информации осуществляется по дорожкам, причем каждая дорожка разбивается на секторы, например, по 1024 байта.

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

Загрузочный сектор (Boot Record) размещается на каждом диске в логическом секторе с номером 0. Он содержит данные о формате диска, а также короткую программу, используемую в процедуре начальной загрузки операционной системы.

Загрузочный сектор создается во время форматирования диска. Если диск подготовлен как системный (загрузочный), то загрузочный сектор содержит программу загрузки операционной системы. В противном случае он содержит программу, которая при попытке загрузки с этого диска операционной системы выводит сообщение о том, что данный диск не является системным.

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

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

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

Если файл большой, то он может занимать несколько дорожек.

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

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

Имена файлов регистрируются на магнитных и оптических дисках в папках, каталогах (или директориях). Термин «каталог» используется в операционных системах семейства DOS, термин «папка» - в операционных системах семейства Windows.

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

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

Назначение и функционирование файловой системы

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

Таким образом, файловая система - это часть операционной системы, которая обеспечивает запись и чтение файлов на носителях информации (внешних ЗУ), т. е. представляет пользователю удобный интерфейс при работе с данными, хранящимися на ЗУ. Фирма Microsoft разработала несколько файловых систем для персональных компьютеров, таких как FAT, FAT16, FAT32, NTFS и т. д. Функционирование файловой системы реализуется в виде многоуровневого процесса, где каждый уровень представляет набор функций предшествующему уровню и обращается к последующему с соответствующим запросом.

Рис.

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

Файловая система FAT

формат команда кодовый файловый

Файловая система FAT используется ОС MS DOS и ОС Windows для упорядочения файлов и управления ими. В основу данной файловой системы положена таблица размещения FAT(File Allocation Table), которая представляет собой структуру данных, создаваемую ОС при форматировании данных на ЗУ. ОС хранит в таблице размещения файлов сведения о каждом файле, чтобы при необходимости можно было извлечь нужный файл.

Указанная файловая система вполне удовлетворяла требованиям своего времени в основном потому, что сама по себе очень компактна и проста. Благодаря этому она успешно использовалась и используется в НГМД. Для хранения файла в FAT может использоваться один или несколько кластеров, стандартный размер кластера 512 байт.

Существует несколько версий файловой системы FAT, среди которых наибольшее применение нашли файловые системы FAT 16 и FAT 32. Отличие этих файловых систем состоит в разрядности чисел, используемых в таблицах размещения файлов.

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

Мы привыкли воспринимать информацию на нашем ПК в виде конкретных файлов, аккуратно (или не очень:)) разложенных по папкам. А, между тем, Ваш компьютер работает с данными совсем по иному принципу. На жёстком диске для него не существует цельных файлов. Он "видит" лишь чётко адресованные секторы с байт-кодом. Причём код одного файла не всегда хранится в соседних секторах (так называемая фрагментация данных).

Как же компьютер "понимает", где ему, например, искать наш текстовый документ, который лежит, скажем, на Рабочем столе? За это, оказывается, отвечает файловая система жёсткого диска. И сегодня мы с Вами узнаем, какие бывают файловые системы и каковы их особенности.

Что такое файловая система

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

Файловая система определяет порядок хранения данных на диске и принципы доступа к ним, однако, во многом тип файловой системы зависит и от типа носителя. Например, очевидно, что для магнитной ленты, которая поддерживает запись только последовательных блоков данных, подойдёт лишь одноуровневая файловая система с последовательным доступом к кластерам с информацией, а для современного SSD-диска - любая многоуровневая с произвольным доступом:

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

В первом случае все файлы отображаются в виде единого плоского списка, а во втором - в виде иерархического. Уровень вложений при этом, как правило, неограничен, а ветвление идёт либо только от одного ("root" в UNIX), либо от нескольких корневых каталогов (логические диски в Windows):

К особенностям файловых систем можно также отнести наличие различных механизмов, защищающих структуру данных от сбоев. Одним из наиболее современных механизмов обеспечения отказоустойчивости ФС является журналирование . Оно позволяет записывать в специальные служебные файлы (их называют "журналами" или "логами") все действия, производимые с файлами.

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

Гораздо же более часто журналируются только логические операции и (опционально) состояние кластеров файловой системы. То есть, в журнал записывается только то, что, скажем, файл с именем "file.txt" размером 52 КБ был записан в такие-то кластеры. Содержимое же самого файла в логе никак не значится. Такой подход позволяет избежать дублирования данных, ускоряет процессы работы с файлами и уменьшает в разы размеры самого журнала. Единственный недостаток при таком способе журналирования - при сбое могут быть потеряны записываемые данные (поскольку их копии нет), но само состояние файловой системы останется работоспособным.

Форматирование

Поскольку мы говорим о файловых системах в контексте современных компьютеров с их жёсткими или SSD-дисками, то большее внимание мы уделим именно многоуровневым ФС с произвольным доступом к кластерам. Наиболее популярными в компьютерном мире сегодня являются: FAT32, NTFS, exFAT, ext3/ext4, ReiserFS и HFS+.

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

Для форматирования можно воспользоваться штатными средствами операционной системы (например, консольными командами Linux или контекстным меню диска в Windows), функциями, доступными на подготовительном этапе установки ОС, или же специальными программами. Единственное, что следует учесть при программном решении, так это то, что Ваша операционная система может не поддерживать выбранную Вами файловую систему без установки дополнительных драйверов (например, ext3/4 в Windows):

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

Осуществляется оно сейчас при помощи специального софта (HDD Low Level Format Tool для Windows) или команд (DD для Linux). При его применении все кластеры жёсткого диска перезаписываются нулями и полностью уничтожается любая разметка. После этого файловая система фактически исчезает и в Windows отображается как RAW . Чтобы получить доступ к диску после такого форматирования, нужно отформатировать его в одной из доступных традиционных файловых систем более высокого уровня.

Особенности файловых систем

Ну а теперь рассмотрим некоторые особенности самых распространённых файловых систем.

FAT32

Одна из самых старых файловых систем для дисков, которая ещё широко используется в наши дни - FAT32 (сокр. англ. "File Allocation Table" - "таблица размещения файлов"). В силу своей распространённости, она поддерживается максимальным числом всевозможного оборудования, начиная с автомагнитол, кончая мощными современными компьютерами. Большинство флеш-накопителей, продаваемых сегодня, тоже отформатированы в FAT32.

Впервые данная ФС появилась в Windows 95 OSR2 в 1996 году, став логическим развитием ещё более ранней FAT16 (1983 год). Одной из основных причин перехода на новую файловую систему стало появление ёмких (по тем временам) жёстких дисков объёмом более 2 ГиБ (гибибайт - более точный вариант гигабайта (109 ) - 230 байт) (максимально возможный размер раздела в FAT16). FAT32 позволила использовать до 268 435 445 кластеров максимум по 32 КБ, что эквивалентно 8 ТиБ на том. Однако, если размер кластера будет стандартным (512 Б), то максимальный размер тома будет лишь чуть более 127 ГБ.

Основой FAT32, как следует из её названия, является файловая таблица. Она хранит в себе записи об имеющихся файлах, а также о времени их создания и последнего доступа к ним. Журналирование отсутствует, поэтому процессы чтения/записи в этой файловой системе происходят быстрее, нежели, например, в NTFS, которая ведёт более полные логи. Именно по причине хорошего быстродействия FAT32 всё ещё широко используется в наши дни.

Главным же недостатком FAT32 на данный момент является ограничение на максимальный размер файла - 4 ГиБ. Файлы, превышающие данный порог, должны быть разбиты на части, что в свою очередь, затрудняет доступ к ним. Кроме того, FAT32 имеет ещё некоторые ограничения в среде Windows. Например, штатными средствами Вы не сможете создать разделы более 32 ГБ. Поэтому флешки на 64 ГБ и более придётся форматировать либо при помощи специального софта, либо на Linux.

Однако, и в этом случае, хоть доступ к носителю и сохранится, но он будет затруднён "тормозами" как при чтении, так и при записи данных. Поэтому при использовании накопителей объёмом более 32 ГБ лучше отформатировать их в иных файловых системах, вроде exFAT или NTFS.

NTFS

Если линейка Windows 95/98 продолжала традиции уже на тот момент устаревающей операционной системы DOS, то новая линейка NT изначально была направлена на инновации. Поэтому с появлением Windows NT 3.1 в 1993 году специально под неё была создана новая файловая система NTFS (сокр. англ. "New Technology File System" - "файловая система новой технологии").

Эта файловая система до сих пор является основной для всех современных версий Windows, поскольку обеспечивает неплохую скорость работы, поддерживает накопители объёмом до 16 ЭиБ (эксбибайт - 260 ) (при максимальном размере кластера в 64 КБ) без ограничений по размерам файлов и имеет в своём арсенале довольно неплохой функционал. Например, NTFS является журналируемой файловой системой, а также поддерживает распределение ролей пользователей для доступа к отдельным данным, чего не было в той же FAT32.

Как и в FAT32, основой NTFS является таблица, но она являет собой более совершенную базу данных и называется MFT (сокр. англ. "Master File Table" - "главная файловая таблица"). Строки в этой таблице соответствуют файлам, хранящимся на конкретном разделе, а столбцы содержат атрибуты этих файлов (дата создания, размер, права доступа и т.п.).

Кроме того, для повышения отказоустойчивости в NTFS ведётся журнал USN (сокр. англ. "Update Sequence Number" - досл. "номер порядка обновления"). В этот журнал, аналогично таблице FAT32, записываются данные об изменениях того или иного файла. Однако, если в таблице FAT32 записывалось только время последнего доступа к данным, что не давало никаких особых практических выгод, то в USN может сохранятся предыдущее состояние файловой системы, что позволяет восстанавливать его в случае сбоев.

Ещё одной особенностью NTFS является поддержка альтернативных потоков данных (англ. "Alternate Data Streams" - ADS). Изначально они были задуманы для разграничения выполнения различных процессов. Потом (в Windows 2000) использовались для хранения некоторых атрибутов файлов (имя автора, иконка и т.п.), аналогично тому, как это делалось в HFS от MacOS. В современных Windows альтернативные потоки могут хранить практически любую информацию. Этим даже пользуются некоторые вирусы для скрытия своего присутствия в системе.

Дело в том, что альтернативные потоки не пеленгуются Проводником Windows и, по сути, невидимы для пользователей и большинства программ. Однако, Вы можете их просматривать и даже пользоваться ими, например, для скрытия каких-либо данных при помощи специального ПО. Смотреть данные в альтернативных потоках удобно при помощи программы NTFS Stream Explorer , а использовать их для сокрытия файлов при помощи Xp-lore :

Из дополнительных особенностей, которые заслуживают упоминания для NTFS, являются поддержка шифрования, сжатия данных, "мягких" и "жёстких" ссылок на файлы (для папок такой возможности, увы, нет), дисковых квот для разных пользователей системы, а также, естественно, разграничения прав на доступ к файлам.

NTFS изначально была создана исключительно для Windows, однако, сегодня поддерживается большинством медиаплееров (флешки могут быть тоже отформатированы в ней), операционными системами Linux и MacOS (правда, с некоторыми ограничениями на запись). Стоит, однако, отметить слабую поддержку NTFS на популярных игровых консолях. Из них поддержка её есть только у Xbox One.

exFAT

С увеличением во второй половине 2000-х годов объёмов флеш-накопителей стало ясно, что повсеместно используемая файловая система FAT32 скоро исчерпает свой потенциал. Использовать журналируемую NTFS для флешек с их ограниченным количеством циклов перезаписи и более медленной работой оказалось не совсем целесообразно. Поэтому в 2006 году всё та же корпорация Microsoft выпустила в свет новую файловую систему exFAT (сокр. англ. "Extended FAT" - "расширенная FAT") в комплекте с операционной системой Windows Embedded CE 6.0:

Она стала логическим продолжением развития FAT32, поэтому иногда её называют также FAT64. Главным козырем новой файловой системы стало снятие ограничения на размеры файлов и увеличение теоретического предела для дискового раздела до 16 ЭиБ (как в NTFS). При этом, в силу отсутствия журналирования, exFAT сохранила высокую скорость доступа к данным и компактность.

Ещё одним преимуществом exFAT стала возможность увеличения размера кластера до 32 МБ, что существенно позволило оптимизировать хранение больших файлов (например, видео). Кроме того, хранение данных в exFAT организовано таким образом, чтобы максимально минимизировать процессы фрагментации и перезаписи одних и тех же кластеров. Всё это сделано, опять же, в угоду оптимизации работы флеш-накопителей, для которых и была изначально разработана файловая система.

В силу того, что exFAT - относительно новая ФС, имеются некоторые ограничения по её использованию. В Windows полная её поддержка появилась лишь в Vista SP1 (хотя есть обновление для Windows XP SP2 - ). MacOS поддерживает exFAT с версии 10.6.5, а для Linux требуется устанавливать отдельный драйвер (в некоторых дистрибутивах он встроен, а в некоторых поддерживается только чтение).

ext2, ext3 и ext4

Если в среде Windows уже не первое десятилетие "правит бал" NTFS, то в лагере Linux традиционно царит очень большое разнообразие, в том числе и среди применяемых файловых систем. Правда, есть одна их линейка, которая используется большинством дистрибутивов по умолчанию. Это файловые системы семейства ext (англ. сокр. "Extended File System" - "расширенная файловая система"), которые с 1992 года изначально создавались именно под Linux.

Наибольшее распространение получила вторая версия ext2 , которая, как и NTFS, появилась ещё в 1993 году. Правда, в отличии от NTFS, ext2 не является журналируемой файловой системой. Это одновременно и её плюс, и минус. Плюс в том, что она является одной из самых быстрых ФС на запись данных. Также отсутствие журналирования делает предпочтительным её использование на флеш-накопителях и SSD-дисках. Платой же за быстродействие является низкая отказоустойчивость.

С целью улучшить стабильность ext2 в 2001 году была разработана её улучшенная версия ext3 . В ней появилось журналирование, которое может работать в трёх режимах: "writeback" (записываются только метаданные файловой системы), "ordered" (запись в журнал производится всегда ПЕРЕД изменением ФС) и "journal" (полный бэкап метаданных и самих изменяемых файлов).

В остальном особых новшеств не появилось. Да и скорость работы, по сравнению с предыдущей версией, существенно снизилась, поэтому уже в 2006 году появился прототип следующей стадии развития файловой системы ext4 , окончательный релиз которой состоялся в 2008 году. Четвёртая расширенная файловая система сохранила журналирование, но существенно повысила скорость чтения данных, которая стала даже выше, чем в ext2!

Из других новшеств стоит отметить увеличение максимального объёма раздела диска до 1 ЭиБ (с 32 ТиБ в ext2 и ext3), увеличение максимального размера файла до 16 ТиБ (с 2 ТиБ в более ранних версиях) и появление механизма экстентов (от англ. "extent" - "пространство"). Последний позволяет обращаться не к одиночным блокам, как это реализовано в других ФС (и в ext3 в частности), а к объединённым пространствам диска из последовательно идущих кластеров, общим объёмом до 128 МБ, что существенно повышает производительность и уменьшает фрагментацию данных.

На сегодняшний день поддержка файловых систем семейства ext той или иной версии присутствует по умолчанию почти во всех Linux"ах. Из них, практически все системы 2010 года выпуска и старше поддерживают ext4. Для доступа к ext-разделам в Windows и MacOS требуется устанавливать специальное ПО и/или драйверы.

ReiserFS

Ещё одной молодой и перспективной файловой системой "родом" из мира Linux является ReiserFS . Стараниями команды американского разработчика Ганса Райзера она стала первой журналируемой ФС, которая была добавлена в ядро Linux версии 2.4.1 в 2001 году, как раз перед добавлением поддержки ext3.

Фактически, как и появившаяся вслед за ней ext3, ReiserFS дала возможность использовать в Linux полное или частичное журналирование. Однако, в отличие от ext3, имела больший допустимый размер файла (до 8 ТиБ против 2) и максимальную длину имени файла равную 255 символам, а не байтам (4032 байт).

Также одной из особенностей ReiserFS, за которую она полюбилась пользователям стала возможность менять размер раздела без его размонтирования. Подобной функции не было у ext2, но позднее она появилась в ext3, хотя ReiserFS в этом плане тоже была первой.

Несмотря на ряд преимуществ перед альтернативными файловыми системами своего времени, ReiserFS также не была лишена недостатков. К наиболее существенным из них стоит отнести довольно слабую отказоустойчивость при повреждении структуры метаданных и неэффективный алгоритм дефрагментации. Поэтому с 2004 года началась работа по улучшению файловой системы, которая стала известна под названием Reiser4 .

Правда, несмотря на ряд нововведений, улучшений и исправлений, новая файловая система осталась уделом немногих энтузиастов. Дело в том, что в 2006 году Ганс Райзер совершил убийство собственной жены и был взят под стражу, а позднее и заключён в тюрьму. Соответственно, его компания Namesys, которая занималась разработкой Reiser4, была расформирована. С тех пор поддержку и доработку файловой системы осуществляет группа разработчиков под курированием русского разработчика Эдуарда Шишкина.

В конечном итоге поддержка Reiser4 в ядро Linux до сих пор так и не добавлена, но ReiserFS имеется. Поэтому многие продолжают использовать её в различных сборках как файловую систему по умолчанию.

HFS

Говоря о файловых системах, характерных для различных операционок, нельзя не упомянуть о MacOS с её HFS (сокр. англ. "Hierarchical File System" - "иерархическая файловая система"). Первые версии данной системы появились ещё в 1985 году вместе с операционной системой Macintosh System 1.0:

По современным меркам данная файловая система была весьма малоэффективной, поэтому в 1998 года вместе с MacOS 8.1 появилась её улучшенная версия под названием HFS+ или Mac OS Extended , которая поддерживается до сегодняшнего дня.

Как и предшественница, HFS+ делит диск на блоки по 512 КБ (по умолчанию), которые объединяет в кластеры, ответственные за хранение тех или иных файлов. Однако, новая ФС имеет 32-битную адресацию (вместо 16-битной). Это позволяет избежать ограничений на размер записываемого файла и обеспечивает поддержку максимального размера тома до 8 ЭиБ (а в последних ревизиях до 16 ЭиБ).

Из других преимуществ HFS+ нужно отметить журналирование (под него выделяется целый скрытый том под названием HFSJ), а также многопоточность. Причём, если в NTFS альтернативные потоки не имеют особо чёткой регламентации на типы хранимой информации, то в HFS+ конкретно выделяется два потока: поток данных (хранит основные данные файлов) и поток с ресурсами (хранит метаданные файлов).

HFS+ практически идеальна для традиционных HDD, однако, как и рассмотренная выше ReiserFS, имеет не самые эффективные алгоритмы борьбы с фрагментацией данных. Поэтому с распространением SSD-накопителей и внедрением их в технику Apple всё чаще на смену ей приходит файловая система, разработанная в 2016 году APFS (сокр. англ. "Apple File System" - "Файловая система Apple"), появившаяся в настольной macOS High Sierra (10.13) и мобильной iOS 10.3.

Во многом APFS сходна с exFAT в плане оптимизации процессов чтения/записи, однако, в отличие от неё, имеет журналирование, поддерживает распределение прав доступа к данным, имеет улучшенные алгоритмы шифрования и сжатия данных, а также может работать с томами размером аж до 9 ЙиБ (не смейтесь - "йобибайт ") за счёт 64-битной адресации!

Единственным минусом APFS является то, что она поддерживается лишь современной техникой Apple и пока недоступна на других платформах.

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

Сегодня мы рассмотрели много различных популярных файловых систем, поэтому не мешало бы свести все данные о них в единую таблицу:

Характеристики / ФС FAT32 NTFS exFAT ext2 ext4 ReiserFS HFS+ APFS
Год внедрения 1996 1993 2008 1993 2006 2001 1998 2016
Сфера применения Windows, съёмные накопители, Linux съёмные накопители, Windows Vista+, Linux Linux, съёмные накопители Linux Linux MacOS MacOS
Максимальный размер файла 4 ГиБ 16 ЭиБ 16 ЭиБ 2 ТиБ 16 ТиБ 8 ТиБ 16 ЭиБ 9 ЙиБ
Максимальный размер тома 8 ТиБ 16 ЭиБ 64 ЗиБ (зебибайт) 32 ТиБ 1 ЭиБ 16 ТиБ 16 ЭиБ 9 ЙиБ
Журналирование - + - - + + + +
Управление правами доступа - + - - + + + +

Выводы

Как видим, для каждой операционной системы существует своя оптимальная файловая система, которая позволяет наиболее эффективно работать с данными. Например, для Windows - это NTFS, для MacOS - HFS+ или APFS. Исключением из правила можно считать лишь многочисленные дистрибутивы Linux. Здесь имеется не один десяток файловых систем, каждая со своими преимуществами и недостатками.

Большинству же пользователей Windows стоит запомнить лишь три наиболее распространённые ФС: FAT32 - для небольших флешек и старого оборудования, NTFS - для большинства компьютеров и exFAT - для ёмких флеш-накопителей и внешних SSD-дисков (об актуальности форматирования системного диска в exFAT до сих пор спорят в виду отсутствия журналирования и большей подверженности сбоям).

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.



















Назад Вперёд

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

Цели урока:

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

Оборудование: доска, компьютер, компьютерная презентация.

План урока:

  1. Орг. момент. (1 мин.)
  2. Проверка и актуализация знаний. (2 мин.)
  3. Теоретическая часть. (13 мин.)
  4. Практическая часть. (15 мин.)
  5. Д/з (2 мин.)
  6. Вопросы учеников. (5 мин.)
  7. Итог урока. (2 мин.)

Ход урока

I. Орг. момент.

II. Приветствие, проверка присутствующих.

Объяснение хода урока.

Актуализация знаний.

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

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

На этом уроке мы рассмотрим, что такое файлы и файловые системы.

III. Теоретическая часть.

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

Файл - это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.

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

В различных операционных системах существуют различные форматы имен файлов. В операционной системе MS-DOS собственно имя файла должно содержать не более восьми букв латинского алфавита и цифр, а расширение состоит из трех латинских букв, например: proba.txt

В операционной системе Windows имя файла может иметь до 255 символов, причем допускается использование русского алфавита, например:

Единицы измерения информации.doc

До появления операционной системы Windows 95 на большинстве компьютеров IBM PC работала операционная система MS-DOS, в которой действовали весьма строгие правила присвоения имен файлам. Эти правила называют соглашением 8.3

По соглашению 8.3 имя файла может состоять из двух частей, разделенных точкой. Первая часть может иметь длину до 8 символов, а вторая часть (после точки) - до 3 символов. Вторая часть, стоящая после точки, называется расширением имени.

При записи имени файла разрешается использовать только буквы английского алфавита и цифры. Начинаться имя должно с буквы. Пробелы и знаки препинания не допускаются, за исключением восклицательного знака (!), тильды (~) и символа подчеркивания (_).

После введения в действие операционной системы Windows 95 требования к именам файлов стали существенно мягче. Они действуют и во всех последующих версия операционных систем Windows.

  1. Разрешается использовать до 255 символов.
  2. Разрешается использовать символы национальных алфавитов, в частности русского.
  3. Разрешается использовать пробелы и другие ранее запрещенные символы, за исключением следующих девяти: /\:*?"<>|.
  4. В имени файла можно использовать несколько точек. Расширением имени считаются все символы, стоящие за последней точкой.

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

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

Файловая система - это система хранения файлов и организации каталогов.

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

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

Начальный, корневой, каталог содержит вложенные каталоги 1-го уровня, в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.

Для облегчения понимания этого вопроса воспользуемся аналогией с традиционным «бумажным» способом хранения информации. В такой аналогии файл представляется как некоторый озаглавленный документ (текст, рисунок и пр.) на бумажных листах. Следующий по величине элемент файловой структуры называется каталогом. Продолжая «бумажную» аналогию, каталог будем представлять как папку, в которую можно вложить множество документов, т.е. файлов. Каталог также получает собственное имя (представьте, что оно написано на обложке папки).

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

А теперь полную картину файловой структуры представьте себе так: вся внешняя память компьютера - это шкаф с множеством выдвижных ящиков. Каждый ящик - аналог диска; в ящике - большая папка (корневой каталог); в этой папке множество папок и документов (подкаталогов и файлов) и т.д. Самые глубоко вложенные папки хранят в себе только документы (файлы) или могут быть пустыми.

Путь к файлу. Для того чтобы найти файл в иерархической файловой структуре необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых находится данный нужный файл.

Например, путь к файлам на рисунке можно записать так:

C:\Рефераты\

C:\Рефераты\Физика\

C:\Рефераты\Информатика\

C:\Рисунки\

Полное имя файла.

Путь к файлу вместе с именем файла называют полным именем файла.

Пример полного имени файлов:

C:\Рефераты\Физика\Оптические явления.doc

C:\Рефераты\Информатика\Интернет.doc

C:\Рефераты\Информатика\Компьютерные вирусы.doc

C:\Рисунки\Закат.jpg

C:\Рисунки\ Зима.jpg

В операционной системе Windows вместо каталогов используется понятие «папка». Папка – это объект Windows, предназначенное для объединения файлов и других папок в группы. Понятие папки шире, чем понятие «каталог».

В Windows на вершине иерархии папок находится папка Рабочий стол. (Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети).

Если мы хотим ознакомиться с ресурсами компьютера, необходимо открыть папку Мой компьютер .

С файлами и папками можно выполнить ряд стандартных действий.

Такие действия с файлами, как «создать», «сохранить», «закрыть» можно выполнить только в прикладных программах («Блокнот», «Paint», …).

Действия «открыть», «переименовать», «переместить», «копировать», «удалить» можно выполнить в системной среде.

  • Копирование (копия файла помещается в другой каталог);
  • Перемещение (сам файл перемещается в другой каталог);
  • Удаление (запись о файле удаляется из каталога);
  • Переименование (изменяется имя файла).

Графический интерфейс Windows позволяет производить операции над файлами с помощью мыши с использованием метода Drag&Drop (тащи и бросай). Существуют также специализированные приложения для работы с файлами, так называемые файловые менеджеры.

Вопросы и задания:

1. Запишите полные имена всех файлов

C:\Мои документы\Иванов\QBasic.doc

C:\Мои документы\Петров\Письмо.txt

C:\Мои документы\Петров\Рисунки\Море.bmp

C:\Фильмы\Интересный фильм.avi

2. Постройте дерево каталогов

C:\Рисунки\Природа\Небо.bmp

C:\Рисунки\Природа\Снег.bmp

C:\Рисунки\Компьютер\Монитор.bmp

C:\Мои документы\Доклад.doc

IV. Практическая часть.

Сегодня на практической части мы будем работать с файлами. Научимся их открывать, копировать, перемещать, переименовывать и удалять. Для работы будем использовать окно Мой компьютер.

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

Чтобы открыть окно Мой компьютер, нажмите кнопку Пуск и выберите в правом столбце меню команду Мой компьютер. Так же можно воспользоваться значком на рабочем столе.

В окне Мой компьютер можно отобразить панели инструментов: Обычные кнопки, Адресная строка, Ссылки, выбрав одноименные команды в меню Вид, Панели инструментов.

Панель инструментов Обычные кнопки

Кнопки панели инструментов Обычные кнопки позволяют выполнить часто используемые команды без раскрытия меню, что сокращает время на выполнение операции.

Кнопки панели инструментов Обычные кнопки имеют следующее назначение:

  • Назад, Вперед - перемещение к просмотренной ранее папке, документу, веб-странице или к следующему объекту в том порядке, в котором их просматривал пользователь в текущем сеансе. С клавиатуры кнопку Назад дублируют клавиши +[стрелка влево], кнопку Вперед - клавиши +[стрелка вправо]. Справа от кнопок Назад и Вперед видны стрелки ж, щелкнув на которые, вы откроете список ранее просмотренных папок;
  • Вверх- обеспечивает переход в родительскую (охватывающую) папку, содержащую данный объект. Эту кнопку иногда называют кнопкой возврата. Ее дублирует клавиша Backspace;
  • Поиск- отображает в левой части окна панель обозревателя Поиск, используя которую можно найти интересующий материал на компьютере, в сети или в Интернете;
  • Папки - отображает в левой части окна панель обозревателя Папки, облегчающую навигацию по папкам и файлам;
  • Вид- обеспечивает ускоренный доступ к командам, дублирующим команды меню Вид. Они позволяют отображать содержимое папок в различных режимах:

Диафильм - используется для просмотраü папок с изображениями. Изображения располагаются в ряд в виде миниатюрных кадров. Их можно прокручивать, используя кнопки со стрелками влево и вправо. Если щелкнуть какое-либо изображение, на экране появится его увеличенное представление поверх остальных изображений. Если изображение требуется изменить, распечатать или сохранить в другой папке, дважды щелкните его.

Эскизы страниц - отображает в окне миниатюрныеü изображения (эскизы) содержимого графических и видеофайлов, веб-страниц (HTML-файлов). В этом режиме на значке папки Мои рисунки и вложенных в нее папок показаны миниатюрные изображения из четырех файлов данной папки, изменявшихся последними. После щелчка картинки правой кнопкой мыши и выбора команды Просмотр запускается Программа просмотра изображений и факсов, позволяющая увеличить, уменьшить, повернуть и распечатать изображение. Информация кэшируется в файле Thumbs.db, что позволяет не ждать отрисовки содержимого при повторном просмотре папки.

Плитка - отображает файлы и папки в видеü значков рядом друг с другом, как плитки, образующие дорожку. Под именем файла или папки приводятся данные, соответствующие выбранному методу сортировки;

Значки - в окне папки видны значки объектов,ü под ними располагаются имена папок и файлов;

Список - объекты в окне папки сортируются по их названиям в алфавитном порядке. Сначала выводятся имена папок, затем файлов. Значки объектов располагаются в один или несколько столбцов рядом с их названиями;

Таблица - отображает в виде таблицы список объектов, хранящихся вü папке. В столбцах таблицы представлены основные сведениями о папках и файлах: Имя, Размер, Тип, Изменен. Для сортировки в алфавитном порядке данных таблицы, щелкните мышью на заголовке столбца. Для сортировки в обратном порядке повторите операцию;

В окне Мой компьютер откройте папку C:\Наш урок\Фотографии\. В этой папке несколько вложенных папок с фотографиями. Просмотрите их содержимое… Попробуйте изменять вид отображения папок и файлов. Выберите один из файлов и вызвав контекстное меню (провой кнопкой мыши) просмотрите его свойства (тип, размер, дата создания, атрибуты…). Самостоятельно просмотрите свойства диска C:.

А теперь найдите файл с именем C:\WINDOWS\NOTEPAD.EXE и откройте его. Совершенно верно, это программа Блокнот, ярлык которой есть на рабочем столе.

Теперь попробуем копировать файлы из одной папки в другую.

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

Однако бывают случаи, когда нам необходимо работать уже не с одним файлом или папкой, а сразу с несколькими! Значит, и выделять нам придется сразу несколько значков одновременно. Для выделения группы файлов нужно сначала выделить один 1 из них, а затем, нажав клавишу и удерживая ее нажатой, продолжать выделять остальные файлы. Повторный щелчок по выделенному файлу отменяет выделение. Когда группа будет выделена, клавишу можно отпустить. Для выделения нескольких файлов, идущих один за другим, нужно щелкнуть мышью на первом файле в группе, а затем, при нажатой клавише - на последнем. Все файлы, находящиеся между ними, станут выделенными. Можно также выделить файлы, обведя их прямоугольной рамкой при помощи мыши. Это особенно удобно, если вы не используете упорядочение значков.

Наконец, выделить все файлы в папке можно, нажав одновременно клавиши и A (латинская), или с помощью меню Правка/Выделить.

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

Копирование

Копировать файлы из папки в папки (или, к примеру, с жесткого диска на дискету) можно несколькими способами:

  • Вызвать Контекстное меню файла и выбрать пункт Копировать. Теперь перейдите в папку или на диск, куда вы хотите поместить копию ваш файла, вновь вызовите Контекстное меню и выберите пункт Вставить;
  • Эту же операцию можно проделать с помощью кнопок Копировать и Вставить на Панели инструментов окна Мой компьютер.
  • Наконец, файл можно просто перетянуть мышкой в новую папку, держа при этом нажатой клавишу клавиатуре (или перетянуть правой кнопкой мыши и выбрать в появившемся меню команду копировать).

Скопируйте себе несколько понравившихся фотографий.

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

Для переименования файла или папки можно выбрать пункт Переименовать Контекстного меню или просто нажать клавишу F2 на вашей клавиатуре. Обратите внимание - если ваш Проводник (Мой компьютер) умеет показывать не только имя файла, но и его расширение, будьте особо внимательны при переименовании. Если имя файла можно менять, то его расширение обязательно должно остаться в неприкосновенности.

Переименуйте скопированные вами файлы.

Для удаления не нужных файлов можно воспользоваться одним из нескольких способов:

  • Вызвать Контекстное меню файла и выбрать пункт Удалить;
  • Дать команду Файл→Удалить;
  • Нажать кнопку на клавиатуре ;
  • Перетащить файл или папку в корзину.

И на последок, выполните тоже самое задание, только папка источник будет находится на другом компьютере, например на сервере. Для этого откройте окно Сетевое окружение, выберите слева команду «Отобразить компьютеры рабочей группы», найдите Server и зайдите в открытую для общего доступа папку фотографии на сервере.

V. Д/з.

Знать, что такое файл, файловая система, уметь находить и открывать файлы, уметь копировать и переименовывать файлы. Учащимся, имеющим компьютеры дома, продолжить осваивать «слепой десятипальцевый метод печати».

Дополнительное задание: узнать, как можно создать дополнительную панель с ярлыками часто используемых вами программ.

VI. Вопросы учеников.

Ответы на вопросы учащихся.

VII. Итог урока.

Подведение итога урока. Выставление оценок.

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

Почему смартфон может не запускать программы с карты памяти? Чем ext4 принципиально отличается от ext3? Почему флешка проживет дольше, если отформатировать ее в NTFS, а не в FAT? В чем главная проблема F2FS? Ответы кроются в особенностях строения файловых систем. О них мы и поговорим.

Введение

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

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

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

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

Черный ящик

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

У поклонников Windows все просто: NTFS на всех дисковых разделах и FAT32 (или та же NTFS) на флешках. Если же стоит NAS и в нем используется какая-то другая файловая система, то для большинства это остается за гранью восприятия. К нему просто подключаются по сети и качают файлы, как из черного ящика.

На мобильных гаджетах с Android чаще всего встречается ext4 во внутренней памяти и FAT32 на карточках microSD. Яблочникам же и вовсе без разницы, что у них за файловая система: HFS+, HFSX, APFS, WTFS... для них существуют только красивые значки папок и файлов, нарисованные лучшими дизайнерами. Богаче всего выбор у линуксоидов, но прикрутить поддержку неродных для операционки файловых систем можно и в Windows, и в macOS - об этом чуть позже.

Общие корни

Различных файловых систем создано свыше сотни, но актуальными можно назвать чуть больше десятка. Хотя все они разрабатывались для своих специфических применений, многие в итоге оказались родственными на концептуальном уровне. Они похожи, поскольку используют однотипную структуру представления (мета)данных - B-деревья («би-деревья»).

Как и любая иерархическая система, B-дерево начинается с корневой записи и далее ветвится вплоть до конечных элементов - отдельных записей о файлах и их атрибутах, или «листьев». Основной смысл создания такой логической структуры был в том, чтобы ускорить поиск объектов файловой системы на больших динамических массивах - вроде жестких дисков объемом в несколько терабайт или еще более внушительных RAID-массивов.

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

Как и другие сбалансированные деревья, B-trees имеют одинаковую длину путей от корня до любого листа. Вместо роста ввысь они сильнее ветвятся и больше растут в ширину: все точки ветвления у B-дерева хранят множество ссылок на дочерние объекты, благодаря чему их легко отыскать за меньшее число обращений. Большое число указателей снижает количество самых длительных дисковых операций - позиционирования головок при чтении произвольных блоков.

Концепция B-деревьев была сформулирована еще в семидесятых годах и с тех пор подвергалась различным улучшениям. В том или ином виде она реализована в NTFS, BFS, XFS, JFS, ReiserFS и множестве СУБД. Все они - родственники с точки зрения базовых принципов организации данных. Отличия касаются деталей, зачастую довольно важных. Недостаток у родственных файловых систем тоже общий: все они создавались для работы именно с дисками еще до появления SSD.

Флеш-память как двигатель прогресса

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

Связано это ограничение с тем, что в NAND-памяти все ячейки объединены в блоки, каждый из которых имеет только одно общее подключение к управляющей шине. Не будем вдаваться в детали страничной организации и расписывать полную иерархию. Важен сам принцип групповых операций с ячейками и тот факт, что размеры блоков флеш-памяти обычно больше, чем блоки, адресуемые в любой файловой системе. Поэтому все адреса и команды для накопителей с NAND flash надо транслировать через слой абстрагирования FTL (Flash Translation Layer).

Совместимость с логикой дисковых устройств и поддержку команд их нативных интерфейсов обеспечивают контроллеры флеш-памяти. Обычно FTL реализуется именно в их прошивке, но может (частично) выполняться и на хосте - например, компания Plextor пишет для своих SSD драйверы, ускоряющие запись.

Совсем без FTL не обойтись, поскольку даже запись одного бита в конкретную ячейку приводит к запуску целой серии операций: контроллер отыскивает блок, содержащий нужную ячейку; блок считывается полностью, записывается в кеш или на свободное место, затем стирается целиком, после чего перезаписывается обратно уже с необходимыми изменениями.

Такой подход напоминает армейские будни: чтобы отдать приказ одному солдату, сержант делает общее построение, вызывает бедолагу из строя и командует остальным разойтись. В редкой ныне NOR-памяти организация была спецназовская: каждая ячейка управлялась независимо (у каждого транзистора был индивидуальный контакт).

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

Модули с одноуровневыми ячейками SLC имели заявленный ресурс в 100 тысяч циклов перезаписи и даже больше. Многие из них до сих пор работают в старых флешках и карточках CF. У MLC корпоративного класса (eMLC) ресурс заявлялся в пределах от 10 до 20 тысяч, в то время как у обычной MLC потребительского уровня он оценивается в 3–5 тысяч. Память этого типа активно теснит еще более дешевая TLC, у которой ресурс едва дотягивает до тысячи циклов. Удерживать срок жизни флеш-памяти на приемлемом уровне приходится за счет программных ухищрений, и новые файловые системы становятся одним из них.

Изначально производители предполагали, что файловая система неважна. Контроллер сам должен обслуживать недолговечный массив ячеек памяти любого типа, распределяя между ними нагрузку оптимальным образом. Для драйвера файловой системы он имитирует обычный диск, а сам выполняет низкоуровневые оптимизации при любом обращении. Однако на практике оптимизация у разных устройств разнится от волшебной до фиктивной.

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

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

От JFFS к F2FS

Одной из первых попыток написать файловую систему, которая бы учитывала принципы организации флеш-памяти, была JFFS - Journaling Flash File System. Изначально эта разработка шведской фирмы Axis Communications была ориентирована на повышение эффективности памяти сетевых устройств, которые Axis выпускала в девяностых. Первая версия JFFS поддерживала только NOR-память, но уже во второй версии подружилась с NAND.

Сейчас JFFS2 имеет ограниченное применение. В основном она все так же используется в дистрибутивах Linux для встраиваемых систем. Ее можно найти в маршрутизаторах, IP-камерах, NAS и прочих завсегдатаях интернета вещей. В общем, везде, где требуется небольшой объем надежной памяти.

Дальнейшей попыткой развития JFFS2 стала LogFS, у которой индексные дескрипторы хранились в отдельном файле. Авторы этой идеи - сотрудник немецкого подразделения IBM Йорн Энгель и преподаватель Оснабрюкского университета Роберт Мертенс. Исходный код LogFS выложен на GitHub . Судя по тому, что последнее изменение в нем было сделано четыре года назад, LogFS так и не обрела популярность.

Зато эти попытки подстегнули появление другой специализированной файловой системы - F2FS. Ее разработали в корпорации Samsung, на долю которой приходится немалая часть производимой в мире флеш-памяти. В Samsung делают чипы NAND Flash для собственных устройств и по заказу других компаний, а также разрабатывают SSD с принципиально новыми интерфейсами вместо унаследованных дисковых. Создание специализированной файловой системы с оптимизацией для флеш-памяти было с точки зрения Samsung давно назревшей необходимостью.

Четыре года назад, в 2012 году, в Samsung создали F2FS (Flash Friendly File System). Ее идея хороша, но реализация оказалась сыроватой. Ключевая задача при создании F2FS была проста: снизить число операций перезаписи ячеек и распределить нагрузку на них максимально равномерно. Для этого требуется выполнять операции с несколькими ячейками в пределах того же блока одновременно, а не насиловать их по одной. Значит, нужна не мгновенная перезапись имеющихся блоков по первому запросу ОС, а кеширование команд и данных, дозапись новых блоков на свободное место и отложенное стирание ячеек.

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

Экстенты и битовые карты

Пока F2FS воспринимается как экзотика для гиков. Даже в собственных смартфонах Samsung все еще применяется ext4. Многие считают ее дальнейшим развитием ext3, но это не совсем так. Речь идет скорее о революции, чем о преодолении барьера в 2 Тбайт на файл и простом увеличении других количественных показателей.

Когда компьютеры были большими, а файлы - маленькими, адресация не представляла сложностей. Каждому файлу выделялось энное количество блоков, адреса которых заносились в таблицу соответствия. Так работала и файловая система ext3, остающаяся в строю до сих пор. А вот в ext4 появился принципиально другой способ адресации - экстенты.

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

Поменялся в ext4 и сам механизм записи. Теперь распределение блоков происходит сразу за один запрос. И не заранее, а непосредственно перед записью данных на диск. Отложенное многоблочное распределение позволяет избавиться от лишних операций, которыми грешила ext3: в ней блоки для нового файла выделялись сразу, даже если он целиком умещался в кеше и планировался к удалению как временный.


Диета с ограничением FAT

Помимо сбалансированных деревьев и их модификаций, есть и другие популярные логические структуры. Существуют файловые системы с принципиально другим типом организации - например, линейным. Как минимум одной из них ты наверняка часто пользуешься.

Загадка

Отгадай загадку: в двенадцать она начала полнеть, к шестнадцати была глуповатой толстушкой, а к тридцати двум стала жирной, так и оставшись простушкой. Кто она?

Правильно, это история про файловую систему FAT. Требования совместимости обеспечили ей дурную наследственность. На дискетах она была 12-разрядной, на жестких дисках - поначалу 16-битной, а до наших дней дошла уже как 32-разрядная. В каждой следующей версии увеличивалось число адресуемых блоков, но в самой сути ничего не менялось.

Популярная до сих пор файловая система FAT32 появилась аж двадцать лет назад. Сегодня она все так же примитивна и не поддерживает ни списки управления доступом, ни дисковые квоты, ни фоновое сжатие, ни другие современные технологии оптимизации работы с данными.

Зачем же FAT32 нужна в наши дни? Все так же исключительно для обеспечения совместимости. Производители справедливо полагают, что раздел с FAT32 сможет прочитать любая ОС. Поэтому именно его они создают на внешних жестких дисках, USB Flash и картах памяти.

Как освободить флеш-память смартфона

Карточки microSD(HC), используемые в смартфонах, по умолчанию отформатированы в FAT32. Это основное препятствие для установки на них приложений и переноса данных из внутренней памяти. Чтобы его преодолеть, нужно создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), поэтому любое приложение сможет работать так, словно запустилось из внутренней памяти.

Windows не умеет делать на флешках больше одного раздела, но для этого можно запустить Linux (хотя бы в виртуалке) или продвинутую утилиту для работы с логической разметкой - например, MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Link2SD и аналогичные ему предложат куда больше вариантов, чем в случае с одним разделом FAT32.


Как еще один аргумент в пользу выбора FAT32 часто называют отсутствие в ней журналирования, а значит, более быстрые операции записи и меньший износ ячеек памяти NAND Flash. На практике же использование FAT32 приводит к обратному и порождает множество других проблем.

Флешки и карты памяти как раз быстро умирают из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов, где расположены две цепочки файловых таблиц. Сохранил веб-страничку целиком, и она перезаписалась раз сто - с каждым добавлением на флешку очередной мелкой гифки. Запустил портейбл-софт? Он насоздавал временных файлов и постоянно меняет их во время работы. Поэтому гораздо лучше использовать на флешках NTFS с ее устойчивой к сбоям таблицей $MFT. Мелкие файлы могут храниться прямо в главной файловой таблице, а ее расширения и копии записываются в разные области флеш-памяти. Вдобавок благодаря индексации на NTFS поиск выполняется быстрее.

INFO

Для FAT32 и NTFS теоретические ограничения по уровню вложенности не указаны, но на практике они одинаковые: в каталоге первого уровня можно создать только 7707 подкаталогов. Любители поиграть в матрешки оценят.

Другая проблема, с которой сталкивается большинство пользователей, - на раздел с FAT32 невозможно записать файл больше 4 Гбайт. Причина заключается в том, что в FAT32 размер файла описывается 32 битами в таблице размещения файлов, а 2^32 (минус единица, если быть точным) как раз дают четыре гига. Получается, что на свежекупленную флешку нельзя записать ни фильм в нормальном качестве, ни образ DVD.

Копирование больших файлов еще полбеды: при попытке сделать это ошибка хотя бы видна сразу. В других ситуациях FAT32 выступает в роли бомбы замедленного действия. Например, ты скопировал на флешку портейбл-софт и на первых порах пользуешься им без проблем. Спустя длительное время у одной из программ (допустим, бухгалтерской или почтовой) база данных раздувается, и... она просто перестает обновляться. Файл не может быть перезаписан, поскольку достиг лимита в 4 Гбайт.

Менее очевидная проблема заключается в том, что в FAT32 дата создания файла или каталога может быть задана с точностью до двух секунд. Этого недостаточно для многих криптографических приложений, использующих временные метки. Низкая точность атрибута «дата» - еще одна причина того, почему FAT32 не рассматривается как полноценная файловая система с точки зрения безопасности. Однако ее слабые стороны можно использовать и в своих целях. Например, если скопировать на том FAT32 любые файлы с раздела NTFS, то они очистятся от всех метаданных, а также унаследованных и специально заданных разрешений. FAT просто не поддерживает их.

exFAT

В отличие от FAT12/16/32, exFAT разрабатывалась специально для USB Flash и карт памяти большого (≥ 32 Гбайт) объема. Extended FAT устраняет упомянутый выше недостаток FAT32 - перезаписывание одних и тех же секторов при любом изменении. Как у 64-разрядной системы, у нее нет практически значимых лимитов на размер одного файла. Теоретически он может иметь длину в 2^64 байт (16 Эбайт), а карточки такого объема появятся нескоро.

Еще одно принципиальное отличие exFAT - поддержка списков контроля доступа (ACL). Это уже не та простушка из девяностых, однако внедрению exFAT мешает закрытость формата. Поддержка exFAT полноценно и легально реализована только в Windows (начиная с XP SP2) и OS X (начиная с 10.6.5). В Linux и *BSD она поддерживается либо с ограничениями, либо не вполне законно. Microsoft требует лицензировать использование exFAT, и в этой области много правовых споров.

Btrfs

Еще один яркий представитель файловых систем на основе B-деревьев называется Btrfs. Эта ФС появилась в 2007 году и изначально создавалась в Oracle с прицелом на работу с SSD и RAID. Например, ее можно динамически масштабировать: создавать новые индексные дескрипторы прямо в работающей системе или разделять том на подтома без выделения им свободного места.

Реализованный в Btrfs механизм копирования при записи и полная интеграция с модулем ядра Device mapper позволяют делать практически мгновенные снапшоты через виртуальные блочные устройства. Предварительное сжатие данных (zlib или lzo) и дедупликация ускоряют основные операции, заодно продлевая время жизни флеш-памяти. Особенно это заметно при работе с базами данных (достигается сжатие в 2–4 раза) и мелкими файлами (они записываются упорядоченно крупными блоками и могут храниться непосредственно в «листьях»).

Также Btrfs поддерживает режим полного журналирования (данных и метаданных), проверку тома без размонтирования и множество других современных фич. Код Btrfs опубликован под лицензией GPL. Эта файловая система поддерживается в Linux как стабильная начиная с версии ядра 4.3.1.

Бортовые журналы

Практически все более-менее современные файловые системы (ext3/ext4, NTFS, HFSX, Btrfs и другие) относят к общей группе журналируемых, поскольку они ведут учет вносимых изменений в отдельном логе (журнале) и сверяются с ним в случае сбоя при выполнении дисковых операций. Однако степень подробности ведения журналов и отказоустойчивость у этих файловых систем разные.

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

Целостность данных обеспечивает только последний вариант. Остальные два лишь ускоряют выявление ошибок в ходе проверки и гарантируют восстановление целостности самой файловой системы, но не содержимого файлов.

Журналирование в NTFS похоже на второй режим ведения лога в ext3. В журнал записываются только изменения в метаданных, а сами данные в случае сбоя могут быть утеряны. Такой метод ведения журнала в NTFS задумывался не как способ достижения максимальной надежности, а лишь как компромисс между быстродействием и отказоустойчивостью. Именно поэтому люди, привыкшие к работе с полностью журналируемыми системами, считают NTFS псевдожурналируемой.

Реализованный в NTFS подход в чем-то даже лучше используемого по умолчанию в ext3. В NTFS дополнительно периодически создаются контрольные точки, которые гарантируют выполнение всех отложенных ранее дисковых операций. Контрольные точки не имеют ничего общего с точками восстановления в \System Volume Infromation\ . Это просто служебные записи в логе.

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

Подключаем сторонние ФС в Windows

Использование файловых систем лимитировано их поддержкой на уровне ОС. Например, Windows не понимает ext2/3/4 и HFS+, а использовать их порой надо. Сделать это можно, добавив соответствующий драйвер.

WARNING

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

Открытый драйвер для чтения и записи на разделы ext2/3 с частичной поддержкой ext4. В последней версии поддерживаются экстенты и разделы объемом до 16 Тбайт. Не поддерживаются LVM, списки контроля доступа и расширенные атрибуты.


Существует бесплатный плагин для Total Commander. Поддерживает чтение разделов ext2/3/4.


coLinux - открытый и бесплатный порт ядра Linux. Вместе с 32-битным драйвером он позволяет запускать Linux в среде Windows с 2000 по 7 без использования технологий виртуализации. Поддерживает только 32-битные версии. Разработка 64-битной модификации была отменена. сoLinux позволяет в том числе организовать из Windows доступ к разделам ext2/3/4. Поддержка проекта приостановлена в 2014 году.

Возможно, в Windows 10 уже есть встроенная поддержка характерных для Linux файловых систем, просто она скрыта. На эти мысли наводит драйвер уровня ядра Lxcore.sys и сервис LxssManager, который загружается как библиотека процессом Svchost.exe. Подробнее об этом смотри в докладе Алекса Ионеску «Ядро Линукс, скрытое внутри Windows 10», с которым он выступил на Black Hat 2016.


ExtFS for Windows - платный драйвер, выпускаемый компанией Paragon. Он работает в Windows с 7 по 10, поддерживает доступ к томам ext2/3/4 в режиме чтения и записи. Обеспечивает почти полную поддержку ext4 в Windows.

HFS+ for Windows 10 - еще один проприетарный драйвер производства Paragon Software. Несмотря на название, работает во всех версиях Windows начиная с XP. Предоставляет полный доступ к файловым системам HFS+/HFSX на дисках с любой разметкой (MBR/GPT).

WinBtrfs - ранняя разработка драйвера Btrfs для Windows. Уже в версии 0.6 поддерживает доступ к томам Btrfs как на чтение, так и на запись. Умеет обрабатывать жесткие и символьные ссылки, поддерживает альтернативные потоки данных, ACL, два вида компрессии и режим асинхронного чтения/записи. Пока WinBtrfs не умеет использовать mkfs.btrfs, btrfs-balance и другие утилиты для обслуживания этой файловой системы.

Возможности и ограничения файловых систем: сводная таблица

Фай-ло-вая сис-те-ма Мак-си-маль-ный раз-мер тома Пре-дель-ный раз-мер одного файла Дли-на собст-вен-ного имени файла Дли-на пол-но-го имени файла (вклю-чая путь от корня) Пре-дель-ное число файлов и/или ката-ло-гов Точ-ность ука-за-ния даты файла/ката-ло-га Права дос-ту-па Жёсткие ссылки Сим-воль-ные ссылки Мгно-вен-ные снимки (snap-shots) Сжа-тие дан-ных в фоне Шиф-ро-ва-ние дан-ных в фоне Деду-пли-ка-ция дан-ных
FAT16 2 ГБ секторами по 512 байт или 4 ГБ кластерами по 64 КБ 2 ГБ 255 байт с LFN - - - - - - - - - -
FAT32 8 ТБ секторами по 2 КБ 4 ГБ (2^32 - 1 байт) 255 байт с LFN до 32 подкаталогов с CDS 65460 10 мс (создание) / 2 с (изменение) нет нет нет нет нет нет нет
exFAT ≈ 128 ПБ (2^32-1 кластеров по 2^25-1 байт) теоретически / 512 ТБ из-за сторонних ограничений 16 ЭБ (2^64 - 1 байт) 2796202 в каталоге 10 мс ACL нет нет нет нет нет нет
NTFS 256 ТБ кластерами по 64 КБ или 16 ТБ кластерами по 4 КБ 16 ТБ (Win 7) / 256 ТБ (Win 8) 255 символов Unicode (UTF-16) 32760 символов Unicode, но не более 255 символов в каждом элементе 2^32-1 100 нс ACL да да да да да да
HFS+ 8 ЭБ (2^63 байт) 8 ЭБ 255 символов Unicode (UTF-16) отдельно не ограничивается 2^32-1 1 с Unix, ACL да да нет да да нет
APFS 8 ЭБ (2^63 байт) 8 ЭБ 255 символов Unicode (UTF-16) отдельно не ограничивается 2^63 1 нс Unix, ACL да да да да да да
Ext3 32 ТБ (теоретически) / 16 ТБ кластерами по 4 КБ (из-за ограничений утилит e2fs programs) 2 ТБ (теоретически) / 16 ГБ у старых программ 255 символов Unicode (UTF-16) отдельно не ограничивается - 1 с Unix, ACL да да нет нет нет нет
Ext4 1 ЭБ (теоретически) / 16 ТБ кластерами по 4 КБ (из-за ограничений утилит e2fs programs) 16 ТБ 255 символов Unicode (UTF-16) отдельно не ограничивается 4 млрд. 1 нс POSIX да да нет нет да нет
F2FS 16 ТБ 3,94 ТБ 255 байт отдельно не ограничивается - 1 нс POSIX, ACL да да нет нет да нет
BTRFS 16 ЭБ (2^64 - 1 байт) 16 ЭБ 255 символов ASCII 2^17 байт - 1 нс POSIX, ACL да да да да да да

Одной из компонент ОС является файловая система – основное хранилище системной и пользовательской информации. Все современные ОС работают с одной или несколькими файловыми системами, например, 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б представлена логическая структура жесткого диска, в котором всего два раздела и четыре логических диска.