LINUX.ORG.RU
Ответ на: комментарий от Psilocybe

Ну кратко там пересказать не получится … а так теперь даже firefox сам тычит (предлагает) перевести страницу.

Там даже главного архитектора Windows приплели ;)

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

«Кратко» для Ъ в пересказе Яндекс.Браузера:

Противоречия вокруг Rust в Linux

• Разработчики ядра Linux сталкиваются с сопротивлением использованию Rust.

• Некоторые считают, что смешение языков усложнит поддержку проекта.

Пример конфликта

• Инженер Microsoft Уэдсон Алмейда Фильо ушел из проекта Rust для Linux.

•иРазработчик ядра Кристоф Хеллвиг выступил против добавления кода Rust в ядро.

Аргументы Хеллвига

• Хеллвиг считает, что Rust усложняет поддержку ядра.

• Он предлагает использовать обертки для C-кода, чтобы избежать проблем.

Ответ разработчиков Rust

• Мигель Охеда предложил альтернативу, но Хеллвиг отказался.

• Хеллвиг утверждает, что Rust не должен быть частью ядра.

История и контекст

• В 2001 году Стив Балмер сравнил Linux с раком.

• Хеллвиг продолжает настаивать на своем, несмотря на критику.

Реакция сообщества

• Гектор Мартин считает, что Хеллвиг нарушает Кодекс поведения.

• Мартин призывает разработчиков Rust игнорировать опасения Хеллвига.

Поддержка Rust в Linux

• В октябре 2022 года добавлена поддержка кода Rust в ядро Linux.

• Марк Руссинович утверждает, что Rust безопаснее C и C++.

Разногласия и усилия

• Линус Торвальдс признает, что Rust не всегда приветствуется.

• Сообщество разработчиков Linux продолжает работать над интеграцией Rust.

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

Там вообще то не против Rust как языка, там против много-язычности в ядре.

А вот можете мне объяснить техническую сторону дела? Тут как то обсуждали какой то проект на Rust он для быстрой работы юзал с либу ssl (ну как то так) … Почему писатели дров на Rust не делат также? Почему нужно что то менять в самом ядре для их дров на rust.

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

краткая аннотация

- Можно мы вам раст впендюрим на пол-шишечки?
+ Ну, если только на пол-шишечки, то впендюривайте.
- Получите!
+ Ой! Больно, я не хочу!
- Раньше надо было думать!
rupert ★★★★★
()
Последнее исправление: rupert (всего исправлений: 2)
Ответ на: комментарий от Psilocybe

Краткая аннотация там в фразе сразу после заголовка: «некоторые считают, что мультиязычность приведёт к усложнению поддержки огромного проекта, другие не соглашаются». Собственно, на этом «статью» следовало и закончить, т.к. дальше 100% вода, но тогда не получилось бы сделать вид что это статья и её бы никто не обсуждал.

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

Не совсем понято о чем думал Линус раз разрешил такое? Почему написание дров на си для ядра считается невыполнимой задачей?

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

Почему нужно что то менять в самом ядре для их дров на rust.

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

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

Подробнее к сожалению объяснить не могу - сам не знаю.

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

Нет, самая мякотка в конце. Там намекнули на кары за нарушение CoC. Ждём развития ситуации.

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

Есть люди, которым интересно писать код для ядра на Rust. А на C им не интересно писать. Если реализовать в ядре двуязычие, то можно увеличить число разработчиков. Особенно это актуально в контексте последних событий с национальной дискриминацией.

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

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

unC0Rr ★★★★★
()

Так Линус вроде разрешил ржавого для разработки драйверов, а не для разработки ядра в общем. А в сабже растоман пытается запустить щупальца в dma-подсистему. Получается двоякая ситуация. С одной стороны драйверам некоторых устройств нужно работать с dma, а значит в ржавый должен быть прокинут интерфейс для этого. С другой стороны написание такого клея значит, что в подсистеме dma появится расто-код

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

Ну судя по статье патч пихали в rust/kernel а не в kernel/dma … я правда хз почему это как то влияет на разработчика DMA_API в ядре.

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

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

А зачем расту стандартная библиотека от C в этом случае?

