LINUX.ORG.RU

Линус Торвальдс запланировал внедрение Rust в Linux 6.1

 , , ,


4

6

Создатель ядра Linux и координатор его разработки Линус Торвальдс объявил на Kernel Maintainers Summit, что в Linux 6.1 будет доступно программирование модулей на Rust — «если не произойдёт ничего незапланированного».

Причиной включения Rust в ядро Торвальдс назвал более высокую безопасность языка (за счёт снижения числа ошибок работы с памятью) и его привлекательность для молодых разработчиков:

Rust - это одна из тех вещей, которые, как я думаю, привлекут новые лица… мы стареем и седеем…

Также опубликована начальная реализация драйвера rust-e1000 для Ethernet-адаптеров Intel. А компания Western Digital разрабатывает на Rust драйвер для NVMe-накопителей. Хотя драйвер ещё не оптимизирован, он не отстаёт в производительности от имеющегося ядерного драйвера на языке Си.

>>> Подробности



Проверено: hobbit ()

мы стареем и седеем

Вот же. Всегда думал, что они эльфы.

А так, истово минусую, конечно же.

dataman ★★★★
()
Последнее исправление: dataman (всего исправлений: 1)

Повезло Линуксу с таким лидером. Система будет развиваться дальше, а не помрёт в стагнации.

alex1101
() автор топика

С еще своего веского слова не сказал. А Линус - старый пердун, не прошло и 40 лет, а он уже пытается с темы соскочить…

BydymTydym
()

он не отстаёт в производительности от имеющегося ядерного драйвера на языке Си.

Что-то напоминает Wayland. Модно-молодёжно, но из плюсов только то, что почти не отстаёт от уже имеющегося.

spqr ★★★
()

Но сначала показалось что новости от 1.04

BydymTydym
()
  • добавляем раст в ядро
  • начинаем переписывать куски ядра на раст
  • получаем на выходе неподдерживаемую помойку
  • пропихиваем свое нужное ядро, сославшись на то, что Linux стало слишком сложно поддерживать
zent
()
Ответ на: комментарий от Heartbreak_Kid

рано начал о старости заявлять, ему 52 всего

Он просто заманался.

sparkie ★★★★
()

в Linux 6.1 будет доступно программирование модулей на Rust

Отлично. Стоим на пороге нового шага к развитию Linux.

th3m3 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

И как быть с множеством платформ, как драйвера будут работать на них

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

zent
()

это определённо верный шаг, что бы кто ни говорил, как бы кто не относился, но время идёт, поколения вырастают и приходят на смену старому поколению.

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

Линус может быть уверен, что после него ядро ещё будет долго жить и поддерживаться имея на борту не один из возможных ЯПов.

Spoofing ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Rust работает без LLVM?

Есть целых два проекта запиливания в GCC https://lwn.net/Articles/871283/

И как быть с множеством платформ, как драйвера будут работать на них

Я как понял (возможно неправильно, не смотрел, только новости читал), там узкое необходимое и достаточное, подмножество rust-а ядре. Т.е. весь stdlib и полный комплект cargo в ядро не тянут.

SkyMaverick ★★★★★
()

к расту отношусь весьма спокойно (разве что раздражают растофаны), но тренд прекрасный. язык зреет. рано или поздно Си должен пойти на пенсию (т.е. остаться в части поддержки наработок на ближайшие полвека, а вот новые проекты должны таки уже работать с чем-то посовременнее). Раст в этом плане должен помочь ему.

ЗЫ а есть планы довести раст до самостоятельного языка без всяких ллвм и прочих?

ergo ★★★
()
Последнее исправление: ergo (всего исправлений: 1)

Правильное решение. Не всегда «модное молодёжное» плохо (хоть и нередко). Rust — один из тех случаев, когда всё сделано правильно, поставленные задачи выполняются (меньше ошибок при работе с памятью), и нет дикого хаоса и распухания, как было с C++, в отличие от которого Rust действительно является достойным продолжением и преемником C.

CrX ★★★
()

вот это поворот

umren ★★★★★
()

Также опубликована начальная реализация драйвера rust-e1000 для Ethernet-адаптеров Intel.

Я так понял, что это замена имеющегося e1000e? Тоже и с драйвером для nvme

Есть какая-то странная тенденция не столько новое писать на Rust, сколько переписывать уже написанное и успешно работающее.

Кроме того, как они там на ядерном уровне вообще пишут? Неужто без unsafe во все щели?

praseodim ★★★★★
()

Неизбежное произошло. Помянем Накатим…

her_s_gory
()
Ответ на: комментарий от zent
  • Ядро переписывают и добавляют spy/bloat ware

  • Microsoft переводит на него Винду

  • Линуксоиды мигрируют на BSD

  • Профит!

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

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

В принципе, а какие проблемы писать для ядра на любом языке? По крайней мере, среди нативно компилирующихся и в которых на уровне языка или компилятора можно отключить стандартную библиотеку ввода/вывода и подключить специфически ядерные api для этого.

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

Кхм, ну собственно, а что теперь остается от безопасности Rust? Серьезно интересно, может конечно синтаксис и абстракции все-равно способствуют более правильному коду, хз.

praseodim ★★★★★
()

Отлично. Безопасность прежде всего. Все правильно делает.

Gonzo ★★★★★
()

Имеется пропер драйвер nvidia.ko (для примера) хз на чем он написан. Он что не будет работать в ядре ?

mx__ ★★★★★
()

В какой-то степени это признание самим линусом, что C это чистейший легаси.

Спор десятилетия C vs Rust разрешили на самой верхушке.

p.s. выносите царя вперед ногами

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

Кхм, ну собственно, а что теперь остается от безопасности Rust?

Так для этого и делается «Rust в Linux». Т.е. делаются привязки к существующим подсистемам и минимальная, необходимая и достаточная, обвязка, которые и проверяются, а в дальнейшем уже можно полагаться на контроль языка/компилятора.

Т.е. если совсем упрощённо говорить: вот есть относительно небольшой слой потенциально опасного кода, его мы в ручном режиме вылизываем, тестируем и «во-все глаза глядим». А вот всё, что выше него уже полагаемся на гарантии Rust-а. Собственно, это и есть unsafe (ну как-минимум, как я его понимаю).

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

ЗЫ а есть планы довести раст до самостоятельного языка без всяких ллвм и прочих?

🤦

что такое в твоём понимании «самостоятельный язык» и как «ллвм и прочих» этому противоречат?

intelfx ★★★★★
()

Жаль, ржавчина сожрёт ядро…

x-signal ★★
()
Ответ на: комментарий от praseodim

Кроме того, как они там на ядерном уровне вообще пишут?

Ну вот Asahi (которые Линукс на Apple портируют) говорили что GPU драйвер им было-бы сильно удобней начинать пиcать сразу на Rust-е.

сколько переписывать уже написанное и успешно работающее

Ну так надо же на чём-то учиться. Вместо тупого писания example-ов, гораздо эффективней взять уже знакомый проект и портировать на осваиваемый язык.

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

Rust действительно является достойным продолжением и преемником C

Вообще ни разу не является. Совершенно отдельный язык с другой идеологией.

no-such-file ★★★★★
()
Ответ на: комментарий от alex1101

Система будет развиваться дальше, а не помрёт в стагнации.

Как только Линус окончательно постареет – хана этому нашему линуксу

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

Э… хм. А что есть фронтенд у компилятора ?

фронтенд компилятора - переводит закорючки во внутреннее AST.

бекенд компилятора - делает оптимизации над AST, переводит AST в ассемблерный код, делает оптимизации для конкретной платформы, генерирует бинарь.

Если на примере C++, то фронтендеры делают поддержку стандарта С++ и закорючек, а бекендеры делают так чтобы во всяких SPEC тестах эти программы исполнялись быстро.

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

Да, если придёт какой-нибудь фанатик типа растохейтеров.

alex1101
() автор топика

А в чем реальный профит на пальцах? Что значит «бОльшая безопасность памяти»? Нельзя просто соорудить пару надстроек над С чтоб к массиву прибивался его размер (и указатель не мог выйти за его пределы) и указатель «выгрузить» чтоб компилятор проверял переменную на наличие освобождения динамической памяти в коде?

Я прост не догоняю как один компилируемый язык может генерить код «безопаснее» чем другой, если речь не об ошибках программиста, которые один фиг отлавливаются на этапе сборки а не выполнения Если бы туда условно Яву притащили (гы) смысл был бы понятен - контроль во время выполнения и сборщик мусора действительно смотрят на проблему с другой стороны и позволяют многие вещи сделать безопасней из коробки, но в байт-коде то явно же не вылизанный поколениями сишный компилятор косячит

rukez ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.