LINUX.ORG.RU
ФорумTalks

FAQ по Rust в ядре

 , ,


0

5

Привет, ЛОР!

В связи с ожесточёнными спорами вокруг внедрения языка Rust в ядро Linux, разработчик ядра Мигель Охеда (Miguel Ojeda) опубликовал список вопросов и ответов на них касательно сложившихся практик в разработке ядра и как это затрагивает Rust.

Тыц: https://rust-for-linux.com/rust-kernel-policy

В частности, следует отдельно упомянуть, что внедрение Rust поддерживается достаточно больших количеством разработчиков и мейнтейнеров ядра, включая таких людей как Greg Kroah-Hartman.

Ответа на вопрос, почему в растосообществе столько пориджей, там нет. Так себе фак.

apt_install_lrzsz ★★★
()

В частности, следует отдельно упомянуть, что внедрение Rust поддерживается достаточно больших количеством разработчиков и мейнтейнеров ядра, включая таких людей как Greg Kroah-Hartman.

а как соотносится «достаточно большое количество» ко всему количеству? скока вешать в граммах, цифру давай!

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

По ссылке есть PDF, в нём начиная с 45 страницы одобрительные цитаты разработчиков. Там 40 страниц где-то.

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

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

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

alysnix ★★★
()

Даже домен купили, серьёзный подход.

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

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

Там пока речь только о драйверах.

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

Никак. Это чисто растовая фишка. Другой вопрос, что она опциональна, и для сишных функций (которые помечены extern "C") не должно быть лайфтаймов, параметрических типов и прочего.

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

mg хватит всем. Пайк говорит, что подсветка синтаксиса для тех, кто в детстве фломастерами не наигрался.

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

Там пока речь только о драйверах.

что означит «пока»… ну допустим осилят они драйвера, все равно дальше полезут в реализации всяких там api и прочих кернелов, а эти api на си и по сути стандарт.

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

лысый хартман будет что-ли все вместо них переписывать? и на этом линукс закончит свое существование

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

что означит «пока»… ну допустим осилят они драйвера, все равно дальше полезут в реализации всяких там api и прочих кернелов, а эти api на си и по сути стандарт.

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

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

Хотя сам я подсветкой почти не пользуюсь.

Почему? В чем прикол не пользоваться преимуществами цветного зрения?

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

Отвлекает. Если я захочу посмотреть на красивые цветные картинки, я схожу в Третьяковку.

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

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

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

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

ну так поведай, умный человек, они работают.

Ведаю: они никак не связаны с API языка и напрямую связаны с механизмом системных вызовов конкретной аппаратной платформы. Для amd64 смотри на ассемблерные инструкции SYSENTER/SYSEXIT.

ты гарантируешь, что все сишное api линуха останется прежним, если внутри будет руст?

Это гарантируют разработчики ядра. Потому что оно не является сишным, на самом деле.

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

ведущий гомосексуалист ядерной разработки

Не удивился бы, если такая должность на самом деле существовала: Lead Gayveloper.

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

Его фурисьют на химчистке и дезактивации после вчерашней оргиирелиз пати.

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

Для amd64 смотри на ассемблерные инструкции SYSENTER/SYSEXIT.

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

alysnix ★★★
()

я плакать. майкрософт запилил project verona - какой-то свой языг со владениями.

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

вот и верь после этого в «ваня, я ваша навеки!»

https://github.com/microsoft/verona/tree/master/src

https://en.wikipedia.org/wiki/Project_Verona

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

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

Он это делал с самого начала. Откуда у тебя такая истерика?

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

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

В чём преимущество цветного текста, кроме того, что выглядит красиво как на картинках у скиллфактори?

skiminok1986 ★★★★★
()

Какая-то просто супервсратая навигация. Впрочем, я не удивлен.

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

В знаки на дорогах ты не втыкаешь часами. Ты как вообще на ЛОР ходишь-то? Тут текст не цветной, прилагательные от глаголов цветом не отличаются, но ты при этом всё равно как-то способен прочитать написанный мной текст. Я хочу верить, что способен, по крайней мере.

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

Видно незакрытую строку, ошибку в keyword если он не подсвечен.

Если это семантическая подсветка, то цвета разные у функций и макросов, что тоже плюс.

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

Потратил обед что бы прочитать, интересное начинается с 33 страницы по 40вую. У всех появилась работа и в целом у большинства нет времени на RfL.

Возникли два вопроса:

  1. Что для чего, RfL для rustc или наоборот?

  2. Ради одного драйвера Red Hat тащить в ядро еще один язык?

По страницам 47 до 74: Ничего особенного, пожелания проекту хорошего плавания.

