habrahabr

Сыр-бор вокруг Linux и мини-обзор альтернатив

  • понедельник, 28 октября 2024 г. в 00:00:10
https://habr.com/ru/articles/853294/

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

Linux - что ты такое?

Чтобы понятнее изложить дальнейшее, давайте вспомним что такое Linux. Для многих это синоним ОС "которую можно поставить вместо Windows". Не совсем так - строго говоря Linux это только "ядро" для такой ОС. Ядро - это то что обеспечивает базовый функционал, воплощает глубинные фичи ОС, содержит кучу драйверов для основных устройств и т.п. Всё остальное (множество популярных программ, утилит и т.п.) в линуксовых системах берётся из GNU и других проектов. Исторически вышло так что GNU изобретали как открытую-бесплатную замену для Unix - но не смогли вовремя сделать к ней ядро. И тут удачно подвернулось ядро разработанное финским студентом, по имени которого сперва назвали директорию куда исходники этого ядра складывали - а потом и само ядро (и даже операционные системы на нём).

Получается что всевозможные Ubuntu, Fedora, CentOS и т.п. - этакие "бутерброды" состоящие из ядра Linux а также кучки базовых программ из GNU и прочих. При этом разные компоненты можно выбрать по вкусу (например только оконных менеджеров для X-windows существуют десятки) - и потому приготовлением таких "бутербродов" занимаются разные компании и отдельные лица по всему миру - вот и появляется множество "дистрибутивов". Более строго системы из этого "зоопарка" называются GNU/Linux (а не просто Linux).

И что же стряслось?

Linux - ядро с открытым и свободно-распространяемым кодом. Как и многие подобные проекты он опирается на поддержку энтузиастов со всего мира. Но кто-то должен поддерживать порядок, решать что из наработок от энтузиастов можно добавить, а что нет. В отношении "официального" ядра Linux этим занимается компания Linux Foundation - официальная некоммерческая организация в США. В ней же работает и тот бывший студент, создатель ядра - Линус Торвальдс - с привилегированными правами над репозиторием кода.

сайт Linux Foundation предлагает различные услуги
сайт Linux Foundation предлагает различные услуги

В репозитории с кодом Linux есть файл MAINTAINERS перечисляющий людей сделавших весомый вклад в различные компоненты ядра - и которым делегирована ответственность проверять и добавлять предлагаемых другими энтузиастами изменения в компоненты в "зоне своей ответственности".

Ну и вот старший разработчик Linux Foundation, назовём его Грег, удаляет из этого файла 11 человек из которых 10 имеют емейл-адреса в домене .ru (многие на mail.ru). Это удаление было одобрено самим Линусом и снабжено смутным пояснением, мол, "ради соответствия разнообразным формальным требованиям".

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

Шум возник в основном из-за того что это было сделано несколько по-хамски. Ну и последовавший через день комментарий от Линуса тоже выглядел несколько свинским и ксенофобским. Ведь в целом айтишники народ довольно культурный и вежливый - увольнять принято со словами благодарности, аж плакать хочется от умиления. Так что многих (не наших а вообще) всколыхнуло само поведение ответственных лиц, вплоть до подозрений что Linux Foundation взломали и на самом деле это не Линус и Грег а какие-то злые хакеры и тролли :) Ну да не будем углубляться в подробности разгоревшегося флейма - это вы уж наверняка читали.

Почему это произошло - в общем понятно. Как сказано, Linux Foundation - компания хоть некоммерческая, но официальная. Это значит что они подчиняются законам страны, а законы эти (как и в других странах) зачастую выражены так что без бутылки не разберешься. Юристы компании думали-думали над постановлениями изданными за последние два года и решили попросить разработчиков избавиться от упоминания русских как минимум в данном файле. Разработчики (в т.ч. сам Линус) ессно в юридические дебри пускаться не готовы и логично предпочитают делать так как юристы говорят (иначе зачем их нанимать).

Чем и кому это грозит?

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

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

Гипотетически Linux Foundation может обидеться и вообще спрятать свой код, чтобы не достался злодеям из РФ. А значит, никому вообще. Конечно после этого компанию можно разогнать - нет смысла выпускать продукт которым никто не может пользоваться.

Об альтернативных ядрах

