postmarketOS (сокращенно «pmOS», а дословно «послепродажная») – операционная система с открытым исходным кодом, предназначенная, в первую очередь, для смартфонов и основанная на дистрибутиве Alpine Linux.
postmarketOS была запущена 26 мая 2017 года с исходным кодом, доступным на GitHub (на GitLab с 2018 года). Она способна запускать различные пользовательские интерфейсы на основе X и Wayland (например, Plasma Mobile, MATE, GNOME 3 или XFCE… позднее Unity8 и Phosh). Также имеется возможность запускать Docker, если в ядре конкретного устройства есть cgroups и включены соответствующие конфигурации.
Целью проекта заявлено обеспечение десятилетнего жизненного цикла смартфонов.
Архитектура
В отличие от многих других проектов, портирующих обычные дистрибутивы Linux на телефоны Android, postmarketOS не использует систему сборки Android или пользовательское пространство pmbootstrap. Каждый модель смартфона имеет индивидуальный пакет с помощью которого создаются установочные образы для прошивки. Проект намерен в будущем поддерживать основное ядро Linux на всех телефонах вместо часто устаревающих форков, что характерно для Android (в первую очередь, для того чтобы уменьшить вероятность взлома системы безопасности). Некоторые устройства уже могут загружаться в основное ядро.
Кроме того, проект ориентируется на поддержку Android-приложений (изначально за счет использования Anbox, который с версии 21.12 был заменен Waydroid).
Alpine Linux был выбран в качестве базового дистрибутива из-за его низких требований к памяти (базовая установка, без учета ядра, занимает около 6 Мб), что сделало его более подходящим для устаревших устройств.
Развитие системы
В рамках проекта были опубликованы различные инструменты, в том числе:
- pmbootstrap – утилита, помогающая процессу разработки с помощью кросс-компиляции;
- osk-sdl – виртуальная клавиатура для расшифровки пароля при запуске (на устройстве с полным шифрованием диска);
- charging-sdl – приложение, содержащееся в initramfs, для отображения анимации, когда телефон заряжается в выключенном состоянии.
Поддержка устройств
По состоянию на май 2020 года, ОС поддерживает более двухсот устройств (в том числе 92 устройства с поддержкой WiFi). Сюда входят многие смартфоны и планшеты, изначально работавшие под управлением Android, а также некоторые смартфоны Nokia на базе Linux, такие как N900 и N9.
По состоянию на май 2021 года поддержка носимых устройств (включая Google Glass и смарт-часов) была улучшена за счет интеграции с пользовательским интерфейсом AsteroidOS.
В 2018 году ещё ни одно устройство не могло совершать телефонные звонки с postmarketOS, хотя в этом отношении предпринимались значительные усилия. К 2020 году ряд устройств полную или основную функциональность (в контексте телефонных звонков, SMS-сообщений и мобильных данных). К ним относятся BQ Aquaris X5, Librem 5, Nokia N900, Motorola Moto G4 Play, Samsung Galaxy A3 (2015), Samsung Galaxy A5 (2015) и Wileyfox Swift.
Кроме того, postmarketOS была запущена в качестве основной операционной системы для PinePhone (в версии Community Edition).
Проблемы портирования
Процесс разработки для обеспечения совместимости нового устройства с операционной системой состоит из создания пакета для конкретного телефона с использованием pmbootstrap-инструмента. Для этого часто необходимо использование ядра Linux от оригинального производителя устройства. Исходный код исходного ядра часто предоставляется в соответствии с требованиями лицензии GPLv2, но некоторые драйверы, необходимые для работы устройства, могут отсутствовать и, следовательно, должны быть созданы заново (например, драйверы графического процессора, такие как Lima, у которого есть проприетарный эквивалент в пользовательском пространстве на Android, который не подпадает под требования GPLv2).