Навіщо я будую незалежний український дистрибутив Linux з нуля

Мене звати Юрій. Я фул-стек розробник, більшу частину часу пишу на Python і вожусь з інфраструктурою на Linux. Кілька місяців у вільний час я будую власний дистрибутив Linux і дійшов до моменту, коли є що показати. Ця стаття для тих, кому цікаво, як влаштована операційна система нижче рівня звичного пакетного менеджера, і для тих, хто думає про технологічну незалежність не як про гасло, а як про практичне інженерне завдання.
Одразу чесно про головне. Це не готовий до продакшену продукт. Це рання версія. Але основа вже стоїть, і саме про основу я хочу розповісти, бо вона і є найскладнішою частиною.
Чому ще один дистрибутив, та ще й в Україні
Більшість дистрибутивів Linux це форки. Хтось бере Debian, хтось Arch чи Fedora, додає свою тему, набір програм, інсталятор, і виходить новий дистрибутив. Це нормальний підхід, він дає швидкий результат. Але в основі завжди лежить чужа пакетна база, чужі рішення про те, як зібрано систему, звідки беруться бінарники і кому ви довіряєте на найнижчому рівні.
Я хотів іншого. Систему, де кожен бінарник можна простежити до його вихідного коду, рецепта збірки і всіх залежностей, без непрозорого шару під ним. І хотів, щоб це був український проєкт, бо технологічна незалежність зараз для нас не абстракція.
Подібних українських проєктів я не зустрічав. Є локалізації, є збірки на базі чужих систем, і це гарні речі. Але незалежного дистрибутива, який збирається повністю з вихідного коду і не є форком, серед українських я не бачив. Можливо, десь такий є і я просто про нього не знаю, тому категорично казати не буду. Але ніша довго була порожньою, і це одна з причин, чому я взявся.
Що означає незалежний насправді
Це слово легко сказати і складно довести. У моєму випадку незалежність означає буквально таке. Уся система, від базового набору інструментів компіляції до робочого столу, збирається з вихідного коду єдиним механізмом. Під нею немає чужої пакетної бази. Немає кроку, де ми просто беремо готову чужу систему і ставимо поверх неї косметику.
Це найважча частина і найдовша. Починати доводиться з того, що в системі ще нічого немає, навіть нормального компілятора, і треба підняти ланцюжок інструментів, який збере сам себе, а потім уже все інше. У світі це відомий жанр, але одна справа прочитати, як це робиться, а інша зробити так, щоб воно ще й трималося купи на щодень.
Кілька разів я думав, що це авантюра. Найбільш виснажливе тут не складність окремого кроку, а те, що помилка на ранньому етапі валить усе, що йде далі. Збираєш десятки пакетів, на якомусь глибоко всередині спливає, що ще на самому початку щось зібралося трохи не так, і ти повертаєшся в початок. Це окремий жанр терпіння, і саме на цьому етапі відсіюється більшість подібних спроб.
Окремою пригодою стала інфраструктура збірки. Важкі збірки дають таку лавину навантаження на диск, що це одного разу почало ронити сусідній продакшен на тому ж сервері. Процеси висли в очікуванні диска, система вважала сервіси мертвими і перезапускала їх, перезапуск давав ще більше навантаження, і петля годувала сама себе. Довелося розбиратися, виносити збірку в оперативну памʼять і перебудовувати роботу з диском, щоб важка компіляція не вбивала все навколо. Це той випадок, коли проблема виглядала як завантаження процесора, а насправді все впиралося в один повільний диск. Урок дався дорого, але після нього я почав інакше дивитися на те, де насправді вузьке місце.
Свій пакетний менеджер, бо без нього незалежності немає
Тут я зробив принципову річ. У системи свій пакетний менеджер. Не обгортка над чужим, а окремий механізм. Я назвав його promin, від слова промінь, у тон назві самого дистрибутива, Svitlo, тобто світло.
Ідея в основі близька до підходу, який багато хто знає за NixOS. Кожен пакет ставиться в окремий шлях, який однозначно визначається тим, з чого його зібрано. Завдяки цьому кілька версій одного пакета спокійно живуть поруч і не конфліктують. А головне, відкат системи до попереднього робочого стану займає секунди, бо переключення між станами це проста і миттєва операція. Якщо оновлення щось зламало, ви повертаєтесь назад одразу, без танців з бубном.
Для користувача при цьому встановлення пакетів швидке, як у звичайному дистрибутиві. Збірка з вихідного коду це деталь, яка живе на стороні інфраструктури, а не біль кінцевого користувача.
Логічне питання, навіщо писати пакетний менеджер самому, коли є готові. Відповідь проста. Готовий менеджер тягне за собою готову екосистему і готові рішення, а я будував систему, де хочу контролювати весь ланцюжок від вихідного коду до встановленого бінарника. Якби я взяв чужий менеджер, незалежність закінчилася б рівно там, де починається його база. Свій менеджер це не про синдром велосипеда, а про те, що він і є тією точкою, де визначається довіра до системи. Написати його було довго, але без цього весь задум не мав би сенсу.
Сучасний робочий стіл, зібраний чесно
Робочий стіл у системі сучасний, на новій графічній архітектурі без старого спадку. Він теж зібраний з вихідного коду, без готових бінарних блобів, які зазвичай просто кладуть у систему як є. Це додало роботи, бо багато речей у світі Linux за замовчуванням постачаються вже готовими, і коли збираєш їх сам, спливає купа припущень про те, що зазвичай ніхто не перевіряє.
Найбільше здивувало, скільки всього в типовій системі тягнеться за компонентами без явного запиту. Збираючи стіл самотужки, я кожну таку залежність бачив у обличчя і кожного разу вирішував, чи вона тут справді потрібна. Частину речей, які зазвичай їдуть у систему за інерцією, я свідомо лишив за бортом. Це і є та різниця між зібрати з нуля і взяти готове, ти бачиш справжній склад системи, а не той, який тобі дістався у спадок.
Чесно про стан, бо інакше не можна
Я свідомо не хочу видавати бажане за дійсне, тому скажу прямо, що зроблено, а що ні.
Працює інфраструктура збірки. Працює пакетний менеджер. Система здатна керувати собою сама. Є завантажувальний образ із графічним робочим столом, який можна запустити і подивитись.
Чого ще немає. Частину речей, які я закладав в архітектуру з самого початку, як то шифрування збережених даних і повна відсутність телеметрії, поки що заявлено як ціль, а не як готовий стан. Я волію чесно називати це планом, ніж видавати за зроблене. Для щоденного використання на основній машині ще рано.
Це бета в прямому сенсі слова. Я показую її не тому, що вона готова, а тому, що основа достатньо міцна, щоб про неї говорити і збирати критику.
Навіщо я це розповідаю
Кілька причин. По-перше, мені потрібна критика підходу від людей, які розуміють, про що йдеться. Коли довго працюєш над чимось наодинці, око замилюється, і свіжий погляд збоку вартий багато. По-друге, я хочу, щоб про можливість незалежного українського дистрибутива просто знали, бо це довго було порожньою нішею. По-третє, якщо комусь із читачів близька тема відтворюваних збірок, прозорого ланцюга постачання чи просто цікаво, як влаштований Linux на найнижчому рівні, можливо, це підштовхне до власних експериментів або до участі.
Якщо чесно, я роблю це передусім тому, що мені це цікаво до тієї міри, що я витрачаю на це вечори і вихідні замість відпочинку. Є в цьому й спокійне відчуття, що робиш щось своє і українське в галузі, де ми звикли користуватися чужим. Не з гучних мотивів, а просто тому, що хочеться, щоб таке в нас було.
Що далі
Найближче це довести базу до стабільності, закрити те, що поки заявлено як ціль, і рухатись до стану, придатного для реального використання. Далі підтримка інших архітектур, але це вже після того, як стабілізується основна.
Якщо вам цікаво подивитись або поставити технічні питання, я радо відповім у коментарях. Сам проєкт некомерційний і відкритий.
Сайт проєкту: svitlolinux.org
Дякую, що дочитали. Якщо ця історія когось підштовхне колупнути свою систему трохи глибше, ніж зазвичай, я вважатиму, що написав її не дарма.
132 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівІдея багато в чому вірна, та робити свій власний пакетний менеджер і не базуватись на чомусь типу Gentoo чи RPM теж виглядає дивно, це як синдром не сприйняття чужої розробки.
Тут змішані дві осі. Одна технічна, чи потрібен свій менеджер. Друга психологічна, чи це відмова від чужого заради відмови. Сперечаєтесь на другій, а питання на першій
По суті. Готовий менеджер тягне за собою готову екосистему і чужу базу пакетів. А теза проєкту не про авторство коду, ядро спільне для всіх, теза про контроль ланцюга постачання. Незалежність збірки закінчується рівно там, де починається чужа база, яку зібрали не ви і не за вашими правилами. Тому свій менеджер тут не примха, а точка, де визначається довіра до системи. Приберіть його, і незалежність тримається лише до першого чужого репозиторію
Про Gentoo і RPM, їх не варто ставити в один ряд, це різні рівні. RPM це формат готового бінарника плюс база на машині, без хеш-store і без атомарного відкату. Gentoo збирає з джерел, але з глобальною базою пакетів, теж без content-addressed store. Жоден з них не дає того, на чому стоїть проєкт, відтворюваності до біта та ізоляції адресою за вмістом. Модель ближча до Nix, і саме її властивості тут потрібні, а не сам факт свого менеджера
Тобто це не синдром неприйняття чужого. Що можна взяти чужим, береться, ядро, тулчейн, вихідники пакетів усе чуже і відкрите. Свій рівно один шар, той, що визначає довіру, і без нього решта тези не тримається
Можна зібрати власний репозіторій та дистрибутив використовуючи наявний софт типу : dnf, apt, pacman чи emerge. Формат пакету і система як то : RPM, DPKG чи звичаійні тарболи це теж велика кількість роботи, під низом.
Розробляти ще один пакетний менеджер, а тим більше формат пакету, це величезний пласт роботи, який не ясно навіщо потрібний якщо ви робите власне дістрібутив, а не сам пакетний менеджер. Це дорого і ті же ALT на це пішли далеко не одразу, а після років форка від Madrake в свою чергу якій базуваввся на RPM.
В чому сутність дистрибутивів і чому може знадобиьтсь ще один — це ревью і тестування на сумісність та наявність «недокументованих можливостей» (багів). Зараз напевно, тут можна робити AI автоматизацію, коли AI агент пересвідчиться, що усі біліотеки сумісні і в них присутні патчі з багфіксами, зокрема секьюріті і т.п. Окрема проблема як була так і є — це драйвери відеокарт, особливо сучасних яких нема в офіційних репозиторіях, через пропрієтарні ліцензії, та кодеки через патентні причини.
Коротко по пунктах
Про ціну. promin уже зроблений і працює, збирає базу з джерел, тримає хеш-store, покоління і відкат. Найважче не попереду, а вже позаду. До того ж promin відкриється першим цього року, тож буде що перевірити руками, а не на слово
ALT грає за мене, не проти. Він показує, що свій репозиторій на базі RPM можливий, але лишається в чужій моделі пакета. Мені потрібна інша, content-addressed store з адресацією за вмістом і атомарним відкатом, а її RPM чи dpkg не дають у принципі. Це не питання років роботи, а властивості формату
Про суть дистрибутива ви праві. Рев’ю, сумісність, відлов багів це і є цінність, згоден. AI для перевірки патчів і бекпортів лягає в мій вектор, рецепти вже генеруються автоматично
Драйвери відеокарт і кодеки визнаю чесно, біль спільна для всіх дистрибутивів. Пропрієтарне в мене в окремому opt-in каналі, база лишається вільною
Тестовий запуск Svitlo GNU/Linux 0.4 у QEMU
Невелике оголошення. Найближчими днями переношу проєкт на новий сервер, тому сайт і завантаження образів можуть бути тимчасово недоступні кілька днів. Це планове перенесення, не зупинка проєкту. Вихідний код і рецепти на GitHub лишаються доступні весь час. Щойно закінчу, усе повернеться, дякую за розуміння
Оновлення по проєкту. Перенесення на новий сервер завершено, сайт і завантаження образів знову доступні. Окрема подяка тим, хто допоміг з міграцією, без цього вийшло б довше і болючіше. Зараз іде збірка нової версії. Щойно закінчу, викладу і напишу окремо
Якщо в людини є час та натхнення, то в добру путь. Особисто я це ставити на свій комп не збираюсь. Чому? А тому, що я обираю популярні рішення, щоб коли там щось не працюватиме або зламається, я міг знайти рішення проблеми в інтернеті.
Логіка правильна, і сперечатись нема з чим. Популярне рішення дає велику базу відповідей в інтернеті, для щоденної машини це вагомий аргумент. Тим більше зараз, на беті, я і сам нікому не раджу ставити це основною системою. Svitlo не претендує бути ще одним десктопом для всіх, у цій ролі мейнстрім і має вигравати. Цінність в іншій площині, відтворювана збірка з джерела під вузьку нішу і прозорий ланцюг, кому це не болить, тому проєкт і не потрібен, це нормально
А нащо ти RU запилив туди?
Сайт ще в розробці, зараз фокус на стабілізації бази. До сайту дійду пізніше, тоді й актуалізую
Так а нащо це бридке ru взагалі там опинилось? Чому не es або jap?
Так воно здохне через місяць. Де ти візьмеш вільних дурачків мейнтейнерів без особистого життя, щоб вони це все робили? Вони всі і так на зарплаті у майкрософта і ibm сидять, а де ти їх будеш брати? А де ти будеш брати потужності ? Щоб зібрати хроміум не за тиждень, то треба сервак, сервак, який збирає хроміум за 2 години коштує 5 тисяч баксів.
Хроміум я вже збирав не раз, тож аргумент про неможливі потужності
відпадає сам собою. Сервак за 5 тисяч не потрібен, треба просто терпіння і
правильно налаштована збірка. А здохне чи ні це гадання, факт у тому, що
воно вже працює зараз
Якщо дивитись на досвід з болот, той же AltLinux і т.п. то в таких дістрібутивах систем є сенс тільки не в розробці і підтримці власних пакетних менеджерів при наявності : RPM, dpkg подібних та Pacman і т.д. Особливо дивлячись, що ЄС активно приймає міри по уходу з американського софту. Технічно якщо поставляти системи під ключ, для конкретних цілей із сертифікаціями по захисту від загроз і т.д. в цьому є якась доля ринку.
Якщо це не є таємницею, то було б цікаво дізнатися який AI agentic workflow використовується для досягнення мети проєкта?
Не таємниця, але без деталей. AI використовую як інструмент для рутини,
розбір коду, чернетки, пошук по великій кодовій базі, шаблонні шматки.
Конкретний workflow не виношу, він сирий і постійно міняється
MINIX 3 ще цікава ос, там її схрещували з NetBSD. Є відео, де Таненбаум про це розказував колись. Мікроядро, драйвери, що працюють на рівні користувача, покращена безпека. Раніше була трохи нижча продуктивність за рахунок оверхеду(контролю та контекстного перемикання між ядром та серверами), але наче це покращили.
А моноліт це мастодонт, що наразі домінує, але теж має серйозні виклики та недоліки.
Обіцяли навіть оновлення ставити без перезапуску системи, на льоту.
Типу ос може працювати десятиліття без ребуту. Якщо відвалюється якийсь драйвер чи сервер, то це не крешить всю систему.
MINIX 3 красива ідея, тут Таненбаум зробив сильну заяву, драйвери в
userspace і перезапуск впалого драйвера без краху системи це елегантно і
концептуально чистіше за моноліт.
Але я свідомо на моноліті, причина прозаїчна, екосистема. Сила мікроядра це
теорія, слабкість це те, що драйверів і софту під нього мізерно, MINIX так
і лишився переважно дослідницьким. Мій проєкт це не дослідження архітектури
ядра, а прикладна збірка під реальне залізо, тому потрібен Linux з його
морем драйверів, навіть ціною монолітних недоліків
Я от тільки одного зрозуміти не можу. А щоб що? В когось є сумніви стосовно пакетної бази дебіана чи федори? Та нє. А якщо є, ніякої проблеми із прозорістю там немає. Ніщо не є секретом, більше того довіри додає той факт, що за федорою стоїть Ред Хет, а для Ред Хета бути якісним і надійним це те, за що люди власне кажучи гроші платять.
Українська технологічне незалежність мені якщо чесно попьоржує російською, чиї чиновники пилили на нєскучних обоях міліарди. Україна не є фортецею в облозі, щоб будувати технологічну автаркію. А от я, будучи людиною котра цінує кібербезпеку, сприймаю поняття технологічного суверенітету, приблизно як суверенітет на встановлення бекдорів під загрозою підвала СБУ, і я такий не один нафіг. Власне кажучи те що розробка дистрибутивів (звісно бувають ексцеси як історія з SSH) це фіча, а не баг.
А головне питання, а хто це все ментейнити буде? Дистрибутив це ж не просто раз з вихідного коду зібрав і забув. Якби це було так, то власне кажучи ментейнери жили від реліза до реліза, а між ними ішли в запой. Але це ж просто не так. Це сотні тисяч бінарників, які треба протестити, перевірити сумісність між різними пакетами, протестити на різних конфігураціях. В мене на двох різних компах деякі пакети працюють дуже по різному, а тут це треба тягнути суто за рахунок українського ком’юніті.
PS І так, космік як DE лайно
Svitlo не замість Fedora для всіх, це інша ніша. Автаркія тут ні до чого,
я ж не пишу свій код замість світового, я беру відкритий і збираю його
прозоро, з відкритими рецептами, це радше протилежність стіні. До речі,
саме тому за бекдори можна не хвилюватись, у відтворюваній збірці з
відкритою історією сховати закладку важче, ніж у системі з патчами під
замком. А COSMIC це смак, любити не вмовляю
Саме тому і не злетить. Схоже автор не має уяввлення що це значить — «мейнтейнити окремий дистрибутив Лінукс», або чомусь вирішив що як тільки він щось викотить, знайдеться куча добровольців які будуть це робити.
Уявлення маю, і саме тому не розраховую на купу добровольців. Ставка не на
людей, а на автоматизацію, рецепти генеруються, граф резолвиться сам, база
курована і вузька, а не сотні тисяч пакетів. Вузький набір мала команда
тягне, повну базу як Debian ні, тут ви праві, туди й не лізу. Чи злетить,
не знаю, але відповідь на хто мейнтейнитиме це звуження задачі, а не надія
на ентузіастів
Юрію, стаття написана гарно і читається легко, але як людина, якій регулярно доводиться менеджити сервери та інфраструктуру на базі Ubuntu і Proxmox, маю кілька серйозних інженерних питань та зауважень до вашого концепту «незалежності».
По-перше, те, що ви описуєте — це по суті класичний LFS (Linux From Scratch). Збірка ядра, glibc та coreutils з вихідного коду не робить систему незалежною. Ви все одно тотально залежите від upstream-розробників. Якщо завтра вони змінять ABI, ваша інфраструктура збірки ляже, поки ви власноруч не напишете патчі. Справжня незалежність — це власне ведення та аудит базового софту, як це роблять у Red Hat чи Debian, а не просто автоматизація компіляції.
По-друге, щодо «сучасного робочого столу, зібраного чесно». У статті ви пишете, що залишили весь непотрібний спадок за бортом і свідомо контролювали кожен компонент. Але ж у коментарях вище ви самі визнали, що це COSMIC від System76. Тобто ви просто взяли готове популярне DE від великої американської компанії і скомпілювали його. Називати це «своїм» досягненням чи подавати як унікальну фішку системи — ну, це стильне перебільшення.
По-третє, пакетний менеджер Promin. Написати обгортку, яка розкидає бінарники по ізольованих шляхах (у стилі NixOS) — це крута задачка для розвитку. Але NixOS живе і процвітає виключно завдяки гігантському ком’юніті, яке щодня підтримує базу рецептів (Nixpkgs). Хто буде мейнтейнити тисячі пакетів для Promin? Ви один у вільні вечори? Ця система зламається на першому ж серйозному пакеті зі специфічними циклічними залежностями.
Окремо здивував момент про те, як важка компіляція «поклала» сусідній продакшен через навантаження на диск. Чесно кажучи, запускати збірку всього дистрибутива на одному сервері з продом без налаштування cgroups, ігноруючи tmpfs (компіляцію в ОЗП) та ліміти I/O — це дуже дивне рішення. Те, що прод впав — це не «відкриття вузького місця», а просто базова помилка розподілу ресурсів.
Як пет-проєкт для власного розвитку та вивчення нутрощів ОС — це супер, і кількість витраченого часу дійсно викликає повагу. Але загортати скрипт збірки LFS з чужим DE у красиву обгортку «незалежного українського Linux» — це вже маркетинг, а не інженерія. Справжня технологічна незалежність — це команди з безпеки, інфраструктура дзеркал, продуманий LTS та фінансування, а не ISO-образ, підтримка якого закінчиться рівно тоді, коли автору набридне витрачати на нього свої вихідні.
Дякую за розбір, відповім по суті
Це не LFS. LFS це книга без менеджера, без хеш-store, без відтворюваності.
У мене content-addressed система зі збіркою, відтворюваною до біта, і
графом залежностей. Залежність від upstream не заперечую, але це інша
модель керування, а не автоматизація компіляції.
COSMIC я ніде не називав своїм досягненням, прямо казав, що це System76.
Фішка не в авторстві столу, а в тому, що він зібраний з вихідного коду без
блобів. Свій стіл винаходити сенсу не бачу.
Про цикли технічно не так. Резолвер SCC-толерантний через Tarjan,
bootstrap-цикли обробляються штатно, інакше база не збиралася б.
Про IO-шторм згоден, це була помилка розподілу ресурсів. Рішенням стали
tmpfs і хардненинг вузла через cgroups, тобто я до цих механізмів прийшов,
а не зігнорував.
Тепер про головне, про соло і фінансування. Ви праві, що команда, дзеркала,
LTS і гроші це те, чого бракує. Але це і є одна з цілей публічної фази,
знайти спонсорів, яким цікаво звʼязати свій бренд з розробкою незалежного
українського дистрибутива, і людей у команду. Проєкт, про який ніхто не
знає, цього не збере. Фундамент, збірка і менеджер, уже працює, і це той
бар’єр, на якому більшість зупиняється до команди. З чогось почати треба,
я почав з найважчого
Юрію, дякую за адекватну та технічно аргументовану відповідь. Повага за те, що не сприйняли критику в штики, а розклали все по поличках.
Окей, аргумент про content-addressed систему, bit-for-bit відтворюваність та резолвер на базі алгоритму Тар’яна — приймається. Це дійсно зовсім інший рівень інженерії у порівнянні з базовими скриптами LFS. Реалізувати такий граф залежностей власноруч, ще й так, щоб штатно оброблялися bootstrap-цикли — це дуже потужна робота.
Щодо COSMIC — почув вас. Зібрати сучасний Wayland-композитор та Rust-середовище суто з вихідників без затягування готових блобів — та ще задачка з зірочкою, тому тут претензія знімається.
За чесність про IO-шторм — окремий плюс. Усі ми хоча б раз у житті «клали» прод під час інфраструктурних експериментів. Головне, що граблі були проаналізовані, а tmpfs та cgroups впроваджені.
Тепер щодо найскладнішого — пошуку спонсорів та команди. Я чудово розумію вашу логіку «спочатку робочий фундамент, потім вихід у паблік». Але тут є великий ризик. Бізнес або спонсори рідко інвестують в «ОС загального призначення» просто через патріотичний бренд. Їм потрібне вирішення конкретного болю або чітка ніша (наприклад, IoT, контейнеризація, специфічні сервери).
Можливо, вам варто пітчити інвесторам та спільноті не стільки сам дистрибутив «Svitlo», скільки саме ваш пакетний менеджер «Promin»? Якщо він дійсно SCC-толерантний, швидкий, ізольований і має нижчий поріг входу, ніж Nix — це може стати чудовим інструментом для DevOps-команд або CI/CD пайплайнів як самостійний продукт.
У будь-якому разі, щиро бажаю успіху. Те, що ви самотужки довели таку складну архітектуру до робочого стану — це вже дуже крутий результат. Буде цікаво постежити за проєктом і подивитися, чи вдасться вам зібрати навколо нього ком’юніті мейнтейнерів.
Порада про promin окремо варта того, щоб її обдумати.
Ви праві в головному, інвестор вкладає в розвʼязання болю або в нішу, а не
в бренд, і ОС загального призначення під це не підходить. А менеджер з
нижчим порогом входу за Nix, SCC-толерантний, з binary-first, як інструмент
для CI/CD і DevOps це вже конкретний біль конкретних людей.
Я думав про promin як про частину дистрибутива, а не окремий продукт, тож
ваш кут для мене новий. Відвʼязати менеджер технічно реально, шари в ньому
й так розділені, build окремо від клієнта. Поки фокус на стабілізації бази,
бо без неї пітчити нема чого, але цей вектор кладу в папку ідей поряд з
embedded. Як база встане на ноги, повернусь до цього предметніше
Я не зрозумів про «сучасний робочий стіл». Про що тут йдеться?)
Просто GNOME/KDE зібрані з вихідного коду чи власне DE?
Це COSMIC, нове середовище від System76, написане на Rust, на чистому
Wayland. Тобто не GNOME і не KDE, але й не власний стіл з нуля. DE чуже і
готове, а моє тут саме те, що я збираю його з вихідного коду в свою
систему, а не беру готовим бінарником.
У статті я навмисно не називав його, щоб не перетворювати текст на перелік
технологій, звідси і плутанина. Сучасний означав просто, що це сучасна
графічна архітектура без спадку X11, а не старий стек
Нууу, це вже цікаво ... Головне не зупинись на півшляху!
Дякую. Зупинятись не входить у плани, найважче вже позаду, а далі радше
цікаво, ніж страшно
Головне щоб були нескучні шпалери з Псом Патроном
Патрон на шпалерах це вже майже технічна вимога, врахую. Головне знайти
художника, бо процедурним кодом таку зірку не намалюєш
Зайшов в тему чисто пересвідчитись що є цей коментар.
Як то кажуть, хто згадав — похрустіть колінами)
пфф, я був щасливим володарем компакт-діска з дістрібутивом KSI Linux, лічно у Сергія отримав www.linux.com/news/ksi-linux
У відновса 40 тис.сторочок код, у лінукса 47 тис.сторочок код, хочете стати новим шатлвортом, чи торвальдом
Цифри сильно занижені, у ядра Linux мільйони рядків, не тисячі. Мета,
зробити чесний дистрибутив, який проживе довго і збере невелику
спільноту. Цього вистачить
Зробіть на основі selinux, це розробка США, нац.без.
Тут невелика плутанина рівнів. SELinux це не основа для дистрибутива, а
модуль безпеки всередині ядра Linux, мандатний контроль доступу. На його
основі дистрибутив не роблять, його вмикають усередині. Як опція в базі
колись цілком може бути, але це деталь конфігурації, а не фундамент
Років 20 не мав універсальний лінукс на десктопі, але зробив багато систем де лінукс запускає якусь апку на екрані, тобто такий собі rich embedded. Зараз це yocto або ubuntu core та іноді openwrt, мені здається що так як зараз пішов тренд на хардвер, та кожна поробка має вбудований SBC, має бути більше дистрибутивів яки дозволяють легко, на рівні досвіду докер контейнеру, збудувати імідж операційки з твоєю аппкою, підтягнути залежності, дати можливість оновлення шляхом завантаження нового імеджу, та збиратися під різні таргети x86/arm/mips, мати підтримку secure boot, шифрування та механізм контролю незмінності (хеши всього).
Ви зараз описали майже дослівно окремий напрямок, який у мене вже є як
пророблений концепт, Svitlo RT. Тож відповім предметно, а не загально.
Задум саме такий. Окремий RT-варіант на тому самому рушії promin, не форк,
а інший профіль, спільна база плюс RT-ядро на PREEMPT_RT, headless-образ
без десктопу. Те, що ви перелічили, лягає один в один. Збірка образа з
вашою аппкою і потрібними залежностями це те, що менеджер робить за
визначенням. Контроль незмінності через хеші це сам принцип store, не
окрема фіча. Оновлення через завантаження нового імеджу теж закладене,
A/B-розкладка і read-only rootfs прямо в концепті, бо для поля це базова
вимога. Індустріальний стек теж продуманий, EtherCAT, Modbus, CANopen,
OPC-UA, TSN як опціональні групи.
По нішах орієнтир це QNX, але не за архітектурою, а за призначенням. QNX
це мікроядро з hard RT, а тут Linux плюс PREEMPT_RT, тобто RT-здатний GPOS
з величезною екосистемою драйверів і відкритістю. Для firm і soft RT цього
вистачає, hard RT з мікроядерним детермінізмом це інша вагова категорія,
чесно це розмежовую.
І чесно про статус, щоб не вводити в оману. Це поки пророблений концепт і
план, а не готовий код. Реалізація після стабілізації десктопної гілки, бо
тягнути обидва фронти одночасно одна людина не зможе. Мультитаргет теж поки
в планах, спершу x86_64, ARM далі. Тобто напрямок реальний і продуманий, а
не імпровізація під ваш коментар, але працюючого образа RT поки немає.
Ви явно давно в цій області. Коли дійдуть руки до RT-гілки, я б з цікавістю
звірився з вашим досвідом по реальних таргетах і latency, бо бенчмарк
джиттера на залізі це саме те, де чужий практичний досвід вартий більше за
будь-яку теорію.
Godspeed як кажуть, головне не втратити трекшен зараз, коли сотні команд ліплять ПО на sbc для робочих місць керування від дронів до засобів реб/рер, і я не впевнений що там є вимоги про рт, у моїх проектах його точно нема, sched_fifo достатньо, зазвичай це інтерфейс керування/телеметрії де 100Гц оновлення це вже забагато. Це міг б бути шлях від хобі до lean стартапу, пропонувати цім командам демку системи збірки-дистрибуції плюс ліцензію та саппорт за невеличкі гроші. Брейв кластер як точка входу ... чисто думки.
Технічну поправку беру до уваги. Справді, для більшості таких задач
керування і телеметрії PREEMPT_RT надлишковий, SCHED_FIFO з тюнінгом
закриває сценарій, де 100 Гц уже із запасом. Цінність тут не в hard RT, а
в зручній збірці детермінованого образа під таргет.
Думку про модель розвитку почув, раціональне зерно є. Поки фокус на
стабілізації бази, решта в чергу
Тобто ви перевинайшли Slackware?
Радше навпаки. Slackware легендарний саме тим, що залежності ти
відстежуєш сам руками, а в мене вони резолвляться автоматично, плюс
хеш-store і відкат, чого у Slackware нема в принципі. Спільне хіба
мінімалізм і відсутність зайвого, але механіка протилежна
за рахунок чого автоматичність?
тобто у Вас виключена ситуація dephell або збій системи через зламані залежності?
За рахунок хеш-store і замикання. Кожен пакет адресований хешем усіх своїх
входів, включно з хешами залежностей, тобто жорстко звязаний рівно з тими
версіями, з якими зібраний. Двох конфліктних версій в одному шляху не буває,
вони фізично в різних шляхах store. Тому класичного dephell, коли оновлення
однієї бібліотеки ламає десяток інших, тут не виникає, бо стара версія нікуди
не дівається, поки на неї хтось посилається.
А якщо оновлення профілю все ж дало непрацездатний стан, ви відкочуєте
покоління цілком, бо покоління це незмінний знімок, а не результат правок на
місці. Зламати залежності правкою наживо просто нема як, кожен стан або
зібрався цілим, або його немає
Нужно продумать особенность дистрибутива, его идеологию. Например, вместо Nix Language ты вставил свой язык или сделал так, чтобы всё работало без кэша на 400 гигабайт, или придумал что-то ещё, что упростило бы жизнь человеку, использующему твой дистрибутив. Просто так его устанавливать не будут — зачем? Как я понимаю, это свой NixOS, но его я и так могу просто установить. Хотелось бы узнать, какие особенности были задуманы в плане управления пакетами или что еще было задуманно ? есть какие то планы ...
Хороший вопрос, и вы сами назвали два места, где я как раз и ушел в
сторону от Nix.
Про свой язык. Я сознательно не стал делать отдельный функциональный
язык, рецепты на YAML. Порог входа ниже, чтобы собрать или поправить
пакет, не надо учить язык Nix, достаточно прочитать понятный конфиг. Это
осознанный выбор в сторону простоты, а не упущение.
Про кэш на 400 гигабайт. Тут тоже метко. Установка binary-first, пакет
тянется готовым по совпадению хеша и верифицируется, а не собирается, и
есть сборка мусора, которая чистит пути без ссылок. База при этом не
огромный репозиторий на всё, а небольшая курируемая. То есть store не
обязан разрастаться так, как у Nix на десктопе, это была одна из причин
вообще писать свое, а не брать Nix как есть.
А идеология, про которую вы говорите, вот она. Вся система собрана с нуля
из исходников, под ней нет чужой базы, и это украинский независимый
проект. NixOS этого не дает, он прекрасный, но он не про независимую
сборку с нуля и не про наш контекст.
Честно скажу, фишку именно для массового юзера я еще докручиваю, тут вы
правы, что без нее просто так не поставят. Если есть идеи, что именно
упростило бы жизнь поверх этой модели, с интересом послушаю, это сейчас
самый нужный мне вопрос
Ну тогда всё понятно, верный путь. В принципе, ты взял одну из двух популярных идей на данный момент и, по сути, хочешь убрать её недостатки — это замечательно. Я думаю, всё может получиться. Интересно, каким будет DSL? И на каком языке будет написан весь тулчейн — Rust?
Из пожеланий могу сказать, что лучше указать все эти особенности на сайте, а то пока ничего не понятно. Да и ссылки на Git нет. Идей ещё накидают, когда будет готов первый установочный вариант дистрибутива.
Дякую, радий, що напрямок зайшов. Відповім на два ваші питання чесно, без
прикрас.
Про DSL. Тут уточню, щоб не вводити в оману. Свого DSL немає і поки не
планую, рецепти на звичайному YAML. Це свідомо, якраз щоб не плодити мову,
яку потім усім вчити. Якщо з часом YAML упреться в стелю виразності, тоді
подумаю про надбудову, але городити DSL заради DSL не хочу.
Про мову тулчейна. Тут дві різні частини, і їх варто розвести. Сам
пакетний менеджер написаний на Python, свідомо, він є в базовій системі і
не тягне зайвих рантаймів. А на Rust написаний робочий стіл, бо середовище
таке за своєю природою. Тобто Rust у проєкті є, але не в менеджері, а в
десктопі.
Щодо сайту і посилання на git цілком згоден, це вже не вперше звучить у
гілці, отже точно треба. Розпишу особливості на сайті і додам git
найближчим часом.
І невелика поправка про установчий варіант. Спробувати вже можна, образ є,
запускається в QEMU без встановлення на диск. Але стабільної версії поки немає, перезбірки йдуть регулярно, тож місцями щось може бути щось зламано.Тобто подивитися і помацати реально вже зараз, але покладатися на це зарано
Использовать yaml хорошая идея. Но тут вопрос такой что promin не работает, пишет все время — WARNING promin клієнта (45e7943) != promin знімка lock (d4a58dd) — можливий дрейф деривації
а где конфиг лежит главный ? или я что то не то делаю ?
В /promin/config.json активирован жесткий замок (lock: True).
Клиент работает в режиме binary-first (сначала ищет готовый бинарный пакет на сервере по совпадению хеша из lock.json).
Поскольку zsh отсутствует в списке 269 заблокированных пакетов для версии 0.3, клиент выдает ошибку binary-only, отказываясь переходить к стадии локальной сборки из исходников (fallback), так как для этого нужен полноценный сборочный контекст и слой build, отключенный или ограниченный в режиме тонкого клиента.
Чем promin отличается от классического пакетного менеджера Nix?
promin написан на чистом Python 3.13 без внешних библиотек и ориентирован исключительно на дистрибутив Svitlo Linux (включая жесткие оптимизации под Wayland/COSMIC и поддержку кастомных стадий бутстрапа). Он значительно проще в отладке и интеграции с системными компонентами дистрибутива.
Зачем нужен вендоринг PyYAML, если в Python есть встроенный парсер?
Стандартная библиотека Python не содержит встроенного парсера YAML, а только JSON. Вендоринг PyYAML позволяет читать сложные структуры рецептов без установки сторонних системных пакетов на чистой ОС.
Что произойдёт, если во время скачивания пакета отключится интернет?
Клиент promin прервёт транзакцию. Атомарность гарантирует, что неполный пакет не попадёт в хранилище, а текущее активное поколение профиля останется полностью работоспособным.
Могу ли я запустить promin на дистрибутиве Ubuntu или Arch Linux?
Да, вы можете использовать promin в режиме сборочного хоста для сборки образов Svitlo Linux на любом современном дистрибутиве GNU/Linux при наличии установленного Python 3.13+.
Как добавить собственный патч к пакету?
Поместите файл патча в директорию recipes/<package_name>/<version>/patches/ и пропишите его имя в массив patches в файле recipe.yaml.
Почему изменился хеш пакета, хотя я изменил только комментарий в рецепте?
Если вы изменили комментарий внутри YAML-файла рецепта, каноническое представление Recipe.canonical не изменится, и хеш останется прежним. Хеш изменится только при редактировании значимых полей (флагов, версий, шагов сборки).
Как работает сборщик мусора (gc)?
Он сканирует все поколения профилей в /promin/profiles/, собирает множество путей, на которые есть ссылки, и удаляет из /promin/store всё, что не входит в это множество.
Можно ли откатиться на поколение назад, если система не загружается?
Да. Достаточно перенаправить символическую ссылку /promin/profiles/default на предыдущую директорию профиля (например, /promin/profiles/default-10) с помощью Live-USB.
Что такое hardcopy в терминологии promin?
Это пакеты (например, glibc), файлы которых при создании целевого rootfs физически копируются, а не монтируются символическими ссылками. Это критично для корректной работы системного динамического линковщика.
Поддерживает ли promin архитектуру ARM64?
Да, архитектура заложена в модель кросс-компиляции, выбор целевой архитектуры определяется стадией кросс-тулчейна в рецептах.
Как принудительно пересобрать пакет без изменения рецепта?
Удалите существующий пакет из хранилища с помощью gc (предварительно удалив его из профиля) или временно измените несущественное, но учитываемое поле (например, добавьте пустую переменную в env рецепта).
Каковы требования к именованию пакетов?
Имя должно содержать только строчные латинские буквы, цифры и дефис.
Что делает команда build-stdenv?
Она подготавливает изолированную корневую директорию, содержащую все базовые утилиты сборки, чтобы последующие пакеты собирались в чистой среде, независимой от хост-системы.
Где хранятся метаданные установленного пакета?
Внутри директории пакета в хранилище под именем .promin-meta.json.
Как promin обрабатывает коллизии хешей?16-значный криптографический хеш (SHA-256, усечённый до 16 символов / 64 бит), что делает вероятность коллизии в рамках одного дистрибутива ничтожно малой.
Используется
Поддерживает ли пакетный менеджер компоненты X11?
Нет. В соответствии с манифестом Svitlo Linux, в базу не допускаются X11-компоненты. Поддерживается только чистый Wayland.
Где посмотреть логи сборки конкретного пакета?
Логи компиляции выводятся в стандартный поток вывода терминала при сборке. При интеграции с внешними инструментами логи могут перенаправляться в файлы внутри временного каталога /tmp/promin-build-<name>.
Можно ли использовать один и тот же кэш на разных компьютерах?
Да, если на них совпадает базовый путь к хранилищу (инвариант /promin/store).
Как объявить виртуальный пакет (Provides)?
Используйте поле provides в рецепте. Оно позволяет резолвить зависимости по виртуальным именам, не влияя на расчет итогового хеша.
Работает ли автоматическое обновление пакетов?
Обновление происходит путём обновления дерева рецептов svitlo-recipes и запуска команды install для целевых пакетов или наборов.
Непогано розібралися, і так, ллм для швидкого занурення в чужий код це
зручно, гріх не скористатися. Але висновок ви зробили в цілому правильний,
тож відповім по суті.
Конфіг головний це /promin/config.json. Там servers, offline, timeout і
release. Резолв іде по hash-pin з lock релізу, не з рецептів.
Про warning щодо дрейфу деривації. Це попередження, не помилка, і не воно
причина того, що пакет не став. Воно звіряє ревізію promin у клієнті з
promin_ref зі знімка lock. Якщо вони розійшлися, клієнт відмічає, що
резолвер міг змінитися, але встановлення не блокує, бо в режимі lock
замикання і хеші беруться прямо з lock по hash-pin. Тобто дрейф відмічається,
а hash-pin усе одно тримає. Читайте його як помітку на полях, а не як стоп.
Тепер про zsh. Це ж альтернативний шелл, ви, мабуть, спробували поставити
звичний вам zsh і отримали структурну помилку. Причина проста. Клієнт в
образі binary-only, у ньому навмисно немає шару build і компілятора, тому з
вихідників локально він не збирає. Якщо пакета немає в опублікованому lock
релізу або для нього ще не викладено бінарник на сервер, клієнт чесно
віддає помилку, а не йде збирати. zsh просто не входить у lock 0.3, тож
тонкому клієнту його взяти нема звідки.
І тут важливий нюанс саме зараз. Перезбірки йдуть регулярно, я ще ганяю
базу, тому окремі пакети бувають тимчасово недоступні, поки чергова збірка
не виклала свіжий бінарник у реліз. Це не поломка, а стан рухомої бети. Щоб
zsh став, його треба опублікувати в реліз, тоді клієнт підхопить готовий
бінарник за хешем. Локальна збірка живе тільки на збірному хості з тулчейном,
в образ вона не їде свідомо, щоб образ лишався легким
Нужно было бы редактор поставить vi или nano а то питоном редактировать файлы то еще удовольствие
svitlo@svitlo:~$ python3 -c "import json, pathlib; p = pathlib.Path('/promin/config.json'); data = json.loads(p.read_text()); data['servers'] = ['http://192.168.2.225:8080']; p.write_text(json.dumps(data, indent=2))" OSError: [Errno 28] No space left on device During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 1, in <module> import json, pathlib; p = pathlib.Path('/promin/config.json'); data = json.loads(p.read_text()); data['servers'] = ['http://192.168.2.225:8080']; p.write_text(json.dumps(data, indent=2)) ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/pathlib/_local.py", line 555, in write_text return PathBase.write_text(self, data, encoding, errors, newline) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/pathlib/_abc.py", line 651, in write_text with self.open(mode='w', encoding=encoding, errors=errors, newline=newline) as f: ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [Errno 28] No space left on device ну я думаю кастомный пакет установился в любом случае svitlo:~# promin install keyd INFO server 38663e1b9249c3fa-keyd-2.4.3 (binary) INFO активовано покоління 1 (keyd) svitlo:~# так что все работает и да это намного легче чем писать на языке nix.Питання по суті, відповім чесно, бо тут є і захист, і реальний борг.
Що захищає зараз. Клієнт перед розпакуванням звіряє sha256 бінарника з
індексу. Підмінити пакет на льоту, побитий чи не той, не вийде, клієнт
його відкине. У режимі lock клієнт ще й знає очікуваний хеш заздалегідь і
вимагає саме його, тобто сервер не підсуне іншу версію.
А ось чесний борт. Цей захист це цілісність, а не справжність джерела.
Якщо ви самі поміняли сервер на чужий, то і еталонний індекс ви берете з
того ж чужого сервера. Тобто хтось може покласти свій бінарник і свій
індекс під нього, і перевірка пройде, бо бінарник збігається з його ж
хешем. Клієнт ловить підміну в каналі, але не ловить, що індекс прийшов
від недовіреної сторони.
Те, що цю діру закриває, це підпис релізів моїм ключем, щоб клієнт
перевіряв не лише цілісність, а й що індекс справді мій. Цього поки немає,
це визнаний борг. Тому міняти сервер на недовірений зараз небезпечно, і я
це чесно тримаю як зону, яку треба дотягнути.
По своїх пакетах це означає ось що. Зараз свій сервер у локалці для себе
це нормально, ви довіряєте самі собі. Але як тільки зʼявиться підпис,
правильна модель буде така, свої пакети підписуються своїм ключем, а
користувач явно додає довірений ключ, як trusted-key у Nix чи підписаний
Release у apt. До того моменту довіра тримається на тому, кого ви вписали
в config, і це треба розуміти
Графічний образ COSMIC, тут є VIM
Ну подпись на данном этапе особо не нужна. Попробовал — всё супер.
Ну а Git с пакетным менеджером можешь выложить. Заодно будет видно, что проект продвигается, и можно будет наблюдать за его развитием.
Дякую, що не просто подивились, а реально погоняли, це найцінніше на цьому
етапі.
Про підпис згоден, зараз не пріоритет, тримаю в боргах на потім. А
менеджер відкрию першим, це і так план, ви просто підтвердили, що логіка
правильна. Як викладу, дам знати в гілці, тоді й буде видно прогрес у
динаміці
Сайт війдстійний. Кольори, шрифти і оцей стиль слайдшоу, коли прокручуєш сторінку і кожен екран це типу як слайд в презентації.
Дизайн справа смаку, комусь заходить, комусь ні, і це нормально, але це
точно не те, що варто зараз обговорювати. Сайт це вітрина, проєкт це код
Linux вже не круто. Треба переходити на Plan9.
Plan9 це та сама ОС, яку всі поважають, ніхто не запускає, і кожен
системник колись клявся на неї перейти. Прекрасна, але я хочу, щоб мій
дистро хтось таки увімкнув, а не лише захоплено цитував.
З сайту не знайшов github, це open source проект чи ні?
Open source, але поетапно. Зараз відкрита частина пакетної бази, основний
код, сам менеджер і збирач, відкриватиму цього року в міру готовності.
Те що з сайту не видно гітхаб, моя недоробка, додам посилання найближчим
часом github.com/SvitloLinux
Не хочу бути душнілою, раджу подумати над наступним:
Як часто вам дійсно доводилося робити відкат системи? На своїх серверах я з цією проблемою не стикався від початку повномасштабного вторгнення рф, чи навіть Covid. У мене Більшість ресурсів зараз в Google cloud, але серед заліза декілька десятків серверів з Ubuntu, які регулярно оновлюються, unattended, dist-upgrade — все працює стабільно роками. Деякі з встановлених конфігурацій пережили смерть власних ssd.
Чи дивилися ви на альтернативні варіанти відкату системи (backup, snapshot, btrfs)?
Відкат системи за декілька секунд має сенс якщо це виправдано бізнесом і система дійсно ламається дуже часто. Але тоді постає питання чи потрібна взагалі система яка ламається під час оновлення.
Чи не створюєте ви своїм пакетним менеджером більше вразливостей в системі безпеки ніж намагаєтеся виправити?
Погляньте на великі дистрибутиви і наскільки часто серед їх пакетної бази зʼявляються вразливості. Причини переважно однакові — хтось із мейнтейнерів пропустив непропатчений код, або хтось вирішив запакувати вразливість, а комьюніті її не побачила. І це стосується не лише дистрибутивів Linux, а всього світу open source.
Те що вам чесалося і ви це зробили — респект! Я б хотів у своїй команді бачити людину яка власними руками зібрала Linux. Чи матиме ваша праця віддачу в майбутньому — побачимо. Бережіть себе!
Душнілою ви не виглядаєте, це найкорисніший коментар у гілці, дякую.
Відповім чесно, місцями проти себе.
Про відкат ви маєте рацію. На стабільному сервері з unattended-upgrades
відкат потрібен раз на ніколи, і я не продаватиму його як киллер-фічу
для вашого кейсу. Це радше зручність для десктопу, для експериментів і
для збірки, ніж аргумент для прода, який роками не падає. І так, btrfs
snapshot закриває відкат тома, тут хеш-store не відкриває Америки.
Різниця тонша, відкат на рівні окремих пакетів і поколінь без відкату
даних, кілька версій поруч, але для вашого сценарію snapshot справді
достатньо. Чесно визнаю.
Найсерйозніше ваше питання про безпеку, і тут ви праві більше, ніж мені
хотілося б. Велика база це тисячі очей, які ловлять непропатчений код,
а мала своя база це менше очей і реальний ризик пропустити те, що
спільнота Debian побачила б. Я цього не заперечую. Моя єдина чесна
відповідь, прозорість збірки і маленька база зменшують поверхню атаки і
роблять кожен пакет таким, що його можна простежити, але це не скасовує
проблему числа очей, а лише частково її компенсує. Хто каже інакше,
лукавить.
Тому я й не позиціоную це як безпечніше за умовну Ubuntu прямо зараз.
Цінність не у швидкому відкаті і не в тому, що воно нібито надійніше з
коробки, а в контролі над тим, як саме система зібрана і з чого. Для
більшості серверів це надлишково, ваші роками працюють і добре. Це для
сценаріїв, де контрольований ланцюг важливіший за зручність готового, і
таких сценаріїв небагато, але вони є.
За теплі слова окреме дякую. Чи буде віддача, справді побачимо, я й сам
не знаю. Але навіть якщо ні, я вже зрозумів про Linux більше, ніж за всі
роки користування готовим. Бережіть себе теж
є багато кейсів де треба відкат системи, мережеве обладнання, обмежені девайси, реальні сервери в кінці кінців
всі системи ламаються під час оновлень. Просто одні вже зламались, а інші ще не зламались
Звідки тут на доу весь цей дух «кому це потрібно?», «нащо цей лісапет?», «а ви дивились на убунту?»
Люди що? магічно як тільки в них з’являється стабільна робота, раптом забувають фан розбирання до гайок якогось залізяччя щоб подивитись всередину?
Навіщо люди роблять власні стільці з дерева, коли є красиве дешеве пап’ємаше у формі стільця з ікеа?
Ви ставите в приклад убунту яка відлизувалась десятиліттями НЕ ВАМИ і проходить тестування перед релізом, тому у вас нічого й не ламалось. Яке це має відношення до зеленого мінімалістичного дистро?
І навіщо ж вам така людина? Якщо ви не бачите в цьому нічого, бо є убунта яка не ламається роками?
Наш вітчизняний BolgenOS.
Не зовсім. Дениска тупо перепилював копірайти Убунти і назви деяких програм, тут трохи інше.
Але очевидно ж, що самотужки потягнути більш-менш адекватну пакетну базу не вийде ну от зовсім ніяк. Я декілька пакетів мейнтейнив якось, так ледь не здурів від цього.
Ваш аргумент найчесніший у гілці, і ви маєте рацію, руками пакет за
пакетом всю базу одна людина не потягне, я б теж здурів. Тому я її руками
й не пишу. Рецепти генеруються автоматично, граф залежностей резолвиться
сам, а ручної роботи лишається рівно стільки, скільки треба на нетипові
випадки та огляд. Масштаб тримається не моєю витривалістю, а тим, що нудна
частина автоматизована.
Це не значить, що легко. Це значить, що задача зміщена з пиши тисячу
рецептів на побудуй конвеєр, який їх генерує. Друге одна людина потягнути
може, перше ні, тут ми згодні.
Я вибачаюсь, але на що? Яка кінцева мета, створювати черговий лісапєд з нуля і витрачати купу ресурсів власних? А як же залежність від самого Linux?
У Вас не було бажання краще створити гарний відчинзяний десктоп на Лінуксі який би зміг замінити Вєнду хоча б у держустановах? Або це також утопія?
щоб почесать там де чешеться.. бо цікаво..
А у Вас не було? ;)
Дякую, ви фактично відповіли за мене, і влучніше. Саме щоб почесати там,
де чешеться, бо цікаво, з цього всі такі речі й починаються.
було і є, але для цього вмене немає ні знань ні сил))
але гарний Десктоп це загальна проблема для Лінукса
бо кожен пилить своє, зусилля розпилюються замість концентрації на їх спільно і тут виникає парадокс — якщо так зробити це значить зробити Вєнду#2 тому сила Лінукса саме у великій кількості дістрів але ідеального конкурентоспроможнього Десктопа через це нажаль поки немає.
та брєхня це все й байки з 2000х
В лінуксі десктоп людський вже давно, не гірший за вєнду в будьякому разі
все шо юзаю для роботи на маку там є, якби не звички й тракпад розміром з аеродром, я б уже давно на лінукс переїхав
для офіса ну мене завжди напрягав лібреофіс це правда, але майкрсофт спаскудила вже й мсофіс до ще гіршого рівня тормознутості ніж лібреофіс, я юзаю зара гуглдокс взагалі
якщо вибирати між стараннозасраним він11+мсофіс і лінуксом+гугельдокс/лібреофіс, лінукс явно свіжіше. Якщо брати уйебунту на дел чи лєново, а не брати шопопало й не ставити якийсь екзотичний лінукс, то скоріше навіть із залізом проблем не буде
єдиний мінус розмаїття ігор
Не розумію прикола дістраяквіндовс, бо софт все одно всюди один і той же від лінукса до лінукса, але на дістровотч таких завжди вагон був
Якщо це про специфічний софт онлі4вінда, то лінуксяквінда тут не поможе тож ніяк, бо проблема не в ос
Такшо, що саме лінукс має задовольнити у вашому бажанні «який би зміг замінити Вєнду хоча б у держустановах» мені незрозуміло зовсім
Тут обидві думки слушні, але про різні речі, і в цьому вся плутанина.
Десктоп Linux давно нормальний сам по собі. Як технічний продукт він не2000-х. Тут сперечатись нема з чим.
гірший, для більшості робочих задач його вистачає, і байки про незручність
справді з
А розпорошення зусиль це реальна річ, але проблема держсектору не в якості
самого столу. Навіть якби завтра зʼявився ідеальний український десктоп, це
не зрушило б держустанови, бо там питання не в тому, гарний стіл чи ні. Там
питання міграції, підтримки, специфічного софту, навчання людей,
відповідальності за систему і довіри до того, хто її постачає. Стіл це
вершина айсберга, а внизу інфраструктура і хто за неї відповідає.
І ось чому я не роблю ще один красивий стіл. Гарних столів і так вистачає.
Я роблю підконтрольну базу під ним. Для держсектору важливіше не як виглядає
панель, а чи можна довіряти тому, як зібрана система і звідки беруться
бінарники. Замінити Вєнду в установах це не задача дизайну столу, це задача
ланцюга постачання і підтримки, і саме туди я й цілюсь. Стіл у мене якраз
чужий і зрілий, COSMIC, бо винаходити ще один сенсу не бачу.
держсектор це не проблема, якщо мати бажання її вирішувати, але це бажання не народжується тут, а народжується у міністерстві чи на рівні місцевих рад якщо це про місцеві системи
умовна недовольна тьотя буде недовольна будьякими змінами звісно, але невдоволення швидко мине, коли начальство недвозначно висловить власне невдоволення її невдоволенням
Умовній тьоті абсолютно до лампочки там віндовс, мсдос чи жаби квакають, якщо вона може робити свою роботу і жалітися енікейщікам
решта — тренування, підтримка, адаптація софта — питання грошей і ресурсів на це
але це не питання «підходящості» якогось лінукса чи красивих столів. Це навіть не питання якоїсь сертифікації. Бо ос це тільки елемент
так шо в принципі так я згоден з вами
але це не проблема яка вирішується на рівні дистрибутива тіпа вашого. І точно ніякі коментарі на доу не зрушать в цьому питанні абсолютно нічого, крім повітря. Це продукт-послуга від підрядника-інтегратора де операційна система — невеликий рядок в кінцевому рахунку
Ну собсно якщо мета цього всього не виключно ідеалістична, а вломитись в держсектор, то з нуля нізвідки це анріал — це весь спектр супутніх сервісів типу навчання, техпідтримка, ходити в піджаках щоб розмовляти з іншими піджаками, показувати нудні презентації ітд. Не кажучи вже що в держсекторі теж не виключно дурні сидять, там якщо захочуть зроблять і самі власний лінукс, банально дебіан перефарбують в жовтоблактині кольори через підприємства кумсватбрат, може вже й зробили. Так шо за держсектор я б забув якщо умовний фьодоров у вас не на щвидкому наборі. Краще насолоджуватись собі в задоволення і ловити фан без всяких мрій про держсектори
Без «держсектора» цілком юзабільний дестоп як нмд. В компаніях де я працював останні 5 років можна вибрати на вибір лінукс чи мак. Дома питання лише в іграх
Тут майже з усім згоден. У держустанови з нуля нізвідки не входять, це
продукт-послуга інтегратора, з піджаками, презентаціями і підтримкою, де
ОС це маленький рядок у кінці рахунку. Жоден дистрибутив сам по собі цього
не вирішує, і коментарі на доу тим паче.
Держсектор у мене це не ціль, у яку я ломлюсь, а ілюстрація сценарію, де
контроль над ланцюгом постачання має значення. Ні фьодорова на швидкому
наборі, ні бажання ходити в піджаку в мене нема.
А заради чого, ви фактично самі й сформулювали у фіналі. Без держсектору
це просто цілком юзабельна штука, яку цікаво робити, і щоб така незалежна
база в нас існувала. Тут ми, по суті, зійшлися
лол, знову ні!
пітримка лінукса вимагає значно більше зусиль ніж вєнда,
ця умовна тьотя дістане вас у перший же день знайомства з прєкрасним лінукс десктопом,
дешевше купити вєнду ніж займатися підтримкою лінукса на робочих місцях,
назвіть хочаб одну країну де вдало застосовано лінукс на десктопі у держсекторі?
шо значить ні?
ви що в печері живете?
дешевше звільнити тьотю за профнепридатністю щоб не паразитувала на суспільстві
так, як і усі інші зараз)
у ваших мріях тальки)
реально такого не відбувається,
наведіть хоча б один приклад застосування лінукс десктопа у держсекторі з будьякої країни?
Не відповідайте більше, мені от чесно не цікаво що там у вас у печері
French Gendarmerie Nationale — 105,000+ desktops on Ubuntu (GendBuntu) since 2007, still running, saved ~€50M in the first few years2003–2017, saved city ~€11M+ before political reversal
Munich (LiMux) — 15,000 desktops,
North Macedonia — 5,000 Linux desktops across 468 schools (2005), scaled to 180,000 thin clients by 2007
Spain — Extremadura (LinEx) — own Debian-based distro from 2002, spread nationwide
Schleswig-Holstein — 30,000 employees migrating since 2024, still ongoing, sovereignty-driven
US DoD / NSA / FAA — Red Hat Enterprise Linux deeply embedded since early 2000s (SELinux, Blue Force Tracker, Common Criteria certification)
China — Ubuntu Kylin and Russia — Astra Linux — widely deployed domestically, backed by state mandates
Czech Post — 4,000 servers, 12,000 clients on Novell Linux since 2005
Dutch Police (iRN) — 2,200 Ubuntu workstations since 2003, still open-source only
Нова пошта та ПривітБанк — Україна.
А ще Фора і Сільпо на касових апаратах.
Але то не державний сектор.
Проблема не в складності, а в тому що всі живуть на відкатах і великі системі інтегратори і маленькі чиновники. На Linux відкат не зробиш.
на опенсорсі відкат зазвичай більше, бо вхідна ціна 0, а продаємо супорт по ціні редхату
В сенсі не зробиш? UALinux тільки за рахунок того і живе, що продає госам і около них застрарілу криво налаштовану убунту з сертифікатом ДССЗЗІ.
Ого, не знав що таке існує. Дякую, відкрили щось нове.
Продає!? Лол, це по хохдяцькі дійсно, надо вміти продавати вільне ПЗ)))
Так це ж не тільки в Україні так. Альт в рашці, ЄвроЛінукс який здох в польші, китайські, болгарські і інші «атєчєствєнні дистрибутиви убунти» Це досить популярна темка, бо в багатьох країнах gpl то не ліцензія (і слава богу) і не сумісна з діючими цивільним і господарським кодексом, а значить для всовування лінукса в ті ж самі держ контори і корпорації, його треба ліцензувати і закупити по тендеру. Убунту від канонікал також можна купити по такій схемі, але там складності з закупкою із-за кордону, коли є «своє». Кароче дивовижний світ тендерних закупівель. Власне RedHat і SUSE також досі існують, лише по причині, що для тендерних закупівель потрібен той на кого можна подати в суд, коли шось піде не так.
«не вірю» Станиславський ©
бачу лише новини коли десь хтось героїчно переводить держсектор на лінукс,але наступна новина як вони повертаються на М$
передбачувано, з твердолобими завжди так, спочатку їм пошукай а потім вони не вірять, тільки час витрачай
тобто DoD не використовує лінукс... історія во!, пане помічник сісадміна
Ну, а як без цього, в тебе була нормальна ос, в якій працював весь софт, всі ці безкінечні електронні ключі доступу, армори, смарт айді і проча чухня, і все це поряд з ломаною 1С, якої в державних установах категорично «нєт», і тут тобі припихують убунту, де весь це віндоспецифічний софт не працює впринципі і у тебе вся інфраструктура падає, робота повільна, арми на місцях лагають, зато бюджети освоєні, ніхера не працює, всі щасливі, особливо відділ продажу Майкрософт Україна, які відгрузять 2000 копій вінди на арми, азур, мульйон копій на офіс.
вінда хоча б працює нормально на відміну від лінакса
>Спитайте в жпт, я вам не найнявся щось шукати з такою подачею
навіщо мені питати коли я усе бачив на власному досвіді коли пропрацював помічником сісадміна 13 років у держустанові
співчуваю
а заступники у вас були?
не важливо, бо зараз лінукс перетворився на другу вінду якою правлять корпорації і де усе так само зводиться у кінці до грошей
ви просто у 100500й раз відкриваєте колесо наново))
ваш дістр ні чим не буде відрізнятися від сотен інших які так само збиралися зроби шось «ідеальне», вибачте
lol, ні, нормального десктопа на лінуксі немає це визнає сам Лінус,
я штурмую лінукс десктопи вже як 10 років,
можливо якщо людину одразу привчити до лінукса то можливо ви праві, але якщо пересаджувати з вєнди то це цілковіти страждання,
технічний поріг вхіду до лінукса значно вищий за вєнду,
на лінуксі ви стикалися з установкою драйверів на принтер або оновлення яке ламає усю систему ?
до вінди теж привчати треба. часи він7 давно минули.
які ще драйвери на прінтер
ви на вєндє стикалися коли воно не бутається після апдейта?
не треба цих казок про ідеальність і безпроблемність вінди.
Єдиний плюс вінди — інерція, лобісти й корпоративні знижки
Чи турбує мене відсутність страждань чиновників при використанні лінукса? Що б ви відповіли?
усе зрозуміло, ви просто не мали справ з десктоп лінуксом,
ті що є лінукс десктопи ще полірувати і полірувати але на це немає ні грошей ні ресурсів,
підтримка лінукса на робочих місцях буде коштувати дорожче ніж придбання ліцензійної вєнди.
ще раз пернеш про вінду і з чим я мав чи не мав справу — підеш в бан
пук к калюжу з вашого боку)
Питання справедливе, відповім чесно. Залежність від Linux нікуди не
дівається, ядро спільне для всього світу, і переписувати його ніхто не
збирається, це було б не незалежність, а божевілля. Незалежність, про
яку я кажу, не про авторство коду, а про те, хто збирає систему і
звідки бере. Між форком чужої бази і власною збіркою з відомих
вихідників різниця є, навіть якщо ядро в обох одне.
Тепер найцікавіше, бо ви назвали якраз мою кінцеву мету, а не
заперечення їй. Гарний відкритий десктоп, здатний замінити Windows у
держустановах, це і є те, заради чого все робиться. Тільки щоб таким
десктопом можна було довіряти держсектору, добре мати під ним
підконтрольну збірку, а не форк, де базу за тебе зібрав хтось інший.
Тобто власний фундамент це не замість тієї мети, а шлях до неї.
А лісапєд тут такий самий, як у будь-кого, хто колись вирішив не брати
готове. Іноді з лісапєдів виходить щось, на чому потім їздять інші.
Можливо, ні. Але точно цікаво спробувати.
Дякую! А що дає така незалежність?
Кілька конкретних речей, не абстракцій. Перше, ви точно знаєте, з якого
вихідника і яким рецептом зібраний кожен бінарник, тобто можете провести
аудит ланцюга до самого низу, а не довіряти чужому збирачу на слово. Друге,
ви не залежите від рішень чужого мейнтейнера, що увімкнути в збірку, які
патчі накласти, які прапори поставити, це стають вашими рішеннями. Третє,
відтворюваність, та сама збірка дає той самий результат до біта, що важливо
для аудиту і для сертифікації.
Для звичайного десктопу це надлишково, тут чесно. Віддача там, де ланцюг
постачання сам по собі предмет довіри, держсектор, безпека, критична
інфраструктура. Тобто не зручність для всіх, а контроль для тих, кому він
реально потрібен
навіщо якщо результат кінечний однаковий?
А чого steammchine вийшла не steamos а не на вінді? Бо чия ос того і комп’ютер
1. незалежність від вєнди
2. при бажанні можна встановити або стімос або вєнду, стімдек якщо я помиляюсь є у двох варіантах
Саме так, і другий пункт тут ключовий. Valve поставила свою ОС за
замовчуванням, тобто з коробки йде SteamOS, але користувач при бажанні
може знести її і поставити Windows. Контроль над тим, що стоїть із коробки,
не означає замок. Це рівно моя модель, підконтрольна збірка як основа, але
вибір кінцево за користувачем.
А ваш перший пункт це коротка суть усього проєкту. Незалежність від чужої
системи за замовчуванням, на рівні консолі це SteamOS замість Windows, на
рівні країни це своя збірка замість чужої бази. Логіка та сама, міняється
тільки масштаб
дякую, але ви нікуди не дінетесь від самих розробників які роблять шось для вашої ос?
все одно буде залежність від розробників іших програм
Респект. Точніше повага. На дозвіллі подосліджую.
Дякую за повагу. Досліджуйте, буду радий зворотному звʼязку
А сертифікація в Держспецзв’язку є в планах?
У планах так, у найближчих ні. Це місяці формальних робіт з ліцензованим
організатором, для бети, яку тягне одна людина, поки рано. Зате
відтворюваність і прозорий ланцюг постачання заклав від старту, а це саме
те, на що така експертиза дивиться насамперед, тож фундамент готується
вже зараз.
кльово
порада — не розмазуйся на підтримку всього, kiss
набагато краще якщо це буде мінімалістичний дістро що житиме 10 років і набере комюніті, ніж універсальний що житиме півроку поки в тебе перестане вистачати часу а комюніті не встигне зібратись
наприклад мій любий crux.nu зірок не хватає, але має невелике комюніті і вже пережив кілька змін кормейнтейнерів
підтримку СРУ не схвалюю
але успіху
Дякую, це найкорисніша порада в гілці. KISS тут не гасло, а умова
виживання, особливо коли робиш один. Я і не цілюсь в універсальність,
радше у вузьке міцне ядро, яке можна тягнути роками, ніж у все одразу і
ненадовго.
CRUX знаю і поважаю саме за це, мала, чесна, пережила зміну рук, що
якраз і є справжній тест на зрілість, а не кількість зірок. Якщо Svitlo
протягне стільки ж і збере хоч невелике живе комюніті, вважатиму це
успіхом.
Дякую за добрі побажання
Надзвичайно важливий і потрібний проєкт для нашої української технологічної конкурентоспроможності, але навіщо на сайті проєкта підтримка штучно створеного київськими попа́ми церковно-слов’янського есперанто?
Так, усе налаштовується. Лишаєте рівно те, що потрібно саме вам, і ні
символу більше
але держава не бажає вкладати у це кошти як завжди))
Підкажіть, а чому в «free software» немає посилання на вихідний код?
Знайшла гітхаб репи даного проєкту — github.com/...kgs/repositories?type=all, github.com/SvitloLinux
Слушна ремарка. Зараз відкрита частина пакетної бази, а основний код,
сам пакетний менеджер і збирач, поки приватний. Відкрию цього року,
поетапно, у міру готовності, і почну саме з менеджера, бо він тут серце
всього
Чим Gentoo не підійшов, якщо хотілося прям з вихідного коду все збирати?
Слушне питання, Gentoo справді збирає з джерел, тут я з вами не
сперечатимусь. Але збірка з вихідного коду це для мене не самоціль, а
наслідок. Хотілося не просто компілювати самому, а мати систему, де стан
адресується хешем усіх входів збірки, версії живуть поруч без конфліктів,
а відкат до робочого покоління це атомарна операція на секунду, а не
відкат світу через emerge. Це ближче до моделі Nix, ніж до Portage.
Друга причина чесно нетехнічна. Gentoo прекрасний, але він не наш. Я хотів
незалежну базу під українським проєктом, з прицілом на сценарії, де це має
значення, освіта, держсектор, місця, де добре б мати систему, локалізовану
і підконтрольну нам, а не зібрану поверх чужих рішень. Gentoo цього прапора
не понесе, у нього свій.
Ну і будьмо відверті, написати свій пакетний менеджер і збирач це трохи
діагноз. Можна було жити спокійно на Gentoo, але тоді не було б цієї статті,
а отже і приводу поговорити з вами.
так вона все одно буде «зібрана з чужих рішень», чи ви зібрались увесь код переписати?
в результаті вийде якесь «анальное огораживание» типу Astra Linux?
Тут треба розрізняти дві різні незалежності. Переписати ядро, glibc і
весь стек це не незалежність, це божевілля, і я на нього не претендую.
Код апстримний, я цього ніде і не приховував, у статті прямо написано,
що це не про винайдення Linux заново.
Незалежність, про яку я кажу, це незалежність ланцюга постачання, а не
авторства коду. Різниця в тому, що під системою немає чужої пакетної бази
і чужих закритих рішень про те, як саме воно зібрано. Кожен пакет
збирається з відомого вихідника відомим рецептом, і дельта відносно
апстриму завжди читається з історії. Тобто я не переписую чужий код, я
контролюю, як він потрапляє в систему.
Тепер про Astra, і тут якраз цікаво, бо ви назвали мою повну
протилежність. Astra це закрита пропрієтарна дельта поверх Debian,
патчі під замком, сертифікат заради галочки, а суть та сама чужа база
плюс ширма. Огораживание це коли ти береш відкрите, накручуєш зверху
закрите і називаєш своїм. У мене рівно навпаки, усе відкрите згори
донизу, рецепти, збирач, пакетна база, нічого під замком. Якщо це
огораживание, то якесь дуже діряве, паркан без жодної дошки.
А прапор тут не на коді намальований, він на тому, хто тримає
інфраструктуру і приймає рішення. Можна користуватися світовим відкритим
кодом і при цьому мати свою незалежну збірку під свої сценарії. Одне
іншому не суперечить, інакше довелося б оголосити несамостійними всі
дистрибутиви світу, бо ядро у всіх спільне.
«Так це вже було же ж»?
Повністю вільні дістрибутиви. Або мова про щось інше?
www.gnuinos.org
trisquel.info
www.linuxfromscratch.org
Гарні приклади, але вони про іншу вісь свободи. Trisquel і GNUinos це
повністю вільні дистрибутиви за ліцензіями, без жодного пропrietарного
коду, і це чудово. Тільки технічно вони форки, Trisquel сидить на базі
Ubuntu, GNUinos на Devuan. Тобто вони беруть чужу пакетну базу і чистять
її від невільного. Свобода ліцензій так, незалежність ланцюга постачання
ні, база все одно чужа.
Я ж кажу не про ліцензійну чистоту, а про те, хто збирає систему і
звідки. Це дві різні осі, можна бути вільним за ліцензіями і при цьому
форком, можна не ставити мету ідеологічної чистоти, але мати власну
збірку з нуля. Я про другу вісь.
LFS це взагалі окрема історія. Це не дистрибутив, а книга, як зібрати
систему руками. Там немає пакетного менеджера, оновлень, поколінь,
відкату, тобто всього, заради чого систему взагалі зручно мати. LFS
показує як зібрати, але не дає чим керувати потім. Promin це якраз про
друге.
Тож так, частково це вже було, але по кожній осі окремо. Поєднання
власної збірки з нуля, керованої хеш-store моделлю і відкату, та ще й
як українського проєкту, я серед готового не зустрічав. Якщо десь є,
покажіть, мені щиро цікаво.
Дуже дякую за пояснення!)
Поясніит будь ласка, що саме дасть «незалежна база постачання»?
Спробую зовсім конкретно. Технічно це ось воно, кожен пакет ми форкаємо до
себе, перший коміт це нетронутий вихідник, наші правки лежать поверх, і
кожна зміна видна в історії. Тобто ми точно знаємо, з якого коду зібраний
кожен бінарник у системі.
Що це дає. Якщо в якусь популярну бібліотеку хтось вшиє закладку, як було з
xz торік, ти бачиш, що саме в тебе стоїть і звідки, і відкочуєшся до
чистого стану. На форку чужої бази ти просто чекаєш, поки це помітить
чужий мейнтейнер. Друге, аудит, коли треба довести, що в системі немає
нічого зайвого і кожен біт простежується до джерела, відтворювана збірка
з нуля це готова відповідь.
Чесно, на домашньому десктопі різниці ви не відчуєте. Віддача там, де
важливо точно знати склад системи і кому довіряєш на найнижчому рівні.
До речі, про ліцензії, бо це логічне питання. Дзеркалити чужі вихідники
можна, переважна більшість це вільні ліцензії, що форк прямо дозволяють,
а GPL ще й сама вимагає тримати вихідники доступними. Головне зберігати
ліцензії, тримати патчі відкритими і несвободне не пхати в базу. У нас так
і зроблено