LINUX.ORG.RU

Google профинансирует работу над Rust for Linux

 , ,


0

4

Компания оплатит год работы Мигеля Охеда (Miguel Ojeda) над его проектом Rust for Linux. Работа будет вестись в рамках проекта Prossimo под эгидой организации ISRG (Internet Security Research Group) — учредителя проекта Let's Encrypt.

По данным Microsoft около 70% всех уязвимостей, описанных в CVE, вызваны небезопасной работой с памятью. Написание на Rust таких компонентов, как драйверы устройств, может снизить риск появления уязвимостей.

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



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

думаю бородачи и Линус у которых 40+ лет опыта, лучше знают что и почему.

Если абстрагироваться от иррациональной ненависти Торвальдсва к С++, то единственная причина, по которой С++ не в ядре — это то, что если писать на С++ в стиле С, как привыкла целевая аудитория, то будет сплошное минное поле, потому что в С++ UB больше, чем в С. Да-да, печаль-беда. С точки зрения С-программиста, которому не нужны шаблоны, переход на С++ не окупается. И я с ним бы согласился. RAII — хорошая штука, но не ею единой.

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

Rust хорош тем, что в безопасном подмножестве UB почти нет. И уже одним этим его можно в ядро прописать.

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

Интересный эксперимент же. Я хочу услышать «Nothing is better than Rust» из уст сам знаешь кого).

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

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

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

Забыл ответить, а момент важный.

Сложный код, как правило пишется один раз. Вокруг такого когда делаются библиотеки.

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

Более конкретно. Если мы под «сложным кодом» понимаем какой-нибудь «векторизованный qsort», то да, этот код будет один на все времена. Иногда его будут портировать на новую архитектуру, но это раз в 10 лет, хорошо если. Когда же мы говорим о структурах данных, то их надо много, специализированных, причем под каждую новую задачу. И тут уже в библиотеку один раз и на все случаи жизни не положишь. Библиотека разрастется за пределы адресного пространства. Обобщенное программирование не на пустом месте появилось.

то ты скорее упёрся в low skill

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

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

aist1 ★★★
()

около 70% всех уязвимостей

все проблемы от самизнаетекого

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

Стоят двое, Инженер и @sniper21 у реки. В реке пираньи. Инженер обозначает @sniper21’у старый мост. Говорит, что они могут перейти по нему, и при этом относительно безопасно. Есть, правда, вероятность, что он развалится. @sniper21 решает, что лучше переплыть.

Это всё что нужно знать о @sniper21.

anonymous
()

А чем они собрались компилять этого франкенштейна? Поддержку Rust в GCC не факт что за год допилить успеют.

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

Кто мешает всякие инструментальные средства контроля С кода пилить, вроде valgrind-ов, sanitizer-ов всяких, статических анализаторов (да хоть, извиняюсь, PVS Studio), которые эффективно устремляют вероятность ошибки работы с памятью к нулю.

Тьюринг мешает. Он в 36 году доказал неразрешимость проблемы остановки. Невозможно это в принципе. Да и вообще, где логика, зачем пилить костыли если можно решить проблему по-человечески?

khrundel ★★★★
()

Если бы да кабы …

Google профинансирует работу над Rust for Linux

То что «дурак» меньше ошибок сделает при работе с памятью - хорошо.
Но, «дурак» силен на написание дурацкого кода.

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

К примеру Java, .Net, … имеют тысячи классов с десятками методами и свойствами.
Вроде все логично …
Но программист должен знать этот API и должен всю эту МУДРОСТЬ правильно «увязать» в какой-то алгоритм.

Вот они бедные и выдают «на гора» ГОРУ не читаемой муры.

Rapid системы разработки возьмут «на себя» большую часть всей рутины, возникающей при разработке кода.

Такой подход много упростит разработку, но

Дурака не победит

Чтобы победить «дурака» нужны не rapid системы, а системы в которых программист не пишет код, а говорит «мне нужно то-то и то-то. В результате должно быть то-то и то-то».

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

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

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

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

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

Единственно, что понял из поста так то, что

