LINUX.ORG.RU

Линус высказал своё мнение о Rust в ядре

 , ,


2

4

Поживем - увидим

Мне интересен проект внедрения Rust в ядро. Но я считаю, что авторы этого проекта предвзяты по отношению к Rust, и хотелось бы сначала посмотреть, как это обернется на практике.

Лично Торвальдс не продавливает Rust в ядро, но он «готов оценить обещанные преимущества и возможность избегания граблей, связанных с безопасностью», но также понимает, что «иногда обещанное не исполняется».

Торвальдс полагает, что первоначальной областью применения Rust в ядре могут быть драйверы, поскольку их написание представляет собой множество небольших и независимых задач. «Может, это не самое интересное применение, но оно самое очевидное». Он добавил, что поскольку многие устройства предназначены не для всех процессорных архитектур, недостаток их поддержки в Rust – не такая большая проблема.

>>> Источник

anonymous

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

Примерно так:

asm!("xor %eax, %eax" ::: "{eax}");
Макросы есть, но они совершенно не похожи на макросы из Си/С++. Они сложные, писать их геморно, они подчиняются областям видимости и они никак не могут совпасть с идентификаторами пользовательского кода. Собственно, директива asm! в примере выше - это макрос. Они всегда заканчиваются восклицательным знаком и перепутать их с функцими просто невозможно ни кодеру, ни компилятору. Чем предполагается заменить макроопределения и что там с прагмой?

Чем предполагается заменить макроопределения и что там с прагмой?

Есть директивы компилятору, вроде такой:

#[cfg(test)] 
Они многочисленные и всеобъемлющие, их можно поределять самостоятельно при необходимости.

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

Проблем с блобом не испытывал со времён GT9600 даже под фряхой.

Ну так перекатись на вейланд.

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

хочешь пиши на Си, хочешь на Расте

кто хочет писать на расте давно может это делать тут

https://github.com/redox-os/drivers

но обновлений нет месяцами

Все в плюсе

растовики отвлекают людей от работы как назойливые мухи

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

Из этого не следует, что развитие языка на стандартах как c\c++ = говно, как и не следует что развитие в другой парадигме = говно.

У раста с плюсами одна и та же парадигма.

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

растовики отвлекают людей от работы как назойливые мухи

И много лично ты наработал? Или пока больше на лоре?

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

откуда ты знаешь на чем его пишут, исходники смотрел?
с сайта производителя ОС для управления этим ровером: «VxWorks is the only RTOS to support LLVM, C++17, Boost, POSIX, Rust, Python, and containers — so you can use the languages and tools you love most and increase productivity and code portability.»
можно не только на расте, но и на питоне написать что-нибудь под неё =)

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

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

«элементарно, Ватсон!» — гордыня.

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

кто хочет писать на расте давно может это делать тут

https://github.com/redox-os/drivers

А кто указывает и по какому праву ?

но обновлений нет месяцами

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

растовики отвлекают людей от работы как назойливые мухи

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

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

У раста с плюсами одна и та же парадигма.

Речь про парадигму развития в плане стандартизации.

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

Не забыл, просто не вижу связи, ожидал, что вы развернёте мысль. А то так всё что угодно можно написать: «Линуксу очевидный капец, т.к. завтра 26 марта, пятница».

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

не считаю нужным рассказывать тебе о своей работе

Ожидаемо.

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

А кто указывает и по какому праву ?

никто, а почему вы спрашиваете ? Есть проект с нуля на расте, очень популярный и востребованный (13к звёздочек), нет легаси на С, микроядро, драйверов нет - поле для растодеятельности непаханое. Но никто не пашет и не сеет. Только чужие поля удобряют.

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

Запрещаешь ?

зачем запрещать то что ты сам не сможешь ? Если бы мог написал бы уже что-то для редокса. Мне главное чтобы всё работло как и раньше.

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

Мне главное чтобы всё работло как и раньше.

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

Хочешь пиши на Си, хочешь на расте. Больше возможностей, без каких либо лишений, все в плюсе.

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

Так оно и будет работать как раньше. Просто появится возможность писать на ещё одном языке

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

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

с эксепшенеами, gc

в расте? — вы пьяны!

подвисаниями, пожиранием памяти, и медленной работой далёкой от реалтайма

Макс Лапшин запилил прошивку для камер, расскажи ему как у него все плохо.

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

Если всё работает хорошо и нет проблем

Это застой и стагнация.

значит нужно сломать и создать проблемы, что бы потом эти проблемы решать

Это называется развитие, эволюция ...

Это главный принцип открытого программного обеспечения.

не только, это вообще отличительная черта человеков.

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

в демьяне, центе, бубнте есть ядра с CONFIG_PREEMPT_RT=y

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

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

Скорее всего если всё пойдёт в этом направлении, поддержку допилят ускоренными темпами в GCC.

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

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

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

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

Раст мало похож на С++.

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

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

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

А нужно ли это делать на опыте с coreutils - вот это вопрос. М.б. надо поробовать что-то типа http сервера, и такой опыт будет релевантнее для ниши раста. Потому что в утилитках типа ripgrep ошибки искать легче, чем в многопоточном сетевом сервере. Сложные системы, в которых какой-нибудь хитрый рейскондишн хрен воспроизведешь, который случается раз в году в полнолуние при работе 24х7х365 - вот из-за таких же проблем вообще начали всерьёз думать о таких языках, как раст. Не из-за утилиточек, которые админ васян склеивает пайпами в скриптец, и которые можно править прямо в процессе эксплуатации. Для сложного сервака могут быть одни удобства, для васянского скрипта - совершенно другие.

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

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

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

Большое спасибо за развернутый ответ. а как обстоят дела с директивами типа #IFDEF || #IFNDEF ? Можно ли подобным образом организовать компиляцию под несколько вариантов аппаратных исполнений.

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

Есть плохие новости для тебя

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

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

Это застой и стагнация.

Поэтому, колёса нужно делать квадратными. Что бы был прогресс.

Это называется развитие, эволюция …

Это называется - сам себе ногу прострелил.

не только, это вообще отличительная черта человеков.

Абсолютно согласен. История ничему не учит.

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

разумной технической стороной сообщества

«добавим потому что не мешает» - давно ли это стало разумным техническим аргументом ?

поддержку допилят ускоренными темпами в GCC

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

https://www.morello-project.org/

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

Это называется развитие, эволюция …

И часто ты себе ноги ломаешь во имя развития и эволюции? А от застой и стагнация.

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

Да, так же директивами, начинающимися с #. Точно сейчас не скажу, какими именно, это надо лезть в справочник по API.

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

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

Ну я не знаток раста, да. Но догадываюсь, что речь идет о знаменитом ограничении - только одна мутабельная ссылка на объект?

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

зачем нужен раст если есть расширение CHERI которое делает все те же проверки что и раст аппаратно

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

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

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

«добавим потому что не мешает» - давно ли это стало разумным техническим аргументом ?

Если есть резон то да. А он есть, как минимум на бумаге. Это признаёт сам Линус, но нужно проверить как бумага с практикой сопоставляются.

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

только машинный код, только хардкор.

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

дело в том что твой говнокод на расте всё равно нужно проверять

Троль что-ли? Толстовато чёт. Как тебе должно проверяться на этапе компиляции то, что вычисляется во время выполнения например?

Твои великие размышления можно и дальше продолжит, представить - этот говнокод ещё и писать приходится.

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

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

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

этот говнокод ещё и писать приходится

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

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

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

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

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