Компьютеры Windows Интернет

Файловая система Windows. Файловая система Какие файловые системы используются операционной windows

Мы привыкли к таким терминам, как “файл” и “папка” или “директория”. Но что это за механизм, который управляет файлами, проводит их аудит и контролирует их перемещение?

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

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

принцип работы файловой системы windows

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

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

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

В файловых системах FAT32 и NTFS, такой базой данных является Главная Файловая Таблица (MFT – Master File Table).

Что на самом деле происходит при перемещении, копировании и удалении файлов?

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

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

1. Перемещение файла : данная операция подразумевает смену одного пути на другой. Следовательно, необходимо изменить только запись в Главной Файловой Таблице, а сам файл физически перемещать нет необходимости. Он остается на прежнем месте в неизменном виде.

2. Копирование файла : данная операция подразумевает создание еще одной дополнительной реализации файла на новом месте. При этом происходит не только создание записи в MFT, но и появление еще одной реальной копии файла на новом месте.

3. Удаление файла : в данном случае файл сначала помещается в Корзину. После вызова функции “Очистить” Корзину, файловая система удаляет запись из MFT. При этом файл физически не удаляется, он остается на своем прежнем месте месте. И будет существовать, пока его не перезапишут. Эту особенность следует учитывать при удалении конфиденциальных файлов: лучше использовать для этого специальные программы.

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

Какие типы файловых систем существуют?

1. FAT16 (File Allocated Table 16) . Устаревшая файловая система, которая могла работать только с файлами размером не больше 2 Гб, поддерживала жесткие диски емкостью не более 4 Гб, и могла хранить и обрабатывать не более 65636 файлов. С развитием технологий и ростом потребностей пользователей данную файловую систему заменила NTFS.

2. FAT32 . С ростом объема данных, хранимых на носителях информации, была разработана и введена новая файловая система Windows, которая стала поддерживать файлы размером до 4 Гб и установила предельную емкость жесткого диска на планке 8 Тб. Как правило, в настоящее время FAT32 используется только на внешних носителях информации.

3. NTFS (New Technology File System) . Это стандартная файловая система, устанавливаемая на все современные компьютеры с операционной системой Windows. Максимальный размер файла, обрабатываемый данной файловой системой, 16 Тб; максимально поддерживаемый размер жесткого диска – 256 Тб.

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

4. HSF+ (Hierarchical File System+) . Стандартная файловая система для компьютеров с операционной системой MacOS. Аналогично NTFS, она поддерживает файлы большого объема и жесткие диски емкостью несколько сотен терабайт.

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

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

Самый простой способ: откройте “Проводник файлов” –> выберите интересующий вас раздел жесткого диска –> кликните по нему правой кнопкой мыши –> в появившемся меню выберите пункт “Свойства” –> в открывшемся окошке выберите вкладку “Общие”.

Обслуживание файловой системы Windows

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

Чтобы этого не допустить, и “навести порядок” в файловой системе, необходимо регулярно производить дефрагментацию разделов жесткого диска.

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

В открывшемся окошке можно настроить операцию автоматической дефрагментации дисков.

Чтобы осуществить дефрагментацию самостоятельно, укажите раздел жесткого диска, нажмите кнопку “Анализировать диск” –> а затем “Дефрагментация диска”.

Дождитесь завершения операции и закройте окошко.

Сегодня при инсталляции Windows 2000, или Windows XP перед тобой неизменно встает вопрос: "Какую файловую систему предпочесть - FAT 32 или NTFS?". И многие, решив, что "с FAT я уже знаком" останавливают свой выбор именно на FAT32. Да что далеко ходить - даже в X в одной из статей автор писал, что "при установке Win 2000 я оставил FAT32, потому что на ней система работает быстрее"… Что здесь неправильно? Да то, что быстрее она работать попросту не может… Так что тебе, чтобы не повторять подобных ошибок, было бы полезно хотя бы понимать "как все устроено". Надеюсь этот краткий обзор тебе поможет - мы рассмотрим FAT16, FAT32 и NTFS.(FAT16 полезно рассмотреть по той
причине, что от FAT32 ее отличает очень не многое и полезно эти отличия хотя бы знать).

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

