Модули в ОС

Система инициализации UIRD создает корневую файловую систему, загружаемую из слоев, объединенных файловой системой aufs или overlayfs. В качестве таких слоев могут использоваться любые данные, монтируемые в Linux в режиме "только для чтения". Чаще всего это squashfs-архивы — они и представляют собой модули ОС.

Все системные файлы ОС упакованы в squashfs-модули. По аналогичному принципу можно организовать и хранение дополнительного программного обеспечения в ОС.

Модуль в данном случае представляет собой squashfs-архив, который автоматически монтируется в корневую файловую систему (rootfs) при загрузке Системы. В ОС предусмотрены различные утилиты для создания таких модулей.

Squashfs-архивы обладают важным преимуществом: они позволяют считывать данные блочно. Это означает, что для извлечения конкретного файла нет необходимости распаковывать весь архив — загружаются только те блоки, в которых содержится нужная информация. Такой подход снижает объем занимаемого пространства и в ряде случаев ускоряет чтение файлов по сравнению с их размещением в несжатом виде, особенно при использовании медленных носителей. Например, считывание и распаковка 1 МБ сжатых данных до 3 МБ на Системе с быстрым процессором, но медленным накопителем может выполняться быстрее, чем непосредственное чтение тех же 3 МБ в несжатом виде.

Каждый модуль содержит отдельную часть файловой системы. Важно отметить, что модуль не эквивалентен rpm-пакету: он может включать как единичный файл, так и всю ОС, как это реализовано в LiveCD-дистрибутивах.