Можно же написать под linux на ассемблере, дергая сисколлы где нужно, и никак вообще не быть связанным с C. Можно скомпилировать либу на C и использовать ее в каком-нибудь питоне не имея исходников этой либы. В случае ядра один скомпилированный модуль не просто как-то там вызывает другой скомпилированный модуль, а оно на уровне исходников как-то должно «объединяться»? Это очередная демонстрация преимуществ монолитного ядра?

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

Если его пихали в rust/kernel, то зачем апрув от ментейнера подсистемы dma?

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

В случае ядра один скомпилированный модуль не просто как-то там вызывает другой скомпилированный модуль, а оно на уровне исходников как-то должно «объединяться»?

Я думаю не на уровне исходников а на уровне этих исполняемых модулей. Типа этот драйвер на руст даст какой то выхлоп в сторону той же ДМА и модуль ядра ДМА уже должен его проглотить и переварить, а для этого создателю ДМА нужно разбираться с кодом драйвера.

Выглядит статья кстати прикольно (или журналисты опять что то напутали) на самом деле это не патч а добавление в rust/kernel нового файла dma.rs и права lib.rs под него. Интересно как они с этим всем потом разбираются, ведь по сути теперь будет два dma-api в ядре …

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

Некоторые считают, что смешение языков усложнит поддержку проекта

См. вавилонская башня.

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

В смысле набрать? Я думаю вряд ли это его решение.

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

Гектор Мартин считает, что Хеллвиг нарушает Кодекс поведения.

Совсем недавно на ЛОРе была статейка, где какой-то «топ линукса» написывал, что «КоК на топов не распространяется». Еще как распространяется! Его и ввели специально, этот КоК, чтоб продавливать им!

Так что еще немножко, и ядро перепишут на Rust под другой лицензией, хехе… Хотя нет, это не смешно.

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

ядро перепишут на Rust под другой лицензией

Зачем бы им это, когда разработка и так в их руках? Даже силами таких государств как Китай и РФ не осилить полноценную разработку ядра линукса в соло или дуо то есть и ход разработки они определить не могут, а если смогут, то и на это есть санкции, как нам недавнее заявление показало. Руст это скорее попильная технология внутри корпораций, чем реальная замена С к настоящему моменту.

Ygor ★★★★★
()

Короче:

If Linus doesn’t [accept it], the [Rust for Linux] project is essentially dead until either Linus or Christoph make a move.

Собственно, нафига ржавчина в ядре, не понятно.

На запросы комментариев, никто TR не ответил.

И Картинко

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

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

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

Линус просто пытается приспособиться к реалиям, он себя всегда позиционировал как «прагматика».

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

Что мешает им написать вообще своё ядро, с БД и Ш?

Так пишут свою ОС Redox с 2015 года. Но ведь это не переписывание, плюс еще надо заниматься поддержкой постоянно. Обычно после того как на очередной rust поделке похайпят её бросают и идут искать следующую цель для хайпа. Вот недавно узнал что в curl какая-то часть кода недавно была написана на rust но видимо не нашлось того кто будет поддерживать это и в результате выпилили.

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

Так и хочется написать - Just clean nikel from Rust :)

robot12 ★★★★★
()

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

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

Вот да, мух отделить от котлет.

Ведь были (да и есть) OpenFormaware/FCode bytecode, что мешает на нём писать драйвера? Ведь Sun, IBM и Apple задумывали это для того что бы железку можно было вытащить из оборудования Sun и воткнуть в IBM и осине не надо было искать драйверы.

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

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

Вот это совсем не понятно. Писать под ядро нужно в любом случае знать архитектуру и т.д. а что касается языка то си на порядок проще (это даже не с++), один синтаксис в Rust чего стоит. Толи они укурились толи постоянно переделывали язык.

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

си на порядок проще (это даже не с++), один синтаксис в Rust чего стоит

Если си на порядок проще, то почему сишники поголовно его не могут осилить и пишут текущий падающий говнокод?

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

Потому что в нем нет защиты от дурака. Это его фича, а плохо это или хорошо - другой вопрос.

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

сам небось из под рустового кода какого-нить работаешь?

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

Потому что в нем нет защиты от дурака.

