LINUX.ORG.RU
ФорумTalks

Конец драмы приближается или всё ещё впереди?

 , , ,


0

6

Сегодняшняя цитата от Christoph Hellwig

https://lore.kernel.org/rust-for-linux/Z7SwcnUzjZYfuJ4-@infradead.org/

while Linus in private said that he absolutely is going to merge Rust
code over a maintainers objection. (He did so in private in case you are looking for a reference).

So as of now, as a Linux developer or maintainer you must deal with
Rust if you want to or not.

Что же теперь будет? Раскол и старообрядцы?

Перемещено Dimez из general


Ответ на: комментарий от gaylord

Это чем-то подверждено или опровергнуто? Мне, пользователю, все равно, главное чтобы работало. А что там, раст, си, ада или перл все равно.

dmitry237 ★★★★
()

Нужен тег «лвир» (Линуса вон из разработчиков)!

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

Да, соотношением сишных багов к логическим. Сишных в разы больше.

Ну это пока на расте массово писать не начали. У вас ошибка сравнения масштабов.

Как же новые джаваскриптизеры от мира компилируемых языков рвутся застолбить себе полянку в мейнстриме, what a fascinating behavior (c)

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

У вас ошибка сравнения масштабов.

Не, нету. В расте просто нет огромного класса сишных проблем с памятью и UB. А новых он особо не добавляет.

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

Да, соотношением сишных багов к логическим. Сишных в разы больше.

Я думал у вас готовая статистика на счет kernel panic с привязкой к си/раст.

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

Врядли gccrs пилят для ядра и врядли оно будет пригодным для ядра.

Вряд ли начали для этого. Но это rust с бекендом gcc. Ядро преимущественно собирается gcc. Почему не собирать его gccrs?

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

запомните это твит (с)

Ну можешь попробовать принести новые классы проблемы с памятью и UB, которые Rust добавляет к сишными.

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

Я думал у вас готовая статистика на счет kernel panic с привязкой к си/раст.

Можем почитать Greg KH (заместитель линуса и мейнтейнер -stable ядер):

As someone who has seen almost EVERY kernel bugfix and security issue for the past 15+ years (well hopefully all of them end up in the stable trees, we do miss some at times when maintainers/developers forget to mark them as bugfixes), and who sees EVERY kernel CVE issued, I think I can speak on this topic.

The majority of bugs (quantity, not quality/severity) we have are due to the stupid little corner cases in C that are totally gone in Rust. Things like simple overwrites of memory (not that rust can catch all of these by far), error path cleanups, forgetting to check error values, and use-after-free mistakes. That’s why I’m wanting to see Rust get into the kernel, these types of issues just go away, allowing developers and maintainers more time to focus on the REAL bugs that happen (i.e. logic issues, race conditions, etc.)

I’m all for moving our C codebase toward making these types of problems impossible to hit, the work that Kees and Gustavo and others are doing here is wonderful and totally needed, we have 30 million lines of C code that isn’t going anywhere any year soon. That’s a worthy effort and is not going to stop and should not stop no matter what.

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

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

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

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

Так я и говорю – на какие? Какие унесет мы знаем (UB, UAF, off-by-one и прочее), а какие принесет-то? Или это просто тревожность «абы не было чего»?

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

Ну захотели переписать, на Rust, заодно провести полный аудит кода. Конечно 30е6 строк, это задача не из простых, но если решились на такое, то почему бы и нет. «Все пропало» этим не пахнет, будут постепенно переписывать, заодно приведут в порядок и даже может быть оптимизируют. На счет производительности не знаю.

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

Так я и говорю – на какие?

Да, вы открываете рот, в ваших словах есть буквы, но это все мимо тк вы до сих пор не понял смысл сообщения. Why are you geh?

Я в последний раз напишу о том что имею ввиду проблемы которые вылезут только после начала активного массового использования языка (чего пока нет), а не MEM/OOB related UB. Поймете - хорошо, не поймете, ну и ладно.

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

Ну захотели переписать, на Rust, заодно провести полный аудит кода. Конечно 30е6 строк, это задача не из простых, но если решились на такое, то почему бы и нет. «Все пропало» этим не пахнет, будут постепенно переписывать, заодно приведут в порядок и даже может быть оптимизируют. На счет производительности не знаю.

Так никто не собирается все переводить. Это вообще ещё на стадии эксперимента. C в ядре до талого, вопрос в процентах.

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

Я в последний раз напишу о том что имею ввиду проблемы которые вылезут только после начала активного массового использования языка (чего пока нет), а не MEM/OOB related UB. Поймете - хорошо, не поймете, ну и ладно.

То есть, тревожность. Ясно.

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

люди боятся работу потерять, как тут не тревожиться

Никто не потеряет работу, какая разница на чем код писать?

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

stupid little corner cases in C

Things like simple overwrites of memory (not that rust can catch all of these by far), error path cleanups, forgetting to check error values, and use-after-free mistakes.

А почему они решили поменять язык вместо того чтоб выпустить методичку для разрабов как избежать этих ошибок и смотрели бы в код при мердже что все это соблюдается? Ну типа пишет же Cшный код кто-то с нормальной «обработкой» этих проблем. Какие-то алгоритмы не всегда можно в голове прокрутить и понять какие там могут быть проблемы, но ошибка типа «забыл проверить возвращаемое значение» должна детектится даже автоматическими средствами. Они там пишут ведро на «тридцать миллионов строк», которое работает на огромном количестве оборудования, но не могут сделать себе какой-то анализатор (или прикрутить готовый)?

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

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

