ext2

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 11 января 2018 года; проверки требуют19 правок.
Перейти к навигацииПерейти к поиску

ext2
РазработчикРеми Кар[англ.]
Файловая системаSecond extended file system
Дата представления1993-01 (Linux)
Метка томаApple_UNIX_SVR2 (Apple Partition Map)
0x83 (Master Boot Record)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Структура
Содержимое папокТаблица
Размещение файловБитовая карта (свободное место),Таблица (метаданные)
Сбойные сектораТаблица (используется та же таблица, что и для файлов)
Ограничения
Максимальный размер файла16ГБ - 2ТБ
Максимум файлов1018
Максимальная длина имени файла255 байт
Максимальный размер тома2-32ТБ
Допустимые символы в названияхЛюбой байт, кроме NULL и '/'
Возможности
СвойстваВремя модификации (mtime), время изменения метаданных (ctime), время последнего доступа (atime)
Диапазон дат14 декабря 1901 г. - 18 января 2038 г.
Точность хранения даты1секунда
Права доступаPOSIX
Фоновая компрессиянет (доступна через патчи)
Фоновое шифрованиенет
Поддерживается ОСLinux,BSD,Mac OS X (черезIFS)

Second Extended File System (дословно:«вторая расширенная файловая система»), сокращённоext2 (иногдаext2fs) —файловая системаядраLinux.Была разработанаРеми Каром[англ.] взамен существовавшей тогдаext. По скорости и производительности работы она может служить эталоном втестах производительности файловых систем. Так, в тестах на скорость последовательного чтения и записи, проведённыхThe Dell TechCenter, файловая система ext2 обгоняетext3 и уступает лишь более современнойext4 в тесте на чтение[1].

Главный недостаток ext2 (и одна из причин демонстрации столь высокой производительности) заключается в том, что она не являетсяжурналируемой файловой системой. Он был устранён в файловой системеext3 — следующей версииExtended File System, полностью совместимой с ext2. Это основная причина, почему EXT2 до сих пор поддерживается в Anaconda и Ubiquity.

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

Содержание

История

[править |править код]

На заре развитияLinux использовалафайловую систему ОС Minix. Она была довольно стабильна, но оставалась 16-разрядной и, как следствие, имела жёсткое ограничение в 64Мегабайта на раздел. Также присутствовало ограничение на максимальную длину имени файла: оно составляло 14 символов.Эти и другие ограничения послужили стимулом к разработке «расширенной файловой системы» (англ. Extended File System), решавшей две главные проблемы Minix. Новая файловая система была представлена в апреле1992 года. Ext расширила ограничения на размерфайла до 2гигабайт[2] и установила предельную длинуимени файла в 255 байт.

Тем не менее, оставалось ещё много нерешённых проблем: не было поддержки раздельного доступа, временных меток модификации данных. Именно эти проблемы послужили инициативой для создания следующей версии расширенной файловой системы ext2 (англ. Second Extended File System), разработанной в январе1993 года. В ext2 были также реализованы соответствующие стандартуPOSIX списки контроля доступаACL и расширенныеатрибуты файлов.

Логическая организация файловой системы ext2

[править |править код]
Сетевая иерархия каталоговфайловой системы ext2

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

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

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

Атрибутами файловой системы ext2 являются:

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

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

Внутренняя организация файловой системы ext2

[править |править код]

Структура дискового раздела

[править |править код]

Как и в любойфайловой системеUNIX, в составе ext2 можно выделить следующие составляющие:

Всё пространстворазделадиска разбивается на блоки фиксированного размера, кратные размерусектора: 1024, 2048, 4096 или 8192 байт. Размер блока указывается при создании файловой системы на разделе диска. Меньший размер блока позволяет сэкономить место на жёстком диске, но также ограничивает максимальный размер файловой системы. Все блоки имеют порядковые номера. С целью уменьшения фрагментации и количества перемещений головок жёсткого диска при чтении больших массивов данных блоки объединяются в группы блоков.

Базовым понятием файловой системы является индексный дескриптор, илиinode (англ. information node). Это специальная структура, которая содержит информацию об атрибутах и физическом расположении файла. Индексные дескрипторы объединены в таблицу, которая содержится в начале каждой группы блоков.

Суперблок

[править |править код]
Обобщенная структурная схема ФС ext2