В развитие мысли из предыдущих абзацев, получается что одна из очевидных "альтернатив" - взять тот или иной дистрибутив Linux - и использовать в нём альтернативно собранное ядро. Например Linux-libre - ядро собираемое с целью изничтожить все неясные места из официального ядра. Это ядро разрабатывается похожим образом компанией Free Software Foundation Latin America - то есть по крайней мере не США.

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

Альтернативный Debian на ядре Hurd
Альтернативный Debian на ядре Hurd

Выше упоминалось что проект GNU был бы отличной ОС сам по себе, только у них не хватает ядра. Это не значит что у них нет этого самого "своего" ядра. Они его пытаются разрабатывать, но очевидно за отсутствием потока спонсорской помощи и светлых идей это ядро, под названием Hurd разрабатывается очень неторопливо (уж не первый десяток лет) и не слишком годится для практических целей. Тем не менее вы можете скачать ОС с этим ядром и потренироваться с ним хотя бы в виртуалке.

Интересный момент - при этом вы получите ОС которую мы привычно называем Linux но при этом совершенно без Linux-а внутри!

О Windows :)

Об этой без сомнения популярной ОС мы говорить не будем. Я не являюсь её ненавистником (я пользовался в разное время почти всеми версиями от 3.11 до 10 - да и под WinAPI программировать приходилось). Но с одной стороны мы все примерно в курсе что это такое, с другой стороны она не является открытой и бесплатной, с третьей доступ к ней в последнюю пару лет для соотечественников несколько ограничен. Тем не менее это весьма удобная ОС, в первую очередь для домашних компьютеров - хотя в последние лет 10 и топовые дистрибутивы Linux вполне сравнимы по "дружественности" к пользователям.

Некоторые специальные / профессиональные приложения (и порой игры) имеют версию только под Windows. В nix-овых системах есть полезное приложение wine которое позволяет запускать виндовые приложения - впрочем не всегда беспроблемно. С другой стороны с развитием популярности Linux-ов эта проблема постепенно ощущается все меньше.

Разные BSD

В то время как Linux-ом на компьютере сейчас мало кого удивишь (даже моя любимая тёща восьмидесяти лет работает на компьютере с Ubuntu уже не первый год - пишет статьи, читает сканы рукописей, лазит по интернетам) - то встретить человека использующего какую-нибудь из BSD на домашнем компьютере или рабочем ноутбуке - это относительно редкость (я встречал один раз, лет 10 назад - коллега по работе был пропонентом "Фряши", т.е. FreeBSD).

Что же такое BSD? Это другая попытка сделать "свободный и бесплатный вариант Unix" - она появилась примерно в то же время что GNU/Linux (даже немного раньше). Значительное отличие от Linux - в организации кода. Здесь нет ситуации когда ядро делается в одном проекте а окружающие его утилиты в другом. Каждый из вариантов BSD представлен единым репозиторием, обычно под управлением какой-нибудь одноимённой компании. В остальном развиваются они похоже - они тоже открытые и бесплатные.

Отметим, что эти компании (FreeBSD Foundation или OpenBSD Foundation например) - тоже являются официальными non-profit-ами в основном в недружественных странах и гипотетически с ними возможны те же ситуации что с Linux - но пока выглядит так что ситуация с Linux Foundation вызвана локальным затмением умов.

