Отечественные операционные системы в образовании
Отечественные операционные системы в образовании — сферический в вакууме пример победившего импортозамещения, наглядно демонстрирующий, как Великая и Могучая, встав с колен, способна одним махом решить все проблемы IT-суверенитета, попутно создав в десятки раз больше новых. Представляет собой унылое, но поучительное зрелище, в котором несчастным личинкам человека и их замученным сенсеям из кабинетов информатики насильно вживляют в персональные вычислительные машины чужеродные организмы под названиями вроде Astra Linux или ALT Linux. Цель сего благого деяния, как водится, предельно проста и понятна любому эффективному менеджеру: освоить очередной транш из бюджета под соусом борьбы с тлетворным влиянием Мелкософта и прочих заокеанских супостатов, а заодно показать кузькину мать всему миру, дескать, и мы не лаптем щи хлебаем, свои линуксы пилить умеем.
То, что эти самые «отечественные» операционные системы являются по сути пересобранным с изрядной долей говнокода и костылей старым-добрым Debian или, прости господи, Мандривой двадцатилетней давности, инициаторов процесса волнует чуть менее, чем никак. Главное — процесс запущен, бабло пилится, а на местах… а на местах пусть выкручиваются как хотят.
ЦОС всея Руси[править]
Как и любое гениальное начинание в этой стране, идея тотальной линуксизации образовательных учреждений родилась в тиши высоких кабинетов, где обитают сущности, далекие от проблем бренного мира вроде «несовместимости пакетов» или «отсутствия драйверов». Там, в эмпиреях планов и отчетов, на свет появился очередной Нацпроект с благозвучным и вселяющим надежду названием — «Цифровая образовательная среда», сокращенно ЦОС. Чуть позже к нему присоединились не менее духоподъемные инициативы типа «Точка Роста» и прочие «Кванториумы».
Суть сих прожектов сводилась к простой формуле: залить регионы тоннами денег, на которые те должны были закупить тонны компьютерного железа, преимущественно отечественного (привет, Эльбрусам, которые никто в глаза не видел) или, на худой конец, китайского. А на это железо, натурально, следовало водрузить единственно верное, идеологически выдержанное и духовно-скрепное программное обеспечение. Так в тысячах школ по всей необъятной и появились они — артефакты цифровой эпохи, ноутбуки и моноблоки с предустановленным зоопарком «российских ОС».
Внезапно (как это всегда и бывает) выяснилось, что мир ПО почему-то не спешил подстраиваться под нужды омских и саранских школьников. Оказалось, что привычный софт, на котором десятилетиями строился образовательный процесс — от банального офисного пакета до специфических сред программирования и виртуальных лабораторий — либо вообще не имеет версии под Linux, либо существует в виде, рассчитанном на какой-нибудь человеческий Убунту, а не на его суррогатного кузена с припиской Special Edition. И тут началось самое интересное — великое стояние на реке Зависимостей и битва при Костылях.
Отечественный пингвинарий[править]
Прежде чем окунуться в пучины технического ада, стоит поближе познакомиться с нашими подопытными. Зверинец отечественных дистрибутивов не так уж и велик, но каждый его обитатель по-своему прекрасен.
- Astra Linux — флагман импортозамещения. Изначально пилился для нужд оборонки и прочих серьезных контор, где главная задача — не работать, а соответствовать тоннам бумажек от ФСТЭК. Посему, ОС обладает непробиваемой, как лоб прапорщика, системой безопасности, которая по умолчанию запрещает пользователю делать примерно всё, включая дыхание в сторону системных файлов. Любая попытка установить что-то извне штатных репозиториев (в которых, как правило, из живого только окаменевшие мамонты) превращается в увлекательнейший квест с правкой конфигов, чтением мантр и призыванием духов Линуса Торвальдса. Графическая оболочка Fly, являющаяся кадавром, сшитым из кусков KDE 3.5, вызывает ностальгическую слезу у олдфагов и нервный тик у всех остальных. Попадая в школы, Астра моментально превращает кабинет информатики в филиал закрытого НИИ, где каждый ученик — потенциальный враг народа, а запуск sudo apt-get install приравнивается к государственной измене.
- ALT Linux — еще один мастодонт отечественного пингвиноводства. В отличие от милитаризованной «Астры», «Альт» пытается быть ближе к народу, базируясь на собственном репозитории Sisyphus и пакетном менеджере apt-get (что уже немного облегчает страдания дебиановодов). Однако и тут не без сюрпризов. Своя, особенная пакетная база означает, что любая инструкция из интернета для Ubuntu или Debian нуждается в творческой переработке напильником. А версии ПО в репозиториях, особенно в «стабильных» образовательных ветках, могут помнить еще Брежнева.
- Прочие (Calculate, РОСА и т. д.) — менее распространенные, но от того не менее доставляющие экземпляры. Каждый со своим видением того, как должен выглядеть настоящий русский Linux, со своими уникальными багами и нескучными обоями.
Вся эта разношёрстная компания, спущенная в школы по разнарядке, создала уникальную ситуацию: оборудование вроде как есть, а работать на нём нельзя. Учитель информатики, вчерашний эникейщик, а сегодня — системный администратор, девопс и криптограф в одном лице, оказался на переднем крае борьбы. С одной стороны — разъяренная химичка, которой для демонстрации опытов нужна виртуальная лаборатория, существующая только под Windows и в виде `.deb` пакета для Ubuntu 16.04. С другой — орава девятиклассников, которым через месяц сдавать ОГЭ по информатике, а необходимый для этого PascalABC.NET наотрез отказывается запускаться в среде сурового Astra Linux SE 1.6 «Смоленск».
Народные методы лечения[править]
Первоначальные попытки решить проблему совместимости напоминали средневековую медицину. Министерство рекомендовало подорожник, а местные гуру от IT советовали заговоры.
- Пересборка пакетов. Самый очевидный и самый гибельный путь. Идея проста: взять чужеродный пакет (например, .deb) и с помощью колдунских утилит вроде alien или путем ручного потрошения и пересборки превратить его в родной .rpm (для ALT) или… ну, в какой-нибудь другой .deb, но уже с правильными зависимостями (для Astra). На практике это выливается в часы, а то и дни увлекательнейшего красноглазия в терминале, бесконечную погоню за библиотеками (dependency hell is real, bro), и, в 99 % случаев, закономерный итог в виде Segmentation fault (core dumped). Успешная пересборка сложного пакета приравнивалась к чуду и передавалась на флешке из школы в школу как святыня.
- Snap, Flatpak и прочие AppImage. Модная технология универсальных пакетов, которая должна была покончить с зоопарком форматов. Идея здравая: упаковать приложение со всеми его зависимостями в один большой контейнер. Проблема в том, что на «отечественных» ОС поддержка этих технологий либо отсутствует, либо реализована через одно место. Да и тащить полгигабайта библиотек ради запуска блокнота — такое себе удовольствие, особенно на дохлых школьных ноутбуках.
- Виртуальные машины. Это уже тяжелая артиллерия и официальный костыль, признанный на региональном уровне. Когда стало ясно, что подготовить каждую машину к ОГЭ индивидуально — задача титаническая, мудрые головы из РИАЦ (Региональный информационно-аналитический центр) придумали гениальный ход: создать готовый образ виртуальной машины с какой-нибудь Xubuntu на борту, в которой уже установлено всё необходимое ПО. Учителям оставалось лишь скачать этот многогигабайтный образ, установить на каждую машину VirtualBox и запустить экзаменационную среду в окне. Производительность? Отзывчивость? Забудьте. Главное, что программа для рисования блок-схем запустилась. Но для повседневной работы такой подход был сущим адом.
Именно в этой атмосфере безысходности, в суровых сибирских землях, и зародилась новая, революционная мысль.
Distrobox: Костыль как венец творения[править]
Когда отчаяние достигло точки кипения, а количество образов VirtualBox на школьных серверах начало угрожать стабильности пространственно-временного континуума, коллективный разум замученных сисадминов от образования породил монструозно-гениальное решение. Спасение пришло из недр того самого энтерпрайза, откуда обычно приходят только счета и проблемы — на сцену вышла контейнеризация.
Слова Docker и Podman для среднестатистического учителя информатики звучали как названия неведомых покемонов. Однако суть технологии, если отбросить хипстерский флёр, была проста и изящна, как удар ломом. Вместо того чтобы эмулировать целое виртуальное железо и запускать на нём полноценную операционку (что жрёт ресурсы как не в себя), контейнер позволяет запустить лишь легковесное, изолированное окружение с нужным набором библиотек и файлов. Это как бы мини-ОС внутри основной, которая думает, что она — главная, но на деле сидит в маленькой песочнице и видит только свои игрушки.
Но даже докер с подманом требуют некоторой квалификации и желания стучать по клавиатуре в чёрном окне. Для массового внедрения в среде, где главным IT-специалистом является трудовик, умеющий обжимать витую пару зубами, требовалось нечто более user-friendly. И такое нечто нашлось. Имя ему — Distrobox.
Эта утилита — настоящий святой Грааль для всех страдальцев, запертых в клетке кривого дистрибутива. По сути, это умная и очень удобная обёртка над Docker/Podman, которая возводит идею контейнеризации в абсолют и доводит её до абсурда, превращая в идеальный инструмент для выживания в условиях цифрового импортозамещения.
Принцип действия Distrobox напоминает русскую матрёшку. Берём нашу основную, хостовую систему — пусть это будет непробиваемый, как рельса, Astra Linux. Работать в нём больно, ставить софт — ещё больнее. Далее, прямо поверх этой Астры мы ставим Distrobox. Одной, сука, командой (`distrobox-create --name ALT --image docker.io/alt:latest`) мы создаём внутри нашей Астры контейнер, в котором живёт... свежая, бодрая и работоспособная версия ALT Linux! Вуаля, у нас теперь линукс в линуксе.
Мы входим в этот контейнер (`distrobox-enter ALT`) и оказываемся в совершенно нормальной среде, где работает `apt-get` и доступны все человеческие репозитории. Ставим туда всё, что нужно для счастья: хоть PascalABC.NET через Wine, хоть свежайший PyCharm, хоть секретную разработку NASA для моделирования полёта на Марс.
А теперь — вишенка на торте. После установки мы даём команду `distrobox-export --app /path/to/app`, и Distrobox магическим образом создаёт на рабочем столе нашей основной, унылой Астры, ярлычок для запуска свежеустановленной программы! Ученик кликает по иконке PyCharm на рабочем столе Астры, и у него запускается PyCharm, который на самом деле живёт внутри контейнера с Альтом! Для конечного пользователя всё выглядит так, будто программа установлена нативно. Никаких окон виртуалок, никаких тормозов. Просто работает. Хост-система при этом остаётся девственно-чистой, ФСТЭК-совместимой и духовно-скрепной. Вы великолепны.
Этот элегантный, как удар кастетом, финт ушами стал настоящей панацеей. Ведь он позволял, не нарушая целостности навязанной сверху «сертифицированной» ОС, получить доступ ко всему многообразию софта из мира нормальных дистрибутивов.
Вершиной этого народного инженерного творчества стало появление автоматизированных bash-скриптов, которые превратили сложную процедуру в двухэтапный ритуал для самых маленьких.
Скрипт Первый, Установочный: Скачивается и запускается прямо из терминала. Он сам проверяет систему (Астра это или Альт), ставит все необходимые пакеты (Docker, Distrobox), прописывает нужные права, добавляет пользователя в группу docker и отправляет машину в перезагрузку для применения всех настроек. Учителю нужно только ввести пароль и пойти пить чай.
Скрипт Второй, Развёртывающий: После перезагрузки запускается второй скрипт. Он создаёт контейнер с актуальной версией Альта, заходит в него и, как обезумевший робот, начинает установку всего софта из экзаменационного списка. Один за другим в систему инсталлируются офисные пакеты, среды разработки, графические редакторы — всё, что требуется по регламенту ОГЭ. После этого скрипт автоматически экспортирует ярлыки всех установленных программ на рабочий стол хост-системы с аккуратной припиской в названии вроде «(on ALT)», чтобы было понятно, откуда это чудо пришло.
В итоге, задача, на которую раньше уходили дни красноглазия и тонны нервных клеток, свелась к выполнению двух команд. Это было настолько хорошо, что даже казалось незаконным. Но нет, с точки зрения лицензий всё чисто: образы в докере распространяются свободно, а что юзер делает внутри своего компьютера — его личное дело. Так простой, но изящный костыль, рождённый в недрах сибирской глубинки, решил проблему, над которой безуспешно бились целые министерства.