Введение
Снова здравствуй, мой дорогой читатель. Сегодня будем вспоминать сжатие дисков. Во времена, описываемые в моих предыдущих постах, передо мной остро стояла проблема нехватки дискового пространства. Играть хотелось, а места для игр не хватало. Решение было найдено мной в справочной системе Windows (тогда она была весьма толковой и подробной).
Программы сжатия дисков были доступны для:
- MS-DOS старше 5 версии
- PC-DOS старше 5 версии
- Windows 3.x
- Windows 95
- Windows 98
- Windows Me только сжатие гибких дисков
- OS/2 старше 2 версии
- OS/2 Warp
- Novell NetWare 3.x. использовала NetSqueeze
Речь пойдет о сжатии дисков программами Stacker 4 и DriveSpace 3. Именно их я использовал в годы острой нехватки свободного пространства. Суть сжатия заключается в создании на диске файла сжатого диска, при этом сам файл монтировался в систему и получал букву как обычный диск.
- Под сжатие можно отдать весь диск или его часть.
- Размер файла сжатого диска можно менять в обе стороны.
- Несущий диск можно скрыть.
- Можно сжать системный диск и загружаться с него.
- Большинство загрузочных дисков DOS корректно воспринимают сжатые диски
- Поддерживаются только FAT12 и FAT16
- Сжать можно как жесткий, так и гибкий диск.
Повреждение данных
Потеря данных конечно возможна. Обусловлена она в основном двумя факторами и оба человеческие. Первый — это безусловно, отключение компьютера до сброса дискового кэша. Оно и сейчас губительно для данных, но в случае со сжатыми данными внутри одного файла, ситуация обостряется. Второй фактор: если диск не примонтирован (например был не загружен драйвер сжатия), пользователь вместо содержимого сжатого диска лишь файл большого размера. И этот файл ничто не мешает удалить, потеряв всё.
Stacker
После установки я сдал системный диск и второй диск, размером 1 Гб. На него я буду записывать файлы с целью определить, сколько данных поместится. На снимке ниже в левой панели виден сжатый диск С, а на правой панели несущий диск D. На нем я выделил файл сжатого диска.
Теперь суть эксперимента: у меня есть диск с файлами: 2Гб разных файлов. И есть сжатый 1 Гб диск. Проверим сколько поместится.
В процессе копирования система докладывает об окончании свободного места на диске.
На этом снимке хорошо видно, что 1 299 Мб полезных данных заняли 1 782 Мб, заняв фактически 858 Мб. Создавая сжатый диск размером, близким к пределу FAT16 мы попадаем на потери, вызванные большим размером кластера: 32КБ. Впрочем, больших дисков тогда и не водилось.
DriveSpace 3
Корпорация Microsoft так-же не стояла на месте и совершенствовала свой продукт. Сложно сказать, у кого лучше получилось. Основные отличия появились именно в DriveSpace 3: появился Агент сжатия, оптимизирующий соотношение скорость/сжатие и на выбор три алгоритма сжатия.
Начнем со сжатия диска
После сжатия я начинаю копировать данные до получения сообщения об исчерпании свободного пространства.
Система выдала долгожданную ошибку, смотрим свойства диска:
Но и тут у нас есть выход: Использовать Агент сжатия. Запускаем, разрешив использовать только HiPack. Это хороший алгоритм сжатия, обеспечивающий сильную компрессию и хорошую производительность. Кстати, можно совмещать два алгоритма в зависимости от использования файлов.
Повторю оптимизацию, разрешив использование UltraPack для всех файлов
Обратите внимание: при переходе со стандартного сжатия (1,67 к 1) на HiPack (1,8 к 1), мы освободили дополнительно 109 МБ пространства. Но при переходе на алгоритм UltraPack получив коэффициент 2,02 к 1 мы не получили дополнительного пространства: те — же 109 Мб. Коэффициент сжатия вырос, но мы достигли лимита FAT16.
Потери на остатках кластеров
На этом снимке хорошо видно, что 1,47 Гб полезных данных заняли 2 Гб, заняв фактически 1 Гб. И мы опять уперлись в предел FAT 16 и попали на большой размер кластера.
Получается, что сжатие диска обязывает нас использовать FAT16, а это вызывает потери на остатках кластера. При этом стоит напомнить, что за счет сжатия мы всё равно остаемся в плюсе.
FAT32 экономит пространство
FAT32 пришла на смену FAT16 в августе 1996 года (Windows95 OSR2).
При наличии дисков больше 2 Гб имеет смысл задуматься об использовании FAT32. На этом снимке диск FAT16 2Гб. Размер кластера 32КБ. Обратите внимание на свободное пространство диска D до конвертации в FAT32.
А теперь посмотрите на него после конвертации: сэкономили почти четверть: это был переход на FAT32 с кластером 4Кб.
Описанные в статье методы сжатия давно уже неактуальны, в связи с ростом объема носителя. Сжатие дисков теперь стало возможностью файловых систем. Принцип контейнерного хранения теперь используется в шифровании.
Бонусные видео для сравнения:
Немного фото с материала о DriveSpace 3
Немного фото с материала о Stacker 4