Пользователи обычно указывают на лучшую структурированность, продуманность и в целом консистентность BSD-систем (проистекающую из того факта что в отличие от дистрибутивов GNU/Linux они не являются "сборной солянкой). Но конечно всё не без нюансов, о чем мы поговорим далее.

За время существования BSD (больше 30 лет) их предсказуемо появилось несколько вариантов. Если совсем кратко перечислить наиболее популярные, то:

  • FreeBSD - наиболее популярная, пожалуй с лучшей поддержкой разнообразных устройств и широким набором популярных приложений.

  • OpenBSD - наверное, вторая по популярности - ориентированная на максимальную прозрачность, аккуратность в коде и секьюрность.

  • NetBSD - близкая к OpenBSD, ориентированная на то чтобы портироваться на максимальное количество разнообразных платформ, в т.ч. embedded.

Некоторые популярные в Linux и даже Windows программы разработаны в BSD (часто вспоминают OpenSSH) и просто позаимствованы другими. Кто-то вспомнит что и OsX используемая на маках и макбуках имеет множество родственных связей с BSD, хотя связи эти значительно запутались с годами.

BSD также нередко можно встретить на разнообразных shared хостингах. Можно жить на них годами не подозревая что ты оказывается пользователь BSD.

FreeBSD с точки зрения пользователя

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

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

Из плюсов - большинство BSD имеют в том числе сборки под 32-битные системы, поддержка которых во многих популярных дистрибутивах GNU/Linux уже прекратилась. Иными словами - для оживления какого-нибудь старого ноутбука FreeBSD или OpenBSD может быть реальным решением. Впрочем линуксовые дистрибутивы под 32 бита тоже ещё найдутся. Также отыщутся и сборки ключевых программ (в т.ч. например Firefox) под 32 бита. Правда сразу замечу, хотя на ноуте с 1Gb оперативки операционка-то и оконный менеджер могут вполне "летать" - но современные браузеры для современных сайтов - тяжеловесные монстры и вы можете обнаружить что сёрфить интернет на чем-нибудь вроде Asus Eee PC несколько мучительно.

Из минусов - вы обнаружите что FreeBSD требует больше телодвижений при установке:

  • скачать и установить её с диска или флешки вы сможете как любую другую ОС

  • но обнаружите что графический интерфейс (X-windows) не установлен по умолчанию - нужно почитать инструкции и установить pkg install xorg.

  • установив его и запустив (startx) вы обнаружите что дефолтный "оконный менеджер" - старый легковесный TWM - с непривычки он покажется вам очень странным, вы м.б. даже не сразу догадаетесь как из него выйти

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

  • даже теперь когда у вас уже установлены и настроены "окна" - вы обнаружите что надо установить отдельно браузер, офис и прочие интересующие вас приложения

Оконный менеджер TWM с запущенным Firefox
Оконный менеджер TWM с запущенным Firefox

При этом вы всё равно можете обнаружить что ваша веб-камера не поддерживается, а ваш тач-пад хотя и работает, но не реагирует на "тапы" (а только на нажатие кнопок) - а может и не скроллит (двумя пальцами). Не говоря уже о принтере. Тут как повезёт - возможно придётся погуглить или спросить на форуме - а возможно и это не поможет. Зависит от оборудования вашего компьютера.

Альтернативно вы можете выбрать вариант BSD c предустановленной оконной системой (например xfce).

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

Пара замечаний насчет установки: если будете ставить не в виртуалку а на реальный комп или ноут (как я упомянул, под BSD может сгодиться и весьма старое "железо") то обнаружите что у BSD собственная и своеобразная файловая система. Популярные загрузчики (вроде grub) не грузят её непосредственно так что скорее всего у вас получится что общий загрузчик вызывает загрузчик BSD. Но в общем это нестрашно. Кроме того хотя сказано что BSD достаточно "легковесны" в рантайме, но сам дистрибутив (например FreeBSD) достаточно жирен (сравним по объёму с популярными дистрибутивами линуксов) - так что флешка или диск потребуются адекватного объёма.

Для программистов есть серьёзное неудобство: в наше время во многих отраслях разработки мы активно используем докер - как для локального запуска своих проектов и различных систем (баз данных, очередей и пр) - так и для развертывания в кубернетесе, внедрения CI и так далее. Но докер - линуксовая фишка. В Windows и OsX для него сделаны мудрёные обёртки, пользоваться можно. Во FreeBSD вы увидите что инструкция начинается с пояснения что вам придётся использовать его в виртуальной машине. В общем этот путь работает но безусловно пользоваться докером в родном для него Linux-е удобнее.

UPD: в комментарии поправили, спасибо - в OsX тоже не обёртка а VM используется под капотом.

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

Из хороших новостей - всевозможные мейнстримовые компиляторы и интерпретаторы (и прочие тулы - например, git) - всё это доступно в BSD (в т.ч. в виде портов) - и на этот счет особых затруднений не возникнет. Если вы программируете "близко к системе", особенно на C - вы иногда заметите небольшие различия в функциях системных библиотек - но и только.

Заключение

Итак, подытоживая изложенное:

  • метаться не нужно и в принципе если вы пользуетесь Linux у вас ничего не сломается из-за этой истории (она не про то)

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

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