Автор Гілка: asterinas 0.18 — операційна система з ядром написаним на Rust  (Прочитано 2906 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
asterina — це ядро та операційна система, які розробляють як заміну Linux, з використанням ШІ. Вже підтримується понад 100 пакетів ВПЗ, включно з Firefox, а також доступний образ диску на основі NixOS для запуску у віртуальній машині. У цій версії додана початкова підтримка режиму захищеного контейнера (Kata Containers and Confidential Containers (CoCo)).

Проєкт: https://github.com/asterinas/asterinas
Оголошення: https://asterinas.github.io/2026/06/04/announcing-asterinas-0.18.0.html
[Fedora Linux]

Відсутній kostiantyn.hermash

  • Новачок
  • *
  • дописів: 41
  • Карма: +1/-0
Цитата
The future of operating systems (OSes) belongs to Rust—a modern systems programming language (PL) that delivers safety, efficiency, and productivity at once. The open question is not whether OS kernels should transition from C to Rust, but how we get there.

Чому це фанатики раста вже вирішили за всіх, кому належить майбутнє?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Чому це фанатики раста вже вирішили за всіх, кому належить майбутнє?

Rust найпрактичніша мова, коли програмуєш з викристанням ШІ: висока швидкість роботи на рівні Сі, але відсутність сегфолтів. ШІ клепає код на раст з високою швидкістю та якістю, тому що компілятор підказує, а не заплутує.

Я за тиждень навайбкодив свій локальний Trello використовуючи тільки Gemini 3 flash два місяці тому.
[Fedora Linux]

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
але відсутність сегфолтів.
А чому ви вирішили, що це є характеристикою мови? Біт у пам'яті перемкнеться і буде сегфолт. От тільки ви будете до того не готові.

тому що компілятор підказує, а не заплутує.
А чому ви за всіх вирішили що компілятор заплутує? Це лише рівень знань. Ви за всіх вирішили, що інші всі повинні не мати знань щоб розуміти повідомлення компілятора.

Я за тиждень навайбкодив свій локальний Trello використовуючи тільки Gemini 3 flash два місяці тому.
І які мінуси ви в тому побачили? (фанатики не бачать жодних, ніколи, це їх фіча "не бачити" :) )

Відсутній ps

  • Кореспондент
  • ***
  • дописів: 238
  • Карма: +4/-0
    • Мої дописи на DevZone
Зараз популярна тема мікроядерних ОС, типу того ж RedoxOS. Там все дуже сиро, я нічого для себе не зрозумів і встиг тільки пограти в Doom (коли він там був з коробки)

Говорячи про повноцінну заміну Linux, то не знаю: навіть coreutils боюсь ставити на прод. Може ШІ допоможе швидше портувати вже пів-сторічні напрацювання оригінального ядра і суміжного софту. Стосовно Rust, то темою ШІ я цікавлюсь мало, помітив що майже весь код на GitHub згенерований моделями. Програми "ручної роботи" зараз віднайти складно і подібним ресьорчом періодично займаюсь на Codeberg. А виявляється, що Rust ідеально підходить для нейро-кодингу через мінімальні апетити до токенів. Добре це чи погано - вирішать вже наступні покоління, сам же пишу від руки, що доволі таки легко і для людини.
« Змінено: 2026-06-13 20:26:12 від ps »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Зараз популярна тема мікроядерних ОС, типу того ж RedoxOS. Там все дуже сиро, я нічого для себе не зрозумів і встиг тільки пограти в Doom (коли він там був з коробки)

RedoxOS — це більше дослідницький експеримент, ніж практичний проєкт. Вони сильно далеко пішли вперед. Ці ж хлопці не заморочуються з новими архітектурними рішеннями, і просто копіюють старі робочі рішення з допомогою ШІ. Проєкт вартий уваги, якщо потрібна додаткова безпека в контейнерах.

Стосовно Rust, то темою ШІ я цікавлюсь мало, помітив що майже весь код на GitHub згенерований моделями. Програми "ручної роботи" зараз віднайти складно і подібним ресьорчом періодично займаюсь на Codeberg. А виявляється, що Rust ідеально підходить для подібного нейро-кодингу через мінімальні апетити до токенів. Добре це чи погано - вирішать вже наступні покоління, сам же пишу від руки, що доволі таки легко і для людини.

Я теж вже підсів на ШІ, після того як спробував Antigravity (середовище розробника від Ґуґла з вбудованою підтримкою агентного Gemini) і побачив 10-ти кратне підвищення продуктивності. Коли Ґуґл зрізав безплатні ліміти, я потратив десь два тижні щоб відтворити подібного агента з qwen3.6/llama.cpp/pi, і зараз користуюся ним. Воно гірше та повільніше, ніж платна система, але з правильними скілами воно може робити роботу, яку я руками ніколи не робив і не збирався робити.

