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 ()

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

Линус молодец. Нужно оно, или не нужно, а больше опций для того, чтобы контрибутить в ядро не помешает.

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

А что такое «народный язык»?

Это когда у тебя кривая обучения имеет форму экспоненты, а не логарифма.

То есть в начале всё просто и легко, а потом ты падаешь в кроличью нору полную всякого безумия, в противопоставление случаю, когда «тяжело в учении, легко в бою»

Nexmean
()
Последнее исправление: Nexmean (всего исправлений: 2)
Ответ на: комментарий от quantum-troll

Кроме того, контроль над алиасингом полезен не только для работы с памятью.

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

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

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

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

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

Одно другому не мешает, и даже наоборот. Тот же язык с той же идеологией был бы не преемником, а очередным новым (в крайнем случае альтернативным) стандартом того же. Для полноценного нового этапа нужна и новая идеология.

CrX ★★★★★
()

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

den73 ★★★★★
()

«Он его породил, он его и погубит» @Linux 6.1 2022

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

Си - это отстой

За исключением всех остальных, да.

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

в Расте тоже будут вылезать неочевидные проблемы другого рода

Уже вылезают. Насколько это лучше или хуже большой вопрос.

no-such-file ★★★★★
()

А вот что на OpenNET’е в аналогичной новости:

Дополнительно можно отметить публикацию начальной реализации драйвера rust-e1000 для Ethernet-адаптеров Intel, частично написанного на языке Rust. В коде пока остаётся прямой вызов некоторых привязок на Си, но ведётся постепенная работа по их замене и добавлению Rust-абстракций, необходимых для написания сетевых драйверов (для доступа к PCI, DMA и сетевым API ядра). В текущем виде драйвер успешно проходит ping-тест при запуске в QEMU, но пока не работает с реальным оборудованием.

То есть автор топика нас еще и обманывает? Интересно, как он определил производительность, если на реальной железке оно еще не работает? Расторасы такие расторасы…

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

Для полноценного нового этапа нужна и новая идеология

Чтобы была новая идеология нужны новые компы, а их у нас нет. В итоге получается язык идеологически оторванный от реальности. Это противоположность Си, а не преемник. Раст идеологически ближе к Хаскелю и прочим МЛ-ям, т.к. использует те же идеи языка на базе алгебры типов, только в переложении на более низкоуровневую модель.

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

автор топика нас еще и обманывает

А по кликбейтному заголовку было не понятно?

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

У раста есть свой компилятор. Да, он использует LLVM, а почему собственно бы и нет?

Или чтобы язык считался полноценным, у него обязательно должен быть свой уникальный полностью самобытный тулчейн, даже если для этого нет никакой технической необходимости? Чтобы что?

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

Наверно, никакой, если придумать что в целом делать с interoperability. Кроме ввода/вывода, нужно ещё много всякого другого api ядра использовать.

Ассемблер можно использовать? Всегда можно было. Значит все сводится просто к правильной компиляции.

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

Вот, кстати, надо в его тележеньку вечером глянуть. Душа просит свежих лулзов :)

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

в моем понимании самостоятельность языка определяется наличием своего компилятора-линковщика. я неверно определил этот термин для себя?

То есть если компилятор есть, но пользуется промежуточным кодом, ты считаешь, что «язык несамостоятельный»? Ну тогда из существования clang можно сделать вывод о несамостоятельности Си — он тоже llvm использует.

А gcc когда-то генерил ассемблерный листинг для последующего ассемблирования (собственно, его и сейчас можно получить ключиком -S, просто частью основной процедуры это уже не является).

Другое дело, что на Си есть вагон компиляторов и международные стандарты. У растишки с этим пока туго, да.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Язык доступный для понимания широким массам.

Доступность для понимания широким массам в случае C это морковка, которую повесили перед носом программиста.

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

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

Возможно у LLVM есть какие-то проволочки насчёт кросскомпиляции, но я не достаточно освидомлён в данной области.

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

прост я не догоняю почему не навернуть этот контроль расширением над си

Можно, но в результате всё равно получится новый язык. Точно так же, как С++ это отдельный язык.

Выучить новый язык проще, чем писать свой чтобы расширить С.

quantum-troll ★★★★★
()
Ответ на: комментарий от hobbit