Это теория, а теперь недостатки: ты никогда не задумывался, что значит "16" в названии файловой системы? А значат они то, что таблица размещения файлов FAT (File Allocation Table) идентифицирует записи, соответствующие дисковым кластерам, при помощи 16-разрядных чисел. Таким образом, в таблице можно разместить не более 65 536 записей (2 в 16-ой степени). А если учитывать то, что максимальный размер кластера - 32 Кбайта, то выходит, что максимальный раздел дискового тома - 2 Гбайта. У тебя логические диски на винте наверное ГОРАЗДО большего размера? Это недостаток номер "раз"(хотя надо отметить, что FAT32 этот недостаток почти что преодолела). Недостаток номер два - это то, что для хранения ВСЕХ файловых атрибутов система FAT использует всего 1 байт. Как ты думаешь много ли можно засунуть в один байт? Правильно именно по этой причине нельзя хранить ни сведения о праве доступа к файлу, ни о его владельце… Недостаток номер "три" кроется в том, что при использовании FAT больший размер дискового тома означает больший размер кластера, а одна из главных "невкусностей FAT" - это то, что один файл = как минимум один кластер. Пример: имеем размер кластера 32 Кбайта и файл размером в 2 Кбайта - в результате файл занимает весь кластер, т.е. мы теряем 30 Кбайт…Примерно тоже самое получится, если файл будет размером 34 Кбайта - тогда он займет два кластера и во втором мы опять потеряем 30 Кбайт… Недостатки номер "четыре и пять" - сведения о физическом расположении файлов хранятся в одном месте - таблице размещения файлов FAT, что: а) увеличивает вероятность повреждения и потери всей информации; б) снижает скорость поиска, т.к. для поиска определенного файла нужно обработать всю таблицу.
Нужно признать, что FAT16 создавалась давно, во времена MS-DOS и требованиям того времени вполне удовлетворяла…

Эта файловая система пришла на смену FAT16. Если ты внимательно читал предыдущий параграф, то уже понял, что ее отличие в том, что таблица размещения файлов FAT (File Allocation Table) идентифицирует записи, соответствующие дисковым кластерам, при помощи 32-разрядных чисел. В соответствии с этим максимальное количество записей становится равным 4 294 967 296 (2 в 32-ой степени). В связи с чем максимальный размер дискового тома существенно увеличивается (до 2 Тбайт). Однако это позволяет преодолеть лишь недостаток номер "раз", однако все остальные - увы остаются… И что особенно обидно для владельцев небольших винтов - нерациональное расходование дискового пространства… а также частые повреждения разнообразной природы и т.д. Скандиск у любителей FAT не знает, что такое отдых….

Расшифровывается как New Technology File System - как ты наверное понял из названия - это круто и здорово… и причем это не только слова! По сравнению с FAT файловая система NTFS обладает куда более сложной структурой и куда более широкими
возможностями. В отличии от FAT, файловая система NTFS не хранит всю информацию о расположении файлов в одном месте. Вместо этого сведения о распределении дискового пространства между файлами сохраняются в составе специальных пакетов, которые могут располагаться в любом месте раздела
(помнишь недостаток "четыре" у системы FAT?). Структура каталогов NTFS также отличается от структуры каталогов FAT. Дисковые каталоги NTFS лучше приспособлены для осуществления поиска файлов, так как записи о файлах сохраняются с использованием бинарного дерева, а не простого линейного списка (как это было в FAT). Это означает, что для того, чтобы обнаружить файл, требуется проанализировать меньшее количество записей (теперь подумай прав ли автор, которого я упомянул вначале статьи). А если к этому еще прибавить возможность индексирования, то система будет просто летать!

