LINUX.ORG.RU
ФорумTalks

Ядро хотят переписать на Rust

 , ,


0

6

Французский разработчик, действующий под псевдонимом Dominus Carnufex, на практике продемонстрировал реалистичность идей по переписыванию ядра Linux на языке Rust. В настоящее время Rust уже хорошо показал себя в качестве языка низкоуровневого системного программирования и даже существует несколько проектов по разработке новых операционных систем на языке Rust. Автор исследования относится к проектам по созданию новых ОС скептически, считая, что у них нет шансов на завоевание рынка. При этом, более реалистичным выглядит постепенная переработка ядра Linux на Rust, что позволило бы решить многие проблемы с безопасностью.

https://www.opennet.ru/opennews/art.shtml?num=46652

Deleted

Это хорошая идея? Мне интересно.

targitaj ★★★★★
()

Хотелка большая, но в диалоге в Линусом может легко нарваться на пару ласковых. Хотя если они хотят переписывать с нуля, то флаг им в руки, лишь бы в настоящий кернел не нагадили.

Bfgeshka ★★★★★
()

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

Sunderland93 ★★★★★
()

Лучше бы дишечку взяли, раз на то пошло.

Hertz ★★★★★
()

В комментариях хорошо подметили:

написан на языке Rust с ассемблерными вставками, оформленными в виде unsafe-блоков

Rust прежде всего вызван предоставляемыми языком возможностями по безопасному программированию, избавляющими от проблем, возникающих в Си из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера

типичное деление на нуль.

Deleted
()

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

StReLoK ☆☆
()
Ответ на: комментарий от Deleted

У меня после чтения «The Rustonomicon» создалось впечатление, что всё это — лишь иллюзия безопасности.

Хотя ХЗ, практического опыта написания кода на Rust нет.

Но FFI для вызова кода на C, имхо, просто ужасен.

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

Александреску же.

А не какие-то непонятные перцы из Mozilla Foundation.

А если серьёзно — попробуй обратиться к C-коду из D и из Rust (в отсутствие готового crate). И вот тогда можно говорить предметно.

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

Я надеялся что-то более внятное услышать. Я одинаково не знаю ни Раст, и Д. Но я читал о преимуществах Раста в сравнении с Си. Потому и вывод делаю что он лучше Си.

Sunderland93 ★★★★★
()

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

pftBest ★★★★
()

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

Чтобы не выглядеть голословным Dominus Carnufex подготовил рабочий прототип реализации интегрируемого в ядро системного вызова, код которого написан на языке Rust с ассемблерными вставками, оформленными в виде unsafe-блоков

В голос

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

Анонимных экспертов с лораопеннета не интересуют подобные тонкости.

quantum-troll ★★★★★
()
Ответ на: комментарий от Sunderland93

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

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

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

Хотя есть уверенность, что не взлетит совсем-совсем, даже шасси едва проедутся.

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

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

makoven ★★★★★
()

А кто будет оплачивать банкет переписывания кода? ИМХО, не взлетит пока всякие Intel не будут Rust во все поля юзать.

Norgat ★★★★★
()

А ядро уже нормально собирается на clang? А то двумя компиляторами компиляторов компилять ядро придется

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

Ну придумай более абсурдные X и Y. Мой посыл был не в этом.

Deleted
()

Ну пусть, работы у них на десятилетие. Посмотрим, что получится.

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

прямо лезет наружу аналогия с ВАЗ и мерседесом.

targitaj ★★★★★
()
         if (pointer as usize) < 1024    {
             Syscall::Useless(data, ref mut ret) => *ret = Some(data + 15),
pub fn asm_syscall(ptr : *mut Syscall)  {
    unsafe  {
        asm!("syscall"
         : : "{rax}"(ptr)
           : "rcx", "r11", "memory"
           : "intel", "volatile"
        );
    }
}

Nuff said.

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

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

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

В комментариях хорошо подметили:

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

Legioner ★★★★★
()

ох лол. браузер-то уже может ЛОР показать, не зависая с 337ю потоками?

ckotinko ☆☆☆
()

Долго придется переписывать. Почему бы просто не писать на русте модули для ядра.

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

выделяются, их можно просмотреть более тщательно

Субъективно и ни о чём не говорит.
При каком соотношении SLOC безопасного к небезопасному для тебя твоё же утверждение будет верно? А для Васяна? А для бабы Нюры?

Или ты по дефолту подразумеваешь граничное условие при котором unsafe стремится к нулю? И как, будет оно выполняться для ядра?

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

В том, что для каждой вызываемой функции на C ты должен явно писать (и поддерживать) обёртку для Rust.

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

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

atrus ★★★★★
()

Это как hurd - вроде и есть, а пользоваться нельзя.

andreyu ★★★★★
()

Он хочет сделать из не самого лучшего по архитектуре продукта совсем говно.
Интересно, почему идею видвинул не Поттеринг, он в этом направление успешно продвигается?

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

значит ничем ни лучше?

При каких условиях?

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

Интересно, почему идею видвинул не Поттеринг, он в этом направление успешно продвигается?

Тише ты... Не зови лихо.

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

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

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