Так и в Rust нет защиты от дурака. Можно в любом месте вставить unsafe{} и хоть 10 раз NULL разыменовать. Но почему-то так не делают.

hateyoufeel ★★★★★
()

Цирк с клоунами. :)

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

Если язык не может создавать бинарники с сишным ABI, то это проблемы этого языка, и переписывать надо компилятор|линкер этого языка, чтобы С calling convention и C data types поддерживал.

Так что растаманы в очередной раз расписались в своём высокомерии и невежестве. Всё что им нужно, чтобы писать драйверы для ядра - это просто писать драйверы ядра на своём расте. Сделать сайтик, типа rust-linux-drivers.org, выкладывать там out-of-tree более лучшие драйверочки, там, глядишь, если что полезное появитcя, кто-то даже использовать начнёт. Но, как обычно, никто из растаманов это делать не собирался, не собирается, и не соберётся. Будут лезть со своим растом в существующие проекты и рассказывать какой раст замечательный.

Проблема растаманов вовсе не в самом расте, а в том, что оплачиваемый Rust Evangelism Task Force у них есть, а вот программистов на расте у них так и не появилось. :)

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

Так пишут свою ОС Redox с 2015 года

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

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

Так вот почему софта нету, потому что так не делают)))

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

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

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

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

Это идиотизм. С таким же успехом можно было добавить в ядро Паскаль, Си++, Фортран, ПЛ/1, Zig, V и т.п.

И если бы это было прагматичное решение, то даже добавляя какой-нибудь Паскаль, они бы получили огромное количество разработчиков, потому что Паскаль знают все (как минимум исходники на нем все читают, потому что дефакто стандарт для псевдокода) и имеется огромное число (Object)Pascal/Delphi разработчиков.

Но это все равно чушь. Язык Си простой как барабан. Что там можно не выучить — непонятно, тот же Rust гораздо запутаннее.

Ну и некоторые организации, имеющие влияние на сферы применения линукса, усиленно создают сишке репутацию «небезопасного языка».

20 лет назад было все то же самое, только эту музыку пели не Rust, а Java разработчики.

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

С таким же успехом можно было добавить в ядро Паскаль, Си++, Фортран, ПЛ/1, Zig, V и т.п.

С++ — это ужас, летящий на крыльях ночи, которому точно не место в ядре. Фортран умер; да, старый код на нём используется во всяких околонаучных проектрах и даже иногда поддерживается, но и там он потихоньку уступает место, причём аж питонам всяким. А вот Zig в ядре — неплохая идея, я за.

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

Паскаль знают далеко не все, выходите из информационного пузыря. Многие, да. Но программистов, знающих паскаль (а уж тем более желающих на нём что-то писать, да ещё и на уровне ядра), становится со временем меньше, а не больше. С растом наоборот. Поэтому в долгосрочной перспективе это не очень хорошее решение. Как минимум не лучше того, что принято.

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

Потому что как раз если вставят unsafe то Rust из безопасного превращается в точно такой же как и си. И зачем тогда менять один язык на другой?

mx__ ★★★★★
() автор топика

Коротко об авторе Thomas Claburn:

Thomas is a senior reporter at The Register. His specialty lies in government IT, software development, and the ethical use of artificial intelligence. Thomas has nearly 30 years of experience in technology publishing, including roles ranging from magazine section editor to editor-at-large.

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

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

Ээээ… Для кого, простите?

her_s_gory
()
Ответ на: комментарий от vbr

Если реализовать в ядре двуязычие, то можно увеличить число разработчиков

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

her_s_gory
()
Ответ на: комментарий от hateyoufeel

Не добавили потому что никому не надо было, у паскалистов был Oberon со своим ядром :)

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

С++ — это ужас, летящий на крыльях ночи, которому точно не место в ядре.

Только свистни он появится!

C++!

Ну-ка от винта!

Фортран умер;

А ISO'шники с таким же размахом, как Си++ стандартизируют, бедные. Жалко их, такую полезную работу совершают.

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

Вообще это был стеб к тому, что даже Паскаль будет «на уровне».

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

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

Потому что как раз если вставят unsafe то Rust из безопасного превращается в точно такой же как и си.

А точно превращается? Там вроде нет UB на каждый чих.

hateyoufeel ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)