Как выглядит среднестатистический дистрибутив Linux? Обычно это некая система, как конструктор собранная из тысяч пакетов, плюс различные твики рабочего стола, возможно собственный инсталлятор и система конфигурации. В любом случае почти все дистрибутивы похожи и основаны на одной и той же идее: пакет + пакет + пакет = ОС. Endless совершенно другой, здесь вообще нет пакетов как таковых, но есть концепция атомарно обновляемой базовой системы и песочниц Flatpak.

В начале времен, когда UNIX делал первые шаги по планете, не было ни стороннего ПО, ни проблем, связанных с управлением им. Если требовалось установить какое-то приложение, достаточно было скомпилировать его и положить полученный бинарник в каталог /bin.

Когда стало увеличиваться число приложений и возрастать их сложность, начали проявляться проблемы. Приложение могло состоять не только из одного бинарника, оно могло включать в себя ряд библиотек, man-страницы, конфигурационные файлы и многое другое. Появилась идея использовать рецепт install в инструкции сборки приложения (Makefile), чтобы установить все, что нужно, с помощью одной команды make install.

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

Так появилась система портов BSD. По сути, это был сборник рецептов, который позволял скачивать, патчить, компилировать и устанавливать приложения в автоматическом режиме. С его же помощью приложение можно было корректно удалить, так, чтобы в системе не осталось никаких хвостов.

Красота системы портов состояла в том, что она позволяла не только устанавливать и удалять приложения, собранные из исходников, но и формировать из этих же исходников бинарные пакеты. Вскоре стало ясно, что пользователям гораздо удобнее ставить уже готовые пакеты, вместо того чтобы ждать окончания компиляции. Началась эра менеджеров пакетов.

В дистрибутивах Linux менеджер пакетов — де-факто стандарт. В отличие от тех же BSD, где есть четкая граница между неделимой базовой частью системы и набором установленных поверх нее портов/пакетов, дистрибутивы GNU/Linux состоят исключительно из пакетов. Ядро — отдельный пакет, базовый набор утилит командной строки — другой пакет, библиотека libc (главная часть системы после ядра) — еще один пакет.

Такое разделение не случайно, это сама суть GNU/Linux — множество написанных разными людьми компонентов, которые работают сообща. Но у этого подхода есть множество проблем. За сохранением зависимостей между пакетами необходимо строго следить; замена всего лишь одного системного пакета может привести к неработоспособности всей системы. Для обновления дистрибутива до новой версии приходится придумывать костыли: обновлять все базовые компоненты дистрибутива необходимо так, чтобы система не осталась в пограничном состоянии (когда часть пакетов обновлена, а часть нет).

Ну и конечно же, известное всем линуксоидам ограничение, когда ты просто не можешь установить две разные версии приложения. Содержимое пакета копируется в системные каталоги вместо своего выделенного, а даже если установка в выделенный каталог возможна, наверняка возникнут проблемы с зависимостями: приложение требует библиотеку libxyz.1.2, а в системе установлена libxyz.1.3, и ее версию нельзя понизить, потому что пакетный менеджер начнет ворчать, что приложения abc и bca требуют именно версию 1.3.

В общем, все сложно. Но есть несколько методов решить эти проблемы уже сегодня, и все они воплощены в Endless OS.

 

Endless OS

Endless OS — детище молодой компании Endless Mobile, которая специализируется на выпуске недорогих компактных компьютеров для развивающихся стран. Типичный представитель целевой аудитории Endless Mobile — африканец из глухой деревни, где даже мобильная связь — это роскошь. Поэтому Endless Computer — не просто недорогой, но и интуитивно понятный комп, не требующий подключения к интернету.

Компьютер Endless Mini, размер с детский мяч
Компьютер Endless Mini, размер с детский мяч

Полный образ Endless OS весит около 14 Гбайт и включает в себя больше 100 приложений на все случаи жизни и больше 50 тысяч статей из Википедии, а также различные обучающие программы. Есть и базовый образ на 2 Гбайт, содержащий только самое необходимое. Все остальное можно поставить из магазина приложений

В качестве рабочего стола Endless OS использует сильно модифицированную версию GNOME под названием EOS Shell. Это действительно очень простая среда, лишенная многих концепций стандартных десктопов. Это скорее планшетный или телефонный интерфейс, чем десктопный: панель переключения задач с треем, набор иконок и папок на рабочем столе и строка поиска, выполняющая поиск одновременно в Google и на жестком диске.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


3 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

Конкурс хаков: пишем на PowerShell скрипт, который уведомляет о днях рождения пользователей Active Directory

В компаниях часто встречается задача уведомлять сотрудников о приближающихся днях рождения…