А gcc когда-то генерил ассемблерный листинг для последующего ассемблирования

А разве сейчас что-то поменялась? Вроде как до сих пор gcc прозрачно вызывает всё тотже as на этапе ассемблирования, а *.s генерит в /tmp. С ключом -S GCC его просто из /tmp перекладывает в build-dir.

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

и да и нет. Количество С программистов изо дня в день становится все меньше, а раста - наоборот, больше. Через какое-то время есть шанс что любой проект на С станет «неподдерживаемой помойкой».

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

Это никак не отменяет факта доступности.

Это не отменяет, это напрямую ему противоречит.

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

Снес системный rust, собрал через rustup.

# ls -l | grep gitui
-rwxr-xr-x   2 xi xi 153148304 сен 20 14:06 gitui

Но размер... Я аж в цифрах запутался. 153 148 304.

Консольный бинарник размером 153 мегабайта???

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

Ну не знаю. :) Может, от версии libgit2 зависит, или libc.

$ stat /usr/local/bin/gitui                                                                                                                                                                                                        

Size: 7789632

Правда, я так делаю: $ RUSTFLAGS="-C target-cpu=native" cargo build --jobs 2 --release.

Но даже ~8Mb для «безопасной» обёртки над libgit2 - это чересчур.

dataman ★★★★★
()
Последнее исправление: dataman (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Язык доступный для понимания широким массам. А не монада какая-нибудь.

Ну тогда по нынешним временам это питон или джава скрипт, а не си…

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

То есть в начале всё просто и легко, а потом ты падаешь в кроличью нору полную всякого безумия, в противопоставление случаю, когда «тяжело в учении, легко в бою»

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

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

Хех, этот бинарник еще и не переносимый. Линукс такой линукс.

./gitui: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./gitui)

Xintrea ★★★★★
()

Почему через 1 комменты разные? Так это плохо или хорошо? Я так понимаю, что заставлять и переписывать никто не будет. Будет просто возможность писать модуль на Rust и всё?

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

чтобы был переносимвый бинарь таргет над брать:
x86_64-unknown-linux-musl
и делать статическую сборку.
в таких условиях уже труъ портабельность
елси хочется труъ^труъ то можно попробовать с этим таргетом собрать
https://github.com/ahgamut/rust-ape-example

Ptech
()
Ответ на: комментарий от quantum-troll

Если без маркетинга (зачастую вредного) про безопасность, то поинт очень простой: контроль над алиасингом.

Про нечитаемый синтаксис чудо-языка уже говорили?

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

Количество С программистов изо дня в день становится все меньше, а раста - наоборот, больше

Здесь должен быть старый прикол про Ахиллеса и черепаху.

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

Будет просто возможность писать модуль на Rust и всё?

Вангую что сторонники ЛГБТR возбудятся и будут требовать дайвёрсити, путём принятия полурабочих модулей вместо рабочих, но написанных без уважения на этом вашем карбононеугодном Си.

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

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

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

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

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

То есть если компилятор есть, но пользуется промежуточным кодом, ты считаешь, что «язык несамостоятельный»? Ну тогда из существования clang можно сделать вывод о несамостоятельности Си — он тоже llvm использует.

нет, в этой логике несамостоятельным я могу отнести реализацию clang. ну, это лишь мое мнение. далеко не последней инстанции :)

зы про самостоятельность языка в части раста я говорил именно в его текущей реализации.

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

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

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

Просто использование раста позволяет избежать 90% багов из Си, а если еще чуть постараться и кодить хотя бы средне, то 99%. Так что понятно к чему идет, чтобы драйверы перестали быть решетом

AntonyRF ★★★★
()

Отлично, лучшая новость в этом году!

ponchik-2
()
Ответ на: комментарий от CrX

и нет дикого хаоса и распухания, как было с C++

знаменитые благие пожелания, основанные на... молодости языка :)

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

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

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

Согласен. Так-то Linux стоит на краю пропасти, а теперь сделает огромный шаг вперед.

на краю чего? в связи с чем? Или шаг.... куда? :)

slackwarrior ★★★★★
()

https://thephilbert.io/ - чувак, пилящий поддержку Rust в GCC, регулярно публикует отчёты о проделанной работе. Такими темпами в следующем году этим уже можно будет пользоваться.

Грядут новые времена :-D

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