Вася - рукожоп

Будем знать …

anonymous
()

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

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

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

Гм., хорошая идея.
Сишное ядро не трогаем, а пишем такое-же на Rust.
И все проблемы сразу решатся …

anonymous
()
Ответ на: комментарий от anonymous-angler

Может и так, поскольку побеждает не тот кто технически лучше а тот кто кем то пиарится. Опять же как заставить покупать раму, цпу и прочее ? В результате имеем приложения на жс и расте …

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

Пусть Андрей редокс форкнет.

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

Как будто в С++ нельзя также писать. И в Расте тоже можно писать опасно и они так и делают когда хотят скорость поднять. Так что техническое преводстходство Раста это сказка, остаеться только маркетинг.

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

И все проблемы сразу решатся …

Это конечно сарказм был.
Но вот сравнить работу Linux с Сишным и Растовским ядром было бы не плохо.
Может на форуме кто возьмется за эту работу?

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

А гугля это профинансирует ? ;)

Здесь вы правы.
При финансировании этой работы очередь бы на выполнение этой работы растянулась от Берлина до Москвы …

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

И потом нельзя сравнивать Си и Раст, нужно сравнивать С++ и Раст.

Речь шла вовсе не о сравнении языков …

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

Здесь вы правы. При финансировании этой работы очередь бы на выполнение этой > работы растянулась от Берлина до Москвы …

Google профинансирует работу над Rust for Linux

Детский сад какой-то …
Ядро переписать на Rust, это я понимаю, а здесь год кто-то будет делать «улучшения».

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

вторая состоит из точно таких же, только в них меньше садомазохистских наклонностей

Оценочное суждение, ничем не подтвержденное. Писать драйверы на Rust - тот еще мазохизм.

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

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

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

systemd это приложение и оно другое. Это типа как Х11 и вайланд. А Раст всего лишь ЯП и он нужен для создания приложений и плодить их нет особого смысла. Почему то все стараються юзать один (пусть даже англ.) язык а не плодят их для еще более разобщения.

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

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

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

Опечатался: «не понимаю» - «не понимая».

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

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

Как то вот сразу представилась тусовка студентов, которые идут на демонстрации с плакатами на которых написано

Не нужно
anonymous
()
Ответ на: комментарий от anonymous

Просто спрошу, к примеру как раньше следили что демон/сервис запущен ? Запустили и не хай ?

Если мне приведут техническое док-во чем Раст лучше/безопаснее С++ я пойму зачем нужен Раст.

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

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

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

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

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

Lrrr ★★★★★
()

Google профинансирует работу над Rust for Linux

У нас на форуме имеются талантливые люди.
Могли бы к примеру @metaprog поручить эту работу.

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

А вот гугл и т.п. лезут со своим растом туда, куда их не звали

Это нормально также лезли и с ява (а как лезли, раст может от зависти помереть) и с руби и с питоном и с go. Да и с С++ тоже самое было в свое время.

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

Насколько я понимаю, там вопрос в рантайме, который у плюсов слишком жирный, вопрос линковки и всякое такое - Линусу не нравится.

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

Хороший код на Rust обязан включать в себя проверки санитайзерами и miri.

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

Продолжай говорить как дебил дальше: «Если скомпилировать, то работает. Бороу чекер от всего защит».

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

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

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

В С\С++ практики программирования тоже не сразу сложились.

И тут уже в библиотеку один раз и на все случаи жизни не положишь.

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

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

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

Большое преимущество с\с++ было в времени их появления. Они естественно развивались с развитием всей отрасли. Тот же rust появился в тот момент, когда она разрослась до больших размеров, и он просто объективно не может охватить все её аспекты, которых стало очень много.

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

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

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

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

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

anonymous-angler ★☆
()
Ответ на: комментарий от eternal_sorrow

На Швабре недавно была статья… luajit быстрее этой вашей сишки >2 раза!

anonymous
()
Ответ на: комментарий от anonymous-angler

Я вообще то Вас не оскорблял. Я практик и набор инструкций проца как бы не меняется в зависимости от ЯП.

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