TGViewer
Неопознанный кактус Неопознанный кактус @kvktyc · 33 subscribers
Post #111 46
SquashFS

В мире Linux всё построено на динамических зависимостях и перекрестных источниках, сверху накладывается сложная система прав и атрибутов и добивается зоопарком дистрибутивов, где всё находится в разных местах и устроено по-разному - в связи с этим программу нужно именно "собирать".

Для серверов это вполне ок, оно под серверные задачи и автоматизацию задизайнено, но для десктопов это настоящий барьер. Вот у тебя всё собралось и установилось и.. что? И всё. Для большинства на этом эксперименты с Linux заканчивались - есть небольшой набор предустановленных программ, но скачать где-то нужную программу под Linux - нет, новичек ищет "exe для Linux", не находит таковых и понимает, что делать в системе нечего. А если и находит, то что-то вроде "импортируйте ключ разработчика, добавьте наш репозиторий в apt source list, откройте терминал".. аа.. ээ.. И это замкнутый круг: пользователям не хватает программ, производителям не для кого делать поддержку.

Проще говоря, Portable формат для Linux долгое время практически отсутствовал и это тормозило его распространение на десктопах, прогресс последних лет в становлении Linux в роли не только нормальной рабочей станции, но и даже игровой платформы связываю во многом именно с развитием portable инструментария. Здесь мы приходим к нашему топику.

SquashFS - сжатая файловая система c доступом только на чтение. Изначально цель была в том, чтобы оптимизировать прошивки всяких роутеров/IoT/маломощного оборудования - данные занимают меньше места и максимально оптимизировано чтение ценой невозможности записи: убрана система прав, Inodes, события, атрибутика - всё максимально порезано и упрощено. В добавок к этому вы получаете гарантию целостности данных и ту самую портируемость. По сути дистрибутив программы становится монтируемым образом, эдаким .iso

Все Live CD/USB - это SquashFS, snap-пакеты в Ubuntu (все зависимости внутри) - SquashFS, Flatpak приложения, AppImage, Docker, Podman, системные Timeshift-снапшоты. И самое что нам интересное - игры наконец получили возможность распространяться в виде готового образа! Valve в своей SteamOS вовсю использует слои со SquashFS, да и Android кстати свои иммутабельные разделы вроде /system и /vendor тоже монтирует как SquashFS.

Тот же принцип у App в MacOS, но там своя разработка, хотя принцип тот же - программа со всеми зависимостями запекается и становится readonly-образом.

Создаем образ с максимальным сжатием (xz):

mksquashfs myapp myapp.squashfs -comp xz

Смотрим данные

unsquashfs -l myapp.squashfs

Монтируем

mount -t squashfs myapp.squashfs /mnt/squash

Для работы не из под root понадобится FUSE (пакет: squashfuse)

squashfuse myapp.squashfs ~/squash

Размонтируем

fusermount -u ~/squash

Распаковать образ:

unsquashfs myapp.squashfs


Сжатие: gzip|lzo|lz4|xz|zstd (по умолчанию gzip)
  • ❤ 1
More from @kvktyc
  1. Sep 25, 2026Из интересного. Недавно появилась новость о том, что некий бывший инженер Microsoft восста…
  2. Sep 25, 2026Первая версия UNIX была написана на ассемблере для PDP-7 в 1969. Официально началом эпохи…
  3. Sep 13, 2026Не тот саундтрек сделали к игре, не тот. И аккорды нам расставили не те, но эту песню возм…
  4. Sep 12, 202626 дюймовый монитор, на котором в 1995 Джон Кармак работал над Quake: Intergraph InterView…
  5. Sep 12, 2026С детства за космос Я вырос на этой фантастике, зачитал до дыр все книги Ефремова, Стругац…
  6. Sep 12, 2026Русский космизм У нас есть очень здравое и ценное наследие в культуре восприятия космоса и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →