Сыр-бор вокруг Linux и мини-обзор альтернатив
- понедельник, 28 октября 2024 г. в 00:00:10
На днях по чатам, каналам и форумам пронёсся шум "из Linux удалили русских мэйнтейнеров" - с последующими вопросами "останемся ли мы без Linux" и "умрет ли OpenSource". Эта маленькая статья для тех, кто "слабо в теме" - мы вкратце проясним что там случилось, сильно ли это кого-то затрагивает (спойлер - не сильно) - и для любопытствующих - обзор пары вариантов "на замену". Знатокам тут вряд ли удастся что-то почерпнуть (но можете смело вносить поправки или делиться собственным опытом по альтернативам).
Чтобы понятнее изложить дальнейшее, давайте вспомним что такое Linux. Для многих это синоним ОС "которую можно поставить вместо Windows". Не совсем так - строго говоря Linux это только "ядро" для такой ОС. Ядро - это то что обеспечивает базовый функционал, воплощает глубинные фичи ОС, содержит кучу драйверов для основных устройств и т.п. Всё остальное (множество популярных программ, утилит и т.п.) в линуксовых системах берётся из GNU и других проектов. Исторически вышло так что GNU изобретали как открытую-бесплатную замену для Unix - но не смогли вовремя сделать к ней ядро. И тут удачно подвернулось ядро разработанное финским студентом, по имени которого сперва назвали директорию куда исходники этого ядра складывали - а потом и само ядро (и даже операционные системы на нём).
Получается что всевозможные Ubuntu, Fedora, CentOS и т.п. - этакие "бутерброды" состоящие из ядра Linux а также кучки базовых программ из GNU и прочих. При этом разные компоненты можно выбрать по вкусу (например только оконных менеджеров для X-windows существуют десятки) - и потому приготовлением таких "бутербродов" занимаются разные компании и отдельные лица по всему миру - вот и появляется множество "дистрибутивов". Более строго системы из этого "зоопарка" называются GNU/Linux (а не просто Linux).
Linux - ядро с открытым и свободно-распространяемым кодом. Как и многие подобные проекты он опирается на поддержку энтузиастов со всего мира. Но кто-то должен поддерживать порядок, решать что из наработок от энтузиастов можно добавить, а что нет. В отношении "официального" ядра Linux этим занимается компания 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 - то есть по крайней мере не США.
Использовать альтернативное ядро несложно - в большинстве случаев при загрузке ОС пользователь может выбрать, какое ядро грузить. Для этого всего лишь нужно его предварительно скачать и положить, например, рядом с основным.
Выше упоминалось что проект GNU был бы отличной ОС сам по себе, только у них не хватает ядра. Это не значит что у них нет этого самого "своего" ядра. Они его пытаются разрабатывать, но очевидно за отсутствием потока спонсорской помощи и светлых идей это ядро, под названием Hurd
разрабатывается очень неторопливо (уж не первый десяток лет) и не слишком годится для практических целей. Тем не менее вы можете скачать ОС с этим ядром и потренироваться с ним хотя бы в виртуалке.
Интересный момент - при этом вы получите ОС которую мы привычно называем Linux но при этом совершенно без Linux-а внутри!
Об этой без сомнения популярной ОС мы говорить не будем. Я не являюсь её ненавистником (я пользовался в разное время почти всеми версиями от 3.11 до 10 - да и под WinAPI программировать приходилось). Но с одной стороны мы все примерно в курсе что это такое, с другой стороны она не является открытой и бесплатной, с третьей доступ к ней в последнюю пару лет для соотечественников несколько ограничен. Тем не менее это весьма удобная ОС, в первую очередь для домашних компьютеров - хотя в последние лет 10 и топовые дистрибутивы Linux вполне сравнимы по "дружественности" к пользователям.
Некоторые специальные / профессиональные приложения (и порой игры) имеют версию только под Windows. В nix-овых системах есть полезное приложение wine
которое позволяет запускать виндовые приложения - впрочем не всегда беспроблемно. С другой стороны с развитием популярности Linux-ов эта проблема постепенно ощущается все меньше.
В то время как 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.
С точки зрения пользователя упомянутые различия между вариантами 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 - с непривычки он покажется вам очень странным, вы м.б. даже не сразу догадаетесь как из него выйти
поразбиравшись ещё с инструкциями вы можете впасть в восторг от того сколько разных оконных менеджеров можно перепробовать - правда с установкой и минимальной конфигурацией всё-таки придётся чуть повозиться.
даже теперь когда у вас уже установлены и настроены "окна" - вы обнаружите что надо установить отдельно браузер, офис и прочие интересующие вас приложения
При этом вы всё равно можете обнаружить что ваша веб-камера не поддерживается, а ваш тач-пад хотя и работает, но не реагирует на "тапы" (а только на нажатие кнопок) - а может и не скроллит (двумя пальцами). Не говоря уже о принтере. Тут как повезёт - возможно придётся погуглить или спросить на форуме - а возможно и это не поможет. Зависит от оборудования вашего компьютера.
Альтернативно вы можете выбрать вариант 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 систем - для обычного и продвинутого пользователя замена будет сравнительно комфортной и не потребует много сил на привыкание - но для специалистов с их специальными потребностями эта опция может оказаться нежизнеспособной (в зависимости от этих самых потребностей).