HPFS (High Performance File System) – это файловая система, разработанная и использовавшаяся в операционной системе OS/2 компании IBM, а также основанных на ней системах, таких как eComStation и ArcaOS. HPFS была внедрена в ОС OS/2 версии 1.2, выпущенной в 1989 году, и на тот момент была современной и передовой технологией.
Основные преимущества HPFS по сравнению с традиционной файловой системой FAT (File Allocation Table), которая использовалась в операционной системе DOS, включали в себя более быстрое время доступа к данным, поддержку больших объемов дисков и файлов, а также возможность хранения метаданных (информации о файлах) в более эффективном формате.
HPFS также поддерживала дополнительные возможности, такие как длинные имена файлов, защиту от повреждения данных, сжатие файлов и шифрование. Однако, с развитием технологий файловых систем, HPFS потеряла свою актуальность и была заменена более современными файловыми системами, такими как NTFS (New Technology File System) в операционной системе Windows. В Windows NT поддержка HPFS существовала до версии 3.51 включительно (хотя есть успешные прецеденты использования старого драйвера HPFS в Windows NT 4.0 и Windows 2000). Впоследствии Microsoft отказалась от HPFS в пользу собственной файловой системы NTFS, при разработке которой был учтён опыт создания HPFS.
В OS/2 существует серверный вариант драйвера для HPFS, называемый HPFS386, который обладает некоторыми дополнительными возможностями.
Диск в HPFS делится на секторы фиксированного размера (512 байт в текущей реализации, при этом номер сектора или их количество кодируются во внутренних структурах как 4-байтовое беззнаковое целое, что позволяет адресовать диски размером до 232 * 512 = 2 терабайта).
В начале диска расположены несколько управляющих блоков:
- Загрузочный сектор, подобный используемому в DOS.
- SuperBlock содержит информацию о геометрии диска, указатели на битовые карты свободного пространства, указатель на корневой каталог, размер дисковой полосы, номер полосы с каталогами, указатель на список сбойных блоков и т. п. SuperBlock также содержит дату последнего запуска CHKDSK. Обычно изменяют SuperBlock только программы CHKDSK и FORMAT.
- SpareBlock содержит указатели на пул HOTFIX-areas, пул Fault-Tolerance областей (только HPFS386 использует Fault-Tolerance), пул блоков для операций на почти заполненном диске и другие указатели, флаги и дескрипторы.
- Область начальной загрузки.
- Область секторов, используемых (временно) для выполнения операций, требующих дополнительной дисковой памяти. Эта область например, иногда задействуется при переименовании файла на заполненном диске.
- Другие области.
Для определения того, свободен сектор или занят, HPFS использует битовые карты, в которых каждый бит соответствует одному сектору. Если бит содержит 1, это означает, что сектор занят, иначе он свободен. Если бы на весь диск была только одна битовая карта, то для её подкачки приходилось бы перемещать головки чтения/записи в среднем через половину диска. Чтобы избежать этого, HPFS разбивает диск на «полосы» длиной по 8 мегабайт и хранит битмапы свободных секторов в начале или конце каждой полосы.
Естественным развитием данной системы стала файловая система JFS, применяемая в eComStation и Linux.
Преимущества HPFS:
1. Увеличенное использование дискового пространства благодаря более эффективной организации файлов и каталогов.
2. Поддержка больших файлов и длинных имен файлов.
3. Улучшенная отказоустойчивость и восстановление после сбоев.
4. Более быстрое выполнение операций ввода-вывода благодаря оптимизации структуры файловой системы.
Недостатки HPFS:
1. Несовместимость с некоторыми операционными системами и устройствами.
2. Ограничения в поддержке некоторых функций, таких как журналирование и шифрование.
3. Отсутствие инструментов для дефрагментации и резервного копирования файловой системы.
4. Ограниченная поддержка встроенных функций безопасности, таких как защита паролем и шифрование данных.