Потому что это не работает. Эта методичка уже есть. Есть ревьюверы. Есть тестирование. Это не помогает. C сломан by design, это всегда было и всегда будет.

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

Ну типа пишет же Cшный код кто-то с нормальной «обработкой» этих проблем.

Нет. Никто не пишет. У всех одни и те же проблемы. Т.е. большую часть времени он работает (если протестировали), а потом БАБАХ.

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

Должна. Иногда даже детектится.

. Они там пишут ведро на «тридцать миллионов строк», которое работает на огромном количестве оборудования, но не могут сделать себе какой-то анализатор (или прикрутить готовый)?

Прикручен, и не один. Они не покрывают всех случаев и дают лютейший false positive.

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

Я не понимаю почему люди с таким упорством берутся его защищать.

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

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

КУДА Н***Й А НУ СТОЯТЬ НАЗАД УБЬЮ СУКА - вполне понятная реакция.

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

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

Но ведь нет же. Появился Go – решил проблему с джавой. И даже не начинай, Go потребляет КРАТНО меньше ресурсов чем сраная джава и куда лучше интегрирован в *NIX.

КУДА Н***Й А НУ СТОЯТЬ НАЗАД УБЬЮ СУКА - вполне понятная реакция.

Но ведь речь вообще не о новом языке:

For myself I can and do deal with Rust itself fine, I’d love bringing the kernel into a more memory safe world, but dealing with an uncontrolled multi-language codebase is a pretty sure way to get me to spend my spare time on something else. I’ve heard a few other folks mumble something similar, but not everyone is quite as outspoken.

Это тот самый Кристоф.

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

В расте просто нет огромного класса сишных проблем с памятью и UB. А новых он особо не добавляет.

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

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

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

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

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

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

Тем, что все они позволяют свалиться в сегфолт без особых усилий.

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

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

Так и слава богу что лазят не только сраные корпораты.

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

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

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

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

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

Врядли gccrs пилят для ядра и врядли оно будет пригодным для ядра.

Вряд ли начали для этого. Но это rust с бекендом gcc. Ядро преимущественно собирается gcc. Почему не собирать его gccrs?

Например потому, что качество gccrs будет явно ниже оригинального rustc и по фичам он так же может отставать.

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

Потому что это не работает. Эта методичка уже есть. Есть ревьюверы. Есть тестирование. Это не помогает. C сломан by design, это всегда было и всегда будет.

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

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

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

Потому что ни у кого не получилось сделать это достаточно хороошо за 50 лет.

gaylord
()
ИФ ай_вона_би_раст_бай_ю
        мейк эмэйзинг_раст_шэдулер
ЕЛСЕ мейк фартнакер_си_шедулер
R_He_Po6oT ★★★★★
()
Последнее исправление: R_He_Po6oT (всего исправлений: 1)
Ответ на: комментарий от gaylord

Я тут недавнего Лундюка посмотрел, он рассказывал, что в коде нового растовского десктопа нашли кучу дыр. Как-то так. Не спасает

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

Как же у компилятора Rust это получается лучше?

Потому в Rust более более сильная система типов и куда более определенное поведение.

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

Я тут недавнего Лундюка посмотрел, он рассказывал, что в коде нового растовского десктопа нашли кучу дыр. Как-то так. Не спасает

Он рассказывал про memory leaks. От этого не спасает, но этого никто и не говорил.

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

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

И главная проблема не в языке как таковом, а что вместе с ним втаскивается. Один сторонник Rust’а грозился натравить толпы из твиттера. Другой вот сливает частные обсуждения, ставя собеседника в очень неудобное положение, где тот будет вынужден оправдываться.

Почему вместе с Rust всегда приходит такая драма?

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

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

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

И главная проблема не в языке как таковом, а что вместе с ним втаскивается. Один сторонник Rust’а грозился натравить толпы из твиттера.

Обычный вторник в LKML.

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

Ditto.

Почему вместе с Rust всегда приходит такая драма?

А точно вместе с Rust? Может просто там место проклятое?

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

Обычный вторник в LKML.

А точно вместе с Rust? Может просто там место проклятое?

Что-то я не слышал про натравливание толп из твиттера раньше. Уже было?

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

Что-то я не слышал про натравливание толп из твиттера раньше. Уже было?

Так и тут не было, чувак просто написал «Thinking of literally starting a Linux maintainers hall of shame. Not for public consumption, but to help new kernel contributors know what to expect.» у себя в мастодоне. Без имен, без ссылок, просто пошел побомбить себе в ЖоЖо.

Действительно, имена называл и говорил что выгнать надо: https://kiwifarms.st/attachments/marcanlol-png.6940720/

Но опять же, без призывов к насилию и «парни засрите тред позязя». Примерно то же самое делал Кент Оверстрит, когда ему жопу рвало: https://www.patreon.com/posts/trouble-in-116412665

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

Вопрос был не про документацию, а про сравнение систем типов. Что в Rust там более сильного?

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

Вопрос был не про документацию, а про сравнение систем типов. Что в Rust там более сильного?

Все. Там буквально все строже и более выразительно.

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

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

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