Файловая система NTFS обладает встроенной поддержкой длинных имен и расширяемых файловых атрибутов. Благодаря этому разделы NTFS могут хранить информацию, связанную с защитой файлов (например, списки ACL), аудитом доступа к файлам, а также сведения, связанные с правами на владение файлами. (теперь, ты можешь поставишь запрет на доступ к каталогу с порнушкой для всех, кроме себя и тебя не
понадобиться для этого какие-либо дополнительные проги, которых так много расплодилось для Win9X c ее FAT32!)

Задание дисковой квоты - еще одна возможность NTFS, связанная с возможностью сохранения расширенного количества атрибутов файла. Заключается она в том, что определенному пользователю можно назначить определенный размер дискового пространства, который он может использовать для хранения своих файлов (ты наверно уже сталкивался с этим, если имел дело с каким
либо хостингом). Если же ты подобного опыта не имел, то объясняю: при попытке сохранения файла, система анализирует размер всех файлов, которые уже принадлежат тебе (ага, по тому самому атрибуту "владелец" о котором говорилось только что) и сравнивает с назначенной тебе дисковой квотой. Если остаток квоты достаточен для размещения этого файла, то будет выполнено сохранение, в противном случае тебя пошлет подальше сообщением "превышена дисковая квота". Какая польза от этого? Конечно ты не собираешься открывать на своем компе бесплатный хостинг… но вот не позволить младшему братишке забить весь винт своими
дурацкими игрушками - это запросто (выдели ему 500 Мегабайт - пусть попробует погамится;-)).

Если при использовании FAT самое лучшее на что ты мог рассчитывать - это то, что файл будет занимать на диске не более, чем собственный размер, то при использовании NTFS можешь об этом забыть! В NTFS минимальная единица равна сектору жесткого диска и один файл не означает один кластер! Помимо этого файловая система поддерживает атрибут, позволяющий осуществлять индивидуальную компрессию файлов и каталогов. Пример: У меня есть каталог размером 80 мегабайт. После компрессии он занимает на диске 30 мегабайт "c кепкой"…

Новые возможности NTFS5 и Windows 2000 позволяют
задействовать архитектуру открытых ключей
для шифрования файлов, каталогов или томов
с помощью EFS. Кроме того наверняка всех
порадует возможность монтирования. С
помощью данной фишки можно подсоединить
любой диск/хард в любое место файловой
системы - например папку C:\XXX\ назначить на
твой логический диск Р: (что значит порно:).

Ну и в довершение всего NTFS поддерживает ОЧЕНЬ большие диски - до 16 экзабайт. (экзабайт - это 1 073 741 824 Гигабайт). Простой пример: Если жесткий диск способен записать 1 мегабайт данных в секунду, то для того, чтобы записать один экзабайт (заметь один, а не шестнадцать), ему потребуется 1000 миллиардов секунд. В одном году 3 миллиона секунд. Следовательно, чтобы сохранить один экзабайт данных потребуется 300 000 лет… Я тут слышал, что собираются запустить корабль к ближайшей звезде - Альфа-Центавра. Предполагают, что он долетит туда за 200 лет…

Итак, если ты идешь в ногу со временем, то твой выбор - NTFS. Но не забывай, что за всеми ее "вкусностями" таится одна проблема - ее из под DOS не видно. Поэтому раньше те, кто боялся падения системы на NTFS не переходили. Но это было раньше! Теперь с приходом Windows 2000 появилась новая возможность - "консоль восстановления", которая позволить тебе получить доступ к разделу NTFS, даже если операционка повреждена. Установить сие чудо довольно просто: после установки ОСи, просто запусти программу установки заново с ключом "/cmdcons", после чего консоль восстановления добавится в меню выбора операционной системы.
Ну а если тебе по душе старое и простое - то FAT создан именно для тебя….

Вы знаете, что Windows Phone использует NTFS? Почему большинство карт памяти и почти все USB-накопители по-прежнему используют старый-добрый FAT? Почему вы можете хранить полноразмерные HD-фильмы на некоторых флеш-накопителях и не можете на других? Почему некоторые устройства поддерживают только карты памяти SDHC до 32 ГБ, и что можно сделать, чтобы заставить их использовать 64 ГБ SDXC? Эти и многие другие вопросы связаны с типом файловой системы, используемой конкретным устройством хранения. Но как это связано с Windows?