Imho мякотка - “We need younger people interested and involved with Linux kernel, and in my experience, fewer college grads are learning C. The Rust language supposedly adds to the pool of talent that would otherwise not readily be able or want to contribute, so I guess that’s good.”, нужно свежее мясо, старый C уже не вштыривает студентов. Ну и второй посыл «memory safety» - впрочем, я не совсем понимаю как внутри ядра можно это реализовать :) у тебя там нет кучи всего.

Интересна 112 страничка

Ну и вопрос - нафига этот эксперимент тащить в ядро?

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

Вот кому-кому, а Пайку я бы верить не стал.

Встречают по одежке, провожают то по уму.

Хотя сам я подсветкой почти не пользуюсь.

Видел ты постил темы к Имаксу. Да, скучновато, как по мне.

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

Не удивился бы, если такая должность на самом деле существовала: Lead Gayveloper.

Уже среди нас @gaylord

Он кстати в том числе в ядро за деньги код суёт. Натурально ядерный gay lord!

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

Встречают по одежке, провожают то по уму.

По уму, я за Пайком особых достижений так и не вспомню. То есть, да, чувак прославился на почве юниксов, потом бегал и пытался присунуть свой Limbo всем подряд и в итоге присунул его гуглу под видом Golang. Круто, конечно, но таких людей сильно больше одного и они все говорят разное. Кому из них верить? А хер знает, на вкус и цвет.

Видел ты постил темы к Имаксу. Да, скучновато, как по мне.

За радугу нынче могут и посадить, сам знаешь. Приходится прятать её даже из редактора кода.

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

Они на серьезных щщах предлагают следующее:

Who is responsible if a C change breaks a build with Rust enabled?

The usual kernel policy applies. So, by default, changes should not be introduced if they are known to break the build, including Rust.

However, exceptionally, for Rust, a subsystem may allow to temporarily break Rust code.

Т.е. человек не знающий Rust (и не желающий тратить время на его изучение) отправляет полностью рабочий коммит с кодом на С. Коммит ломает сборку проекта с включенным Rust. Стандартная политика говорит о том что фиксить должен тот кто отправил коммит, причем непонятно - фиксить С или rust код? Случаи то разные бывают. При том что Rust мейнтейнер не знает и изучать не собирается.

Тут даже до адептов раста дошло что тут что-то не так с логикой и они такие: а давайте в этом случае сделаем исключение. Вот только они скромно умалчивают о том КТО конкретно должен в этом случае фиксить код?

Единственное, что они выдали по этому поводу: The breakage should nevertheless be fixed as soon as possible, ideally before the breakage reaches Linus. Буквально, ломайте, но нужно исправить пока Линус не видит.

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

Вкусно? Еще как, я бы даже сказал - нажористо.

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

По уму, я за Пайком особых достижений так и не вспомню.

Вы бы, хотя бы wiki почитали.

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

Ну и вопрос - нафига этот эксперимент тащить в ядро?

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

когда мир устроен таким образом, ожидать можно чего угодно, но и рухнуть это может в один момент.

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

довольно очевидно, что руст - это повесточка

Фига себе «повесточка» (как бы пробел в слове в стиле скепыша не вставить), году эдак в 2014, заглядывался на Rust, так как много общего с Go-lang из Alef они вытащили, но разработка Rust встряла, и мне он стал не интересен, а тут его в ведро пихают.

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

По уму, я за Пайком особых достижений так и не вспомню.

Go и его предшественники, Plan 9, Inferno, был членом UNIX-отдела где работал над графическими терминалами, UTF-8.

Круто, конечно, но таких людей сильно больше одного и они все говорят разное.

Ну Ньютон тоже не один ученный на весь мир.

Кому из них верить?

Владимир Владимирович говорит, что верить никому нельзя. Но ему можно.

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

Видно незакрытую строку, ошибку в keyword если он не подсвечен.

Это подчёркиванием видно.

Если это семантическая подсветка, то цвета разные у функций и макросов, что тоже плюс.

Вот это аргумент, пожалуй.

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

Это подчёркиванием видно.

Я думал такие украшательства входят в «подсветку синтаксиса».

Если это семантическая подсветка, то цвета разные у функций и макросов, что тоже плюс.

Вот это аргумент, пожалуй.

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

https://i.pinimg.com/736x/c2/68/4d/c2684dcae32ce2fbf50bff9540fc9f73.jpg

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

Go и его предшественники, Plan 9, Inferno, был членом UNIX-отдела где работал над графическими терминалами, UTF-8.

Стоял где курили, сидел где пили, лежал где трахались. В этом всём очень много людей участие принимало.

Ну Ньютон тоже не один ученный на весь мир.

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

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

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

Что именно повесточного в Rust? Проверка жизни разных значений во время компиляции сделала тебя геем?

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

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

Пайк не такой!

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