Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux четвёртый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже согласована для включения в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета...Подробнее: https://www.opennet.me/opennews/art.shtml?num=56523
Наконец норм язык завезут
до сих пор всё писалось на ненормальном.
> на ненормальномТы не знаешь определение "нормально"? Все знают, что "нормально" - это "выделятся из толпы".
Нормально ты минусов набрал. У толпы желающих выделиться из толпы от твоих слов конкретно подгорело.
Я искренне полагаю, что из-за моей безграмотности.
Ну называть язык "нормальным" и при этом говорить о необходимости добавления его поддержки в ядро -- это на грани. Нормальный язык -- значит особых проблем писать на нем модули ядра нет. Не нормальный -- требуется поддержка со стороны ядра.
И тут наступит звездец нормальной операционке
>устаревшей операционныеПофиксил.
Да, пора всё сначала. К новым победам.
> Да, пора всё сначала. К новым победам.Это не троллинг. Просто объективно Линукс как был костылем и пародией на юникс так им и остался. Это тупик. Как и концепция универсальной операционной системы.
скорее покажи свой афигенный "непародийный" тру юникс !!!
Вы тут многие почему-то думаете, что это ваше "покажи свой", "запили свой" что-то решает в реальном мире, за пределами душного манямирочка опнетного взаимотроллинга.
Никому не нужна твоя поделка. Объясняю для одарённых: раз сказал а (что линукс не правильный юникс), то говори б (какой правильный и в чем конкретно причины выбора). Тут де просто трёп.
И нужен ли сегодня юникс?
Вопрос дискуссионный, но пародия на него точно не нужна.
Все вменяшки давно на BSD перекатились. Этот ваш линукс после ухода Торвальдса загнется.
Сегодня пишет он на Rust, а завтра Линуса продаст.Почему что-то, написанное на Rust, всегда преподносится с такой помпой и церемониями? Каждому, пишущему на Rust, обязательно нужно всем сообщить, что он пишет на Rust, всегда мечтал писать на Rust, и всегда будет писать на Rust. А еще он ща пришлет куда-нибудь, где нет Rust, свои патчи на Rust. И потом все пойдем на парад по Rust.
Линус сам кого хочешь продаст.
Потому что фанатики. Фанатики не могут не упомянуть своего идола.Одно из самых агрессивных, нетерпимых к критике сообществ.
>> Сегодня пишет он на Rust, а завтра Линуса продаст.
>> Пишем, чо пepдишь, вакуум!?
>> Вся суть современного раскисяйства
>> Мнение всяких идиотов["Linus Torvalds about C++ ..."] разве нужно учитывать?
>> Прочитал как экскриментами
>> Пусть там и лепят своего говновика.
>> Задолбали навязывать это гуано.
>> Сообщение от хрустеры
> Одно из самых агрессивных, нетерпимых к критике сообществ.Это да, прям в каждой нвости с упоминанием Rust проходу честным, скромным и вежливым опеннетчикам не дают!
Разве могу осуждать мух за то, что е...тся? Однако когда на моей голове, злит. Так же и рустоманы. Когда в тихом уединении делают то, к чему лежат их души, кто возразит? Но они устраивают факельные шествия и приковывают себя к фонарям на набережной, дудят в дудки, бьют в барабаны и кричат, чтобы все знали про их нрав...
> Но они устраивают факельные шествия и приковывают себя к фонарям на набережной, дудят в
> дудки, бьют в барабаны и кричат, чтобы все знали про их нрав..."Ел грибы, смотрел новостной ковер!"?
>> Но они устраивают факельные шествия и приковывают себя к фонарям на набережной, дудят в
>> дудки, бьют в барабаны и кричат, чтобы все знали про их нрав...
> "Ел грибы, смотрел новостной ковер!"?Будто поедание мухоморов или псилоцибиновых поганок это плохо. Шаманы ели нам велели;-) мы хотя бы клей не нюхаем, как растоманы
Ели шаманы коренных народов. А тебе русскому полагается только водка.
Не надо тут навешивать ярлыки. Не было у русских "водки" в её нынешнем понимании до 19-го века.
> Будто поедание мухоморов или псилоцибиновых поганок это плохо. Шаманы ели нам велели;-)
> мы хотя бы клей не нюхаем, как растоманыТак я не понял, где можно посмотреть хотя бы на видео или фотки:
"Но они устраивают факельные шествия и приковывают себя к фонарям на набережной, дудят в дудки, бьют в барабаны и кричат, чтобы все знали про их нрав..."
Или обязательно нужны грибы или клей?
такова пиар компания этого яп. это не хорошо и не плохо, а как есть. одни рассказывают про низкий порог вхождения для каждой домохозяйки своего супер-яп, другие рассказывают что их яп самый хайповый, третьи еще что-то , а тут выбрана такая стратегия. момент чисто психологический почему на него так агресивно реагируют. но опять же это скорее хорошо чем плохо. есть 100500 разных яп и вот человек который хочет стать вайтишником или кто-то хочет поменять стек глобально/локально (для проекта). один из показателей - что написано и где используется. на самом деле 99% яп сложно найти что написано на них из большого/весомого/глобального. А тут сразу решили пойти с этоого аргумента как с заманухи. Пожуем - увидим как оно будет дальше. Ведь по факту это извечный холивар на тему:
- я учил тру Си/Си-шарп и т.п. и это тру потому что тру
- тру - асм т.к. еще бородатые парни в свитерах на нем писали
- раст - каках т.к. надописать на гоу т.к. я учил гоу и модные дровосеки пишут на гошечке
- (любой яп) круче т.к. он не раст.тоже самое можно писать по отношению и к другим яп. Короче все это фрейдизмы.
>тру Си/Си-шарп и т.п.
>Короче все это фрейдизмыЛичинка эйчара, у вас ус отклеился. ;)
Есть ещё лисп, он умеет в синтаксические макросы полущ этого вашего раста.
Да-да, тот самый LISP, в котором вызов макроса не отличается от вызова функции, а из-за отсутствия нормального синтаксиса он имитируется макросами (скорее, предпринимаются попытки) из-за чего код становится нечитаемым. Если обращать внимание только на отдельные фичи, а не на общую картину, как любят делать хейтеры, то можно найти тысячу ЯП, которые лучше Rust, C, C++ и вообще чего угодно, в зависимости от обсуждаемого в данный момент языка.
PID'o'rust (PID of rust) - идентификатор запущенного процесса rust
Ммм... Какой юмор...
Какой язык, такой и юмор.
> Почему что-то, написанное на Rust, всегда преподносится с такой помпой и церемониями?Потому что наСИльники уже достали со своими частыми и повсеместными выходами за пределы массивов, двойным освобождением памяти, обращением к уже освобожденной памяти и т.д. и т.п. Несмотря на наличие кучи инструментов для верификации исходников. Понятно, что с растом прям _всех_ ошибок не избежать, особенно при написании кода ядра, где и ансейф местами будет, но кол-во их (ошибок) в разы уменьшится. И это достойно помпезности и церемоний, пока не станет обыденностью. НаСИльники должны страдать.
> норм язык завезутАх если бы нормальный язык, типа SPARK:\
https://ru.wikipedia.org/wiki/SPARK_(язык_программирования)
https://en.wikipedia.org/wiki/SPARK_(programming_language)
https://www.adacore.com/about-spark
Спасибо за новость!
Пойду за попкорном.
А я только что пива купил. Сейчас картошечка дожарится и приступим.
Интересно насколько сильно возрастает число комитетеров в ядре, после добавление раста.
Учитывая масштабы гугла, многократно
Думаю отрицательно. Чем большую "необязательную" (драйвера устройств, не хочешь Rust - сиди без поддержки устройства, а ведь большинство коммиттит в ядро именно из-за поддержки их железок) часть ядра перепишут на раст, тем меньше будет желающих к ЭТОМУ прикасаться.
а насколько возросло после включения ебпф?
Уменьшилось же ж? Теперь чтобы запускать энтерпрайзненькую блобятинку прямо внутри ядра - пейсбуку не нужно ничего комитить в ведро, оно просто компилится в ebpf.
> позволит с минимальными усилиями создавать безопасные и более качественные драйверыВся суть современного раскисяйства - хотим всё, ничего не де... "с минимальными усилиями"! Что ж, поколение пользователей спеллчекеров подросло и дотянулось до ядра.
Кстати, принцип "вы сами не можете безопасно, надо вас принудить" я где-то уже наблюдаю...
Никто не убирал возможность писать на том же C/С++, только Rust сделан для таких компонентов, где не особо критична производительность, но важна скорость с которой нужно это сделать и одновременно возможность не выстрелить себе в ногу. Ну и разрабам дров для периферийных устройств будет в разы легче(Зачем им вообще нужен драйвер на низкоуровневом языке?)
Это где еще? Российские ЦБ с минфином и госдумой защищают глупое население от страшной крипты?
Да наоборот же!
Вы не умеете хранить деньги - несите их в кассу. Смтрите кредитка - ай как удобно и безопасно! Ой, кредитки всё ещё не то! Нацкрипта! Во.
Ну, и медицина и пр.
Ну сшашка, к примеру, на уровне парламента обсуждает защиту населения от РТ.
> Вся суть современного раскисяйства - хотим всё, ничего не де... "с минимальными усилиями"!Если хочется с максимальными усилиями, то можно писать ядро на ассемблере. Без макроязыка. Или даже на брейнфаке. Можно, на самом деле, придумать сколько угодно усложнений. Например, писать код ногами. Причём не по клавиатуре, а по сенсорному экрану смартфона. Кто-нибудь писал так ОС? Нет? А вот ты можешь: будет потом чем хвастаться перед зумерками.
Разрешаю писать минимальными усилиями redoxos (или как он правильно называется)
Оно ещё живое? Что-то прекратились новости про него...
Ну, можешь считать биномы/диффуры на счётных палочках - я не против.
Я против того чтобы к процессу допускать тех, кто может их решать лишь через MathCad путём тыканья кнопок "а оно само посчитает".
Если C для тебя -- необходимый порог для входа, то спешу тебя огорчить: C -- очень плохой порог для входа. Любой идиот сможет написать на C программу, которая скомпилируется, но потом в рантайме будет рандомно падать. Поэтому, собственно, в linux порогом для входа является не язык, а процесс review: люди втыкают глазами в присланный код и думают головой. Ты сам попробуй: ты зашлёшь в ядро свой патчик, который вполне компилируется и даже вроде работает, но те проблемы, с которыми ты столкнулся на пути создания этого патчика будут ничем, по сравнению с теми проблемами переписывания этого патчика, с которыми ты столкнёшься в процессе проталкивания патчика в mainline.Я в целом считаю, что использовать язык порогом для входа -- неудачная затея, но если уж использовать, то rust, а не C, потому что rust требует от программиста умения следить за лайфтаймами, за пользователями объекта и за типами. C не требует от программиста ничего.
> поколение пользователей спеллчекеровНе знаю какое поколение было до, но разве отцы-изобретатели ЭВМ придумали компьютер не для помощи человеку? Чем проверка кода отличается от каких-нибудь математических вычислений с точки зрения трудозатрат?
> Чем проверка кода отличается от каких-нибудь математических вычислений с точки зрения трудозатрат?Код не знает где он будет работать.
Нужны ли драйверам, операционке жирные сегменты данных? (обязательной инициализации значений переменных перед использованием)
Строгая типизация? Когда в ядре куча (void *)data ... которое через 5-10 вызовов превращается
в struct file_operation.le64_to_cpu(), cpu_to_be64(); ntoa(),...
Чо он там "строго натипизирует"?
Рожание виртуальных объектов, которые на конкретном компе вообще никогда не выполнятся?!Похоже на метод "Бабушкины антрисоли" - а мож в другой жизни пригодится.
> Строгая типизация? Когда в ядре куча (void *)data ... которое через 5-10 вызовов превращается в struct file_operation.Осторожнее, а то так можно договориться что C небезопасен /s
Не страшно, 95% здешних хейтеров все равно не поймут смысла сказанного.
Расстрою тебя, компьютеры вообще были придуманы не для облегчения жизни. Вот воообще.
Просвети убогих
Вся суть современного СИкисяйства - хотим всё, ничего не делая "С минимальными усилиями"! Что ж, поколение пользователей высокоуровщиков подросло и дотянулось до ядра.(Opennet, если бы существовал до 1970г)
> Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.Лягушку варят постепенно
> Использование Rust для разработки драйверов позволит с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.
Т.е. то же самое что и современный C++ со статическим анализатором.
Linus Torvalds: “C++ is really a terrible language!”
Так что мимо.
Да, было время, когда Линус мог сказать и показать пальцем.
Ох уже верующие в Бога Нашего Иисуса^W^W^W Святого Линуса Торвальдса.
я и сам это напишу, без Линуса. Это как с палочками для еды - кто-то ест только ими, другим пофигу чем, а есть те кто требуют ложку и вилку
> Это как с палочками для еды - кто-то ест только ими,Ну успеха, поесть суп палочками.
Никаких проблем с мисо и палочками не вижу. Ем спокойно.
> НикакихОпять анонимная xyeта ...
> Linus Torvalds: “C++ is really a terrible language!”
> Так что мимо.Ну это когда было то. Я и сам так считал пока не увидел ржавчину.
Тем не менее у нас есть уже четвертая редакция патчей для rust и ни один для crap++
Sad, but true.
А зачем для плюсов патчи, просветите чайника? В ядре Виндоса они не требуются.
Статические анализаторы пропускают ошибки, и ты это знаешь.
У Гугл и МС 70% уязвимостей это ошибки работы с памятью. Им эти анализаторы не помогли.Я знаю какой ответ будет, потому напишу сразу:
Код под unsafe локализует место возможной ошибки.Существует этому и формальное доказательство (пусть пока и не включает все возможности языка):
https://plv.mpi-sws.org/rustbelt/popl18/paper.pdfДа, в некоторых синтетических примерах при использовании сложных конструкций языка возможны баги. Но они именно что считаются за баги и будут исправлены.
"gcc -Wall" и Rust не нужен.
> "gcc -Wall" и Rust не нужен.
#include<stdio.h>
int main(int argc, char** argv) {
int (*putit)(char*) = (int (*) (char*)) (argc != 0 ? 0 : puts);
return putit("bar");
}
$ gcc -Wall test.c && ./a.out
Segmentation fault
$ cat test.rs
use std::env;
use std::io::{Write};
fn put(foo:&[u8]) ->() {
std::io::stdout().write_all(foo).unwrap();
}
pub fn main() {
let putit = if env::args().len() !=0 {0} else {put};
putit(b"hello");
}
$ rustc test.rs
error[E0308]: `if` and `else` have incompatible types
--> tst.rs:7:52
|
7 | let putit = if env::args().len() !=0 {0} else {put};
| - ^^^ expected integer, found fn item
| |
| expected because of this
|
= note: expected type `{integer}`
found fn item `for<'r> fn(&'r [u8]) {put}
как скажешь.
>[оверквотинг удален]
> int (*putit)(char*) = (int (*) (char*)) (argc != 0 ? 0 : puts);
>
> let putit = if env::args().len() !=0 {0} else
>...
> как скажешь.Эээээ, пидaРастишка, а чой-то ты в сишнике впихнул строгое приведение типов, а в пидaРасте забыл?
Вот так выглядит твой говноРаста код на Си!
#include<stdio.h>
int main(int argc, char** argv) {
int (*putit)(char*) = argc != 0 ? 0 : puts;
return putit("bar");
}
gcc -Wall test.c
test.c: In function ‘main’:
test.c:3:28: warning: initialization of ‘int (*)(char *)’ from incompatible pointer type ‘int (*)(const char *)’ [-Wincompatible-pointer-types]
int (*putit)(char*) = argc != 0 ? 0 : puts;
^~~~
> Статические анализаторы пропускают ошибки, и ты это знаешь.Также как и статический анализатор в расте. От того что его засунули в компилятор ничего не изменилось.
> У Гугл и МС 70% уязвимостей это ошибки работы с памятью. Им эти анализаторы не помогли.
Микрософт это просто сборище !@!#$%^.
У гугла смотреть надо, например в коде хрома и раст не поможет, разве что только сверхИИ или господь Бог.> Код под unsafe локализует место возможной ошибки.
Ну это сказки для впечатлительных. Это тот же самый статический анализ, где спасал он раньше, спасет и сейчас. Во многих анализаторах и раньше точно также можно было указать где подавлять определенные проверки (то же что и unsafe). Где не спасал, не спасает и в расте.
> Да, в некоторых синтетических примерах при использовании сложных конструкций языка возможны баги. Но они именно что считаются за баги и будут исправлены.
То же самое можно и про плюсы сказать, но почему-то в "плюсах шаблоны кривые" и все кончено, а раст "еще будет исправлен". Мне пора писать rust++?
>Существует этому и формальное доказательство (пусть пока и не включает все возможности языка) https://plv.mpi-sws.org/rustbelt/popl18/paper.pdf
Очень занятно. Особенно мне понравилось:
> In other words, compared to mainstream “safe”languages, Rust offers both lower-level control and stronger safety guarantees. At least, that is the hope.Лучше бы и я не сказал. Надеюсь этим парням поучаствовавшим в миссии "достижения священного грааля" отдали их дипломы.
Дурак всегда оспаривает свою дурость.
>> Статические анализаторы пропускают ошибки, и ты это знаешь.
> Также как и статический анализатор в расте. От того что его засунули в компилятор ничего не изменилось.Приведи примеры.
> Приведи примеры.Вы не тому ответили.
> избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.когда нельзя создать программистов, пишущих более качественный код, приходится создавать язык, более толерантный к качествам программистов.
"программистов".Ну или старый добрый термин - кодеров.
Этот термин изначально не относился к программистам. Этот термин относился к ребятам которые умели в машинный код без ассемблера и языков какого-либо уровня. Просто механическая работа.
> Просто механическая работа.Именно об этом я и написал.
Дядя, но ведь это буквально для того, чтобы писать более качественный код. Не думаешь о ручном управлении памятью -> в освободившееся время пишешь код. В чём проблема?
> В чём проблема?Проблема в отсутствии мозгов у растофанатиков, которые за одним единственным деревом не видят лес.
Есть миллион языков, в которых нету "ручного управления памятью" (например, брейнфак). Но, почему то, на них не пишут более лучше качественный код.
А что за лес? Лес ваших иррациональных страхов? Ваша личная ненависть ко всему современному понятна; человек в годах выглядит даже глупо, занимаясь молодёжными вещами. Но вас никто не заставляет писать на расте, на нём будут писать новые поколения программистов, и специально для них создаются инструменты, облегчающие работу (например, раст).
Не будут. Так как сработает обычный принцип разгильдяйства программиста пишущего код раста, появятся дыры, и rust как многие идентичные языки сыграет в ящик.
> на нём будут писать новые поколения программистов, и специально для них создаются инструменты,
> облегчающие работу (например, раст).Я именно так и пишу - обезьянкам, не способным в программирование и не способным думать и которые ведутся на "вам не надо ничего учить, наш СуперЯзык вместо вас сделает безопасТно".
Это не про ручное управление памятью, а про понимание программистом собственного кода.
Код непонимающих кадров просто перестанет падать, поэтому искать надо будет другие глюки.
Всё.В остальном суть не поменяется: у быдлокодера на любом языке получится быдлокод, а код разумного специалиста в большинстве случаев разумен вне зависимости от языка.
Поэтому раст выгоден в первую очередь для корпораций, где понимание возложено на руководство, а обычный штатный кодер понимать что-либо не должен, а должен просто реализовывать заданный алгоритм заданным способом -- при подобном механическом кодировании на сях число проблем с памятью растёт катастрофически.
А что делать с невнимательностью которая всем присуща.Скажем в питоне можно пропустить запятую и код скомпилируется, будет работать но неправильно. И Не скоро ты это заметишь. https://www.opennet.me/opennews/art.shtml?num=56470
В С/С++ возможны use after free, double free, out of buffer read/writes и иже с ними. Они тоже ошибок при компиляции не вызывают.
Везде в мире принято человеческий фактор сводить на нет (особенно это заметно в промышленности), рутину автоматизировать. Особенно автоматизацией рутины любят заниматься программисты. В этом в сущности состоит их работа.
И только у анонимов опеннета это считается злом.
Никто не говорит, что rust -- зло.Речь не про rust. Речь про снижение планки вхождения в системное программирование (раз) и методы распространения кода в стиле npm (два): эти два пункта внушают некоторые опасения.
Что касается языка, то прежде, чем топить за или против, надо ознакомиться с языком.
Учебник тут: https://doc.rust-lang.org/book/index.html
// если понимание не срабатывает, то: заменить контекст "язык" на "английский" и перечитать абзац.
А методы распространения кода тут при чём? Вообще-то, Cargo не встроен в язык и вообще необязателен, и в разработке ядра не используется. Что до снижения порога вхождения - это ерунда, как по мне: от того, что используется Rust, модель работы ядра и драйверов проще не становится, если только не делать полноценные фреймворки, абстрагирующие это до более высокого уровня.
> Речь про снижение планки вхождения в системное программирование (раз) и методы распространения кода в стиле npm (два): эти два пункта внушают некоторые опасения.Так:
1. Rust наоборот повышает планку, позволяя опустить её назад лишь в рамках unsafe-блоков.
2. Никто не заставляет использовать cargo. Можно использовать apt или по старине вручную скачивать и устанавливать зависимости.
> А что делать с невнимательностью которая всем присуща.Три волшебных понятия, которым не учат обезьянок, но с помощью которых уже много-много лет работает настоящий IT:
"CI", "тестирование" и "анализаторы".
Можно подумать, на Rust это делать нельзя.
> Можно подумать, на Rust это делать нельзя.Это можно (и нужно) делать на чем угодно, даже на брейнфаке.
Но почему-то растофанатики не в курсе этих элементарных профессиональных понятий и утверждают, что достаточно просто использовать их суперязык.
Ну, вообще-то разные языки дают разные принципиальные возможности по анализу. Какие-то языки явно формулируют допущения, владение ресурсами и прочее (и это даёт возможность проверить корректность применения в контексте выбранных допущений и прочего). А какие-то языки работают абсолютно императивно и дают возможность лишь динамического анализа (и то сильно ограниченного).И да, brainfuck принципиально даёт чрезвычайно малые возможности для автоматического анализа корректности кода. В то время, как в идеале бы вообще стремиться к строгим математическим доказательствам корректности кода.
Да. Но к чему весь этот пассаж?К тому, что раст - это новая веха в развитии программизма? Нет.
К тому, что раст лучше остальных языков? Тоже нет.
К тому, что раст имеет какие-то уникальные свойства, которые позволят качественно улучшить программирование? Снова нет.
Rust представляет собой такой набор решений, что в нём можно и качественный анализ получить, и Сишную производительность, и большие проекты писать. Других таких языков до Rust как-то и не было. Так что вполне на первые два вопроса можно ответить, да. Хотя они так сформулированы, что предполагают только субъективные ответы.
> Rust представляет собой такой набор решений, что в нём можно и качественный анализ получить, и Сишную производительность, и большие проекты писать.Можно, конечно. Точно так же, как на Аде, Лиспе, Фортране, Паскале, Си, Хаскеле...
Вот только все вышеперечисленные языки обладают стройным дизайном, который не приходится ломать каждые полгода ради "ой, мы тут забыли кое-что - щас быстро втащим в язык, придумаем новую закорючку и сломаем в паре мест обратную совместимость, ну да не привыкать.".> Других таких языков до Rust как-то и не было.
Таких перегруженных идиотскими костылями? Тоже были.
Всё правильно. Собственно, Rust by design как раз и заточен под "тестирование" и "анализаторы". Именно за это его обычно и любят.
Это для того, чтобы гугел мог посодить стадо своих полуграмотных индусов которые латиницу-то с трудом понимают писать нужные ему драйвера и чтоб это стадо макак попутно не отстрелило себе все по самую маковку, не более.
это называется эволюция языков. новые появляются чтобы решать какие-то проблемы старых, и желательно не добавляя больше новых
> эволюцияКто-то говорит, что это "революция и долой царя!"
меньше слухов слушайте, больше своей головой думайте)
>Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру.Но фактически, если хочешь работать с устройством - то придётся вступить в культ Cargo. Ну или переписать драйвер на сишке и его самому поддерживать.
> Но фактически, если хочешь работать с устройством - то придётся вступить в культ Cargo.маловероятно, гугл не делает железо, а те кто раньше писал на С знают что Rust в ядре бесполезен поэтому будут как раньше писать на С.
Cargo не встроен в язык, можно писать и без него.
> Поддержка Rust рассматривается как экспериментальнаяА при чем тут mainline? Пусть копаются в своей песочнице со своими экспериментами.
Оно так и будет.
Посмотри на сообщество и экосистему - они же вечно будут в этой песочнице возиться, тратя 50% своего времени на переписывание того, что работало раньше под новую пачку граблей, а вторые 50% на выяснение того, кто из них более безопасТно работает с памятью.
> Оно так и будет.
> Посмотри на сообщество и экосистему - они же вечно будут в этой
> песочнице возиться, тратя 50% своего времени на переписывание того, что работало
> раньше под новую пачку граблей, а вторые 50% на выяснение того,
> кто из них более безопасТно работает с памятью.Вместо того чтобы доделать ресдох, чтобы он хотя бы на каком-нибудь железе заработал. А ведь как красив он в описании..
> чтобы он хотя бы на каком-нибудь железе заработалА он и работает. Зайди на их сайт и убедись собственными глазками. Там фотографии есть.
https://www.redox-os.org/screens/
Чё, пацаны, panic и выброс архитектур?
> panic и выброс архитектурОтличная новая функциональность, которая срочно нужна в основной ветке ядра. Вместо драйверов, файловых систем и тп.
Как же ж так - мы же вам наразраб....скопипастили целый один драйвер!Он, правда, пока не работает, зато безопастный!
> Как же ж так - мы же вам наразраб....скопипастили целый один драйвер!
> Он, правда, пока не работает, зато безопастный!Я тоже! Тоже хочу! Написать неработающий драйвер для какой-нибудь умной вещи!
Посоветуйте изык, посоны!
Вот пепельницу хочу умную. С поддержкой блявтуз и ипв6. И унитаз. И чтобы не надо было думать
вот кстати интересно что про панику никаких обновлений не было. как по мне это самый главный блокер от включения, поскольку есть явное противоречение - постоянной работе ядра и сиюмоментного останова выполнения
это безопасная паника, можно еще unsafe добавить в панику, ведь математически доказано, что если пометить панику как unsafe то безопасность всего остального кода возрастает.
> это безопасная паника, можно еще unsafe добавить в панику, ведь математически доказано,
> что если пометить панику как unsafe то безопасность всего остального кода возрастает.Ну даавай сюда доказательство. Или обычный опеннетный АнтиРастоВоен^W балабол?
Вот линуксоиды постоянно жалуются на утечки памяти, для которых даже например нужен такой костыль, как перезапуск сессии Cinnamon. А чтобы устранить их, нужна не Растом баловаться, а инструменты отладки нормальные запилить, типа FastMM Full Debug Mode, чтобы не наугад утечки памяти ловить, а четко видеть, что и где их вызывает.
об этом кто-то еще знает? неделями-месяцами корица с мятой работает и полет нормальный
Какие утечки, вендузятник?Я месяцами не перегружаю ноут (минт), при этом постоянно в работе vscode и разные браузеры. И все прекрасно работает!
Венду же приходится каждое утро перезагружать.
> Какие утечки, вендузятник?
> постоянно в работе vscode и разные браузерыох, два брата поругались
> Какие утечки, вендузятник?
> Я месяцами не перегружаю ноут (минт), при этом постоянно в работе vscode
> и разные браузеры. И все прекрасно работает!
> Венду же приходится каждое утро перезагружать.Спермерку мне всего лишь раз в неделю приходилось перезагружать.
Семерочка и у меня неплохо бегала.
Я свою рабочую десяточку перезагружаю раз в месяц, после вторника патчей.
А ты месяцами сидишь на дырявом корыте? Нашёл чем гордиться. 😏
> Я свою рабочую десяточку перезагружаю раз в месяц, после вторника патчей.Не делаешь ничего сложнее наблюдения за сменой скучных обоев?
> А ты месяцами сидишь на дырявом корыте? Нашёл чем гордиться. 😏
Вы, вендопользователи, такие забавные. Сидите по уши в гoвне^W CVE, но дырявое корыто не у вас.
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=Windows
Почему не делаю, работаю, с 10 окон постоянно запущенного служебного софта.Ты ещё более забавен. Дырявое корыто у всех. Но я своё регулярно латаю. А ты месяцами сидишь в нем.
Во-первых, не верю. Сказочки про не текущую, требующую перезагрузки всего раз в месяц винду будешь бабушкам в парке рассказывать.Во-вторых, у меня линукс и закрытая для внешнего мира система. Мне не надо латать ее по каждому чиху (как некоторым).
>Во-первых, не верюОскорбили ваши чувства? У меня хрюша месяца два без перезагрузок жила на двуг гигах оперативки. Но можете не верить дальше.
Твоя вера это твои проблемы.
Раз в месяц я ставлю обновления на свою рабочую винду.
Серверная 2003 винда в закрытой от мира системе у меня 5 лет без ребута работала. Пока диск не сдох. Внезапно. 😏
Так что сказки про текущую винду ты текущим подружкам в постельке рассказывай.
> Я свою рабочую десяточку перезагружаю раз в месяц, после вторника патчей.
> А ты месяцами сидишь на дырявом корыте? Нашёл чем гордиться. 😏Твоя дерьмятка и без дыр полуюзабельное омно с рекламой на рабстоле.
У меня нет рекламы.Ты ниасилил в юзании такую простую вещь как винда? Какой же ты убогий…
> Я свою рабочую десяточку перезагружаю раз в месяц, после вторника патчей.
> А ты месяцами сидишь на дырявом корыте? Нашёл чем гордиться. 😏Прям как рачевод: "я не обновлялся уже неделю!"
Предлагаю, раз такая пьянка, пропатчить ведро под C# и Haskell, они ещё безопаснее раста будут (но каждый по-своему).
Лучше javascript. "Он ещё безопаснее раста будет (но по-своему)". Тем более у Гугла уже есть v8, а у MS - npm.
Веб-макака, веб-макака, кодер-террорист
Держит линт огромный в руке неоджесист
Веб-макака, веб-макака, пушит в эн пи эм
Дебаг без остановки выбирает мэн
Zig не успеет? :( Rust ведь язык богатый, будет труднее понять код
Давайте оставим список ЯП, которые обязательно нужны в основной ветке ядра.1. dos batch (нет указателей - нет проблем)
2. brainfuck (аналогично)
3.
3. джава (на всех платформах работает)
4. вижуалбасик (очень большое коммьюнити)
5. похапэ (еще большее коммьюнити)
6.И все они безопасТные! Ведь нету опасТной работы с памятью!
> 3. джава (на всех платформах работает)
> 4. вижуалбасик (очень большое коммьюнити)
> 5. похапэ (еще большее коммьюнити)
> 6.
> И все они безопасТные! Ведь нету опасТной работы с памятью!Форт. Работает на всех платформах. При ошибках валится.
> При ошибках валится.Отлично!
Значит безопасный, не даст сделать что-нибудь (опасное).> Работает на всех платформах.
Нет!
Безопасный язык работает только на безопасных платформах (которые определяются каким-то llvm)
> Форт. Работает на всех платформах. При ошибках валится.Не, не пройдет. Чтобы программить под форт надо уметь думать.
Думать уметь польской реверсной нотации в, причем.Учитывая что во всей freebsd crowd не нашлось пары человек, способных по мелочи поправить четыре килобайта документированного (даже!) кода...
Полагаю, телескопами теперь управлять тоже принято на lua, память и гигагерцы же ж дешевые.
ну и по тестам медленнее
По каким тестам?
Не нравится? Создайте язык программирования лучше!!1!
если будет бекенд с GCC и не будет cargo - тогда ладно.
а что не так с карго?
> а что не так с карго?1. тот же нпм с лефтпадами
2. малварь и прочее свойственное таким помойкам (подробнее можешь по тегу "npm" посмотреть)
3. Для меня скачивание всякого говна из интернета при сборке не приемлема
4. Дикое разрастание бинарника ядра за счет зависимостей подзависимостей и т.д. (из 1)
5. плохое их взаимодействие с kconfig и сборочными системами ядра
6. Очень многие вещи приемлемы в юзерспэйсе, но не в ядре. Все крэйты на данный момент рассчитаны на юзерспейс
1 - 2. реестр крейтов можно поднять свой при желании
3. не подключайте говно в зависимости + cargo‑audit в ci(или аналоги)
4. тут согласен, по фактам. но такова цена за отсутсвие велосипедов и простое переиспользование. но и диски нынче уже подешевле стали
5. вопросы тулинга и удобства в использовании в околохрустовых проектах как правило решаются качественно, опиши болячки в issue
6. на вскидку только паника и развертка стека на ум приходит(что с этим придумают - мне тоже интересно. возможно будет что-то аналогичное no-std). что еще?
> 6. на вскидку только паника и развертка стека на ум приходит(что с
> этим придумают - мне тоже интересно. возможно будет что-то аналогичное no-std).
> что еще?Развертка убирается банальным "panic=abort". А паники в ядре, внезапно, "свои" есть:
> panic -- bring down system on fatal errorДа и возникает вопрос, точно ли стоит продолжать выполнение ядерного кода после UB?
https://www.opennet.me/opennews/art.shtml?num=42262
> В ядре Linux выявлены ошибки, приводящие к зависанию процессов и повреждению разделов EXT4https://bugzilla.kernel.org/show_bug.cgi?id=201685
> Bug 201685 Incorrect disk IO caused by blk-mq direct issue can lead to file system corruption
Так надо же сперва написать в песочнице(!) свой драйвер ext2 без паник и UB, отсутствие которых гарантирует безопасный язык, и только после идти на поклон царю. А так, это все выглядит как троллинг, ни чем не лучше, чем я троллю тут растистов.
> Так надо же сперва написать в песочнице(!) свой драйвер ext2 без паник
> и UB, отсутствие которых гарантирует безопасный язык,Казалось бы, причем тут бурные фантазии анонима?
> ни чем не лучше, чем я троллю тут растистов.Не льсти себе - по новому, смузихлебно-корректному любую метанизацию луж принято теперь называть "троллингом".
> Казалось бы"сперва добейся" - это как раз фильтр от троллей, которые пропихивают новый "безопасный" язык, на котором ничего не написано для ядра. Напишите хотя бы что-нибудь полезное, пройдитесь по всем "безопасным" граблям в реальном проекте для ядра.
Более достойные для включения языки не рыпаются, а тут выскочка "ни грамма за душой" хочет быть королем.
>А паники в ядре, внезапно, "свои" есть:Только вот рантайм сишки этот panic сам по себе не вызывает, дорогой шлангист.
>>А паники в ядре, внезапно, "свои" есть:
> Только вот рантайм сишки этот panic сам по себе не вызывает, дорогой шлангист.И много у тебя в ядре сишного рантайма, дрогой ламист?
1-2. В npm тоже можно. Да ток никто не делает.
3. Вы не поняли. Ключевое слово не "говно", а "скачивание из интернета"
4. Ну linux не только на десктопе используется. А в ембеде "диск" может быть не очень большим. Ну и я по размеру бинарника оцениваю то, насколько у меня хороший конфиг
5. Ядро использует для сборки собственную ситсему сборки (изменяюсь за тавтологию), с очень широкими возможностями конфигурации. Потому либо будет плохое взаимодействие с ней (мейкфайлы будут лишь давать команды для карго) либо карго не будет использоваться
6. Посмотри новость о ревью патч сета от торвальдсаГугл, который пихает раст в ядро, кстати это понимает и в андроиде ни какого карго нет, нужные крэйты включены в дерево исхов. Правда на пару модулей написанных на расте тянется несколько сот крейтов, потому у меня такая сильная ассоциация раста с нодой и депендеси хелом.
> 1-2. В npm тоже можно. Да ток никто не делает.Ну да, а для нерастов тоже совершенно не нужен sudo curl | bash, но ...
> 4. Ну linux не только на десктопе используется. А в ембеде "диск" может быть не очень большим.Ты собрался собирать ядро для эмбеда на этом самом эмбеде?
> Правда на пару модулей написанных на расте тянется несколько сот крейтов, потому
> у меня такая сильная ассоциация раста с нодой и депендеси хелом.Во-первых:
https://www.opennet.me/opennews/art.shtml?num=56475
> Вторая версия патчей c реструктуризацией заголовочных файлов ядра Linuxнамекает, что "все точно так же".
Во-вторых: в отличие от ноды, оно компилируется и инлайнится только в путь, ну и с сотнями крейтов ты явно загнул и перенес 1:1 "опыт" юзерспейса.
В котором, кстати, тоже вроде бы мелкие утилиты (причем, совсем не на расте) тянут 100500 зависимостей для сборки.
> Ну да, а для нерастов тоже совершенно не нужен sudo curl |
> bash, но ...единственный раз когда использовал - для установки rustc ). и то без sudo
> Ты собрался собирать ядро для эмбеда на этом самом эмбеде?
Речь о размере бинарников
> намекает, что "все точно так же".
Там речь о "внутреннем" депенденси хелле, между файлами одного проекта. Это немного разные вещи.
> Во-вторых: в отличие от ноды, оно компилируется и инлайнится только в путь,
не спорю
> ну и с сотнями крейтов ты явно загнул
Точно уже не помню сколько, исхов 12 андроида под рукой нет, но много.
> и перенес 1:1 "опыт" юзерспейса.
> В котором, кстати, тоже вроде бы мелкие утилиты (причем, совсем не на
> расте) тянут 100500 зависимостей для сборки.Не утверждаю что такого не бывает в проектах не на расте, как и не утверждаю, что это всегда будет в проекте на расте. Да и та же нода не на расте )
Но все же маленких утилит на c/c++/python/perl и т.д. требующих сотни зависимостей не видел. Когда зависимость одна, но это огромный монстр с кучей своих зависимостей - да.
>pythonТакие есть, но не про вашу честь, питонисты на типичных галерах - те же джаваскриптеры по сути.
>Ты собрался собирать ядро для эмбеда на этом самом эмбеде?Так и четвёртый пень станет эмбедом.
>3. Для меня скачивание всякого говна из интернета при сборке не приемлемаЗвучит странно, поясни логику. Если ты из интернета вручную скачал то оно становится безопасней того что ты скачал пакетным менеджером?
Если ты каждый пакет проверяешь на бэкдоры то в чем разница откуда ты его скачаешь, если все равно будешь проверять?
> Звучит странно, поясни логику. Если ты из интернета вручную скачал то оно
> становится безопасней того что ты скачал пакетным менеджером?1. Где ты видишь тут слово безопасность? Это меня не волнует, кому нужен мой локалхост?
2. Пакетные менеджеры не использую, configure make install достаточно, толку от написание огромных control-ов pkgbuild-ов и т.д. если ты помнишь файлы всех пакетов и можешь легко снести ручками?
> Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.Это хорошая новость. Наконец-то тухлое ядро под названием "Linux" скоро загнется и тем самым придаст мотивации свободному сообществу для доведения GNU/Hurd до ума или поддержки хард-форка ядра OpenBSD от проекта Hyperbola.
Hurd невозможно довести до ума. Его можно только переписать. Причина прибитость всего к 32-ум битам.
На РАСТе!Хотел бы я на это посмотреть...
В любом случае это даст пинка под зад всему сообществу. Я бы и сам с радостью помог, но боюсь, что не обладаю необходимой компетентностью в данной области. А вот копейкой всегда готов помочь.
Можно выяснить про ядерный IPC и пилить на Python или Guile драйвера от чего-нибудь нетребовательного.
Пруфцы есть?
DragonflyBSD мне кажется более интересным и перспективным программным решением, чем и опёнок, и хурд.
Аа, я понял коварный замысел:
1. привлечь любителей к написанию драйверов;
2. получить пачку отрицательных отзывов от Линуса про код данных любителей;
3. обратить внимание общественности на язык, на котором написан этот код, и поднять шум про дискриминацию по языковому признаку;
4. собрать подписи об исключении Линуса из числа разработчиков ядра на основе нетолерантных высказываний в адрес "разработчиков".Будем надеяться, что ситуация камрада Столлмана не повторится.
>Будем надеяться, что ситуация камрада СтоллманаКамрад Столлман после того, как его защитили в основном те, кто холодно относится к коммунизму, так ничего и не понял.
О чем речь? Причем тут коммунизм?
Столлмана-коммуниста сожрали сами же коммунисты за то, что его коммунизм не сошёлся с их коммунизмом. Короче, ледоруб прислали очередному Троцкому.И тут, как человеку, которому прислали ледоруб, Столлману стоило бы подумать, а за то ли он с года так 2000 воюет, если пригрел на груди змею, которая его же и укусила? Сайтик дефейсили ребята из FSF, да и вообще...
Даже если и сделает выводы - его выводы будут непопулярны т.к любое объяснение о троцкозме и разжигании мировых революций вычищается и жестко цензурируется, нельзя об этом говорить, а явление уже давно разрушает весь мир и не только опенсорс. Даже тут наши коменты потрут, ибо нельзя говорить правду.
коммунисты?
и Столлман тоже коммунист?
каким образом и где вы там столько коммунистов нашли?
>и Столлман тоже коммунист?Он коммунист в первую очередь, почитай stallman.org. Он ещё и кипяточком писается при виде Берни, который в свою очередь писался кипятком от радости при виде советских очередей.
>гдеВ демпартии и тусовочке вокруг, во время mostly peaceful protests оказалось, что авангард партии состоит из trained marxists, они сами об этом говорили.
Вот этот авангард Столлмана и травил на почве эпштейновско-минского уклона.
Спс, буду посмотреть.
> предложил для рассмотрения разработчиками ядра Linux четвёртый вариантТ.е. его 3 раза послали, а он ничего не понял и пришёл в 4й? Ну бывает, не очень умный, зачем новость-то? Никакого нового софта не создано, растоманы опять шум на пустом месте поднимают.
увы, не послали
linux-5.16> find . -type f -name "*.rs"Ничего нет.
linux-5.16> grep -r "\brust\b" .
./tools/perf/util/Build:perf-y += demangle-rust.o
./tools/perf/util/demangle-rust.c:#include "demangle-rust.h"
./tools/perf/util/demangle-rust.c: pr_err("demangle-rust: unexpected escape sequence");
./tools/perf/util/demangle-rust.c: pr_err("demangle-rust: unexpected character '%c' in symbol\n",
./tools/perf/util/symbol-elf.c:#include "demangle-rust.h"
./Documentation/translations/zh_TW/index.rst:* rust/index
./Documentation/translations/zh_CN/doc-guide/kernel-doc.rst:.. note:: kernel-doc无法包含Rust代码:请参考 Documentation/rust/docs.rst 。
./Documentation/translations/zh_CN/index.rst:* rust/index
./Documentation/admin-guide/kernel-parameters.txt: with rotating-rust storage.
Какой-то мусор на китайском.
В 5.16 нет. В linux-next есть. А там - то что планируется принять.
То состояние ветки linux-next должно было влиться 5.13. Раст планировали, но не влили. Или те патчи и были этим сишным файликом и докой на китайском?
>> предложил для рассмотрения разработчиками ядра Linux четвёртый вариант
> Т.е. его 3 раза послали, а он ничего не понял и пришёл
> в 4й? Ну бывает, не очень умный, зачем новость-то? Никакого нового
> софта не создано, растоманы опять шум на пустом месте поднимают.Если бы это был шум на пустом месте..
Ну в четвёртом то чтении примут наконец или пятого чтения ждать.
Ждём когда "пятую редакцию патчей для ядра Linux с поддержкой языка Rust" выкинут, и при этом Линус сильно выругается.
Друзья, хочу вас успокоить.
Переписать ядро линукс на раст в обозримом будущем не возможно.
По причине гигантского обьема работ.
По приблизительным оценкам трудозатраты на создание ядра
составляют несколько миллионов человеко-лет.
В лучшем случае развития событий растоманам датут возможность
писать писать драйвера или модули ядра.
Даже согласование этих простых вопросов займет несколько лет.
Ни в расте, ни в хайпе вокруг него ничего плохого нет.
Здоровая конкуренция только способствует обогащению экосистемы.
Ну и естественно множество людей пройдутся по старым граблям
и сломают себе зубы, поскольку никаких особо новых концептуальных
идей (кроме безопасной работы с памятью), раст в себе не несет.
Просто очередной виток спирали эволюции, возможно тупиковый.
> Переписать ядро линукс на раст в обозримом будущем не возможно.но зато подосрать зависимостью сборки от сраста - аж бегом. этого и хотят
А никто не собирается его переписывать.
Просто понадобилась возможность писать на расте ядерный код.
С чего такой хайп поднялся.
> понадобилась возможностьКому понадобилась? Растаманам? Дак они и в своём редоксе преуспели от слова никак...
>Кому понадобилась? Растаманам?
>Разработка финансируется компанией GoogleСтатью не читал что ли? Гуглу понравилась практика пересаживания своих макак на язычки типа Go, вот и топят дальше.
А теперь подумай над тем, почему понравилась? И ещё поразмысли, над таким утверждением: программирование существует не как искусство ради искусства, оно призвано решать практические задачи в как можно более сжатые сроки с как можно меньшей стоимостью, но при этом с приемлемым уровнем качества.
Скажи-ка, уважаемый эксперт, а где лично ты преуспел? Неуж-то пачками коммиты шлёшь в ядро? Я вот почему-то сильно сомневаюсь. Поэтому хочу спросить, чем конкретно ты недоволен? Или все кричат, и ты кричишь? Стадный инстинкт, так сказать?И вообще-то преуспели они в своём Редоксе.
>В лучшем случае развития событий растоманам датут возможностьписать писать драйвера или модули ядра.
В лучшем случае развития событий растоманов выпрут из ядра до первого panic и сужения списка архитектур до мизерного. Даже common lisp умеет в больше архитектур, чем раст.
>Ни в расте, ни в хайпе вокруг него ничего плохого нет.Есть тоталитарная секта любителей раста, набитая сверху донизу расистами, по какому-то недоразумению называющими себя борцами за социальную справедливость.
Ещё есть недоразумение по имени cargo, превращающее системную разработку в склейку leftpad-ов (кстати, тоталитарная секта любителей раста целиком состоит из почитателей js, что символизирует).>кроме безопасной работы с памятью
Концептуальная идея из сишарпа, ага. Особенно там, где безопасной работы особо-то и нет.
>>Ни в расте, ни в хайпе вокруг него ничего плохого нет.
> Есть тоталитарная секта любителей раста,...
> тоталитарная секта любителей раста целиком состоит из почитателей js, что
> символизирует).А в реальности все проще - есть секта борцунов "Против <чегонибудь>".
Так как просто брызгать слюной и сотрясать воздух/клаву выглядит глупо, они очень любят сначала нафантазировать себе "Врагов", от которых потом успешно "эащищают Родину, Землю и Галактику!"
>А в реальностиТолько вот SJW, твои братья по разуму, отрицают объективность реальности, у них это в мозгу заложено прямо на подкорке, одна из аксиом идеологии. Откуда берутся снежинки? Из неповторимого опыта каждой персоны. А он откуда берётся? Как раз из убеждения в том, что объективной реальности нет. Так что не надо тут пытаться задвигать за реальность, она не на твоей стороне.
И вот попытки просунуть язычок на полторы архитектуры, жирным рантаймом, да ещё и с паникой на аллокациях в ядро - это как раз отрицание реальности.
Вот и получается, что секты борцов "Против <чегонибудь>" нет, действие всего лишь рождает противодействие и в этом случае противодействие адекватнее действия.
P.S. Не зря, кстати, у самого заметного участника московской растконфы бложик называется "Мне не нравится реальность".
> Только вот SJW, твои братья по разуму, отрицают объективность реальности, у нихТолько вот лица нетрадиционно-яблочной ориентации, твои братья по разуму и духу, тоже любят ныть и менять тему, так что не надо тут пытаться задвигать за разум и аксиомы - они не на твоей стороне.
> И вот попытки просунуть язычок на полторы архитектуры, жирным рантаймом, да ещё
> и с паникой на аллокациях в ядро - это как раз отрицание реальности.
> Вот и получается, что секты борцов "Против <чегонибудь>" нет,Да-да, секты нет, а бурные фантазиии сектантов и сами они - никуда не делись.
> Есть тоталитарная секта любителей растаРазве что в твоём воображении. На Opennet, например, куда больше новостей о программах, написанных на плюсах или C. Судя по твоей логике - это тоталитарная секта?
Одни люди предпочитают один ЯП. Другие - другой. Какая-то борьба за главенство идеологий идёт, конечно, куда без неё. Ну и что тут тоталитарно-сектантского?
> по какому-то недоразумению называющими себя борцами за социальную справедливость
Причём здесь ЯП? В любом обществе есть такие. Чем больше общество, тем больше шансов встретить подобных людей. Что сказать-то хотел? Или это такая попытка провести аналогию, что, типа, если человеку нравится Rust, то он по определению борец с чем-то там? Должен тебе заметить, что у тебя ущербная логика в данном случае.
> Ещё есть недоразумение по имени cargo, превращающее системную разработку в склейку leftpad-ов
Почему недоразумение? Cargo МОЖЕТ использоваться для таскания пакетов извне. Но это НЕ ЕДИНСТВЕННАЯ его функция. Это ещё довольно крутая система сборки, ни в C, ни в C++ такой стандартной нет.
> Концептуальная идея из сишарпа, ага. Особенно там, где безопасной работы особо-то и нет.
Доказать можешь? А то ведь умные люди работают над языком уже не первый десяток лет и гарантируют, что работа с памятью без unsafe безопасна, а тут заявляется анонимный эксперт и утверждает обратное. Если что, про возможные утечки при циклическом использовании указателей знаю. Но это некритично.
> Переписать ядро линукс на раст в обозримом будущем не возможно.Согласен, но не потому, что "его там много", а потому что всё сделано на Трольвадской вермишели говённого монолита. Любые вторжения в сорсы сразу же потребуют "согласований" по сотне зависимостей. Это и есть плата за тупое проектирование ядра.
Было бы микроядро, вообще пофиг было бы на чём писать - хоть на ЛИСПе!
Начало положено. Следующим воткнут Python в ядро.
Надо попиарить хурд. На хурде можно писать драйвера вообще на любом языке, даже на расте. Без адаптации ведра.Правда вот раст на хурде не заведётся, но если бы завёлся, паника бы не убило ведро.
А они что-то более приличное, чем драйвер к GPIO сделали?Могли бы хотя бы драйвер для сетевой карты, например e1000e сделать, она во многих эмуляторах есть. А то ведь у них сейчас нет ни DMA, ни соединения с какой-нибудь сложной системой ядра, типа сетевой.
Они редокс не смогли написать... Проблема как раз с дровами даже к старому оборудованию - на реальных машинах не работает.
Вообще-то смогли и работает. На РЕАЛЬНЫХ машинах.
Насколько я понимаю, сейчас идёт процесс утряски и согласований. Когда всё устаканится, начнут пачками драйвера писать.
Мне страшно Linux и Opensource. Но не из-за Rust, Wayland и iwd. Мне страшно из-за пользователей, которые отрицают любые нововведения. Боюсь если руководить будут такие "Консерваторы", Linux никогда бы не стал самой важной системой мира на которой держится весь интернет. Был бы простой поделкой студента на C, без каких-либо нововведений с небольшой кучкой "Фанатиков", которые бы отрицали любое DE и молились на православную консоль даже сейчас
commagray, залогинься.
>любые нововведенияНе вижу в Rust, Wayland и iwd никаких значимых нововведений, кроме того, что iwd всё-таки написан не на мёртвом втором питоне. И то, iwd multihoming запилить не сможет.
В Rust из нововведений только привязка кода к репозиториям намертво и сотни бывших фронтендеров, зачем-то посчитавших, что они осилят системное программирование. И тут тот же sbcl с его VOP-ами поинновационнее будет. А для тех, кому C++ - сложна, уже давно есть Vala, если C - тоже сложна, а C# - оверхедна.
В Wayland вообще чего-то нового нет, это "давайте сделаем дисплейный сервер без собственно дисплейного сервера". Ни сетевой прозрачности, ни xephyr, копипастинг и скриншоты через композитор, ни xrandr, ни mpx. Где инновации? Инновации в том, что сервер сложил большую часть своей работы на композитор, хотя основная претензия к иксам была в том, что он наоборот не в курсе про некоторые вещи, которые должны лежать в основном протоколе?
>которые бы отрицали любое DE
Пишу из-под wm, тормозов ноль, не падает по воле левой пятки, занимает свободное место по минимуму, разработчики не депрекейтят фичи. Замечательно скриптуется, кстати. Часто использую те самые консольные программы - жрут меньше гуёвых, отлично скриптуются, фич больше. А зачем ты поставил себе линукс, мне непонятно.
На Wayland не серь. Wayland линуксоиды любят, Wayland - это прогресс.
Пруфы прогресса вяленда в студию.
> В Rust из нововведений только привязка кода к репозиториям намертво и сотни бывших фронтендеров, зачем-то посчитавших, что они осилят системное программирование. И тут тот же sbcl с его VOP-ами поинновационнее будет. А для тех, кому C++ - сложна, уже давно есть Vala, если C - тоже сложна, а C# - оверхедна.В нескольких предложениях тебе удалось объединить такое количество глупостей и предубеждений. Да у тебя талант.
Среди системных языков Rust просто сверхпрогрессивен. Тут тебе и безопасная работа с памятью, и строгая типизация, и контроль времени жизни переменных, и модульность, и крутая стандартная система сборки, которая МОЖЕТ в том числе тягать пакеты из центрального репозитария (а может и не тягать). И стандартные форматер и линтер. И всё это без потери производительности конечного кода!
Современный C++, вроде, неплох, но это только если придерживаться какого-то ограниченного подмножества языка. А так - это уродливый монстр с полуторатысячестраничной спецификацией и, несмотря на свой возраст, - с овердохренительным количеством ситуаций с UB.
C не сложен. Он очень прост. Но эта простота обманчива, если посмотреть на количество багов, связанных с некорректным приведением типов и/или некорректной работой с памятью.
VOP-ы из SBCL в студию, до этого момента крыльями не хлопай.
> VOP-ы из SBCL в студию, до этого момента крыльями не хлопай.Моя твоя не понимать. Что сказать-то хотел?
То, что юные лемминги считают за "нововведения", старые зубры давно уже проши, обсудили, выплюнули и больше не вспоминают. Не всё то "новое" (и далеко не обязательно "полезное"), что прибежало в проект и начало всё менять. Иногда от таких "новаторов" наоборот - лучше держаться подальше.
> старые, одуревшие от каждодневной борьбы с ошибками луддиты давно уже проши, обсудили, выплюнули и больше не вспоминают, потому что мозги уже давно не те.Поправил. Можешь сказать спасибо. ;)
2025 год: выпущена 99 редакция патчей для ядра Linux.
2030 год: программисты начали и продолжают спорить о правильной нумерации версии следующей редакции патчей для ядра Linux.
Вижу во всём этом кучу потенциального геморроя.1. Геморрой технический. Проблема с Rust в том, что на нём невозможно без весьма извращённых танцев с бубнами даже двусвязный список сделать. То ли фанаты Rust никогда не проходили курсы по структурам данных, то ли ещё что, но очень странно, что они не понимают важность возможности реализовывать всякие сложные динамические структуры данных, особенно в ядрах операционок, где этого добра просто дофига и больше.
2. Геморрой социальный. Сообщество разработчиков Linux было единым, со своими идиомами программирования, с единым языком, с единой культурой, со своей философией (свобода там, все дела). А тут в эту культуру хотят впендюрить совершенно инородный элемент: nien! нельзя к памяти обращаться! Развивать один проект на двух разных языках - это просто гарантировать разрушительный для всего проекта конфликт между сторонниками радикальго разных (в данном случае) культур. Тут выше говорят о конкуренции, и о её благости. Да, конкуренция - это хорошо, но не внутрипроектная, а внешняя. Пусть на Rust делают Redox, а потом сравним результаты (нет, не сравним, конечно, потому что см. технические проблемы).
Получается, Google разрушает сообщество разработчиков ядра. Я не думаю, что менеджеры Google этого не понимают. Следовательно, это делается целенаправленно. Вопрос: зачем?
1. Танцы с бубнами есть, но не такие уж и извращённые. Двусвязный список сделать возможно. Проблема в том, что компилятор Раст очень щепетилен и не любит неопределённостей, а в двусвязном списке они присутствуют. Поэтому приходится прибегать к unsafe. Односвязный список можно реализовать без unsafe. В книге по Раст приводится пример.
Однако же вполне можно пользоваться готовым. https://docs.rs/intrusive-collections/latest/intrusive_colle.../2. На начальных этапах Расту отводится роль языка для написания драйверов. Так что сообщество разработчиков ядра, как было единым, так им и останется. А на чём там драйверы написаны - да какая разница?
> nien! нельзя к памяти обращаться
Это что за бред? Конечно, можно. Лучше безопасно. Но если очень хочется, можно и как в Сях - небезопасно. Разница в том, что при некорректной работе с памятью ошибку будет куда проще локализовать на Расте - достаточно пройтись по коду с метками unsafe.
> Получается, Google разрушает сообщество разработчиков ядра
Получается, ты начитался какой-то белиберды от хейтеров и теперь транслируешь их страхи, даже не пытаясь особо вникнуть в детали.
Гугл пытается оптимизировать свои расходы. Потому что если принять во внимание статистику, то количество ошибок некорректной работы с памятью приближается к 70% от общего количества ошибок - это очень много, такие ошибки часто критичные, на исправление тратится много времени и денег. Если Раст позволит сократить количество таких ошибок и время на их локализацию хотя бы вдвое - то это уже огромный жирный плюс.
1. И вот это вот вы называете не извращённым? https://github.com/Amanieu/intrusive-rs/blob/master/src/link...Это не просто извращённые танцы с бубенчиками, привязанными к яйкам. Это просто абсурд. Называть безопасным язык, в котором даже простой двусвязный список требует unsafe реализации. В ядрах операционок требуются гораздо более сложные конструкции с уймой перекрёстных ссылок. И что, Rust мне предлагает для каждой такой структуры писать такую нахлобучку из unsafe-кода? И этот код нетривиальный, в нём легко накосячить и сложно косяк найти. И после этого набегает туча зелотов и начинает мне втирать, какой у них безопасный язык? Да ладно!? Вы серьёзно!?
И если бы мне хватало односвязных списков без циклов, я бы писал на чём-нибудь функциональном. Зачем вообще связываться с императивными языками, указателями и ссылками в таком случае?
2. Нет, не получается. Меня заставили писать на Rust текущий проект для микроконтроллера, и я уже этого Rust столько наелся, что спасибо, больше не надо. Больше всего раздражает, что технические решения принимают менеджеры, которые последний раз код писали лет 100 назад, которым к тому же надувают в уши всяких абстрактных культов о том, что мол строгая типизация спасает от ошибок. Да нифига она не спасает, и это научно установленный факт. От ошибок спасают неизменяемые структуры данных. Но, к сожалению, ядра операционок или вот микроконтроллеры они вообще целиком и полностью про изменяемые структуры данных, про взаимодействие с изменяемым миром, в котором куча переменных взаимосвязей.
И в Safe Rust этот изменяемый мир никак не укладывается. Я вообще не понимаю, чего именно обкурились разработчики языка, когда изобретали его ядро. Такое ощущение, что они вообще ни одной структуры данных сложнее массива в жизни не реализовывали, ни разу не программировали взаимодействующие процессы, ни разу не упихивали код в ограниченную память. Иначе, они бы такого отвлечённого от реальности маразма не наворотили бы.
Да и потом? В первый раз что ли такое? Абсолютно такая же история с Haskell. Типа, вот у нас есть мощная система типов и теория категорий, поэтому все перед нами падайте ниц, восхищайтесь, восторгайтесь и практикуйте, и всё будет безопасно. А то, что на Haskell нет ни одного вменяемого приложения, и то, что Haskell не используют даже математики в своей работе, никого не волнует.
Кстати, зелоты Haskell тоже в свой время кричали о том, что вот сейчас они возьмут и напишут операционную систему, безопасную и без утечек памяти. И что? И где? Тоже дошли примерно до уровня Redox и сдулись.
В прошлый раз жертвой такого надувательства стала Microsoft, которая только вот недавно избавилась от этого груза, выпнув Haskell-истов из своих лабораторий в Haskell Foundation и свободное плаванье. Хотя, теперь они умудрились присосаться к Epic Games, и будут сейчас изобретать ей язык Verse.
Впрочем, в эпоху постмодерна и деконструкции, кого интересует реальная наука и практика? Да, ведь? Главное громче всех кричать о том, что даже не сделано (как например в Haskell нет никакой категории Hask, зато про неё громче всех кричат). Про Rust даже не доказана теорема о продвижении, которая просто must have, если вы кричите о навороченной системе типов. И баги и ошибки Rust пропускает, есть много тому примеров, только они очень сложные и нетривиальные, и рождаются в попытках реализовать необходимое через барьеры ограничений, которые Rust ставит.
Для избегания ошибок с памятью у Google есть Go. Если Google не устраивает Linux, они могут просто взять Rust и написать на нём своё ядро (ха-ха-ха, конечно, см. пример Redox), вот будет настоящая конкуренция. Типа, смотрите, мы написали ядро на Rust и оно лучше Linux. Зачем в Linux-то тащить весь этот маразм? Нет, ну реально, в Linux владение ссылками постоянно переходит от одних структур данных к другим, структуры данных постоянно перемещаются для оптимизации, на Rust с этим работать - полная дикость. Так зачем? Ради хайпа, политических и социальных плюшек?
> 1. И вот это вот вы называете не извращённым? https://github.com/Amanieu/intrusive-rs/blob/master/src/link...Хотелось бы большей конкретики. ИМХО, код как код.
> Называть безопасным язык, в котором даже простой двусвязный список
> требует unsafe реализации.Но я ведь объяснил причину. Повторюсь. Если имеем дело с неопределённостями, причём сложными, то или обмазываемся Option, Box, Rc, Arc и т.д. (сложный синтаксис, да), либо сразу пишем unsafe. Вполне себе нормальный подход. Хотите ходить быстро (тяп-ляп, как в Си) по граблям без гарантий компилятора - ок, вот вам инструмент. Хотите гарантий компилятора при работе с динамичными и местами неопределёнными структурами - чешите репу. На Си или Плюсах, если бы вы захотели гарантий, вам бы пришлось действовать точно так же, только репу чесать ещё сильнее и дольше. Поэтому я не понимаю, чем вы недовольны.
> В ядрах операционок требуются гораздо более сложные конструкции
> с уймой перекрёстных ссылок.Например? Кроме файловой системы в голову больше ничего особо и не приходит. Вы её имели ввиду? Или что-то ещё?
> И что, Rust мне предлагает для каждой такой структуры писать такую нахлобучку из unsafe-кода?
Ну вы же пишете подобный код на C? В котором куда больше надо делать "нахлобучек". Но к Си вы привыкли, что ли, уже просто не замечая того факта, как он морально устарел.
> И этот код нетривиальный, в нём легко накосячить и сложно косяк найти.
Гораздо проще, чем в C. Потому что куски unsafe изолированы друг от друга. Опять же странно, что вам нравится копаться в одной сплошной куче unsafe-кода, нежели в отдельных изолированных кусочках.
> И если бы мне хватало односвязных списков без циклов, я бы писал
> на чём-нибудь функциональном. Зачем вообще связываться с императивными языками, указателями
> и ссылками в таком случае?Затем, например, что императивные языки быстрее функциональных в общем случае. Скорость решает в системном программировании.
> строгая типизация спасает от ошибок. Да нифига она не спасает, и это
> научно установленный факт.Она не спасает от всех возможных ошибок (например, логических) - да, это научно установленный факт. Но от некоторых всё-таки спасает: например, от некорректного приведения типов. Уже жирнющий плюс.
> От ошибок спасают неизменяемые структуры данных.
С ними, понятное дело, куда проще иметь дело. Логических ошибок будет действительно гораздо меньше. Но причём здесь логические ошибки до ошибок приведения типов?
> Такое ощущение, что они вообще ни одной структуры данных сложнее массива
> в жизни не реализовывали, ни разу не программировали взаимодействующие процессыТакое ощущение, что вы вообще не в теме, хотя утверждаете, что сыты Растом по горло. Браузер - не достаточно динамичная программа, хотите сказать?
> И что? И где? Тоже дошли примерно до уровня Redox
А что с Redox не так? Разработка затихла? Или какие конкретно претензии?
> Про Rust даже не доказана теорема о
> продвижении, которая просто must have, если вы кричите о навороченной системе
> типов.Не в курсе об этой теореме. Гугл тоже ничего не находит. Могли бы ссылкой поделиться?
> И баги и ошибки Rust пропускает, есть много тому примеров
Ещё раз. Rust не страхует от всех возможных ошибок. Только от определённого класса: некорректное приведение типов, некорректная работа с памятью.
> только они очень сложные и нетривиальные, и рождаются в попытках реализовать
> необходимое через барьеры ограничений, которые Rust ставит.Там, где много неопределённости - так и есть. Но в каких языках по-другому? Конкурентное программирование да ещё с динамическими общими структурами - одна из самых сложных областей в программировании. На других языках, подозреваю, то, что в Rust можно сделать хоть с какими-то гарантиями, сделать невозможно от слова "совсем". Встречалась статья, где один мужик оптимизировал софт на крупной международной бирже. За полгода ему удалось сделать то, что не удалось сделать коллективу плюсовиков за несколько лет. Главная причина - сложность многопоточного программирования в плюсах. Мужик писал на F#, где, по-видимому, с этим дела обстоят намного проще.
> Зачем в Linux-то тащить весь этот маразм?
Может потому, что это не маразм в глазах программистов Google, MS, Huawei, Amazon, Mozilla и кучи других более мелких спонсоров?
>А на чём там драйверы написаны - да какая разница?Действительно, какая разница - драйвер под полторы архитектуры или под десять.
>Геморрой социальный. Сообщество разработчиков Linux было единым, со своими идиомами программирования, с единым языком, с единой культурой, со своей философией (свобода там, все дела). А тут в эту культуру хотят впендюрить совершенно инородный элементА ты посмотри на состав раст фаундейшена и заодно вспомни, сколько внутри растосферы sjw на зарплате у MS.
> А ты посмотри на состав раст фаундейшена и заодно вспомни, сколько внутри
> растосферы sjw на зарплате у MS.На состав линукс фаундейшена давно смотрел?
Так потому я и жду слаку 15, потихонечку изучая ситуацию с другими unix-подобными ОС, от заразы пекарня уже очищена давно. По большей части.
Пока не завезут в ядро Prolog или хотя-бы Common-Lisp - пусть идут в виндовс и там внедряют себе эти ихние Rust'ы оп самое ядро.
Алсо, сем им Си не угодил, "сложнА без сахарку"?
"Он в четвёртый раз закинул невод в сине море - пришёл невод с одной травою морской..." (с)