В начале истории персональных компьютеров (думаю, в эпоху текстовых DOS-боксов и дискет) единственной используемой файловой системой была FAT12. С появлением жестких дисков, способных хранить несколько мегабайт данных (да, именно мегабайт, а не гигабайт!) была разработана новая версия FAT под названием FAT16. Под эту файловую систему и разрабатывался Windows 95, получив лишь «апгрейд» в виде поддержки более длинных имен файлов. В Windows 98 Microsoft добавили поддержку еще одной новой версии FAT под названием FAT32 для поддержки больших жестких дисков (да, к тому времени мы уже начали измерять дисковое пространство в гигабайтах).

В параллельной вселенной Windows NT Microsoft все время использовала файловую систему новых технологий, или NTFS. Windows NT 4, Windows 2000, а затем Windows XP, Vista, Windows 7, 8, 8.1 и новые Windows 10 используют NTFS.

В еще одной параллельной вселенной – вселенной съемного хранилища вы можете выбирать между универсальным FAT32 (при этом столкнувшись с его ограничением в размерах файлов в 4 ГБ) и более новым, но не так широко поддерживаемым (из-за ограничений по лицензированию) exFAT. Кстати, exFAT используется в качестве файловой системы по выбору на всех картах SDXC емкостью 64 ГБ и более.

Итак, в настоящее время у нас есть три различных семейства файловых систем: древняя, но все же широко применяемая FAT32, новая NTFS и свежеразработанная, оптимизированная на основе Solid ExFAT. Какую из этих файловых систем использовать, и когда? И каковы различия между ними?

FAT32: Очевидный выбор

FAT32 по-прежнему остается единственной файловой системой, используемой в Windows 98 или Windows ME. FAT32 фактически является файловой системой выбора для карт памяти SD до 32ГБ включительно. Наконец, FAT32 часто используется для форматирования USB-накопителей, в том числе емкостью 64ГБ и выше.

Старичок FAT32… Его основные ограничения хорошо известны. FAT32 поддерживает работу с файлами размером не более 4 ГБ. Если кажется, что для одного файла это много, вспомните о том, что один видеоролик в формате HD занимает от 4,5 до 10 ГБ, и сразу станет понятно, насколько данное ограничение существенно в современных реалиях. Его другие ограничения включают в себя отсутствие надежной поддержки, абсолютное отсутствие контроля доступа, отсутствия шифрования, сжатия или отказоустойчивости.

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

NTFS: системный диск

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

В NTFS есть все, чего не хватает FAT. Мощные параметры контроля доступа? Пожалуйста. Отказоустойчивость и ведение журнала? Получите. Мгновенное сжатие и шифрование отдельных файлов, папок и целых томов диска? Конечно. Альтернативные потоки данных, повышенные меры безопасности, резервное копирование самой файловой системы и важных системных файлов и многие другие функции… Начиная с его первоначального выпуска в 1994 году, NTFS получала все новые обновления, в том числе, повышающие ее совместимость. Ее великолепный дизайн и простая реализация по-прежнему не имеют аналогов среди других файловых систем даже сегодня. Она достаточно универсальна для использования даже на смартфонах начального уровня под управлением Windows Phone 8 и 8.1. Но, если это такая отличная файловая система, почему ее не используют все и везде?

Как вы могли ожидать, NTFS не лишена недостатков. Разработанная еще в 1994 году для серверных операций, эта файловая система всегда требовала большой вычислительной мощности для поддержания своих многочисленных структур. Ее системные записи быстро растут, занимают драгоценное пространство и добавляют дополнительную нагрузку на эти устройства хранения, использующие флэш-память NAND. Наконец, если использовать что-либо, кроме больших жестких дисков, ее накладные расходы окажутся слишком велики, поэтому всеобщее признание система пока так и не завоевала. И последнее, но не менее важное: NTFS запатентована Microsoft, которые не желают открывать лицензии на эту файловую систему конкурентам.

exFAT: лучшее, если поддерживается…

Чтобы преодолеть ограничения FAT32 и уменьшить дополнительную нагрузку, оказываемую NTFS на носители на основе NAND, Microsoft разработала еще одну файловую систему под названием Extended FAT или exFAT. Эта файловая система в значительной степени основана на той же концепции, что и оригинальный FAT, только теперь она является настоящей 64-битной файловой системой без ограничения размера файла, существующего в FAT32. Именно поэтому exFAT используется как стандарт для больших SD-карт (стандарт SDXC требует, чтобы все SD-карты размером 64 ГБ и более были отформатированы с помощью exFAT). Поэтому, если вы покупаете 64-гигабайтную карту microSDXC, она будет работать на основе exFAT … и по этой причине она может не распознаваться вашим смартфоном или планшетом.

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

Можете ли вы самолично преодолеть это ограничение? В большинстве случаев да, и довольно легко. Просто подключите свою SD-карту к ПК через устройство чтения карт и отформатируйте ее с помощью … вы догадались… FAT32! Таким образом, вы потеряете возможность хранить на ней файлы размером более 4 ГБ, но ваша карта памяти, скорее всего, будет распознана и будет бесперебойно работать на устройстве Android, которое по техническим характеристикам вроде как и не должно поддерживать SD-карты емкостью более 32 ГБ.

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

Однако минуточку… Windows Phone – это ОС Microsoft, так не будут ли устройства Windows Phone поддерживать exFAT по умолчанию? Так и есть! Windows Phone 8 и 8.1 действительно поставляются со встроенной поддержкой exFAT, бесплатной для производителей, которые хотят выпускать устройства для платформы Windows Phone. Microsoft предлагает бесплатную лицензию exFAT в рамках своего «пакета стимулирования», призванного побудить большее число производителей присоединиться к платформе Windows Phone.

Наконец, все или почти все планшеты с операционной системой Windows RT и полной версией Windows 8 или 8.1 поддерживают exFAT и распознают 64-ГБ и более крупные SD-карты без труда.

Восстановление файловых систем Windows

Практически каждый инструмент восстановления данных на базе Windows предлагает поддержку FAT32 и NTFS. Инструменты, поддерживающие exFAT, гораздо менее доступны из-за ограничений лицензирования Microsoft. Одним из инструментов поддержки всех трех файловых систем Windows является RS Partition Recovery .

Наконец, если вам нужна только поддержка одной из файловых систем, вы можете сэкономить, выбрав

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

Основная задача файловой системы - обеспечение взаимодействия программ и физических устройств ввода/вывода (различных накопителей). Она также определяет структуру хранения файлов и каталогов на диске, правила задания имен файлов, допустимые атрибуты файлов, права доступа и др.

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

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

