LINUX.ORG.RU

Завершение эксперимента с Rust в ядре Linux

 ,


0

5

Начатый в ядре 6.1 эксперимент по добавлению кода на Rust в ядро Linux, в котором участвовало 173 разработчика, официально завершён: соответствующая секция убрана из документации ядра.

По словам мейнтейнера Rust for Linux: Rust is here to stay. Таким образом Rust становится официальным языком разработки ядра наравне с С.

Не все выявленные проблемы решены во всех конфигурация, но поскольку Rust уже используется на миллионах устройств в составе ядра (Android), разработчики посчитали эксперимент успешным.

На данный момент сборка кода на Rust по умолчанию отключена.

От автора новости: вангую что включат когда https://rust-gcc.github.io/ реализует подмножество функциональности, достаточное для сборки кода ядра.

>>> Анонс от Miguel Ojeda

★★★★☆

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от rsync

c тоже не умеет управлять памятью. плоская модель памяти не имеет отношения к реальности.

dinama
()
Ответ на: комментарий от gns

А одно другому не мешает. Кроме линукса, есть другие популярные операционки либо с опциональной, либо с первоклассной поддержкой раста наряду с сями (freertos, zephyr, sel4), и ни у кого в ихних сообществах это болей в заднем проходе не вызывает.

yvv1
()
Последнее исправление: yvv1 (всего исправлений: 1)
Ответ на: комментарий от gns

Скоро поумирают разрабы, которые стояли у истоков ядра, и никто уже не сможет разобраться в лапше, которую они оставили.

yvv1
()
Последнее исправление: yvv1 (всего исправлений: 1)
Ответ на: комментарий от yvv1

Ну sel4 — мимо, только userspace (https://docs.sel4.systems/projects/rust/).

Про использование раста в ядре freertos тоже что-то не заявлено, есть крейты, использующие freertos api. То есть тоже «userspace», уж и не знаю какой он там.

Ну и про zephyr а же байда. https://docs.zephyrproject.org/latest/develop/languages/rust/index.html

Против раста в юзерспейсе любой ОС ничего не имею. Может и мне когда доведется использовать.

gns ★★★★★
()
Ответ на: комментарий от yvv1

Ну так пишите новой ядро! Я ж не против. Хот на расте, хоть на хаскелле :)

От того, что в ядре появится несколько тысяч строк на расте, понятней для новых разработчиков оно не станет, к сожалению. Оно и старым-то не особо понятно :)

gns ★★★★★
()
Ответ на: комментарий от gns

От того, что в ядре появится несколько тысяч строк на расте, понятней для новых разработчиков оно не станет, к сожалению. Оно и старым-то не особо понятно :)

Так, насколько это я понимаю, это же не само ядро переписывают. Это-же биндинги к структурам ядра, чтобы драйвера кодить. В непосредственно ядро (ну, разделим, для понятности, ядро и его драйвера), вроде как, пускать его не планировали.

По драйверам, помню, тут то-ли Алиса Розенцвейг, то-ли Гектор Мартин (не помню кто из них) писали давненько в блоге, что для тех же новых яблочных чипов видео-драйвера писать и на Расте-то, не то, чтобы подарок, но сильно легче чем на С-ях, т.к. там каких-то уж очень сложных структур нагородили.

SkyMaverick ★★★★★
()
Ответ на: комментарий от unC0Rr

Они могут делать как угодно, но в такой логике у них получается такой же «эксперимент», как у любых чиновников: «внедрили и никто не помер = полный успех». Это, конечно, светлый и славный стандарт качества, чтобы на него равняться.

Smacker ★★★★★
()
Ответ на: комментарий от SkyMaverick

Это-же биндинги к структурам ядра, чтобы драйвера кодить.

Совершенно не обязательно. С тем же успехом можно переписать что угодно (и написать новое) на Rust в ядре и сделать байндинги к С - благо экспериментальный статус наконец-то снят.

zabbal ★★★★☆
() автор топика
Ответ на: комментарий от SkyMaverick

Ну так структуру регистров контроллера перепишут в виде интерфейса раста. Она чо, проще станет?

Ну интересно посмотреть на результат переписывания. Хотя бы для общей образованности.

gns ★★★★★
()

Отличная новость! Похоже нормально поддерживаемое быстрое безопасное ядро уже не за горами

usermod
()
Ответ на: комментарий от zx_gamer

Без понятия, как это у freebsd устроено, может это какой-то каноничный загрузчик, которым не пользуются.

Щас там луа, а был форт. В мануале сохранилось, да и на гитхабе в исходниках тоже есть.

Naurim
()
Ответ на: комментарий от zabbal

Со времён легендарного срача c Танненбаумом, ага. Где с тех пор minix пребывает рассказать или сам догадаешься?

Я и так знаю. В ЛЮБОМ процессоре intel. minix - это просто другая крайность. Микроядра - такое-же зло, как и монолит. Ядро должно быть гибридным, где в ядре остается только самый базовый и необходимый набор драйверов.

DrRulez ★★★★★
()
Ответ на: комментарий от SkyMaverick

Удивительно что никто даже не заикнулся тащить ради такого раст в ядро непосредственно яблочной оси 🤣

rukez ★★★★★
()

Надо в ядро ещё добавить блюпринты из unreal engine 5.

ox55ff ★★★★★
()
Ответ на: комментарий от Smacker

Эксперимент предполагает какой-то контроль. Где параллельная разработка того же функционала «по старинке»? С чем сравнивать успех/неуспех новшества?

Сравнивается с референсным образом светлого коммунистического безбажного будущего.

seiken ★★★★★
()
Ответ на: комментарий от zabbal

Где с тех пор minix пребывает

Миникс в твоём чипе-е-е,
В каждом втором компе,
Миникс в тебе
И ва мне-е-е!
seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от Undeadguy

исключения тоже есть, Result именуются

🤦‍♀️

thunar ★★★★★
()

Лучше бы Ada в ядро впилили. Тем более что и компилятор есть и в самом языке всё для системного программирования предусмотрено.

watchcat382
()

Рядом была новость про шифровальщик на расте, с которым очень сложно разбираться по причине самого раста.. Оно действительно в ядре нужно? Я не кодер, просто как обыватель спрашиваю. А то будет всё как всегда - сначала все ручонками от радости машут, а потом локти кусают.

My_quest ★★★★★
()

ТС вырезал важную часть письма.

Obviously, this does not mean that everything works for every kernel configuration, architecture, toolchain etc., or that there won’t be new issues. There is still a ton of work to do in all areas, from the kernel to upstream Rust, GCC and other projects. And, in fact, certain combinations (such as the mixed GCC+LLVM builds and the upcoming GCC support) are still quite experimental but getting there.

Эксперимент закончен, но поддержка всё ещё экспериментальная. Расходимся, короче. Safe and effective. NOT

skywarp
()
Последнее исправление: skywarp (всего исправлений: 2)
Ответ на: комментарий от tinykey

Куча российских компаний что-то комитит

Ключевое слово - «компаний». У них есть ресурсы для процесса пропихивания своих разработок в апстрим. Частному же лицу пропихнуть хоть что-то в апстрим сколько-нибудь крупного проекта неизмеримо сложнее. Нужны связи/знакомства (пусть даже сетевые) с приближенными к разработке, и умение грамотно вести деловую переписку на английском(что для россиян особенно сложно).

watchcat382
()

Всегда было интересно, откуда берутся растофобы. Ну вот вообще мне непонятно. Есть только подозрение, что это те же самые люди, что и системдефобы, но это тогда уже не софтварный баг…

pekmop1024 ★★★★★
()
Ответ на: комментарий от gns

Я на вес в сообществе не претендую. Я своим делом занимаюсь.

Более того, умение писать код и умение приобретать вес в сообществе - это разные мало связанные друг с другом умения. Кстати, читал мнение,что нынешний Торвальдс - это как раз больше именно про вес.

watchcat382
()
Ответ на: комментарий от watchcat382

нынешний Торвальдс - это как раз больше именно про вес

Менеджер он. Ну нравится человеку. Не все умеют, из тех кто умеет - почти никому не нравится. Такие дела.

pekmop1024 ★★★★★
()

Не совсем ясно для чего, и даже жаль, что теперь ядро будет не только на православном великом прекрасном святом C, но и на богомерзком ржавом раке, но коль проблем с ним не возникало в ядре, пусть живёт

daniyal
()
Последнее исправление: daniyal (всего исправлений: 1)
Ответ на: комментарий от tinykey

Высказываешь что сообществу нужно, а что не нужно, не являясь его частью.

Со стороны может быть даже и виднее чем изнутри. Не всегда, но такое вполне бывает. Особенно если человек сосредоточен на собственно разработке,а не на участии в жизни сообщества.

watchcat382
()
Ответ на: комментарий от zabbal

Думаешь превратится в такое же убожество как бздя?

Думаю что как винды,только с открытым кодом.

Был какой-то древний фатастический рассказ про универсального многоцелевого робота, созданного путем последовательных усовершенствований открывашки для пивных бутылок. В с линуксом похожее происходит. Ядро уже превратилось в огромного плохо структурированного монстра, и как правильно тут выше было сказано,рискует повторить судьбу Х11. Которые и поддерживать нормально не могут, и заменить нормально не могут.

watchcat382
()

Нет разницы С, Rust, ASM или что-то там ещё. Нет серебряной пули. Поделия на rust точно также потекут и сломаются. Не замените вы мозги разраба очередным поделием.

Frohike
()
Ответ на: комментарий от gns

Пишите свое ядро целиком на расте

Зачем писать на расте,если можно дорабатывать уже имеющееся на Ada? Ironclad например. Тем более что для Ada и отличный компилятор есть - gnat.

watchcat382
()
Ответ на: комментарий от SkyMaverick

биндинги к структурам ядра, чтобы драйвера кодить.

Решили бы сначала проблему относительной независимости драйверов от ядра - чтобы хотябы как виндах было,где под каждый минорный релиз не требуется драйвер пересобирать.

watchcat382
()
Ответ на: комментарий от zabbal

Ну, швед. Суть от этого мало меняется.

MEZON ★★★★★
()
Ответ на: комментарий от watchcat382

Со стороны может быть даже и виднее чем изнутри. Не всегда, но такое вполне бывает. Особенно если человек сосредоточен на собственно разработке,а не на участии в жизни сообщества.

Ой лол.

tinykey
()
Ответ на: комментарий от watchcat382

Ключевое слово - «компаний». У них есть ресурсы для процесса пропихивания своих разработок в апстрим. Частному же лицу пропихнуть хоть что-то в апстрим сколько-нибудь крупного проекта неизмеримо сложнее. Нужны связи/знакомства (пусть даже сетевые) с приближенными к разработке, и умение грамотно вести деловую переписку на английском(что для россиян особенно сложно).

Пфф, какой бред.

tinykey
()
Ответ на: комментарий от zabbal

С тем же успехом можно переписать что угодно (и написать новое) на Rust в ядре

А собственно что в этом такого ужасного? Ну напишут,протестируют - если будет работать не хуже сишного - то и проблемы нет. Всё равно даже такие как я любители копаться во внутренностях системы уже перестали пересобирать ядра по каждому чиху и просто используют те что в дистрибутиве. А дистростроители не потерпят явно плохо работающий код в ядре. Или надавят на ядерных писаталей или используют то ядро которое еще хорошо работает.

watchcat382
()
Ответ на: комментарий от pekmop1024

откуда берутся растофобы.

Потому что не понимают аргументацию растофилов. Те говорят про особо безопасный язык. Только для него даже качественного компилятора нет. В то время как безопасный язык и хороший компилятор для него очень давно есть - Ada. Кто бы мне объяснил чем Раст лучше Ады? Чем он лучше Си - я как раз понять могу.

системдефобы

На системде бухтели в начале его истории. Потому что дистростроители бросились пихать в продакшн недоделанный глючный продукт,влияюший на базовый функционал системы. А сейчас реальная претензия к системде - это пожалуй только его бинарные логи. Но и это не отменяет возможность поставить классический syslog.

watchcat382
()
Ответ на: комментарий от tinykey

Бредом оно кажется пока обычный человек не попытается пропихнуть что-то свое в апстрим крупного проекта. Для этого нужны сильно прокачанные soft skills,а у хороших технарей это редкость.

watchcat382
()
Ответ на: комментарий от watchcat382

Торвальдс — неплохой координатор работы. По-моему он пока вполне умело распоряжается своей репутацией. Соблюсти баланс между открытостью и интересами бизнеса — трудная задача. И вес тут действительно надо иметь.

gns ★★★★★
()
Ответ на: комментарий от daniyal

ядро будет не только на православном великом прекрасном святом C, но и на богомерзком ржавом раке

Линукс сейчас активно используется во всяких встраиваемых системах,нередко весьма существенно отличных по принципам построения от интеловских процов. Хорошая компиляция Си под них сделана и отлажена. А хороший не глючный компилятор под архитектуры,отличные от x86 еще предстоит сделать и отладить. И это очень не быстро судя по тому сколько отлаживали сишный компилятор.

watchcat382
()
Ответ на: комментарий от watchcat382

Ну, кстати, бинарные логи стали сильно лучше тех, что делал классический syslog. Да и какая разница, какую команду набирать less или journalctl.

gns ★★★★★
()
Ответ на: комментарий от pekmop1024

Если инструмент плохой, то им просто не пользуются. Ненавидеть молоток — глупо, а вот опасаться тех, кто размахивает только молотком со словами «молоток — самый лучший инструмент» — стоит. Для них все окружающее — гвозди. Не раст страшен, а политическая мотивированность растаманов.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.