7 почему возникла потребность в разработке файловых систем
Программное обеспечение (ПО) — это совокупность программ, используемых при работе на компьютере и обеспечивающих функционирование его аппаратных средств, выполнение различных задач пользователя, а также разработку и отладку новых программ.
Классификация программного обеспечения
Системное ПО — комплекс программ, обеспечивающих работу компьютера и компьютерных сетей в целом. Основу системного ПО составляют операционные системы.
Прикладное ПО — программы, предназначенные для решения определенного круга задач в различных областях человеческой деятельности (офисные пакеты, бухгалтерские программы, графические пикеты, системы управления базами данных и т. д).
Инструментальное ПО — средства для разработки и отладки программ. Все системное и прикладное программное обеспечение создается программистами с помощью инструментального ПО.
Системное программное обеспечение
базовое ПО,
сервисные программы (утилиты).
Сервисные программы (утилиты) — это вспомогательные компьютерные программы, расширяющие возможности операционной системы. К ним относятся файловые менеджеры, архиваторы, антивирусные программы, средства диагностики системы и некоторые другие.
Файловые менеджеры — это программы, обеспечивающие удобный и наглядный интерфейс для работы с файлами. Любая операционная система содержит в своем составе некоторый файловый менеджер (например, Проводник для Windows). Однако некоторые пользователи предпочитают использовать для работы с файлами программы от сторонних производителей. К числу наиболее популярных файловых менеджеров в ОС Windows относятся Windows Commander (рис. 2.38), Far Manager, Total Commander. Для ОС Linux используются такие файловые менеджеры, как BeeSoft Commander, Midnight Commander, Gentoo, Nautilus и др.
Архиваторы — это программы, позволяющие с помощью специальных алгоритмов сжатия данных уменьшить размер файлов и выполнить упаковку одного или нескольких файлов в один архив. Существуют различные алгоритмы сжатия, в соответствии с которыми создаются архивные файлы различных форматов (ZIP, RAR, ARJ и т.д.). Обычно одна программа архивации позволяет использовать несколько различных форматов. Для операционной системы Windows самыми популярными являются архиваторы WinRAR, WinZip, 7-Zip. В ОС Linux наиболее часто применяется совокупность двух программ: tar (которая объединяет несколько файлов в один) и gzip (которая выполняет непосредственно сжатие).
Антивирусные программы — это программы для обнаружения вредоносных программ и лечения зараженных файлов. Вредоносное программное обеспечение — это класс программ, предназначенных для выполнения различных несанкционированных пользователем действий, чаще всего направленных на причинение ущерба (уничтожение или повреждение данных, замедление работы компьютерной системы, перехват секретной информации и т. д.). К вредоносным программам относятся компьютерные вирусы, троянские программы, сетевые черви, шпионские программы (spyware), программы для навязывания рекламы (adware), перехватчики клавиатуры (keylogger) и другие. Многие антивирусные программы способны не только вылечить зараженные файлы, но и предотвратить заражение компьютера. Для этого в памяти компьютера должна постоянно находиться программа, которая контролирует любые действия с файлами. Она называется монитором. Современные антивирусы способны также проверять на наличие вредоносного ПО не только файлы, но и электронную почту, а также страницы, загружаемые из Интернета. К наиболее популярным антивирусным программам относятся Антивирус Касперского, NOD32, Dr.Web, Panda Antivirus.
К средствам диагностики системы относятся программы сканирования и дефрагментации жестких дисков, программы сбора сведений о системе и др.
Функции операционной системы
Операционная система — это комплекс программ, обеспе чивающих управление заданиями и распределение ресурсов компьютера, предоставляющих интерфейс для работы с поль зователем, а также организующих работу с файлами.
Рассмотрим подробнее основные функции операционной системы.
Управление заданиями и распределение ресурсов
Основными ресурсами современных компьютеров являются процессорное время, оперативная память, дисковая память, устройства ввода/вывода данных. Распределение ресурсов компьютера происходит между процессами .
определение, какому процессу, когда и в каком объеме следует выделить данный ресурс;
отслеживание состояния и учет использования ресурса;
разрешение конфликтов между процессами.
многозадачные (допускается одновременное выполнение нескольких пользовательских программ) и однозадачные (допускается выполнение только одной пользовательской программы);
многопользовательские (допускается одновременный запуск программ от имени нескольких пользователей) и однопользовательские (допускается запуск программ только от имени одного пользователя);
многопроцессорные (допускается использование на компьютерах с несколькими процессорами) и однопроцессорные (допускается использование на компьютерах только с одним процессором).
Предоставление интерфейса работы для пользователи
Чтобы успешно решать свои задачи, пользователь не обязан знать подробности аппаратного устройства компьютера. Операционная система скрывает от него большую часть особенностей архитектуры и предоставляет возможность простой и удобной работы с файлами и аппаратными средствами (принтерами, сканерами, дисками и т. д.). Если бы пользователь работал с компьютером без участия ОС, то, например, для организации чтения блока данных с диска ему пришлось бы использовать более десятка команд с указанием множества параметров: номера блока на диске, номера сектора на дорожке и т. д.
В пакетных операционных системах общение с ОС осуществлялось оператором, а сам программист был лишен возможности ведения диалога. В системах разделения времени появился командный интерфейс работы пользователя, и общение между пользователем и компьютером велось посредством набора специальных команд. Каждая операционная система имела свой подобный набор команд. Примерами ОС с командным интерфейсом работы являются СР/М, UNIX , MS - DOS .
Для удобства работы пользователей в некоторых ОС были разработаны специальные программы-оболочки , позволяющие работать с файлами с помощью меню. Это избавляло от необходимости вводить команды с клавиатуры. Примером такой оболочки является программа Norton Commander , разработанная для ОС MS - DOS .
В начале 1980-х годов появляются первые цветные графические мониторы, что послужило толчком для создания операционных систем с графическим интерфейсом работы для пользователя. В 1984 году для компьютеров Macintosh фирмы Apple была разработана первая операционная система с графическим интерфейсом MacOS . Пользователи получили возможность управлять своим компьютером с помощью нового устройства, названного мышью . Операционная система MacOS использовала оконный интерфейс для представления и организации информации.
Графический интерфейс работы имеют многие современные операционные системы ( Windows , Linux , MacOS ), используемые на персональных компьютерах.
Организация работы с файлами
Переход от носителей данных с последовательным доступом (пер фолент, перфокарт и магнитных лент) к накопителям с произ вольным доступом — магнитным дискам привел к необходимос ти разработки системных программных средств для организации хранения и поиска данных на таких носителях. В состав ОС были включены файловые системы .
Файловая система определяет способ организации данных на внешнем носителе; выполняет преобразование символьных имен файлов, с которыми работает пользователь, в физичес кие адреса данных на диске; организует совместный доступ к файлам; защищает их от несанкционированного доступа и
т. д.
Как известно, информация на диске хранится в секторах и само устройство может выполнять лишь команды «считать/на писать информацию в определенный сектор на диске». Файловая система предоставляет возможность пользователю работать с болей удобным для него понятием «файл» . Для идентификации файлом используются имена. Файловые системы обычно и мают иерар хическую структуру , в которой файлы организуются в каталоги нескольких уровней.
Различие между файловыми системами заключается в основном в способах распределения между файлами пространства на диске и организации на диске служебных областей.
совокупности всех файлов на диске;
наборов служебных структур данных, используемых для управления файлами (например, каталогов файлов);
комплекса системных программных средств, реализующих управление файлами.
Так как файловая система активно использует устройства ввода/вывода, она должна поддерживать работу с драйверами устройств.
Драйвер — это программа управления работой внешнего устройства компьютера.
Файловая система — это то, на чем держится далеко неидеальный, но маломальский порядок на наших жестких дисках. Носители информации способны лишь хранить, записывать или считывать биты данных из определенных секторов, а за доступ к информации отвечает именно файловая система. Этому термину можно дать несколько определений, каждое из которых верно. Файловая система — это система организации и хранения информации на жестком диске или других носителях, программные алгоритмы операционной системы для управления данной системой организации информации, и, наконец, на бытовом уровне это совокупность всех файлов и папок на диске.
Файловая система определяет:
- как хранятся файлы и каталоги на диске;
- какие сведения хранятся о файлах и каталогах;
- как можно узнать, какие участки диска свободны, а какие – нет;
- формат каталогов и другой служебной информации на диске.
Мы рассмотрим четыре файловые системы – FAT, FAT 32, HPFS, NTFS.
Файловая система FAT
FAT является наиболее простой из поддерживаемых Windows NT файловых систем. Основой файловой системы FAT является таблица размещения файлов, которая помещена в самом начале тома.
Диск, отформатированный в файловой системе FAT, делится на кластеры, размер которых зависит от размера тома. Одновременно с созданием файла в каталоге создается запись и устанавливается номер первого кластера, содержащего данные.
Обновление таблицы размещения файлов имеет большое значение и требует много времени. Если таблица размещения файлов не обновляется регулярно, это может привести к потере данных.
Каталог FAT не имеет определенной структуры, и файлы записываются в первом обнаруженном свободном месте на диске. Кроме того, файловая система FAT поддерживает только четыре файловых атрибута: «Системный», «Скрытый», «Только чтение» и «Архивный».
Преимущества файловой системы FAT
На компьютере под управлением Windows NT в любой из поддерживаемых файловых систем нельзя отменить удаление. Файловая система FAT лучше всего подходит для использования на дисках и разделах размером до 200 МБ, потому что она запускается с минимальными накладными расходами.
Недостатки файловой системы FAT
Не стоит использовать файловую систему FAT для дисков и разделов, чей размер больше 200 МБ. Это объясняется тем, что по мере увеличения размера тома производительность файловой системы FAT быстро падает. Для файлов, расположенных в разделах FAT, невозможно установить разрешения.
Разделы FAT имеют ограничение по размеру: 4 ГБ под Windows NT и 2 ГБ под MS-DOS.
Файловая система FAT32
FAT 32 представляет собой цепь данных, которые связывают между собой кластеры дискового пространства и файлы. В базе данных кластеров существует только один элемент. Из них, первые два элемента представляют собой информацию о системе FAT – 32, а третий и последующий элементы ставятся в соответствии с кластерами дискового пространства.
Самое большое число кластеров в данной файловой системе равно 268 435 445 кластеров. Данная система позволяет использовать жесткие диски размером до 32 Гб. Однако FAT может поддерживать дисковые пространства размером до 2 терабайт! Первоначально данная файловая система применялась в составе Windows 95 OSR 2. Именно в данной файловой системе были расширены атрибуты файлов, которые позволили хранить время и дату создания, и модификацию последнего доступа к файлу или каталогу.
Операционная система FAT – 32 также позволяет работать с любой из копий FAT 32.
Преимущества файловой системы FAT 32:
1. Высокая скорость работы;
2. Низкое требование к объему оперативной памяти;
3. Эффективная работа с файлами средних и малых размеров;
4. Более низкий износ дисков, вследствие меньшего количества передвижений головок чтения/записи.
Недостатки файловой системы FAT 32:
1. Низкая защита от сбоев системы;
2. Не эффективная работа с файлами больших размеров;
3. Ограничение по максимальному объему раздела и файла;
4. Снижение быстродействия при фрагментации;
5. Снижение быстродействия при работе с каталогами, содержащими большое количество файлов
Файловая система HPFS
Файловая система HPFS впервые была использована для операционной системы OS/2 1.2, чтобы обеспечить доступ к появлявшимся в то время на рынке дискам большого размера
В файловой системе HPFS поддерживается структура каталогов FAT и добавлена сортировка файлов по именам. Имя файла может содержать до 254 двухбайтовых символов. Кроме того, наименьший блок для хранения данных теперь равен размеру физического сектора (512 байт), что позволяет снизить потери дискового пространства.
В каталоге файловой системы HPFS наряду с атрибутами файла здесь хранятся сведения о создании и внесении изменений, а также дата и время доступа. Записи в каталоге файловой системы HPFS указывают не на первый кластер файла, а на FNODE. FNODE может содержать данные файла, указатели на данные файла или другие структуры, указывающие на данные файла.
HPFS старается по возможности располагать данные файла в смежных секторах. Это приводит к повышению скорости последовательной обработки файла.
HPFS делит диск на блоки по 8 МБ каждый и всегда пытается записать файл в пределах одного блока. Разбиение на блоки приводит к повышению производительности.
Кроме того, файловая система HPFS содержит два уникальных объекта данных:
· Суперблок
Суперблок располагается в логическом секторе 16 и содержит указатель на FNODE корневого каталога. В этом кроется главная опасность использования HPFS: если сектор суперблока помечен как поврежденный, это приводит к потере всех данных раздела даже на неповрежденных участках диска. Для восстановления данных их необходимо скопировать на другой диск с неповрежденным сектором 16 и воссоздать суперблок.
· Запасной блок
Запасной блок располагается в логическом секторе 17 и содержит таблицу экстренных исправлений, а также блок резервного каталога. В файловой системе HPFS запись таблицы экстренных исправлений используется при обнаружении дефектного сектора, чтобы логически указать вместо него имеющийся неповрежденный сектор. Эта технология обработки ошибок записи известна как экстренное исправление.
Преимущества файловой системы HPFS
HPFS – оптимальный вариант файловой системы для использования с дисками размером 200–400 МБ.
Файловая система (регламент, определяющий способ организации, хранения и именования данных на носителях информации. ) – это часть операционной системы, включающая:
- совокупность всех файлов на различных носителях информации (магнитные диски, магнитные ленты, CD-ROM и т. п.);
- наборы структур данных, используемых для управления файлами (каталоги и дескрипторы файлов, таблицы распределения свободного и занятого пространства носителей информации);
- комплекс системных программных средств, реализующих различные операции над файлами (создание, чтение, запись, уничтожение, изменение свойств и др.).
Причины создания файловых систем
Файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранилища данных, и создающего для программ более простую логическую модель этого хранилища, а также представляя им набор удобных в использовании команд для манипулирования файлами.
Задачи файловой системы
- соответствие требованиям управления данными и требованиям со стороны пользователей, включающим возможности хранения данных и выполнения операций с ними;
- гарантирование корректности данных, содержащихся в файле;
- оптимизация производительности, как с точки зрения системы (пропускная способность), так и с точки зрения пользователя (время отклика);
- поддержка ввода-вывода для различных типов устройств хранения информации;
- минимизация или полное исключение возможных потерь или повреждений данных;
- защита файлов от несанкционированного доступа;
- обеспечение поддержки совместного использования файлов несколькими пользователями (в том числе средства блокировки файла и его частей, исключение тупиков, согласование копий и т. п.);
- обеспечение стандартного набора подпрограмм интерфейса ввода-вывода.
Требования к файловой системе со стороны пользователя диалоговой системы общего назначения
- Создание, удаление, чтение и изменения файлов.
- Контролируемый доступ к файлам других пользователей.
- Управление доступом к своим файлам.
- Реструктурирование файлов в соответствии с решаемой задачей.
- Перемещение данных между файлами.
- Резервирование и восстановление файлов в случае повреждения.
- Доступ к файлам по символическим именам.
Задача
Выберите размер кластера для файловой системы FAT16, устанавливаемой в разделе, который разделен на секторы размером 512 байт и имеет общий объем 272 Мбайт. Оцените сколько в этом случае кластеров будет содержать область данных, а также какой размер необходимо отвести таблице FAT. Примите во внимание, что элемент каталога для жестких дисков имеет размер 32 байта, а корневой каталог занимает 32 сектора.
Кластер – объединение секторов. То есть он должен быть кратен 512 байтам. Следовательно, минимальный и самый оптимальный размер кластера – 512 байт. Но учитывай особенности ФС FAT16, максимальное количество кластеров (возможных адерсов) равно 64К, а требуется ( при кластере 512 байт) 272Мб/512 = 17*32К, то есть больше. Итак, оптимальный размер кластера будет равен 8Кбайт. Следовательно количество N кластеров всего 272*2^20/2^13=272*2^7. Таблица будет занимать N*2 байт Вычисляем объем адресной информации А = N*2+Nф*32+32*512 , где Нф – максимальное количество файлов. Оно же равно Nф= (272Mb – A) / 8Кбайт. Из системы уравнение находим оба неизвестных и получаем область данных = 272Mb - A
Запись информации о файлах производится в специальные области диска. В зависимости от аппаратных средств компьютера и возможностей установленной операционной системы для организации работы применяются различные файловые системы.
Файловая система(FAT (File Allocation Table) – таблица размещения файлов) – общая структура, определяющая в операционной системе наименование, сохранение и размещение файлов. От файловой системы зависят правила именования файлов, способы обращения к файлам и способы работы с ними.
Все современные дисковые операционные системы обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы зависит от операционной системы. Наиболее распространенный тип — табличный.
Диск представляется как набор поверхностей. У гибких дисков их всего две (верхняя и нижняя), но жесткие диски — это на самом деле «этажерки», состоящие из нескольких пластин, поэтому количество поверхностей у них больше.
Каждая поверхность диска разделяется на кольцевые дорожки, а каждая дорожка — на секторы. Размеры секторов фиксированы и равны 512 байт.
Сектор — это наименьшая единица хранения данных, но для адресации она используется далеко не во всех файловых системах. Для этого она слишком мала. Такие операционные системы, как MS-DOS, Windows, OS/2, используют для адресации более крупную единицу хранения, называемую кластером. Кластер — это группа соседних секторов. Размер кластера зависит от размера жесткого диска. Чем больше диск, тем большим назначается размер кластера. Типовые значения: 8, 16, 32 или 64 сектора.
Кластер – минимальный объем дискового пространства, который может быть выделен для размещения файла. Все файловые системы, используемые Windows для работы с жесткими дисками, основаны на кластерах, которые состоят из одного или нескольких смежных секторов. Чем меньше размер кластера, тем более эффективно используется дисковая память. Если при форматировании диска размер кластера не указан в явном виде, Windows выбирает одно из стандартных значений, исходя из размера тома. Стандартные значения подобраны таким образом, чтобы снизить потерю дискового пространства и степень возможной фрагментации тома. Размер кластера называется также единицей выделения памяти.
В файловой системе FAT, данные о том, в каком кластере диска начинается тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы.
Файловая система FAT16. Эта система существовала еще до MS-DOS. Максимальный размер поддерживаемого дискового пространства не превышает 4096 Мбайт, большие объемы FAT16 не поддерживает. В FAT16 применяется 16-битная адресация и, соответственно, возможно использование до 2 адресов. Том памяти, отформатированный FAT 16, разделяется на кластеры. Размер кластера зависит от размера тома и колеблется от 512 байт до 64 Кбайт, принимая ряд определенных значений. В том, организованный файловой системой FAT16, входят загрузочный диск, FAT16-оригинал, FAT16-копия, корневой каталог, каталоги и файлы. Отличием корневого каталога от всех прочих подкаталогов является фиксированное число вхождений (обычно 512). Это число равно общему количеству подкаталогов и файлов, созданных в корневом каталоге.
Файловая система FAT32. Начиная с Windows 95, появилась FAT32, которая способна обслуживать тома до 2 Тбайт с размером кластера до 32 Кбайт. В целом размеры кластеров в FAT32 меньше соответствующих размеров в FAT16. Это приводит к более эффективному использованию дискового пространства. Кроме того, максимальное число вхождений в корневой каталог увеличено до 65 535. В FAT32 применяется 32-битная адресация, но первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому
Файловая система NTFS.В состав Windows 2000 входит поддержка новой версии файловой системы NTFS (New Technology File System). Ключевое преимущество NTFS – возможность ограничения доступа к файлам и папкам. При формировании файловой системы NTFS создается файл MTF (Master File Table), в котором хранятся адреса копий данных. Полная копия загрузочного сектора располагается в конце тома. В MTF, кроме того, находится таблица имен атрибутов, корневой каталог и т. д. Если у файла слишком большой набор атрибутов, то информация о нем хранится в нескольких записях, причем первая (базовая) запись хранит адреса других записей.
Сравнение файловых систем FAT16, FAT32 и NTFS. Цифры в названиях файловых систем FAT16 и FAT32 указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом, т. е. на разрядность адресации. Проведем сравнение этих файловых систем, указав их преимущества и недостатки.
FAT16 имеет следующие преимущества:
1) эта файловая система поддерживается всеми ОС, входящими в линейку программных продуктов Windows и некоторыми версиями ОС UNIX;
2) накоплено большое число программ для исправления ошибок в этой файловой системе и восстановления данных;
3) система может быть загружена с системной дискеты;
4) эта файловая система весьма эффективна для томов памяти объемом менее 256 Мбайт.
К недостаткам FAT16 можно отнести:
1) в системе не поддерживается резервная копия загрузочного сектора;
2) в FAT 16 не поддерживается встроенная защита файлов и их сжатие.
Преимущества FAT32 таковы:
1) для дисков большого объема более эффективно используется выделенное дисковое пространство;
2) корневой каталог в FAT32 занимает цепочку кластеров и может располагаться в любом месте диска, благодаря чему система не накладывает никаких ограничений на число элементов (вхождений) в корневом каталоге;
3) из-за меньшего размера кластеров занятое дисковое пространство на 10 – 15% меньше, чем у FAT 16;
4) FAT32 из-за возможности использования резервной копии FAT является более надежной системой, чем FAT 16.
Основные недостатки FAT32:
1) размер тома памяти под Windows 2000 ограничен объемом 32 Гбайт;
2) тома недоступны для других ОС кроме Windows 95 и Windows 98;
3) не поддерживается резервная копия загрузочного сектора;
4) не поддерживается встроенная защита файлов и их сжатие.
Файловая система NTFS имеет несколько возможностей, не реализованных в системах FAT16 и FAT32. По сравнению с этими файловыми системами она не имеет явных недостатков. Отметим лишь ее дополнительные возможности:
а) возможность восстановления информации. NTFS гарантирует сохранность данных за счет ведения протокола и некоторых встроенных алгоритмов восстановления информации;
б) сжатие данных. При чтении файл автоматически распаковывается, при закрытии и сохранении файл снова упаковывается;
в) защита файлов и каталогов путем задания атрибутов доступа;
г) поддержка резервной копии загрузочного сектора (в конце тома памяти);
д) поддержка системы шифрования содержимого файлов.
Эта файловая система наиболее эффективно работает с файлами большого объема, недостатком системы является тот факт, что она не поддерживается ОС MS-DOS, Windows 95 и Windows 98.
До появления операционной системы Windows 95 общепринятым способом именования файлов на компьютерах IBM PC было соглашение 8.3. Согласно этому соглашению, принятому в MS-DOS, имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводилось 8 символов, а на его расширение — 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита.
Соглашение 8.3 не является стандартом, и потому в ряде случаев отклонения от правильной формы записи допускаются как операционной системой, так и ее приложениями. Так, например, в большинстве случаев система «не возражает» против использования некоторых специальных символов (восклицательный знак, символ подчеркивания, дефис, тильда и т. п.), а некоторые версии MS-DOS даже допускают использование в именах файлов символов русского и других алфавитов.
Сегодня имена файлов, записанные в соответствии с соглашением 8.3, считаются короткими.
Основным недостатком коротких имен является их низкая содержательность. Далеко не всегда удается выразить несколькими символами характеристику файла, поэтому с появлением операционной системы Windows 95 было введено понятие длинного имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. Длинное имя может содержать любые символы, кроме девяти специальных: \ / : * ? " < >|.В имени разрешается использовать пробелы и несколько точек. Расширением имени считаются все символы, идущие после последней точки.
Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.
Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.
Операционные системы и типы файловых систем
Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.
В случае с Windows все выглядит достаточно просто: NTFS на всех дисковых разделах и FAT32 (или NTFS) на флешках. Если установлен NAS (сервер для хранения данных на файловом уровне), и в нем используется какая-то другая файловая система, то практически никто не обращает на это внимания. К нему просто подключаются по сети и качают файлы.
На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.
Более богатый выбор у линуксоидов. Но здесь настройка и использование определенного типа файловой системы требует хотя бы минимальных навыков программирования. Тем более, мало кто задумывается, можно ли использовать в определенной ОС «неродную» файловую систему. И зачем вообще это нужно.
Рассмотрим более подробно виды файловых систем в зависимости от их предпочтительного использования с определенной операционной системой.
Основные функции файловых систем
Файловая система отвечает за оптимальное логическое распределение информационных данных на конкретном физическом носителе. Драйвер ФС организует взаимодействие между хранилищем, операционной системой и прикладным программным обеспечением. Правильный выбор файловой системы для конкретных пользовательских задач влияет на скорость обработки данных, принципы распределения и другие функциональные возможности, необходимые для стабильной работы любых компьютерных систем. Иными словами, это совокупность условий и правил, определяющих способ организации файлов на носителях информации.
Основными функциями файловой системы являются:
- размещение и упорядочивание на носителе данных в виде файлов;
- определение максимально поддерживаемого объема данных на носителе информации;
- создание, чтение и удаление файлов;
- назначение и изменение атрибутов файлов (размер, время создания и изменения, владелец и создатель файла, доступен только для чтения, скрытый файл, временный файл, архивный, исполняемый, максимальная длина имени файла и т.п.);
- определение структуры файла;
- поиск файлов;
- организация каталогов для логической организации файлов;
- защита файлов при системном сбое;
- защита файлов от несанкционированного доступа и изменения их содержимого.
Задачи файловой системы
Функционал файловой системы нацелен на решение следующих задач:
- присвоение имен файлам;
- программный интерфейс работы с файлами для приложений;
- отображение логической модели файловой системы на физическую организацию хранилища данных;
- поддержка устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств;
- содержание параметров файла, необходимых для правильного взаимодействия с другими объектами системы (ядро, приложения и пр.).
В многопользовательских системах реализуется задача защиты файлов от несанкционированного доступа, обеспечение совместной работы. При открытии файла одним из пользователей для других этот же файл временно будет доступен в режиме «только чтение».
Вся информация о файлах хранится в особых областях раздела (томах). Структура справочников зависит от типа файловой системы. Справочник файлов позволяет ассоциировать числовые идентификаторы уникальных файлов и дополнительную информацию о них с непосредственным содержимым файла, хранящимся в другой области раздела.
Что такое файловая система
Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.
Операционная система воспринимает физический диск хранения информации как набор кластеров размером 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги, которые также являются файлами, содержащими список других файлов в этом каталоге. Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные.
Запись файлов большого объема приводит к необходимости фрагментации, когда файлы не сохраняются как целые единицы, а делятся на фрагменты. Каждый фрагмент записывается в отдельные кластеры, состоящие из ячеек (размер ячейки составляет один байт). Информация о всех фрагментах, как части одного файла, хранится в файловой системе.
Файловая система связывает носитель информации (хранилище) с прикладным программным обеспечением, организуя доступ к конкретным файлам при помощи функционала взаимодействия программ A PI. Программа, при обращении к файлу, располагает данными только о его имени, размере и атрибутах. Всю остальную информацию, касающуюся типа носителя, на котором записан файл, и структуры хранения данных, она получает от драйвера файловой системы.
На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.
Файловые системы macOS
Для операционной системы macOS компания Apple использует собственные разработки файловых систем:
- HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
- Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.
Файловые системы Windows
Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.
FAT (таблица распределения файлов)
Числа в FAT12, FAT16 и FAT32 обозначают количество бит, используемых для перечисления блока файловой системы. FAT32 является фактическим стандартом и устанавливается на большинстве видов сменных носителей по умолчанию. Одной из особенностей этой версии ФС является возможность применения не только на современных моделях компьютеров, но и в устаревших устройствах и консолях, снабженных разъемом USB.
Пространство FAT32 логически разделено на три сопредельные области:
- зарезервированный сектор для служебных структур;
- табличная форма указателей;
- непосредственная зона записи содержимого файлов.
К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.
С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.
NTFS (файловая система новой технологии)
Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 10 18 байт ). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.
ReFS (Resilient File System)
Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:
- Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
- данные записываются на новое дисковое пространство, а не поверх существующих файлов;
- при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.
Все это позволяет повысить надежность хранения файлов, обеспечивает быстрое и легкое восстановление данных.
Файловые системы Linux
В отличие от ОС Windows и macOS, ограничивающих выбор файловой системы предустановленными вариантами, Linux предоставляет возможность использования нескольких ФС, каждая из которых оптимизирована для решения определенных задач. Файловые системы в Linux используются не только для работы с файлами на диске, но и для хранения данных в оперативной памяти или доступа к конфигурации ядра во время работы системы. Все они включены в ядро и могут использоваться в качестве корневой файловой системы.
Основные файловые системы, используемые в дистрибутивах Linux:
Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.
JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.
ReiserFS также разработана в качестве альтернативы ext3, поддерживает только Linux. Динамический размер блока позволяет упаковывать несколько небольших файлов в один блок, что предотвращает фрагментацию и улучшает работу с небольшими файлами. Недостатком является риск потери данных при отключении энергии.
XFS рассчитана на файлы большого размера, поддерживает диски до 2 терабайт. Преимуществом системы является высокая скорость работы с большими файлами, отложенное выделение места, увеличение разделов на лету, незначительный размер служебной информации. К недостаткам относится невозможность уменьшения размера, сложность восстановления данных и риск потери файлов при аварийном отключении питания.
Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.
Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.
Практический пример использования файловых систем
Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.
Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант - использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.
Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.
Надеюсь, краткий обзор основных ФС поможет решить практические задачи в части правильного выбора и настройки ваших компьютерных устройств в повседневной практике.
Дополнительные файловые системы
В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.
Кластерные файловые системы включают поддержку распределенных хранилищ, расширяемость и модульность. К ним относятся:
- ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
- Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
- VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
- GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
- JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.
Читайте также: