Unix-подобные операционные системы

В этой статье я хотел бы составить свой tier-list Unix-подобных ОС с небольшой справочной информацией о них.

1280px-Unix_history-simple.ru.svg.png
Рис. 1.: Дерево Unix-подобных систем

Оригинальный проприетарный Unix я пробовал только в эмуляторе, косвенное же знакомство с юникс системами у меня началось примерно десять лет назад в старших классах школы. Моей первой системой был GNU/Linux, дистрибутив Ubuntu со вторым Gnome. Я выписывал журнал Linux Format и кое-как управлялся всем через графический интерфейс. Что примечательно спустя некоторое время линукс появился и в школе в старших классах, всё та же ubuntu и второй Gnome. Проходили мы на нём базовые вещи вроде работы в текстовом редакторе и офисном пакете OpenOffice. Как потом оказалось далеко не у всех в школе был Linux.

Сейчас же я чувствую себя более уверенным пользователем дистрибутивов GNU/Linux и BSD систем. Язык Си я всё ещё знаю плохо, но это не мешает пользоваться дистрибутивами, их пакетными менеджерами и собирать самому программы при необходимости. В дистрибутивах ценю в системах документацию, свободу по терминологии GNU, возможность заглянуть на внутреннюю кухню и простоту вноса своёго кода/пакетов в дистрибутив.

Статья поверхностна и полна субъективности. Я вас предупреждал.

S GNU Guix
A FreeBSD, OpenBSD
B Debian, Gentoo, LFS/T2 SDE/Minix, Slackware
C NixOS, GNU Dragora, Parabola/Hyperbola Linux-libre
D GNU Trisquel, QubesOS, VoidLinux
E Arch Linux, Fedora/RHEL, Ubuntu
F Unix System (v4.2), Linux Mint, CentOS, MacOS

S-tier

GNU Guix

Sorry, your browser does not support SVG.
Рис. 2.: Логотип GNU/Guix
Поддерживаемые архитектуры i686, x86
Поддерживаемые ядра Linux-Libre, GNU Hurd (в виртуалке)
Основан на Nix
Пакетный менеджер Guix (GNU Guile)
Документация английский язык, русский язык
Веб-сайт https://guix.gnu.org
Разработчик Ludovic Courtes

GNU GUIX (произносится гикс ɡiːks) — полностью свободный функциональный пакетный менеджер и операционная система, разработанные Ludovic Courtès. Отличительной особенностью является создание полностью воспроизводимых билдов и декларативное описание. Guix можно поставить на существующий дистрибутив GNU/Linux или в качестве отдельной системы на базе Linux или GNU Hurd.

Определения пакетов описываются на диалекте языка GNU/Guile. Большая часть исходников написана на нём же. Система изначально была основана на Nix. Отличиями от Nix(OS) являются язык для описания пакетов и сервисов, система инициализации (GNU Shepherd), использование ядра Linux-Libre (Linux без блобов) и отсутствие проприетарных пакетов.

Чем интересен Guix: https://habr.com/ru/post/436938/

GNU Guix (из коробки) не имеет проприетарного firmware. Потому при переходе на эту систему надо учитывать, что возможно wifi адаптер, gpu и другие компоненты системы могут не работать полностью или частично.

Я использую эту систему больше двух лет и не планирую прекращать, удобства перевешивают некоторые неудобства. С этой системой не страшно обновляться из-за системы роллбеков, ставить несколько версий одного и того же софта, а также наконец не надо каждый раз настраивать систему заново при её переустановке (например на новый компьютер), а можно сохранять всю конфигурацию системы (и конфиги в домашней директории через сторонний пакет) хоть в одном файле.

  • Плюсы
    • Воспроизводимая система из одного или нескольких файлов на GNU Guile
    • Есть роллбеки. При апгрейде/даунгрейде системы, переустановке программ можно не бояться, что система превратится в тыкву как с другими популярными GNU/Linux системами вроде Debian или Gentoo.
    • Гибкость. Позволяет собрать как минималистичную систему, так и огромный и сложный комбайн. Некоторые дистрибутивы ломаются, если делать шаг влево, шаг вправо.
    • Наследование пакетов. Пока нигде не видел функционал наследования определений пакета, когда тебе нужно собрать похожий пакет или "клон" (например свою версию имакс), можно отнаследоваться от определение emacs и переопределить только нужные инструкции сборки.
    • Хорошая интеграция с Emacs
    • Только свободное ПО (в частности нет несвободных драйверов)
    • Свежие пакеты GNU (icecat во многих дистрибутивах например даже не поставить)
    • Отсутствие SystemD
    • Lisp (вернее Scheme) everywhere (начиная с бута, заканчивая сборкой программ)
    • Обширная документация в частности на русском языке
    • Зачатки поддержки GNU Hurd
    • Русскоязычное сообщество в Telegram
  • Минусы
    • Жирнющий слой абстракции поверх существующей императивной системы
    • Нет эмуляции FHS, все пакеты надо патчить (в бинарниках программы обращаются к библиотекам, находящихся в пути по стандартам FHS, которые в Guix не соблюдаются)
    • Отсутствие многих пакетов из-за проблем с воспроизводимостью или банальной нехваткой рук для упаковки
    • Поддерживает ограниченный ряд устройств из-за необходимости установки проприетарных драйверов (например видеокарты или сетевой карты) для корректной работы.
    • Мало поддерживаемых архитектур
    • Scheme всё-таки сложен для понимания многими
    • Большая кодовая база. Проект не такой уж и маленький как кажетс.
    • Далеко не самый быстрый пакетный менеджер (Ближайший аналог Nix в разы быстрее)
    • Документация затрагивает только часть системы, не имеет мануала по использованию "с нуля"
    • Не поддерживает KDE (ну и фиг с ним)
  • Когда использовать
    • Когда важна воспроизводимость
    • Когда надоело перенастраивать систему каждый раз по новой
    • Когда нравится использовать семейство Lisp
    • Когда принципиально нужен только полностью свободное ПО

A-tier

FreeBSD

640px-Freebsd_logo.svg.png
Рис. 3.: Логотип FreeBSD
Поддерживаемые архитектуры arm, aarch64, armel, i386, ia64, mips, mipsel, sparc64, pc98, powerpc, powerpc64, ps3, x86_64, xbox
Поддерживаемые ядра своё BSD
Основан на Berkeley BSD, который основан на оригинальном Unix
Пакетный менеджер (язык) pkg (C)
Документация английский язык, русский язык
Вебсайт https://freebsd.org
Разработчик Bill Joy

FreeBSD – система, которая ближе к оригинальному Unix чем любой GNU/Linux дистрибутив. Близость эта состоит в том, что изначально система вышла из переданной университету Беркли кода Unix системы, который после был переделан в Berkeley BSD, которые впоследствие стал FreeBSD.

FreeBSD – это полноценная система, что выгодно отличает её от многих GNU/Linux дистрибутивов. Разработка ведётся в одном месте, проект имеет обширную документацию по пользованию всей системой в целом, а не только её частью. Имеет отличный от Linux бинарный формат, отличный libc и отличный основной компилятор (LLVM вместо GCC в большинстве систем GNU/Linux).

FreeBSD можно встретить во встроенных устройствах и игровых приставках таких как Sony PlayStation и Nintendo Switch. Раньше использовался в провайдерах на серверах, долгое время считался преимущественно серверной системой.

Система минималистичная и во многом свободнее чем GNU/Linux, как это не парадоксально. К сожалению имеет проприетарные блобы драйверов, но исследовать, что конкретно используется мне не приходилось. Система портов послужила вдохновлением для такого GNU/Linux дистрибутива как Gentoo, а также для ряда других. В целом преимущества

  • Плюсы:
    • Отсутствие SystemD
    • Большое количество поддерживаемых архитектур и неприхотливость к железу
    • Простота устройства
    • Гибкость. Есть бинарный кеш, а есть сборка из исходников (портов) свежего софта.
    • Документация к пользованию системой в целом, а не только её пакетным менеджером.
    • Самое близкое к оригинальному Unix из живых систем
    • Возможность ставить порты только определенной лицензии
  • Минусы:
    • Лицензия BSD. Хотя некоторые запишут это скорее в плюсы. Я считаю непозволительно никому позволять нарушать права пользователей.
    • Блобы устройств.
    • Бинарная несовместимость с Linux
    • csh (не знаю людей, которым бы нравилось его использовать)
  • Когда использовать:
    • Когда хочется ZFS
    • Когда хочется настроить NAS
    • Когда нравится vim, а не Emacs (когда хочется простоты оригинального Unix)
    • Когда надо куда-то ставить прод
    • Когда нужна стабильность, но при этом возможность поставить свежий софт (из портов)
    • Когда предпочитаешь Clang (LLVM) вместо GCC

OpenBSD

640px-OpenBSD_textual_logo.svg.png
Рис. 4.: Логотип OpenBSD
Поддерживаемые архитектуры alpha, armish, aviion, hppa, i386, landisk, loongson, luna88k, octeon, powerpc, powerpc64, sgi, socppc, sparc, sparc64, x86_64, zaurus
Поддерживаемые ядра своё BSD
Основан на NetBSD
Пакетный менеджер (язык) pkg_add, pkg_check, pkg_delete, pkg_info (C) : стабильные выпуски
Документация английский (в man) + handbook
Литература Есть
Вебсайт http://openbsd.org
Разработчик Theo de Raadt

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

К сожалению идеалогическая разница между GNU и BSD настолько высока, что так или иначе на BSD системах я долго не задерживаюсь. Тем не менее, что FreeBSD и OpenBSD во многих аспектах намного свободнее популярных GNU/Linux дистрибутивов. У GNU есть проблема высокой технологической сложности, изучать Unix и язык Си в окружении BSD систем намного проще.

  • Когда использовать:
    • Когда крайне важна безопасность и прозрачность системы

B-tier

Debian

363px-Debian-OpenLogo.svg.png
Рис. 5.: Логотип дистрибутива Linux GNU/Debian
Поддерживаемые архитектуры
aarch64, armel, armhf, i386, i686, mips, mipsel, ppc64el, s390x, x86_64
Поддерживаемые ядра
Linux, GNU Hurd
Основан на
своё
Пакетный менеджер (язык)
apt (c), dpkg (c)
Документация
английский язык, русский язык, wiki, Debian Reference и Debian Administration Handbook
Литература
Есть
Вебсайт
https://debian.org
Разработчик
Ian Murdock

Debian – один из старейших дистрибутивов GNU/Linux наряду со Slackware. Пакетный менеджер apt написан на C++ и работает весьма шустро. Изначально был полностью свободен и финансировался FSF, но в какой-то момент дистрибутив встал на свой путь по определению терминологии свободного ПО и с тех пор содержит несвободные пакеты с бинарными блобами, которые впрочем явно разделяются со свободными. К сожалению среди программ есть те, которые подходят под определение свободного ПО, тем не менее содержат вещи, которые ограничивают пользователя (например DRM).

Использовал этот дистрибутив дольше всего пока не наткнулся на Guix. В какой-то момент Ubuntu показалась второсортным продуктом, документация у проекта была в разы хуже чем у Debian, стабильность Ubuntu была значительно ниже Debian.

Больше всего в дистрибутиве радует попытка систематического описанного мануала системы в "Debian Reference", что повсеместно отсутствует в других дистрибутивах. Сайт и вики кажутся не очень приветливыми пользователю, но на самом деле содержат немало полезной хоть и несистематизированной информации. Также отличным место для получения помощи являются списки рассылки.

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

  • Плюсы:
    • Разделение на уровни стабильность stable, testing, sid, unstable
    • Большое количество поддерживаемых архитектур и неприхотливость к железу
    • Большое сообщество и повсеместное применение в индустрии
    • Бинарный кеш. Не надо ничего собирать.
    • Графический инсталлер
    • Debootstrap позволяет собирать минималистичный дебиан на любой системе.
  • Минусы:
    • SystemD
    • Куча патчей в пакетах
    • Не всегда самый свежий софт
    • .deb пакеты собирать относительно сложно

Gentoo

229px-Gentoo_Linux_logo_matte.svg.png
Рис. 6.: Логотип Gentoo
Поддерживаемые архитектуры i486, i586, i686, x86_64, alpha, arm, hppa, ia64, mips, powerpc, ppc64, sparc64
Поддерживаемые ядра Linux
Основан на FreeBSD ports
Пакетный менеджер (язык) portage (python) : rolling release
Документация английский язык, русский язык, Debian Reference handbook и Debian Administration Handbook
Литература Нет
Вебсайт https://gentoo.org
Разработчик Ian Murdock

Gentoo – source-based дистрибутив, вдохновлённый системой портов из FreeBSD, но использующий GNU/Linux окружение. Отличием от портов является указание USE флагов в конфигурации на уровне системы, тогда как FreeBSD позволяет только выбирать "фичи" на уровне самих пакетов. Gentoo позволяет добиться лучшей производительности системы, так как система с нуля собирается из исходников с флагами компилятора под вашу архитектуру процессора.

Если бы мне было необходимо для личных нужд использовать именно Linux систему и по каким-то причинам GNU Guix мне бы не подходил, то с большой долей вероятности я бы остановил свой выбор на Gentoo. Также дистрибутив хорош для специфичных целей вроде "использование только gpl программ", т.е. даже bsd-подобные не допускать (я не пробовал, но теоритически думаю возможно).

  • Плюсы:
    • Оптимизация под конкретное железо
    • Большое количество use-флагов
    • Знание систем сборки и операционной системы в целом
    • Возможность ставить ПО определенной лицензии
  • Минусы:
    • Долгая сборка
    • Проприетарные пакеты
    • Зависимость на Python
  • Когда использовать
    • Слабое железо
    • Когда нужно собрать свою систему почти с нуля (как в LFS)

LFS, T2 SDE и Minix aka собери свою систему сам

lfs-logo.png
Рис. 7.: Логотип LFS

Когда хочется понять как конкретно устроена операционная система, то лучше её самому хотя бы скомпоновать. LFS это скорее учебник по сборке GNU/Linux системы, а T2 SDE – метадистрибутив, который автоматизирует сборку всей системы с нуля начиная с самого нижнего уровня – компилятора и ядра, а Minux – учебник по написанию операционных систем.

Linux From Scratch | T2 SDE | Minix

  • Минусы:
    • Долго собирать
    • Сложно поддерживать

Slackware

420px-Slackware_logo_from_the_official_Slackware_site.svg.png
Рис. 8.: Логотип Slackware
Поддерживаемые архитектуры arm, i586, s390, x86_64
Поддерживаемые ядра Linux
Основан на SLS Linux
Пакетный менеджер (язык) отсутствует или pkgtool, slackpkg (на базе shell скриптов)
Документация английский + wiki
Литература Нет
Вебсайт http://slackware.com
Разработчик Theo de Raadt

Ближе всего к Unix среди GNU/Linux дистрибутивов. Отличительной особенностью является ручное управление пакетами. Из-за сложности в установке новых пакетов дистрибутив поставляется сразу с подборками софта, который вам "возможно" пригодится в будущем.

Дистрибутив имеет странную модель управления небольшой командой. Slackware сам по себе несвободный (пользователи не могут вносить изменения в дистрибутив), но исходный код программ поставляется вместе с программами, поэтому GPL лицензию он не нарушает.