Суперблок — основной элементфайловой системы ext2. Он содержит общую информацию о файловой системе:

  • общее число блоков и индексных дескрипторов в файловой системе,
  • число свободных блоков и индексных дескрипторов в файловой системе,
  • размер блока файловой системы,
  • количество блоков и индексных дескрипторов в группе блоков,
  • размер индексного дескриптора,
  • идентификатор файловой системы (магическое число 0xEF53 для семейства файловых систем ext),
  • дата последней проверки файловой системы,
  • количество произведённых монтирований,
  • флаг состояния файловой системы[3].

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

От целостности суперблока напрямую зависит работоспособность файловой системы.Операционная система создаёт несколько резервных копий суперблока на случай поврежденияраздела. С помощью флага состояния операционная система определяет текущее состояние файловой системы. Если файловая система монтируется на чтение, то флаг состояния будет указывать, что файловая система целостна (состояние «clean»). Если файловая система монтируется на чтение и запись, то в флаг состояния заносится информация о том, что файловая система используется (состояние «not clean»), а после размонтирования файловой системы флаг состояния снова должен указывать на целостность файловой системы[3]. Флаг состояния помогает определять возможные повреждения файловой системы. Например, если питание компьютера было неожиданно отключено, то флаг состояния будет указывать на некорректное завершение работы с файловой системой. При следующей загрузке компьютера операционная система должна будет проверить файловую систему на ошибки, если флаг состояния не указывает на целостность файловой системы.

Группы блоков

[править |править код]

Все блоки раздела ext2 объединяются в группы блоков. Для каждой группы создаётся отдельная запись в глобальной дескрипторной таблице, в которой хранятся основные параметры:

  • номер блока в битовой карте блоков,
  • номер блока в битовой картеinode,
  • номер блока в таблицеinode,
  • число свободных блоков в группе,
  • числоиндексных дескрипторов, содержащих каталоги.

Битовая карта блоков — это структура, каждый бит которой показывает, отведён ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Аналогичную функцию выполняет битовая карта индексных дескрипторов, которая показывает, какие именно индексные дескрипторы заняты, а какие нет.ЯдроLinux, используя число индексных дескрипторов, содержащих каталоги, пытается равномерно распределить inode каталогов по группам, а inode файлов старается по возможности переместить в группу с родительским каталогом. Все оставшееся место, обозначенное в таблице какданные, отводится для хранения файлов.

Каталоги

[править |править код]

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

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

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

Система адресации данных

[править |править код]
Система адресации ФС ext2

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

Файловая система ext2 использует следующую схему адресации блоков файла. Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4байт. Если файл умещается в 12 блоков, то номера соответствующихкластеров непосредственно перечисляются в первых двенадцати полях адреса. Если размер файла превышает 12 блоков, то следующее поле содержит адрес кластера, в котором могут быть расположены номера следующих блоков файла. Таким образом, 13-е поле используется для косвенной адресации.

При максимальном размере блока в 4096 байт кластер, соответствующий 13-му полю, может содержать до 1024 номеров следующих блоков файла. Если размер файла превышает 12+1024 блоков, то используется 14-е поле, в котором находится адрес кластера, содержащего 1024 номеров кластеров, каждый из которых ссылается на 1024 блока файла. Здесь применяется уже двойная косвенная адресация. И наконец, если файл включает более 12+1024+1048576 блоков, то используется последнее 15-е поле для тройной косвенной адресации.

Данная система адресации позволяет при максимальном размере блока в 4096 байт иметь файлы, размер которых превышает 2TB.

См. также

[править |править код]

Примечания

[править |править код]
  1. A Comparison of Ext2, Ext3 and Ext4 Performance (англ.). The Dell TechCenter (29 марта 2010). Дата обращения: 7 ноября 2010. Архивировано изоригинала 25 августа 2011 года.
  2. M. Тим Джонс. Анатомия ext4. Знакомимся с четвертой расширенной файловой системой . IBM developerWorks (30 июня 2009). Дата обращения: 6 июля 2010. Архивировано изоригинала 25 августа 2011 года.
  3. 1234Remy Card, Theodore Ts'o, Stephen Tweedie. Design and Implementation of the Second Extended Filesystem (англ.). e2fsprogs.sourceforge.net. Дата обращения: 8 октября 2016. Архивировано изоригинала 4 февраля 2012 года.

Литература

[править |править код]

Ссылки

[править |править код]
Перейти к шаблону «Файловые системы»
Дисковые
Оптические диски
Флеш-память/SSD
Кластерные
Распределённые
(сетевые)
Специальные
Псевдо- и виртуальные
Шифрованные
Источник —https://ru.wikipedia.org/w/index.php?title=Ext2&oldid=149816107
Категории:
Скрытые категории: