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)
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.