LINUX.ORG.RU

В linux-next добавлена возможность писать драйверы на Rust

 , linux-next, ,


1

7

В ветку ядра linux-next включен код для написания драйверов на Rust, сам патч. Пока неясно, оставит Линус это или нет, он высказывается довольно туманно, из его слов не совсем понятно, есть ли четкие критерии включения.

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

anonymous

Проверено: Shaman007 ()
Последнее исправление: CYB3R (всего исправлений: 5)
Ответ на: комментарий от praseodim

«Пропал калабуховский дом»

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

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

Линукс всегда был игрушкой для хибсдороф

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

это ещё в прошлом году активно обсуждалось

Обсуждался независимый проект linux-kernel-module-rust. Или дай ссылку на новость про обсуждение втыкания этого чуда в ядро.

До этого в 2017 году обсуждалась идея сделать полный клон ядра линукса на Rust.

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

4 пробела является явным чётким требованием по стандарту, всё остальное не работает.

Это не стандарт языка, зашитый в интерпретатор, а рекомендательное правило. В Питон-3 добавили запрещение в одном коде использовать и пробелы, и табуляцию.

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

4 пробела является явным чётким требованием по стандарту, всё остальное не работает.

Ты отличаешь интерпретатор от линтера вообще?

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

Как нет? 4 пробела является явным чётким требованием по стандарту, всё остальное не работает.

Что значит «не работает»? CPython смотрит, сколько пробелов в самом первом отступе, и его принмает за отступ во всем файле. Т.е. можно и 3 символа сделать, и один, и все это будет работать.

seiken ★★★★★
()

блин. назад компилить ядро целый день? (librsvg что-то долго стал собираться)

samy_volosaty ★★★★★
()

А я что-то не понял, компилятор ржавчины что, не может выдать бинарь с нужным calling convention экспортируемых функций и нужными сегментами? Зачем вообще что-то в ядро для этого тащить? Так, типа углы пометить в общественном месте, что-ли?

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

Линус собственно был не против, даже за

Это откуда такая инфа, можно источник? Там говорили, что будут обсуждать в LKML, уже? Именно не против «обрастать» исходники ядра. Видимо куда приходят «миллионы», там начинается «винда», да в общем с системд уже все пошло не так.

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

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

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

https://lkml.org/lkml/2020/7/10/1261

Пока же речь только о модулях. И здесь важно как себя Rust покажет. На мой взгляд есть 3 основных возможностей развития сюжета, при чём равноценные по шансам.

1-Многим понравится, начнётся массовое клепание\переклепание дров и допил со стороны coreteam всего, чего не хватает для нужд linux-kernel.

2- Интерес будет умеренный, оно будет держаться на плаву, но будет сильно буксовать, ака wayland.

3- Оно обосрётся и через год-два, мы увидим выпил с аргументацией «А там всего 2 драйвера написали, которыми пользуется 1.5 инвалида».

shpinog ★★★★
()
Последнее исправление: shpinog (всего исправлений: 4)
Ответ на: комментарий от Legioner

А кто будет вызывать компилятор? Святой дух?

Очевидно тот, кому вдруг понадобился драйвер на расте. Makefile написать для своего поделия - это теперь типа rocket science?

Или всё же надо в систему сборки включить нужные действия, передавать нужные флаги и тд.

И зачем это в ядре? Может ещё напихать туда барахла для сборки драйверов на паскале, фортране, хаскеле, брейнфаке и ещё чорт знает чём?

Stanson ★★★★★
()

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

bernd ★★★★★
()

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

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

Открой патч да посмотри, как «много» всего добавили в ядро для Rust.

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

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

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

Но зачем это всё в ядре? Ну есть фанаты раста. Ну хотят они драйверы на расте писать. Никто ж не мешает - сделали бы Rust DDK себе и упарывались бы сколько влезет в своём кругу.

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

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

Так что ждём хорошего компилятора для Python (со скобками без отступов) и не жужжим.

Этого не будет, как ты себе представляешь автоматическую сборку мусора в ядре или драйверах? А у раста в этом плане очень крутой подход позволяющий не беспокоиться об утечках без GC. При этом есть прикольные абстракции в виде треитов. Ему в ядре линукса самое место.

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