Наприклад, я запустив для проби скіл архітектора — він створив мені презентацію в HTML по архітектурних проблемах, які є в проєкті, з пропозиціями як їх виправити. Пропозиції хороші, тому я напевно попʼю кави і накажу агенту щоб їх виконав. Якщо не сподобається — ресетну код назад. Все що я втрачу у випадку невдачі — це трохи часу і електрики, тому якщо не вийде — спробую якийсь інший варіант наказу. Зуб даю, що результат вийде гірший, ніж якби я це робив самостійно, але я цього робити не збираюсь, так що або так, або ніяк.
[Fedora Linux]

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
помітив що майже весь код на GitHub згенерований моделями. Програми "ручної роботи" зараз віднайти складно
Це лише ваш варіант дивитися. Лише код ядра Лінукс (який є на гітхаб) за розміром більший за більшість інших проектів. Тому не "код" вимірюється, а лише кількість "нових назв" репозиторіїв.

Зараз популярна тема мікроядерних ОС, типу того ж RedoxOS. Там все дуже сиро, я нічого для себе не зрозумів
Нічого складного. Це ядро яке "нічого не вміє" (окрім "переслати повідомлення"). Ні мережі, ні графіки, ні девайсів. Нічого взагалі немає. Все те роблять "програми рівня користувача". І саме тому то було повільно.
А деякі ОС (план9) навіть такого не роблять. Там весь комп нічого не вміє, а замість того окремий комп є файловою системою, окремий є інтерфейсом та все інше окремо на рознесене по компах (це як по різних процах рознести у мультиядерному проці, але ще й девайси та пам'ять різні).

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
Коли Ґуґл зрізав безплатні ліміти, я потратив десь два тижні щоб відтворити подібного агента з qwen3.6/llama.cpp/pi, і зараз користуюся ним.
Але ви можете відправляти до нього лише самі важливі запитання, а відповіді передавати у свої локальні інсталяції.

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
А виявляється, що Rust ідеально підходить для подібного нейро-кодингу через мінімальні апетити до токенів.
Оце і є його перевага. Так само як для С перевагою було "перенесення коду до інших архітектур".

Добре це чи погано - вирішать вже наступні покоління
Вони не зможуть.
От ви ж (ви є наступне покоління для С) не можете вирішити чи було добре замінити використання Асемблеру на С? Бо не знаєте на стільки добре Асемблеру :)
А щоб змогли, потрібен шлях "як вивчити Асемблер після того як вивчити С" (а тепер то буде, "як вивчити С після вивчення Раст").

Ви ж розумієте, що С для Асемблеру був як Раст для С? Бо С заборонив робити гото у будь яку частину пам'яті (наприклад, у частину даних чи в інший текст іншої програми (бібліотеку), лише запустити функцію через її назву), заборонив використання будь якої пам'яті у якості даних (наприклад, коди команд в С не можна вважати даними простим чином), обмежив використання "не тієї" пам'яті за допомогою "структури" (масиви структур тоді ще не були масовими).
Але натомість С дозволив "змінювати код для процесора без програміста" (компілятор з оптимізацією та підміна бібліотек іншими версіями). І ще мало хто згадає про силу препроцесора (один текст програми фактично містить багато різних версій програм).
Але всі ті обмеження були не тому що "щоб не було погано" (менше помилок), а щоб відкрити можливості робити такі програми, які не могли робити раніше. Про які навіть не думали, що то є можливим.
А що зовсім інше (про яке не думали програмісти С) пропонує Раст?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
А що зовсім інше (про яке не думали програмісти С) пропонує Раст?

Раст пропонує зручний синтаксис, автоматичне керування памʼяттю замість ручного, безпечний режим, зручні бібліотеки, особливо для роботи з стрічками, зручне підключення бібліотек, значно менша кількість «невизначеної поведінки» порівняно з Сі, а то у сі навіть a+b має UB.
[Fedora Linux]

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
Це все вже було... Дивіться ширше. От С запропонував "наїбати всіх програмістів щоб вони думали що пишуть одну програму, а насправді (компілятори, оптимізатори, препроцесор, динамічні замінні бібліотеки, потоки, невизначений розмір інт(8,16,32, 64 чи інший) та ін) вони писали одразу 100 різних бінарних кодів програм у одному текстовому файлі".
Де таке ж "наїбалово" у Раст? :)

Раст пропонує зручний синтаксис,
вже було в С порівняно з Асемблером.

автоматичне керування памʼяттю замість ручного,
Вже було в С (маллок) порівняно з Асемблером.

безпечний режим,
Вже було в С (структури, функції, більше розділення даних та коду ...) порівняно з Асемблером.

зручні бібліотеки,
До С взагалі не було бібліотек. ЛібС на той час була дуже зручна.

особливо для роботи з стрічками,
Було вже у прінтФ().

зручне підключення бібліотек,
Було вже, через інклуде файли, екстерн визначення символа (назви функції чи змінної) та лінковку. Порівняно з Асемблером.

значно менша кількість «невизначеної поведінки» порівняно з Сі, а то у сі навіть a+b має UB.
Так невизначена поведінка, це є сила, а не мінус. Бо саме через те що ви не знаєте розмір інтеджера (16, 32, 64 чи ін) ви можете той самий текст програми оптимально перенести до іншого компа. А от "визначена поведінка" була у Асемблера. І переносити програми Асемблера було дуже не просто.

Відсутній kostiantyn.hermash

  • Новачок
  • *
  • дописів: 41
  • Карма: +1/-0
Раст пропонує зручний синтаксис

Оце точно ні. Це, звичайно, річ суб'єктивна, але особисто я ще не бачив більш потворного і нелогічного синтаксису.

Відсутній ps

  • Кореспондент
  • ***
  • дописів: 238
  • Карма: +4/-0
    • Мої дописи на DevZone
Володимир Лісівка, я також підсів на асистента ШІ, щоправда не пускаю його в DE і виконую собою роль проксі до вікна в браузері. Воно дійсно того варте (працюю зі стандартним чатом Google) - заощаджує час. Коли розживусь на токени то ще однозначно спробую згодувати йому старий проект на плюсах на базі Bitcoin і libtorrent для обнови boost в останньому (задачка на мільйон) і додавання туди другого стека IPv6 (і ще на мільйон, і так я не можу просто взяти останній libtorrent). Що мені особливо подобається - як інтелект відловлює логічні помилки, яких в расті наче як важко наробити. А на фоні CopyFail, роль цього інструменту важко переоцінити.

Цитата
Оце точно ні. Це, звичайно, річ суб'єктивна
Справа звички. Це як казати що іврит поганий бо пишеться зправа наліво, коли все життя писав типи напочатку. Трохи складно було натягнути парадигму наслідування на імплементації. Довго звикав але вже отримую профіт і задоволення від програмування. Класичний C вже навпаки сприймається важко, точніше читається він досі легко, але при змінах з ним потрібно переварювати більше коду для аналізу тієї ж логіки (Rust ще й поряд з Ruby - лаконічна мова).
« Змінено: 2026-06-13 20:47:22 від ps »

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
Оце точно ні. Це, звичайно, річ суб'єктивна, але особисто я ще не бачив більш потворного і нелогічного синтаксису.
Та це вирішується дуже просто! Вас розстріляють :))) Всі інші скажуть що синтаксис простий і логічний (то ви всього лише не зрозуміли всю простоту і логічність та це легко виправити).
Он Джаваскрипт повсюди на сайтах і нікому те не заважає :))) (те що ніхто (майже) не розуміє логіку "прототипів об'єктів" та чому змінні ззовні функцій раптом діють всередині функцій що всередині інших функцій записані)

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 473
  • Карма: +7/-0
на базі Bitcoin і libtorrent для обнови boost в останньому (задачка на мільйон)
А що за проект? Перевинайшли гіт (розподілений криптоблокчейн без центральних серверів для зберігання версій даних де кожен файл позначений його криптохешем)?
Яку проблему вирішуєте?

і додавання туди другого стека IPv6 (і ще на мільйон...).
Навіщо вам АйПів6? Сервер чи роутер може перетворювати пакети в шосту версію без вас. До того ж ви читали всі стандарти того 6? Там таке.... (он лише "під1єднані адреси" взяти, які не тотожні "всім фізичним адресам вашої локальної мережі :))) бо ... на всяк випадок (а раптом це меш на десятки кілометрів)).

Трохи складно було натягнути парадигму наслідування на імплементації.
Чому? Та навіщо натягати :)

Класичний C вже навпаки сприймається важко, точніше читається він досі легко, але при змінах з ним потрібно переварювати більше коду для аналізу тієї ж логіки (Rust ще й поряд з Ruby - лаконічна мова).
Це не пов'язане з мовою.
Це різниця у рівнях деталізації сприйняття світу. Де саме той рівень деталей на які вам особисто ... пофіг.
Раст стає можливим через те що вам стало пофіг на ... процесори. С був силою коли під кожен вид процесорів існував свій "кращий" компілятор (хоч вони й створювали "різну поведінку" тої самої (нібито) С програми). А вам тепер абсолютно пофіг який з процесорів використати (а тому вам пофіг під який саме процесор Раст створить більш швидкий чи оптимальний код через те що його стиль співпадає з дизайном процесора).

І саме тому злетіли стрімінгові платформи, коли більшості стало пофіг на деталізацю формату відтворення кіно (якість та деталі зображення, кількість звукових колонок навколо, розмір екрану, відстань до екрану та ін). На Імакс (головне там звук та потім розмір) стало пофіг.

Проблема різної деталізації (в людях відносно різних сфер інтересів, в кожній зі сфер зі своїм іншим рівнем деталей) не вирішується. Кожен тисне іншого щодо зміни деталізації у якийсь бік. Лише "виділити частину простору" та "не чіпати". Але там знову таки виникне різна деталізація "розмірів простору" та визначення "не чіпати". На річках це вирішували шлюзами (зміни рівня води з одного в інший). Але то можливо зі збільшенням рівня розуміння (коли ви приймаєте що інша людина вільна мати свій рівень деталей у своїй голові (не той що офіційно має висловити та відтворити у опитуваннях (що теж тісно пов'язані з кимось обраним рівнем деталей (формулюванням відповідей у списку)))).
От і чекаємо :) допоки рівень розуміння виросте.