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

На днях по чатам, каналам и форумам пронёсся шум «из 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 разрабатывается очень неторопливо (уж не первый десяток лет) и не слишком годится для практических целей. Тем не менее вы можете скачать ОС с этим ядром и потренироваться с ним хотя бы в виртуалке.

О Windows:)

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

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

Разные BSD

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

Что же такое 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, хотя связи эти значительно запутались с годами.

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).

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

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

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

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

Заключение

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

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

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

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

© Habrahabr.ru