И зачем это в ядре? Может ещё напихать туда барахла для сборки драйверов на паскале, фортране, хаскеле, брейнфаке и ещё чорт знает чём?

Раст особенный. Будущее низкоуровневого программирования.

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

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

Зато код на сишечки с goto переходами читается идеально.

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

и что это вообще за сегрегация такая? почему именно руст, а не, скажем, сишарп

Ты просто не понимаешь то о чем оговоришь.

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

Раст особенный. Будущее низкоуровнего программирования.

Да что-то как-то не получилось ничего. Растаманы прям кинулись осваивать RISC-V, на жидхабе куча этой хрени даже для GD32VF, вот только там unsafe на unsafe и unsafe’ом погоняет. Смысла никакого, и никому нафиг не нужно, ибо разницы с сишечкой при таком подходе нет никакой. Всё даже только хуже.

unsafe { &(*$GPIOX::ptr()).bop }.write(|w| unsafe { w.bits(1 << Self::OP_LK_INDEX) }); - да на сишечке это и то красивее выглядит.

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

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

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

Без этого к сожалению не обойтись в принципе,

Тогда в чём смысл этой охоты?

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

Да-да, там unsafe как раз для безопасности.

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

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

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

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

Тогда в чём смысл этой охоты?

Попытка хоть как то улучшить ситуацию.

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

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

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

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

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

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

Ну и о чем тут разговаривать? Ты только подтверждаешь мои слова. Все что ты пишешь это твои личные предпочтения которые никому не интересны.

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

Ошибки в драйверах редко связаны со всякими там абстракциями. В основном, ошибки это что-то типа «оказалось что для стабильной работы железки в порт 0xDEF надо записывать 0xEE после операции 0xAA». Никакой раст в этом случае никак не поможет.

В любом случае, а какие минусы?

В ядре и так куча барахла которое нужно полутора калекам. Вон, даже прокрутку в консольке выкинули. Зачем добавлять такое же барахло?

Ну и вообщем - это растрата ресурсов. Те, кто будут пытаться писать нужные полутора калекам драйвера на расте, могли бы например линуксячий USB3 в порядок привести. Там после деятельности небезызветного Сары Шарпа куча дряни до сих пор остаётся.

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

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

По твоей логике можно и икспуху реализовать на ядре линукса, совместимую по драйверам. wait, oh shi^D^D^D

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

В ядре и так куча барахла которое нужно полутора калекам. Вон, даже прокрутку в консольке выкинули. Зачем добавлять такое же барахло?

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

Ну и вообщем - это растрата ресурсов.

Извини, я сразу не выкупил что ты тот самый человек который решает кому чем заниматься.

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

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

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

Извини, я сразу не выкупил что ты тот самый человек который решает кому чем заниматься.

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

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

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

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

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

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

дело не в предпочтениях, а в понятности написанного кода любому

Приятно познакомиться мистер любой.

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

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

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

есть шанс что он их обоих отправит на свалку истории.

Это крайне маловероятно. Тягаться с сишечкой по низкоуровневости ему сложновато из-за многословности (вот нахера делать чтобы asml нужно было всегда заворачивать в unsafe? Что, по asml непонятно что-ли, что unsafe?), а для ооп нужного в драйверах сишечки более чем хватает.

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

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

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

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

хочешь или нет, но это корпоративный стандарт

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

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

избавиться от ансейва невозможно по физическим причинам, раст предлагает его изолировать, идея вполне здравая.

И в чём же тогда смысл этой «здравой идеи», если все засады так и остаются в unsafe? Идея типа здравая, но смысла в ней никакого нет.

Ну не может раст в драйвера, чего такого. Вон, жаба тоже не может, уже лет 25, и ничего, в энтерпрайзе котируется. Расту лучше с жабой соперничать, чем с сишечкой.

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

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

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

собес от человека, утверждающего, что гото это плохо. шик.

То есть ты сейчас собираешься доказывать что goto не вредит читаемости кода? ок бро, удачи тебе.

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

Ну не может раст в драйвера, чего такого.

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

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

То есть ты сейчас собираешься доказывать что goto не вредит читаемости кода?

То, как его используют в ядре обычно делает код гораздо более читабельным. Избавляет от гигантских лестниц из if else например.

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