Проектът postmarketOS представи Duranium, атомарно обновяваща се версия за смартфони

Разработчиците на проекта postmarketOS, който развива дистрибуция на Linux за мобилни устройства, обявиха за създаването на атомарно обновляем вариант на дистрибуцията. Новото издание се развива под името Duranium и се отличава с предоставянето на системата като единно цяло, без разделяне на отделни пакети. Подчертава се, че новият вариант съответства на идеята, че устройството трябва просто да работи, без потребителят да трябва да знае за съществуването на терминала и да се запознава с особеностите на системата.

Системната среда в раздела /usr се монтира в режим само за четене с използване на файловата система EROFS и се проверява при всяко зареждане по цифров подпис. Раздел /usr има размер 5GB. За контрол на целостността на данните в раздела /usr се прилага dm-verity, а при установяване на модификации на съдържанието — зареждането се блокира. Проверъчният хеш се вгражда в унифицирания образ UKI (Unified Kernel Image), който обединява обработчик за зареждане на ядрото от UEFI (UEFI boot stub), образа на ядрото на Linux и зареждаемата в паметта системна среда initrd, използвана за начална инициализация преди монтирането на основната файловата система. UKI-образът се оформя като един изпълним файл във формат PE и се извиква от зареждача UEFI.

Останалите каталози, освен /usr, влизат в състава на основния раздел, достъпен за запис и запазван между рестартиранията и обновленията. Съдържанието на основния раздел задължително се шифрова с използване на LUKS2, което налага повишени изисквания към хардуера. Шифрованата основна файловата система се създава по време на първоначалното зареждане или след извършването на нулиране до фабричните настройки. По подразбиране се създава празен ключ, позволяващ автоматично отключване на шифрования раздел. В майстора на началната настройка и в конфигуратора на потребителя се предлага да установи парола за декодиране.

Настройките по подразбиране се съхраняват в състава на системния образ в каталога /usr/share/factory/etc. По време на първоначалното зареждане в каталога /etc се създават символични линкове към всички файлове в /usr/share/factory/etc, с изключение на файловете passwd, group, shadow, fstab, machine-id и hostname. При необходимост от промяна на настройките по време на работа, символичният линк се заменя с копие на файла.

Актуализациите се изпълняват чрез замяна на целия системен образ. На носителя се създават два идентични коренови дяла — активен и пасивен. Новата актуализация се инсталира в пасивния дял, без да влияе на работата на активния. След проверка на коректността на инсталираната актуализация и успешен рестарт, дяловете се сменят — дялът с актуализацията става активен, а предишният активен дял преминава в пасивен режим и очаква инсталирането на следващата актуализация. Ако след актуализацията възникнат проблеми с зареждането, автоматично се извършва връщане към предишната версия на системата.

Такъв подход значително опростява отстраняването на грешки и диагностиката на проблеми, тъй като разработчиците могат точно да възпроизведат състоянието, при което е възникнал срив, без да е необходимо да възпроизвеждат състава на системата на потребителя на ниво отделни пакети и да отчитат наличните комбинации от версии на пакети. Недостатък е по-високото оборудване, което няма да позволи използването на Duranium на всички устройства, поддържани в postmarketOS.

Съставът на системния образ Duranium се формира от единна пакетна база на postmarketOS, основана на Alpine Linux, стандартната C библиотека Musl и набора от утилити BusyBox. Изданията на postmarketOS и Duranium са почти идентични по състав, но се различават по различни методи на доставка на системата. За формирането, инсталирането и актуализирането на системни образи се използват компонентите systemd-sysupdate, systemd-repart и systemd-verity-setup.

Допълнителните приложения се инсталират в формат Flatpak или с помощта на пакетния мениджър Coldbrew. Coldbrew позволява инсталирането на пакети от хранилищата на Alpine Linux в домашната директория на потребителя. При стартиране подобни пакети се изолират с помощта на инструмента bubblewrap.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster