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

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

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