Дистрибутив один из самых старый наряду с Debian. В отличии от Debian, пакеты содержат минимальное количество патчей. Популярно выражение, если ты знаешь Slackware, то ты знаешь Linux.

  • Плюсы
    • Знаешь GNU/Linux
    • Самый стабильный GNU/Linux (стабильность выше чем у Debian)
    • Больший контроль над системой, так как не надо удовлетворять требования пакетного менеджера. Впрочем на других системах конкретно под пакетный менеджер что-то ставить никто не заставляет.
    • Нет SystemD
  • Минусы
    • Мало софта
    • Мало архитектур
    • Редкие релизы
  • Когда использовать
    • Когда хочется Unix на Linux

C-tier

Начиная отсюда я не буду подробно описывать системы. Следующими системами я бы лишний раз пользоваться не стал.

NixOS

Дистрибутив-вдохновитель GNU Guix. Обладает многими похожими характеристиками, но имеет странный DSL, SystemD и большее количество пакетов и сервисов. Для меня ощущается слишком "Интерпрайзно", не волнуют вопросы свободы ПО хотя разделение на свободное и несвободное есть.

Для лучшего понимания GNU Guix, можно читать документацию и научные статьи по NixOS

GNU Dragora

Свободная реализация идеи Slackware, но там всё-таки есть управление пакетами. Система имеет ядро Linux-libre и крайне минимальна. Поддерживается кажется одним человеком. Одобрено GNU.

Parabola & Hyperbola GNU/Linux-libre

Свободные реализации Arch Linux. Hyperbola планирует сменить ядро с Linux на OpenBSD. Одобрено GNU.

D-tier

GNU Trisquel

Свободная реализация Ubuntu. Очень старые версии пакетов, так как базируется всегда на прошлой версии от актуальной. Основной свободный дистрибутив GNU. От безисходности можно и поставить, если важна свобода ПО.

QubesOS

Уникальный дистрибутив GNU/Linux, который запускает все свои приложение в виртуализации для достижения целей безопасности. Требовательна к железу, сложно исследуемая, но её использует Эдвард Сноуден. Всяко лучше чем использовать Kali.

Void Linux

Оригинальный дистрибутив GNU/Linux, который поддерживает альтернативную стандартную библиотеку C, musl. Простой, понятный, рабочий, с небольшим комьюнити. Также вдохновлён системами BSD.

E-tier

Arch Linux

Хоть и считается минималистичным дистрибутивом, но по факту им не является. Именно Arch одним из первых внедрил SystemD. Я бы назвал дистрибутив идеальным для тех, кому нужен Linux без этики (на уровне проприетарной системы) для практических задач . Имеет популярную wiki, которую я бы назвал крайне поверхностной.

Fedora и Red Hat Enterprise Linux

Хоть дистрибутив и состоит из свободного ПО, но по большей части подкотролен корпорации RedHat.

Ubuntu

Хоть дистрибутив и состоит из свободного ПО, но по большей части подкотролен корпорации Canonical.

F-tier

Unix System (v4.2)

Проприетарность, отсутствие документации в файловой системе, csh, отсутствие пакетного менеджера и визуального текстового редактора (там есть только ed) сегодня кажется диким.

Linux Mint

Пользовался когда-то давно. Смысла существования дистрибутива до сих пор не понял.

CentOS

Дистрибутив, который ценят похоже только за срок поддержки и совместимость с RHEL.

MacOS

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

Заключение

На этом всё. Если какого-то дистрибутива в этом списке нет, то скорее всего я его либо не знаю, либо просто не пользовался. Информация взята из википедии, а также сайта DistroWatch.

Emacs 28.0.50 (Org mode 9.4.6)

2021-09-22 Ср 21:44


Содержимое доступно по лицензии Creative Commons «Attribution-ShareAlike» 4.0 Всемирная (CC BY-SA 4.0)

Исходный код доступен по лицензии GNU General Public License Version 3

Подробнее о правах