Cloop

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Compressed Loopback Device (сжа́тое закольцо́ванное устро́йство) или cloop — модуль для ядра Linux.

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

Изначально было написано для компании Linuxcare как «загрузочная бизнес-карта» Расти Расселом, но сейчас обслуживается Клаусом Кноппером, автором Knoppix. Cloop в основном используется как удобный способ сжатия стандартных файловых систем для LiveCD.

Степень сжатия составляет примерно 2,5:1 для распространенного программного обеспечения. Cloop-образ Кноппикса, для примера, равен 700 Мб сжатый и около 1,8 Гб - распакованный.

Проект

Образ cloop включает:

  • Скрипт оболочки (с командами монтирования для образа).
  • Заголовок с количеством блоков и размером распакованного блока.
  • Индекс поиска с запакованным и распакованным размером блоков в парах.
  • zlib — сжатыми блоками информации, запакованными конец-к-концу.

Блоки информации сжаты раздельно; это делает возможным поиск индивидуальных блоков без необходимости в распаковке всего образа сначала, но цена этому — небольшое уменьшение степени сжатия. Образы LiveCD обычно используют размер блока в 256 Кб как компромисс между скоростью распаковки и эффективным использованием места.

Apple использует схожий формат в сжатых вариантах своих .dmg образах диска.

Ограничения

  • create_compressed_fs, утилита которая создаёт образы cloop, требует того, чтобы сжатый образ целиком помещался в памяти.
  • Разработка драйвера cloop требует, чтобы сжатые блоки были считаны целиком с диска. Это делает cloop доступ очень медленным когда используется много разбросанных чтений, которые могут случиться, если в системе мало памяти или когда запускается большая программа с большим количеством разделяемых библиотек.

См. также

Ссылки