Чем же они отличаются? И почему просто не выпускают всем миром один дистрибутив? Отличий много, поэтому разделю их на блоки, и каждый блок подробно разберем.
Дистрибутивы появляются и исчезают, разделяются и даже сливаются, … Уверен, что с момента написания этой статьи к моменту её прочтения могут произойти изменения в этой огромной экосистеме. Я старался многие утверждения подкреплять примерами и ссылками, но все же понимаю, что все не перечислить, да и примеры будут устаревать со временем.
В качестве примеров ко всем "различиям" постараюсь приводить очень разнообразные дистрибутивы, а не из одного семейства (хотя достаточно много примеров про дистрибутивы, с которыми мне чаще приходилось сталкиваться, но их я и знаю лучше). Если считаете, что какой-то заслуженный дистрибутив был не упомянут (или мало упомянут) в этой статье, пишите в комментариях, в каком пункте следует добавить пример с ним. Также интересно узнать в комментариях, какими дистрибутивами вы пользуетесь дома и/или на работе.
Немного неожиданный ответ, но который раскрывает самую суть: "Абсолютное большинство дистрибутивов Linux НЕ делается на продажу, а создается как сопутствующий инструмент для решения собственных задач". Это же утверждение относится и к большей части программ в Linux. И часто получившееся решение разработчики выкладывают в общий доступ для ознакомления и использования всеми желающими. Делают так, потому что решение не сиюминутное и его нужно развивать/дополнять/тестировать/исправлять, и гораздо дешевле и продуктивнее, если в эту работу включатся добровольцы-специалисты (при этом не обязательно бесплатно) с новыми идеями и подходами.
Представьте, что вы не в магазин или бутик зашли, а на выставку-ярмарку, где цель показать своё мастерство и установить деловые контакты со специалистами в нужных сферах, а уж продажи - на втором месте. Отсюда и качество продукта, забота и уважение к клиенту (в первую очередь к себе, так как разработчик делает программу для себя) - открытые API, модульность, отсутствие телеметрии и рекламных баннеров, неиспользование закрытых форматов файлов и других НЕ привычных подходов для открытого ПО. А уж потом, если появляется спрос на подобное решение (люди или компании, готовые платить за работающую из коробки систему без необходимости разбираться в её создании, и которым нужна платная поддержка или дополнительные возможности), тогда из этих же добровольцев-специалистов собираются организации и выпускают коммерческие дистрибутивы.
1) Сотни тысяч, а то и миллионов! Просто собственный дистрибутив может создать любой желающий, особенно если делать на основе другого дистрибутива, не разрабатывая новых компонент, а используя уже существующие решения и подходы. Тут даже глубоких знаний не понадобится, только недельку-две свободного времени и, например, 400-страничная пошаговая инструкция дистрибутива ⊚Linux_From_Scratch (дистрибутив, распространяемый в виде pdf-книги).
Большинство из этих дистрибутивов не заметны для it-сообщества - это "однодневки", созданные для личного использования или ради изучения/опыта.
2) Около 600 (точное число 554), если учитывать каждый "штрих" на картинке "Linux_Distribution_Timeline (за 2021 год)" (с wikipedia-страницы Список_дистрибутивов_Linux):
На этой картинке в хронологическом порядке (с 1992 до 2021 года) отображено, какие дистрибутивы существовали в разные годы, а параллельными разноцветными горизонтальными линиями - различные дистрибутивы:
- С даты начала проекта до даты окончания существования дистрибутива или текущего года, если разработка дистрибутива в текущий момент продолжается.
- Посредством соединения кривыми линиями показано, какие дистрибутивы являются производными от других дистрибутивов.
- Вертикальные пунктирные линии указывают на различные слияния проектов.
3) Около 300, если учитывать только те проекты, которые в текущий момент считаются актуальными (не объявлено о сворачивании разработок, и выходят новые релизы). Если быть точнее, их ровно 270 (согласно Linux_Distribution_Timeline (за 2021) и 254 (согласно DistroWatch).
4) Около 5, если учитывать только наиболее популярные в мире дистрибутивы: ⊚RedHat, ⊚Ubuntu, ⊚SUSE, ⊚Arch, ... (не обижайтесь если кого не назвал - просто навскидку пишу, что сразу вспомнилось). Кстати, таким же будет количество (около 5), если в организации требуется использовать "отечественную ОС". Только список в этом случае другой: ⊚Alt, ⊚AstraLinux, ⊚ROSA, ... (но об этом подробнее будет далее).
5) Один, если учитывать мнение ярого фаната отдельного дистрибутива.
ОБЩЕЕ
Кстати в фильме 2009 года "Терминатор 4 (Да придёт спаситель)" на компьютерах в SKYNET используется версия ядра 4.1.15-1.1381_SKYN12nnmp, ванильную версия которого в реальности выпустили в декабре 2015 года.
⊚OracleLinux, ⊚RHEL, ⊚CentOS, ⊚AstraLinuxSE
1.1b) Есть дистрибутивы, которые используют "лицензионно чистое" ядро (например, ядро Linux-libre) - ядро без Блоб'ов (Binary Linked OBject). Обычно эти же дистрибутивы используют и "лицензионно чистое" ПО.
⊚Trisquel, ⊚PureOS, ⊚GuixSD, ⊚Dragora, ⊚Parabola, ...
1.1c) Есть различные патчи безопасности для ядра, например, патчи PaX.
⊚AstraLinuxSE
1.1d) Модифицированная версия ядра с оптимизациями для мультимедиа и игр: Liquorix (или ZenKernel).
1.1e) Модифицированная версия ядра для систем реального времени: kernel-rt (или linux-rt, preempt-rt).
⊚Debian, ⊚Trisquel, ⊚TAILS, ⊚Whonix, ⊚Kodachi
1.2b) Использование дополнительных плагинов/библиотек, расширяющих возможности существующей утилиты.
⊚AstraLinuxSE
Также стоит понимать, что всё это (и программы, относящиеся непосредственно к базовой части системы, и программы дополнительные, типа офисного пакета, редактора картинок, pdf-просмотрщика и т.д.) являются частью дистрибутива и распространяются, и поддерживаются совместно в отличии от "некоторых других ОС".
1.3a) У каждого дистрибутива свой выбор ПО, доступного по умолчанию в дистрибутиве (на установочном диске).
1.3b) У каждого дистрибутива свой выбор ПО, доступного по умолчанию в репозиториях дистрибутива (по сети или на дополнительных носителях).
⊚AstraLinuxSE(Смоленск 1.6), ⊚AstraLinuxCE(Орел 1.6), ⊚Debian (9 Stretch)
1.3c) Есть дистрибутивы, которые используют или делают сильный уклон только на "лицензионно чистое ПО".
Free-Дистрибутивы
Дистрибутивы по степени "производности на основе другого дистрибутива":
⊚RHEL, ⊚Debian, ⊚SUSE, ⊚Arch, ⊚Linux_From_Scratch, ⊚Alt, ...
2.1b) Клоны (различия с оригиналом сводятся к ребрендингу, замене названия и художественного оформления - просто понадобится нарисовать свои "нескучные обои" со своим логотипом). Стоит заметить, что клоны построены на тех же пакетах с исходниками, что и оригинал, а не на тех же бинарных пакетах. Подобные проекты пользуются спросом, так как коммерческие дистрибутивы проводят процедуру сертификации на совместимость с различными другими коммерческими решениями, а также под данный дистрибутив имеется официальный пакет от производителя данного решения. В итоге всё будет корректно работать и на бесплатном дистрибутиве-клоне.
⊚CentOS - клон ⊚RHEL (RedHat)
2.1c) Деривативы (или ответвление) или различные ...-based дистрибутивы (например, RedHat-based или Debian-based). Дистрибутив, построенный и выпускающий релизы на основе другого дистрибутива и имеющий совместимые пакеты с оригинальным проектом. То есть большую часть пакетов повторили "один в один" из оригинального дистрибутива, какие-то пакеты были изменены и плюс добавили свои дополнительные пакеты. Такой подход удобен для разработчика дериватива тем, что уже имеется оттестированная стабильная "база", остается только её доработать своими правками и дополнениями. Но в тоже же время есть зависимость от решений, стандартных для базового дистрибутива. То есть, если там перешли на использование какой-нибудь новой технологии (например, systemd), то и дериватив, вероятнее всего, будет использовать эту технологию (ну или перейдет в другой тип производных дистрибутивов). Также график выхода релизов дериватива зависит от графика выхода релизов и обновлений базового дистрибутива. Пакеты, предназначенные для базового дистрибутива вероятнее всего без проблем установятся и в деривативе.
⊚Ubuntu, ⊚OracleLinux, ⊚AstraLinuxSE. НЕ деривативы: ⊚Alt, ⊚SUSE
2.1d) "Дистрибутивы под покровительством". Они развиваются сообществом добровольцев при поддержке (в том числе и финансовой) коммерческого дистрибутива в качестве тестовых площадок для подготовки и тестирования новых решений к выходу коммерческого дистрибутива. Обычно у таких дистрибутивов хостинг самого проекта и сопутствующие расходы находятся на ресурсах коммерческого дистрибутива, и помимо добровольцев есть сотрудники на зарплате от коммерческого дистрибутива. При этом обычно они не управляются напрямую менеджерами коммерческого дистрибутива. У подобных проектов имеется свобода самостоятельного развития и принятия решений (иначе сообщество будет мало заинтересовано участвовать в таком проекте на бесплатной основе, и участники могут попросту разбежаться по другим более демократичным проектам).
⊚Fedora/RedHat, ⊚openSUSE/SUSE
Да Лебедь рвётся в облака (Cloud ныне модно), Рак пятится назад, А Щука тянет в воду. А воз ... медленно, но верно продвигается во всех направлениях.
⊚GoboLinux, ⊚Devuan, ⊚Alpine, ⊚Void
Разные среды оформления рабочего стола на одном и том же дистрибутиве (здесь OpenSUSE)
2.3d) Другое специализированное ПО. Довольно многие узкоспециализированные дистрибутивы содержат свой дополнительный (и не присутствующий в других дистрибутивах) набор утилит, собственных или совместно разрабатываемых.
⊚Alt, ⊚AstraLinuxSE
"В APT есть коровья СУПЕРСИЛА" - пасхалка в apt и aptitude.
Как уже сказано выше, исходники программ в разных дистрибутивах во многом одинаковые, а вот установочные пакеты, полученные на их основе, различаются, как различаются и пакетные менеджеры (программы, при помощи которых эти пакеты ищутся и устанавливаются).
2.4a) Формат пакетов
2.4b) Пакетный менеджер. Утилита, позволяющая искать и устанавливать пакеты, обновлять систему. Использование собственного формата пакетов ведёт к использованию собственного пакетного менеджера.
⊚Alt, ⊚SUSE, ⊚Mageia, ⊚ROSA, ⊚Arch, ⊚Slackware, ⊚Solus, ⊚Void, ⊚NixOS, ⊚Guix_SD
2.4c) График выхода релизов. Здесь стоит выделить различные подходы к выпуску готовой для использования версии дистрибутива (есть дистрибутивы, которые используют несколько из этих подходов).
От "свободного ПО" до готового дистрибутива достаточно длинный путь. Давайте оценим, за что платят клиенты коммерческих дистрибутивов, и какая работа кем выполняется. Перечислю действующих лиц и их вклад в создание ОС (здесь у меня главная цель - показать, что разработчик и майнтейнер - это разные люди. Часто это совсем не очевидно для новичков):
И так нужно сделать для всех утилит, добавляемых в дистрибутив. При этом утилиты используют (распространенный подход в Linux) большое количество сторонних библиотек, которые также необходимо собрать и доставить. Плюс библиотеки бывают разных версий, а также разные утилиты могут использовать разные версии python, php, openssl, … и нужно умудрится собрать это всё в рамках одной ОС.
Приведу аналогию. Это чем-то похоже на свободно распространяемые в интернете рецепты по приготовлению блюд. Есть те, кто готов потратить не один вечер на самостоятельную готовку в режиме проб и ошибок (есть даже те, кто от этого получает удовольствие), но ведь есть и те, кто пойдет в кафе/ресторан, заплатит разные деньги разного уровня профессионалам и получит более быстрый и предсказуемый результат. Но еще раз замечу, рецепты абсолютно любых и даже сильно экзотических блюд сейчас вполне легко можно найти в интернете абсолютно бесплатно.
Из минусов стоит отметить, что большинство коммерческих дистрибутивов в сравнении с дистрибутивами общего назначения имеют в официальных репозиториях гораздо меньше пакетов (но всё же достаточно много), и эти пакеты не самых свежих версий (а наиболее протестированные). Это обусловлено необходимостью тестировать и поддерживать весь софт, входящий в дистрибутив. Хотя обычно имеются различные сторонние (за качество которых уже коммерческая компания не отвечает) репозитории с дополнительными пакетами.
⊚SLES, ⊚RHEL, ⊚Ubuntu
Операционные системы на основе ядра Linux и системных библиотек GNU, традиционно называемые «Linux», корректнее было бы обозначать как «GNU/Linux».
3.1b) Дистрибутивы, развиваемые сообществом
Мое личное мнение, что многообразие дистрибутивов Linux, развиваемых сообществом, и есть основа экосистемы Linux, которая позволяет Linux находиться на передовой развития информационных технологий. Здесь появляются и апробируются новые решения и технологии. Работает эволюционный подход: хорошие идеи находят своих последователей и продолжают развитие, остальные отмирают, но это не означает, что идеи были плохими, возможно, они были предложены не ко времени. Кроме того, со временем становится заметно, под свои задачи люди разрабатывают лучше, чем на продажу. И, мне кажется, основная заслуга Линуса Торвальдса не совсем в том, что он разработал ядро Linux, а в том что он своим письмом (призывом присоединяться к проекту) собрал вокруг этого ядра сообщество, и уже вместе с его участниками создали огромный международный проект и экосистему, с которой стало сложно конкурировать другим "популярным" ОС. Тут также огромная заслуга Ричарда Мэттью Столлмана с его проектом GNU и лицензией GPL. Это кодовая база и юридическая база, которые служат основным фундаментом ОС GNU/Linux.
Тут выделил бы два наиболее распространенных подхода в форме организации сообщества.
Кадры из мультсериала "Мадагаскар" так и просятся в эту статью.
Экспортные ограничения
Ну и может быть, также можно отнести к определенной стране дистрибутивы, выпускаемые одним человеком или группой разработчиков только из одной страны. Однако в текущий момент достаточно сложно перечислить такие проекты.
Вопрос: Американский ли Linux или может финский?
То, что Линус Торвальдс родился в Финляндии и имеет второе гражданство в США, не делает ядро Linux финским или американским - как и дистрибутивы использующие это ядро. Ядро Linux разработано десятками тысяч разработчиков с участием и под руководством Торвальдса и по лицензии GPL, так что данный продукт является чисто международным, как и большинство других программ, входящих в Linux-дистрибутивы.
"Национальные" Linux:
Alt-Workstation-9.0 | AstraLinuxSE-1.6
Отдельно выделил бы на текущий момент два ведущих российских проекта ⊚Alt и ⊚AstraLinux (так как предлагают собственные, достаточно проработанные решения, и большинство крупных проектов по "импортозамещению" происходит с их участием).
Сравнение Альт и AstraLinux:
Также существуют и другие российские Linux дистрибутивы.
⊚Calculate_Linux, ⊚ROSA, ⊚Аврора; ⊚ASPLinux, ⊚Russian_Fedora, ⊚Runtu, ⊚Ubuntu_Cinnamon_Remix
Достаточно много "отечественных Linux" зарегистрировано в Едином реестре российских программ.
⊚ROSA, ⊚Аврора, ⊚РЕД_ОС, ⊚AlterOS, ⊚Янукс, ⊚Атлант, ⊚UBLinux, ⊚QP_ОС, ⊚Стрелец, ⊚ЛотОС, ⊚Нейтрино, ⊚ОСнова, ⊚СинтезМ, ⊚Циркон, ...
Загадка: Сколько здесь логотипов Linux-дистрибутивов? (Подсказка:больше 12)
Для новичков же или не специалистов в Linux (которым от системы нужно работа нескольких утилит, и лучше, чтобы сразу из коробки - без всего этого многообразия возможностей, которые дает Linux) часто делаются специальные сборки:
Узкое применение. От этого зависит, сколько и каких пакетов доступно в системе по умолчанию при установке и в репозиториях. Изначально настроены различные оптимизации ПО и ядра под определенные задачи.
Далее перечислю в качестве примеров достаточно много дистрибутивов для наглядности (ну и для тех, кому интересно определенное предназначение). А еще для того, чтобы вы хоть несколько раз произнесли фразу "Ух ты - и для этого сделали свой Linux!". Далее буду выделять жирным шрифтом проекты, которые, как мне кажется, более известные. Проекты слишком новые или настолько малоизвестые, что на них нет статьи-описания на DistroWatch или в Википедии, упоминаю без ссылок.
d
Далее с отставанием:
Ну вроде и всё! Все важные критерии перечислил и, кажется, никого не забыл (кого забыл - пишите в комментариях). Общую картину теперь представляете.
Дистрибутивы появляются и исчезают, разделяются и даже сливаются, … Уверен, что с момента написания этой статьи к моменту её прочтения могут произойти изменения в этой огромной экосистеме. Я старался многие утверждения подкреплять примерами и ссылками, но все же понимаю, что все не перечислить, да и примеры будут устаревать со временем.
В качестве примеров ко всем "различиям" постараюсь приводить очень разнообразные дистрибутивы, а не из одного семейства (хотя достаточно много примеров про дистрибутивы, с которыми мне чаще приходилось сталкиваться, но их я и знаю лучше). Если считаете, что какой-то заслуженный дистрибутив был не упомянут (или мало упомянут) в этой статье, пишите в комментариях, в каком пункте следует добавить пример с ним. Также интересно узнать в комментариях, какими дистрибутивами вы пользуетесь дома и/или на работе.
Вопрос: Зачем их так много?
Если вы новичок в мире Linux и больше пользовались MS Windows или Mac, то скорее всего у вас уже появился вопрос: "Зачем? Зачем так много дистрибутивов? Можно было б сделать ну один-два, ну три варианта… Почему их сотни?"...Немного неожиданный ответ, но который раскрывает самую суть: "Абсолютное большинство дистрибутивов Linux НЕ делается на продажу, а создается как сопутствующий инструмент для решения собственных задач". Это же утверждение относится и к большей части программ в Linux. И часто получившееся решение разработчики выкладывают в общий доступ для ознакомления и использования всеми желающими. Делают так, потому что решение не сиюминутное и его нужно развивать/дополнять/тестировать/исправлять, и гораздо дешевле и продуктивнее, если в эту работу включатся добровольцы-специалисты (при этом не обязательно бесплатно) с новыми идеями и подходами.
Представьте, что вы не в магазин или бутик зашли, а на выставку-ярмарку, где цель показать своё мастерство и установить деловые контакты со специалистами в нужных сферах, а уж продажи - на втором месте. Отсюда и качество продукта, забота и уважение к клиенту (в первую очередь к себе, так как разработчик делает программу для себя) - открытые API, модульность, отсутствие телеметрии и рекламных баннеров, неиспользование закрытых форматов файлов и других НЕ привычных подходов для открытого ПО. А уж потом, если появляется спрос на подобное решение (люди или компании, готовые платить за работающую из коробки систему без необходимости разбираться в её создании, и которым нужна платная поддержка или дополнительные возможности), тогда из этих же добровольцев-специалистов собираются организации и выпускают коммерческие дистрибутивы.
Вопрос: Сколько их?
Теперь давайте разберемся, сколько дистрибутивов Linux существует на данный момент. Точное число никто не знает, и оно зависит от того, как считать. Поэтому далее несколько ответов.1) Сотни тысяч, а то и миллионов! Просто собственный дистрибутив может создать любой желающий, особенно если делать на основе другого дистрибутива, не разрабатывая новых компонент, а используя уже существующие решения и подходы. Тут даже глубоких знаний не понадобится, только недельку-две свободного времени и, например, 400-страничная пошаговая инструкция дистрибутива ⊚Linux_From_Scratch (дистрибутив, распространяемый в виде pdf-книги).
Большинство из этих дистрибутивов не заметны для it-сообщества - это "однодневки", созданные для личного использования или ради изучения/опыта.
2) Около 600 (точное число 554), если учитывать каждый "штрих" на картинке "Linux_Distribution_Timeline (за 2021 год)" (с wikipedia-страницы Список_дистрибутивов_Linux):
На этой картинке в хронологическом порядке (с 1992 до 2021 года) отображено, какие дистрибутивы существовали в разные годы, а параллельными разноцветными горизонтальными линиями - различные дистрибутивы:
- С даты начала проекта до даты окончания существования дистрибутива или текущего года, если разработка дистрибутива в текущий момент продолжается.
- Посредством соединения кривыми линиями показано, какие дистрибутивы являются производными от других дистрибутивов.
- Вертикальные пунктирные линии указывают на различные слияния проектов.
3) Около 300, если учитывать только те проекты, которые в текущий момент считаются актуальными (не объявлено о сворачивании разработок, и выходят новые релизы). Если быть точнее, их ровно 270 (согласно Linux_Distribution_Timeline (за 2021) и 254 (согласно DistroWatch).
4) Около 5, если учитывать только наиболее популярные в мире дистрибутивы: ⊚RedHat, ⊚Ubuntu, ⊚SUSE, ⊚Arch, ... (не обижайтесь если кого не назвал - просто навскидку пишу, что сразу вспомнилось). Кстати, таким же будет количество (около 5), если в организации требуется использовать "отечественную ОС". Только список в этом случае другой: ⊚Alt, ⊚AstraLinux, ⊚ROSA, ... (но об этом подробнее будет далее).
5) Один, если учитывать мнение ярого фаната отдельного дистрибутива.
Вопрос: Что у них общего?
Рассмотрим основные сходства. Почему-то же они все называются "Линуксы". При этом еще есть "Юниксы (и они - не Линуксы)". Многим начинающим кажется неожиданным тот факт, что FreeBSD и MacOS - не Linux, хотя "там тоже есть вроде такая же командная строка с ls, cd, pwd, bash, vi и т.д." (на самом деле не такая же, а похожая!).ОБЩЕЕ
- Исходники программного обеспечения:
- СПО. Большая часть используемого ПО является свободным программным обеспечением (как следствие имеет общедоступный исходный код, распространяемый по одной из свободных лицензий). Здесь требуется уточнение, так как пользователи Windows обычно ошибочно это трактуют как "Бесплатно доступен exe-шник". Однако не "exe-шник", а исходный код, на основе которого компилируется программа. И не бесплатно распространяется, а свободно (можно свободно изучать код, модифицировать его и распространять уже модифицированный - подробнее можно узнать, почитав про СПО). Повторюсь, в свободный доступ выложены исходники, но, чтобы пользоваться программой, исходники еще нужно проверить, скомпилировать и попутно разрешить зависимости (одна из основных задач создателей дистрибутивов).
- Ядро_Linux - ядро ОС, собирается на основе исходников доступных на kernel.org.
- GNU-утилиты. Отдельно стоит упомянуть множество утилит от проекта GNU (так что более корректное название для ОС - GNU/Linux):
- базовый набор GNU_Coreutils (перечислю наиболее знакомые даже начинающему: ls, cp, mv, rm, mkdir, pwd, sort, touch, head, tail, id, whoami, chmod, chown, date, ...)
- и другие не менее популярные GNU-утилиты: grep, bash, mc, tar/gzip, gtk+/gimp/gnome, grub, less, sed, wget, find, gawk, emacs, nano, screen, fdisk, gcc/libc, ...
- Используемые стандарты (для совместимости различных дистрибутивов):
- учитываются и используются различные UNIX-стандарты: POSIX, Single_UNIX_Specification;
- собственные стандарты: Linux_Standard_Base (например, в абсолютном большинстве дистрибутивов используется стандарт размещения и назначения каталогов - FHS);
- рекомендации-спецификации для графических сред от FreeDesktop.org;
- использование открытых_стандартов, протоколов и форматов файлов.
- Общепринятые решения.
- Некоторые программы и решения хоть и не значатся стандартом, но используются в большинстве дистрибутивов и поэтому добавляют некое единообразие в те дистрибутивы, в которых используются: браузер Firefox, офисный пакет LibreOffice, система инициализации Systemd, загрузчик GRUB, командный интерпретатор BASH, файловая система Ext4, почтовый клиент Thunderbird, различные среды оформления рабочего стола (рекомендую посмотреть мою habr-статью на эту тему), настройка сети через NetworkManager, служба печати CUPS и т.д.
- У некоторых из них просто нет альтернатив в текущий момент, а у некоторых есть. Однако так сложилось, что пока это решение популярнее во многих дистрибутивах. А завтра может появиться новое и занять место на "пьедестале общепринятых решений".
Вопрос: В чем они различаются?
ОТЛИЧИЯ- Модификации ПО: патчи к ядру, патчи к программам, выбор ПО по умолчанию.
- Отличия в основе: производные дистрибутивы (клоны/деривативы), не стандартный подход, использование различных GUI, формат пакетов, свои дополнения.
- Форма организации: коммерческие дистрибутивы и разрабатываемые сообществами, прогнозируемость проекта, принадлежность к стране и понятие "отечественный дистрибутив".
- Предназначение: Под определенные задачи, пользователей, оборудование.
Отличия: 1. Модификации ПО
- 1.1 Патчи к ядру: ванильное ядро, "лицензионно чистое" ядро, патчи безопасности, оптимизациями для мультимедиа и игр, для систем реального времени.
- 1.2 Свои патчи к ПО: модифицированная версия известной утилиты, использование дополнительных плагинов/библиотек.
- 1.3 Используемое по умолчанию ПО.
1.1 Патчи к ядру
1.1a) Ванильное ядро с kernel.org и его модификации. Как уже сказано выше в "Общее": "Ядро ОС, собранное на одной основе (исходники доступны на kernel.org)". То есть всем дистрибутивам доступны одни и те же исходники (и это называется "Ванильное_ядро"), но с какими настройками (а их около 10000) его скомпилировать - выбор уже за разработчиками дистрибутива. А также выбор, какую использовать версию ядра (более новую со всеми новинками или более старую, но более проверенную/оттестированную) - тоже за разработчиками дистрибутива. Многие дистрибутивы включают свои патчи, добавляющие новый функционал в ядро и отключают те части кода ядра, которые не понадобятся (предположу, что в дистрибутиве для простейшего роутера убирают поддержку звука, bluetooth, полсотни различных файловых систем и пару сотен wifi-драйверов, кроме тех, что используются). Также часто дистрибутивы добавляют в свою версию ядра драйверы устройств или технологий, которые еще не включены в официальную версию ядра (из-за их экспериментального статуса).⊚OracleLinux, ⊚RHEL, ⊚CentOS, ⊚AstraLinuxSE
1.1b) Есть дистрибутивы, которые используют "лицензионно чистое" ядро (например, ядро Linux-libre) - ядро без Блоб'ов (Binary Linked OBject). Обычно эти же дистрибутивы используют и "лицензионно чистое" ПО.
⊚Trisquel, ⊚PureOS, ⊚GuixSD, ⊚Dragora, ⊚Parabola, ...
1.1c) Есть различные патчи безопасности для ядра, например, патчи PaX.
⊚AstraLinuxSE
1.1d) Модифицированная версия ядра с оптимизациями для мультимедиа и игр: Liquorix (или ZenKernel).
1.1e) Модифицированная версия ядра для систем реального времени: kernel-rt (или linux-rt, preempt-rt).
1.2 Свои патчи к ПО
1.2a) Это когда в дистрибутиве используется модифицированная версия известной утилиты. Это может происходить по разным причинам: из-за лицензионных ограничений, усиления безопасности, добавления новых возможностей.⊚Debian, ⊚Trisquel, ⊚TAILS, ⊚Whonix, ⊚Kodachi
1.2b) Использование дополнительных плагинов/библиотек, расширяющих возможности существующей утилиты.
⊚AstraLinuxSE
1.3 Используемое по умолчанию ПО
Здесь надо понимать, что в любом дистрибутиве есть возможность использовать огромное количество ПО, написанного "под Linux". И только некоторая наиболее востребованная часть добавлена разработчиками дистрибутива в свой дистрибутив - это может быть и несколько десятков тысяч пакетов, а может только и несколько тысяч пакетов.Также стоит понимать, что всё это (и программы, относящиеся непосредственно к базовой части системы, и программы дополнительные, типа офисного пакета, редактора картинок, pdf-просмотрщика и т.д.) являются частью дистрибутива и распространяются, и поддерживаются совместно в отличии от "некоторых других ОС".
1.3a) У каждого дистрибутива свой выбор ПО, доступного по умолчанию в дистрибутиве (на установочном диске).
1.3b) У каждого дистрибутива свой выбор ПО, доступного по умолчанию в репозиториях дистрибутива (по сети или на дополнительных носителях).
⊚AstraLinuxSE(Смоленск 1.6), ⊚AstraLinuxCE(Орел 1.6), ⊚Debian (9 Stretch)
1.3c) Есть дистрибутивы, которые используют или делают сильный уклон только на "лицензионно чистое ПО".
Free-Дистрибутивы
Отличия: 2. Отличия в основе
Отличия в основах можно разделить на следующие категории:- 2.1 "Основан на ..." или производные дистрибутивы: клоны, деривативы.
- Вопрос: "Основанный на другом дистрибутиве" - как такое возможно? Не пиратство ли это?
- 2.2 Отличия от стандартов
- 2.3 Своё ПО: утилиты настройки, окружение рабочего стола, ...
- 2.4 Пакеты: Формат пакетов, пакетный менеджер, график выхода релизов
2.1 "Основан на ..." или производные дистрибутивы
На картинке "Linux_Distribution_Timeline (за 2021 год)" заметно, что многие дистрибутивы начали своё развитие как "ответвление" от другого дистрибутива (даже можно выделить несколько крупных "семейств" производных дистрибутивов, основанных на: ⊚Debian, ⊚RedHat, ⊚Arch, ⊚Slackware, ⊚SUSE, ⊚Gentoo, ⊚Android). То есть разработчики взяли другой дистрибутив (разрабатываемый другими людьми или другой организацией) и на его основе создали "свою" версию системы.Вопрос: "Основанный на другом дистрибутиве" - как такое возможно? Не пиратство ли это?
На самом деле, это - не пиратство (хотя такое тоже может быть и изредка происходит в мире Linux при несоблюдении условий лицензии на отдельное ПО). Просто здесь большинство программ являются СПО (Свободным Программным Обеспечением), и как следствие (если простым языком) допускается их модификация, использование и распространение. Если создавать свой дистрибутив на основе дистрибутива, в котором есть несвободное ПО, то это ПО нужно или исключить из своего дистрибутива, или отдельно договариваться об условиях использования с авторами этого ПО. Также обычно есть ограничения на использование торговой марки и логотипов, то есть потребуется дополнительное соглашение, например, с Canonical на использование слова "Ubuntu" в названии своего дистрибутива.Дистрибутивы по степени "производности на основе другого дистрибутива":
- 2.1a) самостоятельные дистрибутивы;
- 2.1b) клоны;
- 2.1c) деривативы или ...-based дистрибутивы;
- 2.1d) “дистрибутивы под покровительством”.
⊚RHEL, ⊚Debian, ⊚SUSE, ⊚Arch, ⊚Linux_From_Scratch, ⊚Alt, ...
2.1b) Клоны (различия с оригиналом сводятся к ребрендингу, замене названия и художественного оформления - просто понадобится нарисовать свои "нескучные обои" со своим логотипом). Стоит заметить, что клоны построены на тех же пакетах с исходниками, что и оригинал, а не на тех же бинарных пакетах. Подобные проекты пользуются спросом, так как коммерческие дистрибутивы проводят процедуру сертификации на совместимость с различными другими коммерческими решениями, а также под данный дистрибутив имеется официальный пакет от производителя данного решения. В итоге всё будет корректно работать и на бесплатном дистрибутиве-клоне.
⊚CentOS - клон ⊚RHEL (RedHat)
⊚Ubuntu, ⊚OracleLinux, ⊚AstraLinuxSE. НЕ деривативы: ⊚Alt, ⊚SUSE
2.1d) "Дистрибутивы под покровительством". Они развиваются сообществом добровольцев при поддержке (в том числе и финансовой) коммерческого дистрибутива в качестве тестовых площадок для подготовки и тестирования новых решений к выходу коммерческого дистрибутива. Обычно у таких дистрибутивов хостинг самого проекта и сопутствующие расходы находятся на ресурсах коммерческого дистрибутива, и помимо добровольцев есть сотрудники на зарплате от коммерческого дистрибутива. При этом обычно они не управляются напрямую менеджерами коммерческого дистрибутива. У подобных проектов имеется свобода самостоятельного развития и принятия решений (иначе сообщество будет мало заинтересовано участвовать в таком проекте на бесплатной основе, и участники могут попросту разбежаться по другим более демократичным проектам).
⊚Fedora/RedHat, ⊚openSUSE/SUSE
2.2 Отличия от стандартов
Это когда дистрибутив пытается использовать нестандартное решение, отличное от используемого в большинстве Linux-дистрибутивах. С одной стороны, такие дистрибутивы не так распространены, и их путь достаточно тернист. С другой стороны, возможно, решение, которое они продвигают, когда-нибудь станет новым стандартом, ну или хотя бы поводом пересмотреть устаревший стандарт.⊚GoboLinux, ⊚Devuan, ⊚Alpine, ⊚Void
2.3 Своё ПО
- 2.3a) Инсталлятор
- 2.3b) Конфигураторы
- 2.3c) Используемое окружение рабочего стола
- 2.3d) Другое специализированное ПО
- 2.3a) Инсталлятор для упрощения процедуры установки системы.
- Наличие файла автоответов. В какой-то мере для меня это знак зрелости дистрибутива для использования его в корпоративной среде. Это возможность разворачивать систему в автоматическом режиме с использованием "файлов автоответов", и чем гибче синтаксис этого файла и чем больше настроек в нём можно указать, тем больше дистрибутив подходит для больших компаний.
- Текстовый инсталлятор. Наличием графического инсталлятора в текущий момент уже, наверное, сложно кого-то удивить, но для серверов (или встраиваемых устройств, не использующих видеокарт и мониторов со "стандартным" разрешением) и для установки в облаках бывает полезно наличие инсталлятора, работающего в текстовом режиме.
- Установка в основном по сети. Установочный диск содержит только минимальный набор утилит для установки, а все устанавливаемые пакеты скачиваются из сетевых репозиториев.
- Инсталлятор из режима LiveCD позволяет попробовать дистрибутив и поддержку железа в режиме LiveCD, а затем при желании и установить.
- Возможность при установке автоматически скачать и установить дополнительные пакеты из интернета (например, не свободно распространяемое ПО, которое не доступно по умолчанию в дистрибутиве из-за ограничений, часто из-за региональных правовых особенностей). Так часто распространяются видеокодеки, драйвера на некоторое железо (например, графические видеокарты). Спорная польза в такой возможности (по мне лучше всё-таки максимально использовать свободное ПО), но для простых пользователей (недавно перешедших из "мира проприетарных ОС") это явно облегчает начало работы в мире Linuх.
- 2.3b) Конфигураторы. Обычно дистрибутивы, ориентирующиеся на простого пользователя, создают свои дополнительные утилиты, упрощающие настройку системы. Чтобы различные действия по настройке системы мог выполнить человек без навыков работы в командной строке и без знаний, какие параметры в каких конфигурационных файлах требуется изменить. Отдельно стоит упомянуть графические утилиты настроек, веб-конфигуратор, автоконфигурирование при установке и сборке пакета.
- Графические утилиты настроек. Поговаривают, что "простым пользователям понятнее в кнопочки мышкой тыкать". Вот для них и стараются разработчики user-friendly дистрибутивов.
- Веб-конфигуратор. Удаленное управление машиной через web-интерфейс - достаточно востребованное решение, но и добавляет риски взлома системы.
- Автоконфигурирование при установке/сборке пакета. При установке новой программы или службы отображается меню-образный интерфейс с вопросами о выборе режима работы службы или использовании одного из стандартных профиля настроек.
- 2.3c) Используемое окружение рабочего стола. Существует достаточно много дистрибутивов, в рамках которых разрабатывается своё DE (Desktop Environment - окружение рабочего стола) [На эту тему рекомендую посмотреть мою статью с обзором различных DE под LInux]. Также есть много деривативов, которые развивают ответвление с другим окружением рабочего стола, нежели с используемым в основном дистрибутиве.
2.3d) Другое специализированное ПО. Довольно многие узкоспециализированные дистрибутивы содержат свой дополнительный (и не присутствующий в других дистрибутивах) набор утилит, собственных или совместно разрабатываемых.
⊚Alt, ⊚AstraLinuxSE
2.4) Пакеты
- 2.4a) Формат пакетов: rpm-пакеты и deb-пакеты, другие собственные форматы бинарных пакетов, из исходников.
- 2.4b) Пакетный менеджер
- 2.4c) График выхода релизов: стабильный и тестовый релиз, LTS-релизы, роллинг-релиз
Как уже сказано выше, исходники программ в разных дистрибутивах во многом одинаковые, а вот установочные пакеты, полученные на их основе, различаются, как различаются и пакетные менеджеры (программы, при помощи которых эти пакеты ищутся и устанавливаются).
2.4a) Формат пакетов
- rpm-пакеты и deb-пакеты: *.rpm, *.deb. Отдельно выделил этот пункт, так как большинство дистрибутивов используют один из этих форматов пакетов - в основном, конечно, RedHat-based и Debian-based дистрибутивы, но и не только.
- Другие собственные форматы бинарных пакетов: *.tar.gz, *.txz, *.pkg, *.ipkg, …; в том числе использование форматов переносимых приложений: snappy, flatpak, AppImage, …
- Из исходников (в том числе, подход, похожий на порты FreeBSD): Дистрибутивы с подходом "не для новичков" используют пакеты на основе исходников, которые компилируются при установке пакета. Данный подход дает возможности оптимизации ПО под конкретное аппаратное обеспечение и задачи (отказ от ненужных зависимостей, выбор собираемых компонентов) и как следствие - прирост в производительности и настраиваемости получаемого пакета.
2.4b) Пакетный менеджер. Утилита, позволяющая искать и устанавливать пакеты, обновлять систему. Использование собственного формата пакетов ведёт к использованию собственного пакетного менеджера.
⊚Alt, ⊚SUSE, ⊚Mageia, ⊚ROSA, ⊚Arch, ⊚Slackware, ⊚Solus, ⊚Void, ⊚NixOS, ⊚Guix_SD
2.4c) График выхода релизов. Здесь стоит выделить различные подходы к выпуску готовой для использования версии дистрибутива (есть дистрибутивы, которые используют несколько из этих подходов).
- Стабильный релиз. Многие дистрибутивы следуют этому классическому подходу периодически выпускаемых протестированных версий. Обычно с выходом нового релиза (который выпускается раз в несколько лет) предыдущий релиз некоторое время (часто около года) еще поддерживается (для него выпускаются обновления с исправлением уязвимостей, но без добавления нового функционала). Затем рекомендуется переходить на (или обновить до) новую версию дистрибутива.
- LTS-релизы (Long Term Support - «поддержка в течение длительного периода»). Аналогичный подход к выпуску стабильных и обычно более протестированных релизов, при этом дистрибьютор специально гарантирует выпуск обновлений для данного релиза на определенный достаточно продолжительный срок.
- Тестовый релиз. В противовес стабильному релизу, который обычно содержит протестированное ПО, некоторые дистрибутивы еще поддерживают выпуск тестовых версий с наисвежайшими версиями программ и библиотек, но при этом менее протестированные. Используется любителями всего нового и разработчиками. Позже на основе этого релиза будет выпущен стабильный релиз.
- Роллинг-релиз (Rolling_release). Есть дистрибутивы, которые умудрились организовать сборку, проверку зависимостей пакетов и тестирование своего дистрибутива так, что это позволяет им выпускать стабильные релизы буквально ежедневно. Такие дистрибутивы предоставляют своим пользователям наиболее свежие версии программ. При этом в отличие от тестового релиза, который изначально позиционируется как тестовая (и, вероятно, не совсем стабильная) версия дистрибутива роллинг-релиз всё же позиционируется как вполне стабильная версия (за счет некой автоматизации в сборке и тестировании). Обычно такие дистрибутивы вместо классической нумерации версий (в виде увеличивающего на единицу числа) используют дату.
Отличия: 3. Форма организации
- 3.1 Коммерческие дистрибутивы и развиваемые сообществом добровольцев.
- 3.2 Прогнозируемость проекта.
- 3.3 Принадлежность к стране, понятие "отечественный Linux".
Вопрос: Как можно продавать то, что по определению распространяется бесплатно?
Начнем с того, что разберемся с тем, как можно продавать ОС, созданную на основе свободного (а в большинстве случаев это также означает "бесплатного") ПО. Здесь я не агитирую переходить на коммерческие дистрибутивы, скорее пытаюсь показать, за какую работу берется оплата. А стоит она того или нет, решать уже вам самим.От "свободного ПО" до готового дистрибутива достаточно длинный путь. Давайте оценим, за что платят клиенты коммерческих дистрибутивов, и какая работа кем выполняется. Перечислю действующих лиц и их вклад в создание ОС (здесь у меня главная цель - показать, что разработчик и майнтейнер - это разные люди. Часто это совсем не очевидно для новичков):
- Разработчик (программист или группа программистов, организация), который разрабатывает программу. Чаще всего не имеет никакого отношения к используемому вами дистрибутиву. Не занимается сборкой пакетов для различных дистрибутивов (максимум под тот дистрибутив, который использует сам). И это не прихоть и не вредность. Попробуйте помимо разработки программы поддерживать с десяток типов пакетов под 200+ дистрибутивов [Часто авторы не совсем свободного ПО создают, как минимум, по одному пакету для дистрибутивов, основанных на ⊚RedHat и на ⊚Debian и, если у вас другой дистрибутив, придется помучиться с их установкой]. Разработчик выкладывает исходники программы или на своем сайте, или на каком-нибудь git-хранилище проектов.
- Майнтейнер - это уже сотрудник дистрибутива. Он, зная особенности дистрибутива, собирает из исходников пакет под этот дистрибутив, отслеживает зависимости с другими пакетами, добавляет (часто и пишет) патчи, тестируют работоспособность собранного пакета, отслеживает какие обновления появляются в исходниках. Полученный пакет выкладывается в репозиторий дистрибутива.
- А также остальные (в бесплатных проектах это выполняется "внутренними силами", но нужно понимать, что это расходы):
- Архитектор системы. Требуется собрать много разрозненных пакетов в одну связанную операционную систему и для каждой пользовательской задачи должна присутствовать хотя бы одна утилита.
- Ну и дизайнер. Часто замечают только его работу с "новыми нескучными обоями". И если это единственное новшество в дистрибутиве, то просуществует такой проект не долго и будет вспоминаться (только ради шутки как очередной ⊚BolgenOS).
- Сотрудники техподдержки. Те, кто целыми днями ожидают (и отвечают на запросы) у телефона или электронной почты.
- Менеджеры, бухгалтеры, админы сайта.
И так нужно сделать для всех утилит, добавляемых в дистрибутив. При этом утилиты используют (распространенный подход в Linux) большое количество сторонних библиотек, которые также необходимо собрать и доставить. Плюс библиотеки бывают разных версий, а также разные утилиты могут использовать разные версии python, php, openssl, … и нужно умудрится собрать это всё в рамках одной ОС.
Приведу аналогию. Это чем-то похоже на свободно распространяемые в интернете рецепты по приготовлению блюд. Есть те, кто готов потратить не один вечер на самостоятельную готовку в режиме проб и ошибок (есть даже те, кто от этого получает удовольствие), но ведь есть и те, кто пойдет в кафе/ресторан, заплатит разные деньги разного уровня профессионалам и получит более быстрый и предсказуемый результат. Но еще раз замечу, рецепты абсолютно любых и даже сильно экзотических блюд сейчас вполне легко можно найти в интернете абсолютно бесплатно.
Еще одна очень верная цитата: "Следует хотя бы раз попробовать развернуть дистрибутив ⊚Linux_From_Scratch. У этого действия есть один интересный побочный эффект: люди, которые склонны проявлять неудовлетворенность в списках рассылки и на форумах дистрибутивов, вероятно, проявят гораздо больше уважения к разработчикам. Установка готового дистрибутива - тривиальная задача. Но совсем нетривиально создание набора из четырех компакт-дисков, содержащих стабильную, безопасную и надежную операционную систему и тысячи приложений".
3.1 Коммерческие дистрибутивы и развиваемые сообществом добровольцев.
3.1a) Коммерческие дистрибутивы. Здесь имеются в виду различные способы получения прибыли от производства дистрибутива.- Продажа лицензий или подписок на использование дистрибутива. Самый прямолинейный способ - просто выставить цену, сколько стоит использование дистрибутива на одном компьютере (в том числе, на виртуальном).
- Часто предоставляют бесплатный доступ к использованию коммерческого дистрибутива:
- для образовательных учреждений;
- для разработчиков/тестеров или различных деловых партнеров;
- для малых организаций (например, при установке на менее, чем на десять компьютеров);
- на пробный период (обычно несколько месяцев).
- Платные обновления. Фактически дистрибьютор берет на себя ответственность в случае выявления уязвимостей (в безопасности или в функционале) как можно быстрее выпустить обновление пакета с исправлением. Часто стабильный релиз дистрибутива можно свободно скачать с сайта дистрибутива и использовать, в том числе и в коммерческих интересах. Он будет полностью работоспособный (ничем не отличатся от оплаченной версии) и продолжать работать в полной мере и по истечению тестового периода, однако по истечению тестового периода будут недоступны обновления. Некоторые дистрибутивы своевременно предоставляют обновления (по мере их появления) для тех, кто оформил платную подписку и с задержкой (например, в несколько недель) для тех, кто использует дистрибутив бесплатно.
- Платная техподдержка. Цена лицензии зависит от выбранного плана техподдержки: на какой срок предоставляется техподдержка, в какие дни и время (например, предусмотрено ли устранение проблем в нерабочие дни), скорость реакции на запрос, наличия нескольких уровней поддержки, формата взаимодействия (по телефону, e-mail/мессенджеры, "срочно высылают инженера на вертолете").
- Дополнительные продукты и услуги. Дополнительные готовые (часто платные, но могут быть и бесплатные) решения для централизованного управления компьютерным “парком” в организации, кластерные решения, обеспечивающие минимальное время простоя серверов, сервер обновлений внутри организации и т.д. Все это может быть не востребовано (либо, в простых случаях, реализовано собственными разработчиками) в небольшой компании, но в больших организациях проще и лучше (а иногда и дешевле) использовать готовое проверенное решение.
- Также обычно организованы и поддерживаются в актуальном состоянии различные онлайн-сервисы: официальный сайт, репозитории, форум, bugzilla, wiki-документация.
- Сертификации. Отдельные процедуры, требующие от дистрибьютора затрат как временных, так и финансовых, но предоставляющие клиентам дополнительные гарантии.
- Сертификаты на соответствие (ФСТЭК, ФСБ, Минобороны). Они подтверждают отсутствие недекларированных возможностей и удовлетворение требованиям безопасности. Бывают различных уровней.
- Сертификация на совместимость ПО. Проверяется и гарантируется, что данное дополнительное (не входящие в дистрибутив) ПО устанавливается и работает без ошибок.
- Сертификация на совместимость оборудования. Проверяется и гарантируется, что дистрибутив распознает и работает без ошибок с данным оборудованием (планшет, ноутбуку, видеокарты, токены, сканеры, МФУ, СХД, …).
Из минусов стоит отметить, что большинство коммерческих дистрибутивов в сравнении с дистрибутивами общего назначения имеют в официальных репозиториях гораздо меньше пакетов (но всё же достаточно много), и эти пакеты не самых свежих версий (а наиболее протестированные). Это обусловлено необходимостью тестировать и поддерживать весь софт, входящий в дистрибутив. Хотя обычно имеются различные сторонние (за качество которых уже коммерческая компания не отвечает) репозитории с дополнительными пакетами.
⊚SLES, ⊚RHEL, ⊚Ubuntu
3.1b) Дистрибутивы, развиваемые сообществом
Мое личное мнение, что многообразие дистрибутивов Linux, развиваемых сообществом, и есть основа экосистемы Linux, которая позволяет Linux находиться на передовой развития информационных технологий. Здесь появляются и апробируются новые решения и технологии. Работает эволюционный подход: хорошие идеи находят своих последователей и продолжают развитие, остальные отмирают, но это не означает, что идеи были плохими, возможно, они были предложены не ко времени. Кроме того, со временем становится заметно, под свои задачи люди разрабатывают лучше, чем на продажу. И, мне кажется, основная заслуга Линуса Торвальдса не совсем в том, что он разработал ядро Linux, а в том что он своим письмом (призывом присоединяться к проекту) собрал вокруг этого ядра сообщество, и уже вместе с его участниками создали огромный международный проект и экосистему, с которой стало сложно конкурировать другим "популярным" ОС. Тут также огромная заслуга Ричарда Мэттью Столлмана с его проектом GNU и лицензией GPL. Это кодовая база и юридическая база, которые служат основным фундаментом ОС GNU/Linux.
Тут выделил бы два наиболее распространенных подхода в форме организации сообщества.
- Меритократическое правление. Из наиболее активных участников сообщества выбираются ответственные за принятие решений о развитии проекта и за разрешение спорных вопросов. Эти люди выбираются на некоторый ограниченный срок и действуют по заранее оговоренным правилам взаимоотношений и принятия решений.
- Великодушный пожизненный диктатор. Один человек, организовавший проект (или бывает выбранная должность, после того как основатель по каким-то причинам отошел от проекта) полностью берет на себя право принятия ключевых решений и урегулирование спорных решений (когда мнения участников сообщества разделяются). "Великодушность" - обязательный критерий, так как участие в разработке такого дистрибутива добровольное, а значит, "тиран-самодур" быстро растеряет последователей (ничто не мешает переключиться на развитие другого проекта).
3.2 Прогнозируемость проекта
Здесь опишу достаточно важный критерий, на который начинаешь обращать внимание с годами пользования различными дистрибутивами Linux. И это прогнозируемость проекта. В мире Linux достаточно часто появляются новые дистрибутивы, а также "форки" уже существующих дистрибутивов: какие-то из них просуществуют десятилетия, а какие-то уже распадутся через полгода после новостного анонса.Цитата с DistroWatch.com: Большое количество дистрибутивов не переживает первого года своего существования. Он (период ожидания на добавление в DistroWatch.com) дает новым проектам время для создания правильной инфраструктуры, включая форумы, списки рассылки, документацию, базы данных отслеживания ошибок и т.д.
- 3.2a) "Недавно появившиеся" и "давно существующие" проекты/люди/организации. Есть больше доверия к "давно существующим" в мире Linux людям, уже успевшие организовать существующие долгое время проекты.
- "Недавно появившиеся". Они могут быть с интересными новаторскими идеями, но их будущее не очень понятно, так как сообщество не сформировано. А новые пользователи могут так же быстро переключить своё внимание на новый проект, а руководство, "наигравшись", - продать бренд и заняться реализацией нового "стартапа".
- "Давно существующие". Сложившееся сообщество, устоявшиеся и предсказуемые правила принятия решений, предсказуемые цели развития.
Хотя как "новички" могут стать "старожилами", так и "старожилов" может "поглотить" новый бизнес/кризис/возраст. И все же при выборе дистрибутива на долгое использование ("не только поиграться с интерфейсом") рекомендовал бы выбирать из "старожилов".
- 3.2b) Количество участников в проекте. Очевидно, что лучше когда в проекте много участников и большое сообщество активных пользователей, дающих разработчикам конструктивную обратную связь о решениях, принятых в дистрибутиве.
- 3.2с) Full-time разработчики или любительский проект в свободное время. Хотя многие дистрибутивы начинались как любительские проекты и продолжают существовать долгие годы в этом формате, всё же наличие Full-time разработчиков (подобное обычно возможно в коммерческих дистрибутивах, либо за счет регулярных донатов, постоянных спонсоров. Последнее время у многих известных бесплатных дистрибутивов сложился данный подход) ускоряет развитие.
3.3 Принадлежность к стране, понятие "отечественный Linux"
Про принадлежность какого-нибудь дистрибутива к определенной стране можно говорить, наверное, только в случае, если это коммерческий дистрибутив, а выпускающая его компания юридически зарегистрирована в этой стране.Экспортные ограничения
Ну и может быть, также можно отнести к определенной стране дистрибутивы, выпускаемые одним человеком или группой разработчиков только из одной страны. Однако в текущий момент достаточно сложно перечислить такие проекты.
Вопрос: Американский ли Linux или может финский?
То, что Линус Торвальдс родился в Финляндии и имеет второе гражданство в США, не делает ядро Linux финским или американским - как и дистрибутивы использующие это ядро. Ядро Linux разработано десятками тысяч разработчиков с участием и под руководством Торвальдса и по лицензии GPL, так что данный продукт является чисто международным, как и большинство других программ, входящих в Linux-дистрибутивы.
"Национальные" Linux:
Вопрос: Какой он - "отечественный Linux"?
Из предыдущего раздела, думаю, стало понятно, что существуют как американские дистрибутивы Linux, так и китайские, бразильские, турецкие, и..., почему бы им не быть, российские. Причем, некоторые из российских появились еще задолго до появления таких терминов, как "импортозамещение", "реестр российского ПО", "участие в гос.тендере".Отдельно выделил бы на текущий момент два ведущих российских проекта ⊚Alt и ⊚AstraLinux (так как предлагают собственные, достаточно проработанные решения, и большинство крупных проектов по "импортозамещению" происходит с их участием).
Сравнение Альт и AstraLinux:
Также существуют и другие российские Linux дистрибутивы.
⊚Calculate_Linux, ⊚ROSA, ⊚Аврора; ⊚ASPLinux, ⊚Russian_Fedora, ⊚Runtu, ⊚Ubuntu_Cinnamon_Remix
Достаточно много "отечественных Linux" зарегистрировано в Едином реестре российских программ.
⊚ROSA, ⊚Аврора, ⊚РЕД_ОС, ⊚AlterOS, ⊚Янукс, ⊚Атлант, ⊚UBLinux, ⊚QP_ОС, ⊚Стрелец, ⊚ЛотОС, ⊚Нейтрино, ⊚ОСнова, ⊚СинтезМ, ⊚Циркон, ...
Отличия: 4. Предназначение
Достаточно многие дистрибутивы являются дистрибутивами общего назначения, то есть без деления на серверные и пользовательские и без заточенности под отдельную узкую задачу. В таких дистрибутивах какие пакеты установил и что настроил, то в результате и получил.Для новичков же или не специалистов в Linux (которым от системы нужно работа нескольких утилит, и лучше, чтобы сразу из коробки - без всего этого многообразия возможностей, которые дает Linux) часто делаются специальные сборки:
Узкое применение. От этого зависит, сколько и каких пакетов доступно в системе по умолчанию при установке и в репозиториях. Изначально настроены различные оптимизации ПО и ядра под определенные задачи.
Далее перечислю в качестве примеров достаточно много дистрибутивов для наглядности (ну и для тех, кому интересно определенное предназначение). А еще для того, чтобы вы хоть несколько раз произнесли фразу "Ух ты - и для этого сделали свой Linux!". Далее буду выделять жирным шрифтом проекты, которые, как мне кажется, более известные. Проекты слишком новые или настолько малоизвестые, что на них нет статьи-описания на DistroWatch или в Википедии, упоминаю без ссылок.
d
4.1 Под определенные задачи
- 4.1a) Общего назначения (в репозиториях более 20 000 пакетов, при этом на выбор есть несколько пакетов одного типа, как, например браузеров, офисных пакетов, DE): ⊚openSUSE, ⊚Fedora, ⊚Debian, ...
- 4.1b) Для военных и госучреждений. Различные особенности с ограничением доступа к данным, имеющие различные грифы секретности (пример, дистрибутив ⊚AstraLinuxSE со своей системой parsec)
- 4.1c) Научная направленность: ⊚TeX_Live, ⊚Scientific_Linux
- Обучение. Дистрибутивы для школ, университетов: ⊚Альт_Образование, ⊚SkoleLinux (= DebianEdu), ⊚TLSP(The_Linux_Schools_Project), ⊚AcademiX, ⊚UberMix
- одно время были весьма популярны подобные деривативы, сейчас, похоже, их наработки включены в основные проекты и часто в виде отдельно дополнительного репозитория: ⊚Edubuntu (был), репозиторий Education для ⊚openSUSE
- Обучение. Дистрибутивы для школ, университетов: ⊚Альт_Образование, ⊚SkoleLinux (= DebianEdu), ⊚TLSP(The_Linux_Schools_Project), ⊚AcademiX, ⊚UberMix
- 4.1d) Работа с BigData. Например, дистрибутив ⊚CDH от Cloudera для работы с большими данными.
- 4.1e) Тестирование безопасности, анализа безопасности сети. Содержат большое количество софта для пентестов и этичного (или не этичного) взлома: ⊚Kali_Linux, ⊚Network_Security_Toolkit, ⊚Parrot_Security_OS, ⊚BackBox, ⊚BlackArch, ⊚WifiSlax, ⊚Pentoo, ⊚Garuda_KDE_Dragonized_BlackArchEdition
- 4.1f) Анонимность работы в сети. Использование VPN, Tor, изоляция приложений, шифрование данных: ⊚TAILS и ⊚Whonix, ⊚Qubes_OS, ⊚Kodachi, ⊚Obscurix, ⊚Septor
- 4.1g) Работа с мультимедиа. Обработка-монтаж видео/аудио, предустановленные графические и 3D-редакторы: ⊚Ubuntu_Studio, ⊚AV_Linux, ⊚ModiciaOS
- Домашний кинотеатр: ⊚LibreELEC, ⊚MoviX (был. LiveCD для просмотра видео, размером 30Mb, который можно было вместе с фильмом записать на один CD-диск)
- 4.1h) Восстановление системы после сбоя: ⊚GParted-LiveCD, ⊚Parted_Magic, ⊚SystemRescueCD, ⊚Finnix, ⊚Rescatux
- Система снятия образа системы: ⊚Clonezilla, ⊚Rescuezilla
- Проверка оборудования: ⊚DogLinux
- Поиск руткитов, антивирус: ⊚Ubuntu_RescuePack
- 4.1i) Игры (предустановленные нативные игры, упрощенный запуск Windows-игр, предустановленные или упрощенная установка драйверов видиокарт): ⊚SteamOS, ⊚SuperGamer, ⊚Garuda_KDE_Dragonized_GamingEdition, ⊚Pop!_OS, LinuxLiveGameProject (был), ⊚DraugerOS, ⊚Ubuntu_GamePack, ⊚ChimeraOS, ⊚Fedora_Games_Spin
- Дистрибутив одной игры: ⊚KnoppixQuake, ⊚Tetris-OS, ⊚Hikarunix (был. Игра Go).
- Когда-то (лет 15 назад) добавил в LiveCD украинского дистрибутива ⊚BLin (размером 200Mb) Linux-порт игры HOMM3 (и карт для неё), ну и различных учебников по Linux - получился вполне удобный дистрибутив для использования на компьютере в институте (офисный пакет, браузер, ICQ-клиент присутствовали).
- Для запуска ретро-игр (эмуляторы DOS/Dendy/Nintendo/Sega/PlayStation): ⊚Lakka, ⊚RetroPie
- Дистрибутив одной игры: ⊚KnoppixQuake, ⊚Tetris-OS, ⊚Hikarunix (был. Игра Go).
- 4.1z) Для людей разных специальностей. Встречал раньше довольно часто дистрибутивы для разных специальностей: медиков, химиков/биологов (⊚BioKnoppix (был)), переводчиков (⊚TuxTrans (был), ⊚LinguasOS (был)), географические карты (⊚OSGeo-Live), инженеров/CAD-специалистов (⊚CAELinux), ...
4.2 Под определенных пользователей
- 4.2a) Поддержка языков (для разных языков много своих особенностей: кодировки, переключение раскладок, ввод "иероглифов/умляутов" и "запись справа-налево").
- 4.2b) Для продвинутых пользователей (подход "Сделай сам"). Обычно предоставляется некая минимальная базовая система, настраиваемая далее пользователем под свои нужды. Для опытных пользователей, которым пусть лучше не работает совсем, пока не настрою, чем настройки по умолчанию для "чайников". Свои правила и настройки, не навязанные производителем дистрибутива:
- ⊚Gentoo, ⊚Linux_From_Scratch (дистрибутив, распространяемый в виде pdf-книги), ⊚Arch, ...
- 4.2c) Для простых пользователей. Ориентированные на пользователей без знания командной строки. Им лучше "чтоб всё было настроено само - по умолчанию, чтобы не требовалось разбираться в глубинах IT". Наличие достаточного количества графических инструментов настройки системы.
- ⊚Linux_Mint, ⊚openSUSE, ⊚Fedora, ⊚MX_Linux, ⊚Netrunner, ...
- Сборки популярных "продвинутых дистрибутивов" для обычных пользователей:
- на основе ⊚Gentoo: ⊚Calculate_Linux, ⊚RedcoreLinux;
- на основе ⊚Arch: ⊚Manjaro, ⊚EndeavourOS, ⊚Garuda, ⊚Arco.
- Похожий интерфейс. Для простых пользователей, которые привыкли к определенному интерфейсу других ОС (хотя любой дистрибутив, использующий "классическую" среду оформления рабочего стола (KDE, Cinnamon, Mate, Xfce, Enlightment), имеет похожий вид и легко настраивается соответствующими темами).
- Windows-подобный: ⊚Deepin, ⊚Solus, ⊚Zorin_OS
- Mac-подобный: ⊚Elementary OS
- 4.2d) Религия: ⊚Sabily (был, а еще ранее называвшийся “Ubuntu Muslim Edition”), ⊚Ubuntu_Christian_Edition (был), ⊚Buddhabuntu (был)
- Видел сборки для "белых"(⊚ApartheidLinux) и для фанатов аниме (⊚Mangaka).
- 4.2e) Заточенность под физические особенности пользователей. Тут можно упомянуть использование Accessibility_Toolkit в GNOME
- Для слабовидящих: ⊚Vinux, ⊚Slint, ⊚TalkingArch (был), ⊚Oralux (был)
4.3 Под определенное оборудование
- 4.3a) Поддержка различных архитектур. x86 (32-битную версию многие дистрибутивы уже не поддерживают), x86_64, AMD64, ARM, …
- Для одноплатных компьютеров: ⊚Raspberry_Pi_OS, ⊚Armbian, ⊚Volumio, ⊚Pidora (интересное название у дериватива Fedora для Raspberry PI)
- Для смартфонов и планшетов (GUI, завязанные на Multitouch-интерфейсы, поддержка функций телефона): ⊚Sailfish, ⊚Tizen, ⊚PostmarketOS, ⊚Аврора, ⊚Harmony_OS, ⊚JingOS.
- Деривативы Android: ⊚LineageOS, ⊚Android-x86
- Использование веб-приложений: ⊚Chromium_OS, ⊚Chrome_OS, ⊚LG_webOS, ⊚PeppermintOS
- 4.3b) Домашний компьютер, рабочая станция. Требуется предустановленное пользовательское ПО (браузер, офисные пакеты, …): ⊚SLED (SUSE Linux Enterprise Desktop), ⊚Альт_Рабочая_станция, ⊚Ubuntu, ⊚Fedora, ⊚Deepin, ⊚Garuda, …(большинство дистрибутивов общего назначения).
- Работа в режиме киоска. В этом случае доступны только некоторое количество приложений и от пользователя скрыт доступ к консоли и дополнительным настройкам. Есть, например, в ⊚AstraLinuxSE
- Тонкий клиент: ⊚Thinstation
- 4.3c) Сервер: ⊚SLES (SUSE Linux Enterprise Server), ⊚Ubuntu_Server, ⊚Fedora_Server, ⊚SME_Server, ⊚Zentyal, ⊚UCS(Univention_Corporate_Server), ⊚NethServer, ⊚ClearOS
- Суперкомпьютеры/мейнфреймы/кластеры: ⊚SLES (SUSE Linux Enterprise Server)
- RealTime-системы: ⊚SLERT (SUSE Linux Enterprise Real Time)
- Для телекоммуникационного оборудования (в том числе роутеров): ⊚OpenWrt, ⊚DentOS, ⊚LEAF, ... достаточно подробный список на Википедии
- Виртуализация: ⊚ProxmoxVE, ⊚Альт_Сервер_Виртуализации, ⊚AstraLinux_Брест, ⊚LiveRaizo
- Контейнеры: ⊚Qubes_OS, ⊚Container_Linux, ⊚Fedora_CoreOS, ⊚EasyOS
- Облака: ⊚Amazon_Linux_AMI, ⊚CloudLinux_OS
- Сетевое устройство хранения данных (NAS): ⊚EasyNAS, ⊚OpenMediaVault
- 4.3d) Легковесные системы. Имеют низкие минимальные требования к ресурсам:
- для использования на "старом железе": ⊚AntiX, ⊚Q4OS, ⊚Linux_Lite, ⊚Tiny_Core_Linux, ⊚SliTaz, ⊚4MLinux;
- как основа для контейнеров: ⊚Alpine, ⊚Ubuntu_Core.
- 4.3e) Встроенные системы (банкоматы, платежные терминалы, станки с ЧПУ, медицинское оборудование, датчики/передатчики, IoT, smartTV, …): ⊚Fedora_IoT
- 4.3f) Запуск в режиме LiveCD/LiveDVD/LiveUSB - без установки на жесткий диск. Все, перечисленные в "4.1h", запускаются и работают в таком режиме. В качестве примера приведу ⊚Knoppix - один из первых подобных проектов, сам когда-то активно им пользовался.
Итого
Упомянул достаточно много дистрибутивов - 222 (из них 168 по одному разу, а 31 - упомянут дважды). Явно чаще (хотя честно старался быть непредвзятым) приводил примеры с следующими дистрибутивами:- RedHat (в том числе их продукты: RHEL, CentOS, Fedora);
- SUSE (в том числе их продукты: openSUSE, SLES, SLED, SLERT);
- Alt (в том числе их продукты: Альт_Рабочая_станция, Альт_Образование, Альт_Сервер_Виртуализации, Simply_Linux);
- AstraLinux (в том числе их продукты: AstraLinuxSE и AstraLinuxCE, AstraLinux_Брест);
Тут не стал бы выделять лидера. Все примерно одинаково часто упомянуты, хотя SUSE у меня вспоминается часто (мог бы и еще чаще), но это, думаю, следствие того, что уже десяток лет провожу курсы обучения по их продуктам в «Сетевая Академия ЛАНИТ». И Alt с AstraLinux сильно "подтянулись" у меня по цитируемости буквально за последние пять лет - связи с импортозамещением стали гораздо чаще запрашивать по ним обучение.
Далее с отставанием:
- Ubuntu, Debian (хотя если их считать вместе, то они попадают в верхний список, но всё-таки это разные проекты и организации);
- Arch, Linux_From_Scratch, Gentoo, Slackware;
- OracleLinux;
- ROSA, Calculate_Linux, Manjaro, Mageia, Linux_Mint, Solus, Deepin, RockyLinux, Alpine.
Ну вроде и всё! Все важные критерии перечислил и, кажется, никого не забыл (кого забыл - пишите в комментариях). Общую картину теперь представляете.
Многообразие Linux-дистрибутивов
Цель этой статьи показать и объяснить многообразие дистрибутивов Linux. Перечислить основные сходства (они же все почему-то называются "Линуксы" или даже правильнее GNU/Linux ) и основные различия...
habr.com