Имя файла - это символьная строка, правила построения которой зависят от конкретной файловой системы. Максимальная длина имени файла в Windows составляет 255 символов. Имена могут содержать любые символы, включая пробелы, кроме следующих: прямой и обратный слэш (\ и /), двоеточие (:), звездочка (*), знак вопроса (?), двойная кавычка ("), знаков меньше и больше (< и >), знака «трубопровода» (|). Система сохраняет использованные в длинных именах строчные буквы.

Помимо имени, файл имеет расширение (тип) длиной до 3 символов, которое отделяется от имени точкой. К свойствам файла также относятся: реальный размер и объем занимаемого дискового пространства; время создания, последнего изменения и доступа; имя создателя файла; пароль для доступа, атрибуты и др.

Файл может иметь следующие атрибуты:

R (Read-Only) - «только для чтения». При попытке модифицировать или удалить файл с этим атрибутом будет выдано соответствующее сообщение.

H (Hidden) - «скрытый файл». При просмотре содержимого папки (без специальных установок или ключа) сведения о файлах с таким атрибутом не выдаются.

A (Archive) - «неархивированный файл». Этот атрибут устанавливается при создании каждого файла и снимается средствами архивации и резервирования файлов.

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

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

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

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

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

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

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

Каждый диск на компьютере имеет уникальное имя. Диски именуются буквами латинского алфавита. Обычно накопителю на гибком магнитном диске (НГМД) присваивается имя А:, а винчестеру (НЖМД) - С:.

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

Windows XP позволяет форматировать жесткий диск в файловой системе FAT или NTFS.

Система FAT (File Allocation Table) - представляет собой таблицу размещения файлов MS-DOS и Windows 9x и Me, поэтому понимается этими ОС. Но она имеет низкую отказоустойчивость, и при аварийном отключении питания велика вероятность потери данных.

Система NTFS (New Technology File System) - была разработана Microsoft специально для Windows NT. Она гарантирует сохранность данных в случае копирования даже при программно-аппаратном сбое или отключении электропитания, превосходит FAT по эффективности использования ресурсов (например, работает с файлами размером более 4 Гб), предоставляет возможность создавать «динамические» жесткие диски, объединяющие несколько папок, предоставляет средства для разграничения доступа и защиты информации и др.

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

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

Имена файлов и их атрибуты хранятся в каталоге. Если в каталоге хранится имя файла, то говорят, что этот файл находится в данном каталоге. Обращение к каталогу, если он не корневой, осуществляется по имени 3 .

На каждом диске может быть несколько каталогов. В каждом каталоге могут присутствовать файлы и другие каталоги. В зависимости от файловой системы структура каталогов может быть древовидной, когда каталог может входить только в один каталог более высокого уровня (рис. 3.2, а), и сетевой, когда каталог может входить в различные каталоги (рис. 3.2,6). Сетевая структура реализована в Unix, древовидная - в ОС семейства Windows.

Рис. 3.2. Структура каталога: а - древовидная; б - сетевая

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

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

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

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

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

Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, обычно называется драйвером этого устройства (от английского drive - управлять, вести). Драйвер может управлять единственной моделью устройства, например модемом U-1496E компании ZyXEL, или же группой устройств определенного типа, например любыми Hayes-совместимыми модемами. Для пользователя очень важно, чтобы операционная система включала как можно больше разнообразных драйверов, так как это гарантирует возможность подключения к компьютеру большого числа внешних устройств различных производителей. От наличия подходящих драйверов во многом зависит успех операционной системы на рынке (например, отсутствие многих необходимых драйверов внешних устройств было одной из причин низкой популярности OS/2).



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

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

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

Задачи ОС по управлению файлами и устройствами

Подсистема ввода-вывода (Input-Output Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд общих задач, из которых наиболее важными являются следующие:

Организация параллельной работы устройств ввода-вывода и процессора;

Согласование скоростей обмена и кэширование данных;

Разделение устройств и данных между процессами;

Обеспечение удобного логического интерфейса между устройствами и остальной частью системы;

Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;

Поддержка нескольких файловых систем;

Поддержка синхронных и асинхронных операций ввода-вывода.

Одной из основных задач операционной системы является предоставление удобств пользователю при работе с данными, хранящимися на дисках. Для этого ОС подменяет физическую структуру хранящихся данных некоторой удобной для пользователя логической моделью. Логическая модель файловой системы материализуется в виде дерева каталогов , выводимого на экран такими утилитами, как Norton Commander или Windows Explorer, в символьных составных именах файлов, в командах работы с файлами. Базовым элементом этой модели является файл , который так же, как и файловая система в целом, может характеризоваться как логической, так и физической структурой.

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

Основные цели использования файла:

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

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

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

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

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

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

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

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

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

Именование файлов;

Программный интерфейс для приложений;

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

Устойчивость файловой системы к сбоям питания, ошибкам аппаратных и программных средств.

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

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

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

Обычные файлы , или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.

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

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

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

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

Рисунок 2.16. Иерархия файловых систем (а – одноуровневая структура, б – древовидная структура, в – сетевая структура)

Граф, описывающий иерархию каталогов, может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог (рисунок 2.16, б), и сеть - если файл может входить сразу в несколько каталогов (рисунок 2.16, в). Например, в MS-DOS и Windows каталоги образуют древовидную структуру, а в UNIX - сетевую. В древовидной структуре каждый файл является листом. Каталог самого верхнего уровня называется корневым каталогом , или корнем (root).

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

Частным случаем иерархической структуры является одноуровневая организация, когда все файлы входят в один каталог (рисунок 2.16, а).

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

Простое, или короткое, символьное имя идентифицирует файл в пределах одного каталога. Простые имена присваивают файлам пользователи и программисты, при этом они должны учитывать ограничения ОС как на номенклатуру символов, так и на длину имени. До сравнительно недавнего времени эти границы были весьма узкими. Так, в популярной файловой системе FAT длина имен ограничивались схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в файловой системе s5, поддерживаемой многими версиями ОС UNIX, простое символьное имя не могло содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлам легко запоминающиеся названия, ясно говорящие о том, что содержится в этом файле. Поэтому современные файловые системы, а также усовершенствованные варианты уже существовавших файловых систем, как правило, поддерживают длинные простые символьные имена файлов. Например, в файловых сиетемах NTFS и FAT32, входящих в состав операционной системы Windows NT, имя файла может содержать до 255 символов.

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

Полное имя представляет собой цепочку простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла. Таким образом, полное имя является составным, в котором простые имена отделены друг от друга принятым в ОС разделителем. Часто в качестве разделителя используется прямой или обратный слеш, при этом принято не указывать имя корневого каталога. На рисунке 2.16, б два файла имеют простое имя main.exe, однако их составные имена /depart/main.ехе и /user/anna/main.exe различаются.

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

Файл может быть идентифицирован также относительным именем. Относительное имя файла определяется через понятие «текущий каталог». Для каждого пользователя в каждый момент времени один из каталогов файловой системы является текущим, причем этот каталог выбирается самим пользователем по команде ОС. Файловая система фиксирует имя текущего каталога, чтобы затем использовать его как дополнение к относительным именам для образования полного имени файла. При использовании относительных имен пользователь идентифицирует файл цепочкой имен каталогов, через которые проходит маршрут от текущего каталога до данного файла. Например, если текущим каталогом является каталог /user, то относительное имя файла /user/anna/main.exe выглядит следующим образом: anna/ main.exe.

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

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

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

Тип файла (обычный файл, каталог, специальный файл и т. п.);

Владелец файла;

Создатель файла;

Пароль для доступа к файлу;

Информация о разрешенных операциях доступа к файлу;

Времена создания, последнего доступа и последнего изменения;

Текущий размер файла;

Максимальный размер файла;

Признак «только для чтения»;

Признак «скрытый файл»;

Признак «системный файл»;

Признак «архивный файл»;

Признак «двоичный/символьный»;

Признак «временный» (удалить после завершения процесса);

Признак блокировки;

Длина записи в файле;

Указатель на ключевое поле в записи;

Длина ключа.

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

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

Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS-DOS (рисунок 2.17, а). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R - только для чтения, А - архивный, Н - скрытый, S - системный.

Рисунок 2.17. Структура каталогов: а - структура записи каталога MS-DOS (32 байта), б - структура записи каталога ОС UNIX

Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла (рисунок 2.17, б).

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

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

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

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

Рисунок 2.18. Схема устройства жесткого диска

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

Совокупность дорожек одного радиуса на всех поверхностях всех пластин пакета называется цилиндром (cylinder). Каждая дорожка разбивается на фрагменты, называемые секторами (sectors), или блоками (blocks), так что все дорожки имеют равное число секторов, в которые можно максимально записать одно и то же число байт. Сектор имеет фиксированный для конкретной системы размер, выражающийся степенью двойки. Чаще всего размер сектора составляет 512 байт. Учитывая, что дорожки разного радиуса имеют одинаковое число секторов, плотность записи становится тем выше, чем ближе дорожка к центру.

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

Рисунок 2.19. Считывание избыточных данных при обмене с диском

Операционная система при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером (cluster). При создании файла место на диске ему выделяется кластерами. Например, если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.

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

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

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

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