URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 137208
[ Назад ]

Исходное сообщение
"Выпуск Rust 1.88. Операционная система Munal и утилита rsched на Rust"

Отправлено opennews , 27-Июн-25 19:32 
Опубликован релиз языка программирования общего назначения Rust 1.88, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки)...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63485


Содержание

Сообщения в этом обсуждении
"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 19:56 
Они старую ос не дописали, а уже новую начинают.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:16 
> Они старую ос не дописали, а уже новую начинают.

Расскажи поподробней, кто эти "они"? А заодно, почему другие "они" не дописали Hurd/Syllable/React/Phantom/HelenOS/<куча других хоббиосей> и каким образом "этодругоепониматьнадо!"?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 03:50 
Они это растоманы.
Другие они остальные. В отличии от растоманов не били себя в грудь ни насчёт "линуксу/сишке/делам  конец", ни насчёт сверхбезопасности и скорости разработки.
Теперь, когда растоманы облажались, естественно окажется что это другие растоманы говорили и вообще не то имели в виду и они всегда были за линукс. Но 5 лет назад ни один растохлопец не стал опровергать.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 08:35 
> Расскажи поподробней, кто эти "они"

Я не он, но предполагаю он имел ввиду - лучше бы дописали первую ось на расте (редокс емнп) общими усилиями, а не распылялись на разные проекты. И "они" это авторы муналос, по моему это очевидно, как ты это не понимаешь, ума не приложу.

> Hurd/Syllable/React/Phantom/HelenOS/<куча других хоббиосей> и каким образом "этодругое

Таким, что новость не о них, а о муналос. О перечисленных тобой осях вообще речи не было, зачем ты их притащил? Не понятно.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Карлос Сношайтилис , 28-Июн-25 11:13 
> О перечисленных тобой осях вообще речи не было, зачем ты их притащил?

Авторы Hurd/Syllable/React/Phantom/... имеют плавно такое же отношение к редокс у, как и авторы муналос.
Почему бы им тоже не подключиться к разработке "общими усилиями"?

Теперь тебе отсылка стала понятна?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 11:44 
> Почему бы тоже не подключиться к разработке "общими усилиями"?

Так об этом здесь каждый второй кричит, когда выходит новость о каком-нибудь маргинальном/полумаргинальном/совсем-не-маргинальном проекте, особенно связанным с экосистемой linux - "Лучше бы *** пилили...") И чем, в этом смысле, отличаются эти поделия на расте не ведомо. Но (судя по тому, как забомбило) почему-то это оказалось другим.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:17 
Кто они? Они сейчас с тобой в одной комнате?

Или это абсолютно разные люди пишут разные ОС?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 00:07 
>Кто они?

Jeremy Soller, Ribbon, bjorn3, Ron Williams, 4lDO2, Ian Douglas Scott, Anhad Singh, somewhat inactive, Emanuele Antonio Faraone, Nagy Tibor, jD91mZM2, Xavier L'Heureux, Noelle Levy, François Laignel


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 00:31 
>>Кто они?
> Jeremy Soller, Ribbon, bjorn3, Ron Williams, 4lDO2, Ian Douglas Scott, Anhad Singh,
> somewhat inactive, Emanuele Antonio Faraone, Nagy Tibor, jD91mZM2, Xavier L'Heureux, Noelle Levy, François Laignel

Честно попытался найти тройку (все проверять мне лень) имен в списке авторов
https://github.com/asterinas/asterinas/graphs/contributors
https://github.com/Askannz/munal-os/graphs/contributors
но - ни одного совпадения.

Очередной пу̵с̵к̵ ̵м̵е̵т̵а̵н̵а̵ ̵В̵о̵е̵н̵а̵м̵и̵ ̵С̵у̵п̵р̵о̵т̵и̵в̵ ̵Р̵а̵с̵т̵а̵ коварный заговор Подлых Растаманов?



"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено morphe , 28-Июн-25 15:20 
> jD91mZM2

Человек умер 4 года назад, тебе он и мёртвый мешает?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:28 
Он должен был воскреснуть и подключиться к разработке «общими усилиями»

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 16:58 
>>Кто они?
> Jeremy Soller, Ribbon, bjorn3, Ron Williams, 4lDO2, Ian Douglas Scott, Anhad Singh,
> somewhat inactive, Emanuele Antonio Faraone, Nagy Tibor, jD91mZM2, Xavier L'Heureux, Noelle
> Levy, François Laignel

"Кто все эти люди?" Даже фараон какой-то затисался :)


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:12 
у Redox лицензия MIT, у этой - другая

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Версия , 27-Июн-25 19:58 
Зачем суперминорные версии так часто?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:19 
> Зачем суперминорные версии так часто?

Почему суперминорные? Нормальная минорная версия.
И не часто, а ровно раз в 6 недель.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:30 
> Зачем суперминорные версии так часто?

С 2015 так - назло хейтеркам, они так забавно реагируют на упоминания Раста. Ну и чтобы не накапливать "тех-долги" (но в основном, все же - назло) ;)

И оно вышло вообще-то вчера.
Но! Вчера был четверг!
А расто-сра^W э-э-э, конструктивная-критика-раста-опеннетовцами в четверг и конструктивная-критика-раста-опеннетовцами в пятницу-субботу-воскресенье -- это две совсем разные конструктивные-критики-раста-опеннетовцами!
В общем, летс те срач бегин (хотя вон, выше - уже)!


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено laindono , 28-Июн-25 00:20 
А как надо? Раз в восемь недель, а не раз в шесть недель? Раз в полгода? Раз в несколько лет?

Частые релизы позволяют поставлять фичи по готовности. Это в целом упрощает процесс разработки и поддержки проекта.

Не уверен, что ты имеешь ввиду под суперминорными версиями. В стандарте Semantic Versioning про них ни слова. Там есть мажорная, минорная и патч. Ещё есть пререлизные версии и всякая мета. Но никаких суперминорных версий. Вот полный формат: https://semver.org/#backusnaur-form-grammar-for-valid-semver...


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 02:08 
А редакции, те что раз в три года, тогда зачем? Ведь получается, что на расте имеет смысл писать только на самом свежем, и для сборки нужен всегда самый свежий, полная привязка к онлайну и к карго.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено laindono , 28-Июн-25 15:33 
> А редакции, те что раз в три года, тогда зачем?

На твой вопрос есть весьма подробный ответ: https://doc.rust-lang.org/edition-guide/

Вообще в отличии от подавляющего большинства технологий, для всей экосистемы Rust есть документация. Подробная и качественная. Для того, чтоб найти что-то недокументированное, надо целенаправлено искать. Долго и упорно.

> имеет смысл писать только на самом свежем

Без дополнительного контекста это верно для любой технологии. Обычно нет смысла использовать старьё.

Однако это не значит, что ты обязан использовать самое свежее. Вполне можешь использовать ту версию компилятора и сборочной инфраструктуры, какую тебе хочется. cargo это в первую очередь сборочная инфраструктура. Аналог cmake или ninja или ещё чего-то. Но со встроенным менеджером зависимостей. Почти всегда, делая что-то реальное, ты будешь использовать пакеты, взятые из cargo.io. Но никто не заставляет. Можешь сделать себе офлайн зеркало, либо вручную зависимости подключать даже. Подробности в документации https://doc.rust-lang.org/cargo/

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 17:42 
>Вообще в отличии от подавляющего большинства технологий, для всей экосистемы Rust есть документация. Подробная и качественная. Для того, чтоб найти что-то недокументированное, надо целенаправлено искать. Долго и упорно.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 18:00 
> Пару лет назад было много разговоров про отсутствие формальной спецификации языка,

Так это тут только разговоров было, типа "хотим как в сишечке!"))
А остальным оно не сильно и мешает, даже в gcc добавляются rust без формальной спецификации языка.

> достаточно компилятора и его документации. Как с этим дела обстоят?

Таки достаточно!

Но с того времени появился FLS, бывший Ferrocene Language Specification, который они сделали при подготовке к сертификации раста для safety-critical/regulated отраслей, а потом подарили Rust Project. Скорее всего он ляжет в основу спецификации.

PS: они впоследствии сертифицировались по ISO 26262(ASIL-D), IEC 61508(SIL4) и IEC 62304.
Так что "дока" отличная))


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено laindono , 28-Июн-25 18:04 
Есть https://doc.rust-lang.org/stable/reference/, есть https://rust-lang.github.io/fls/

Первое - детальное описание языка для пользователей языка. Второе как раз формальная спецификация. Не очень понятно, зачем оно (fls) нужно, но оно существует. На сколько я понимаю, формальная спецификация является больше юридическим документом. Т.е. это не для программистов, а для юристов. Для программистов есть reference.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 18:11 
> Не очень понятно, зачем оно (fls) нужно, но оно существует.
> это не для программистов, а для юристов

Сами же ответили))
Это как раз более чем понятно зачем - сертификации.
Без такого их не пройдешь, а они открывают двери в том числе в госконтракты.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено laindono , 28-Июн-25 19:10 
Формальная верификация нужна очень редко. Только для очень узкого круга задач. Даже если рассматривать госконтракты, которые сами по себе не частое явление. Для подавляющего большинства программистов на Rust наличие Спецификации ничего не значит. Тем более, что нет смысла использовать спецификацию как документацию при наличии более подходящих вариантов.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 29-Июн-25 03:30 
>Для подавляющего большинства программистов на Rust наличие Спецификации ничего не значит.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:02 
Не применяется mmu. Это так надо писать. Как дал uefi direct mapping так и живём. Так ёбта. Я написал свою ось на c++ в которой есть mmap. Там даже acpica прикручена.

Знаете в чем проблема с mmap? У вас есть гарантия атомарного выставления флага A но нет D. То есть когда ты обновляешь pte ты должен быть готов к тому что тебе с соседнего ядра прилетит некорректная запись. Чтоб этого не было используется ipi с блокировкой ядер на время этой операции. Спасибо сраный Интел. За то что протокол обновления pte не подразумевает compare-and-exchange.

Растаманы разумеется даже в это не смогли. Но сделано ядро! Воу! Раст вперде! Они ведь даже не понимают что это нахер ненужно


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено НяшМяш , 27-Июн-25 21:50 
Это точно. Всего-лишь версии 1. Надо как у хромов с файрфоксами - по 169 версий, тогда норм будет.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено ckotinko , 27-Июн-25 20:19 
Администраторы мой клиент стёрли. Напишу заново не триггеря их. Сам виноват.

Растаманы не асилили paging в x86. Который сам по себе очень сильно всрат потому что mmu не использует compare-and-exchange операции для обновления флагов A и D при выполнении операций. Это делает операции типа mmap или mremap очень сложными и дорогими.

Так вот. На выходе очередная недоось на расте. Без шансов взлететь вообще.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:20 
Там аноним со своей осью на крестах слишком умный. Такой умный, что чирбот его схомячил под кат. Потому что нельзя быть таким умным во здесь. А по факту, что тот аноним с крестной ОС, что эти растовики - ну, норм студенческая движуха. Пусть учатся, а не в пакет в подвале дышать. Я - за.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено ckotinko , 27-Июн-25 20:25 
Не аноним во первых а я

Во вторых это не взлетит почему не взлетела моя ось. Дрова. Но допустим что дрова подарят инопланетяне.

Полно других проблем которые вот прямо так не решаются. MMU. Acpi не всегда работает по стандарту. Иногда оно специально сделано так что пытается сломать Линукс. Примеры есть. Drm задолбаешься портировать. Плюс его ещё и переколбашивают постоянно


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено 12yoexpert , 27-Июн-25 20:28 
ну то есть ты не осилил

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено ckotinko , 27-Июн-25 20:38 
Ну так растаманы осилят. Их много а я один. Хотя нет, не осилят

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 02:12 
>Acpi не всегда работает по стандарту. Иногда оно специально сделано так что пытается сломать Линукс.

А винду не ломает? Может стоит её поведение копировать, а не линукса?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 13:56 
> А винду не ломает? Может стоит её поведение копировать, а не линукса?

Жила была девочка^W Рекатос, 20+ лет, сама виновата...


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним2806 , 28-Июн-25 21:27 
Так они все "жили-были". Кто про них всех таких вспомнит через 20 лет? Но это не умаляет их академической ценности для причастных в период разработки.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 20:51 
Всяко лучше чем всё сишное. Вон Торвальдс прогнулся под натиском солидных корпораций - разработчиков Раста, значит Раст - это будущее человечества! УРА!

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 21:17 
Будущее человечества - TWW. Future. No future.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Прохожий , 28-Июн-25 16:13 
> Вон Торвальдс прогнулся под натиском солидных корпораций

Как вы поняли, что он именно прогнулся? Я к тому, что слово "прогнулся" обычно означает, что кто-то упорно сопротивлялся, но его всё-таки сломили и заставили. Так вот, ещё раз, как вы поняли, что Торвальдс именно прогнулся? Из каких его сообщений это следует?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 21:29 
> Ядро и приложения выполняются в одном адресном пространстве

Здравствуй, ms-dos!

> с применением модели безопасности на базе sandbox-изоляции WASM (в состав входит движок wasmi для запуска приложений в форме байткода WebAssembly).

Ладно, не совсем ms-dos, но все равно криво.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Бармаглот , 27-Июн-25 23:09 
Почему DOS, а не, скажем, vxWorks?

А! этодругоепониматьнадо, марсоходам можно, а растаманам низя


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 23:12 
> Почему DOS, а не, скажем, vxWorks?
> А! этодругоепониматьнадо, марсоходам можно, а растаманам низя

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 17:09 
Помнится, один их pathfinder на vxworks на Марсе вдруг начал без конца перезагружаться. Еле его в чувство привели.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 22:16 
> а безопасность достигается на уровне логического разделения безопасного кода и кода, в котором не исключено возникновение проблем с безопасностью

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

Для такой архитектуры нужен другой язык.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 22:39 
Ты как всегда прав, друг мой.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 23:08 
crates.io с мобильной связи у всех открывается?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Котик Биба , 28-Июн-25 14:48 
Т2, без того-что-нельзя-называть совсем лежит. При попытке оживить, оживляется, но не полностью. Вот уже неделю пытаюсь найти рабочий конфиг, чтобы исправить.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 17:13 
В репозитариях debian и РедОс есть штук 100-200 самых популярных крейтов Rust

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 27-Июн-25 23:42 
> Добавлена возможность указания нескольких выражений "let" внутри условных блоков "if" и "while"

Это полезно. Реально напрягает местами писать вложенные if-let.

> В пакетном менеджере Cargo включён автоматический запуск сборщика мусора для очистки кэша в домашнем каталоге

Ну наконец-то! Столько места жрёт, что прям никаких терабайтов не напасёшься.

> Признак "const" применён в функциях:

Прикиньте, я тут споткнулся о то, что f64::log2 не const.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 00:09 
>Код распространяется под лицензией MPL 2.0.

Ну хоть лицензия более-менее, хоть это хорошо.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Пользователь , 28-Июн-25 01:00 
Мне абсолютно понятно, какую цель преследовали авторы языка: хотелось и скорости, и безопасности. Но получилось что-то сильно замысловатое, увы. Порог вхождения очень высокий. Может не такой высокий, как у Плюсов, но всё же намного выше, чем у Си или, прости господи, Go. Про LLM модели знаю. Они, конечно, существенно упрощают понимание кода, но хотелось бы обходиться без их помощи. А без постоянной практики с этим языком это, мне кажется, невозможно, постоянно вылетают из головы те или иные концепции языка или особенности инфраструктуры. Сам язык мне нравится, но полноценно освоить как-то не получается.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 02:14 
> Не знаю, в чем причина этой сложности.

В том, что до них еще не дошло, что нельзя написать "умный" компилятор не расширяя синтаксис.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 02:28 
>Про Zig знаю. Но его нельзя назвать полноценной заменой Rust.

Он замена си. Раст ближе к плюсам, чем к си.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 07:35 
>Он замена си.

Zig не замена Си. Zig по душе тем кому, по тем или иным причинам, не подошёл чистый Си.

>Раст ближе к плюсам, чем к си.

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

По философии и концепции Раст ближе к C++. Потому-что та терминология, которая присутствует в Расте, в чистом Си отсутствует как класс, в  С++ присутствует.

Линус Торвальдс пустил Раст в ядро из-за того, что у Раста нет ООП. Я сишник разговаривая с растаманами я их не понимаю. Они такими терминами козыряют, что я просто теряюсь


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Карлос Сношайтилис , 28-Июн-25 12:02 
> Линус Торвальдс пустил Раст в ядро из-за того, что у Раста нет ООП

А можно пруф, что однозначно из-за этого?
Так-то в расте есть динамические трейты,  работают через vtable как и плюсовые классы. В чем разница?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 12:45 
О тода надо Раст из ядра гнать. Срочно и немедленно.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:04 
В раст vtable хранится отдельно от самого объекта. Объект идентичен СИшной структуре если #[repr(C)]. Плюс vtable создается только при dyn Trait (явно)
В крестах vtable хранится рядом с каждым объектом, что может сломать ABI, поскольку его позиция/формат зависят от компилятора. Т.е. не POD по определению. Понятно, почему это для ядра не очень.

Только объектно-безопасные методы могут находиться в дин-трейтах (к примеру, обобщенный метод не может), также нет неявных деструкторов/конструкторов. Соотв. vtable хранит только ссылки на методы, без RTTI или метаданных типа. Тогда как в С++ любой класс содержащий virtual метод автоматом получает vtable, даже если динамическая диспетчеризация не используется. Там таблицы содержат RTTI, оффсеты деструкторов и оффсеты при множественном наследовании. Нет проверок на безопасность объектов - каждый виртуальный метод динамически диспетчеризуется (UB через tempalte<>)

Создание-удаление объектов в раст проще - нет скрытых конструкторв/деструкторов. Удаление определяется явно, через impl Drop (если надо явно), и не пишется в vtable.
vtable в раст нельзя передать между юнитами компиляции. В С++ это можно сделать через заголовочные файлы. Так же все общие ядру стуктуры требуют совместимости с Си что в Раст обеспечивается через #[repr(C)], тогда как в .cpp можно потом случайно virtual метод добавить.

Драйверы и модули в ядре инициализируются в случайной последовательности, там нет main() одна инициализация вне очереди может крашнуть систему. А в С++ можно будет встретить глобальные конструторы/деструкторы, которые могут там присутствовать неявно. И проблема уже встречалась и в линухе и винде. То что в расте запрещено, в С++ присутствует в style-гайдах.

В общем, выгода в том, что растовые структуры могут спокойно пересекать границы Си/ядра, тогда как полиморфные типы крестов не могут. И нет скрытых control-flow связанных с конструкторами/деструкторами. dyn используется только внутри юнита компиляции. То есть даже если скомпилить отдельный модуль другим раст компилятором, то у него просто будет своя внутренняя реализация vtable, которая не просочится наружу.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 17:56 
>В общем, выгода в том, что растовые структуры могут спокойно пересекать границы Си/ядра, тогда как полиморфные типы крестов не могут

Это имеет значение только в отсутствии нормального апи для драйверов. Но это думать надо, проэктировать, програмировать под это уже будет не fun.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 19:48 
Вот а в сишке всё и без проектирования работает.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 19:56 
> Вот а в сишке всё и без проектирования работает.

Угу, оно и видно. Х-к, х-к и в прод. А потом дрова на патч обновлении ядра отваливаются.
Вот что у сишников хорошо получается, так это дырени без проектирования делать))


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 16:04 
Вот минусы по реализации. Трейт-объект весит 2x USIZE + неявные вызовы + отсутствует девиртуализация между крейтами. В С++ один vptr==usize и полноценная девиртуализация. В расте Result<(), Error> заметно срёт в глубоком call-stack, а в С++ такое тривиально инлейнится (не все можно представить как Option<&T>, который оптимизирован)
panic_handler добавляет ~2кб оверхеда на модуль(!), а таблицы размотки (unwind) забанили в ядре. У крестов в ядре нет эксепшенов, что сделает его zer-cost в этом отношении к расту.
То что для MMIO/UAFIO в С++ простой volatile в расте портянка на 30 символов ансейфа.
В расте нет битфилдов (:X) соотв. надо ручками маски-сдвиги писать.
макро asm! в расте урезанный, например не может забиндить %gs операнду. Может это уже пофиксили.
unsafe в расте требует больше внимания чем простой сишный код, из-за Раст-специфичных инвариантов.
Все это терпят из-за приятных гарантий о CVE по памяти.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Витюшка , 28-Июн-25 04:09 
Это совершенно не так. Там вообще нечего учить, по-сути.

Не знаю кто пишет что "нужно бороться с borrow checker", наверное какие-нибудь говнокодеры , которых тыкают в их код.

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

У меня в коде нет ни одного lifetime явного - всё "просто работает". Да и там всё просто на самом деле.

И нужно учитывать что там где бы ты это использовал + unsafe уже есть какие-то библиотеки готовые (которые сделали эту работу).

Например лично я работаю напрямую с битами и смещениями - куда уж более низкоуровневые операции (пишу свой тип bignum).

Так берёшь библиотеку bitvec и ни одного явного unsafe в коде.

Но чтобы это понять НУЖНО ПРОСТО ПИСАТЬ КОД.

И да, он лучше Zig - безопаснее, надёжнее, больше библиотек и т.п. На Zig ничего сложного не напишешь просто ввиду отсутствия библиотек.

Не будешь же ты свой http реализовывать с нуля по стандарту.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 09:40 
дай ссылку на свой гитхаб

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 19:47 
Не дам.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 11:03 
> На Zig ничего сложного не напишешь просто ввиду отсутствия библиотек

Реалии современных кодеров


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 11:57 
>> На Zig ничего сложного не напишешь просто ввиду отсутствия библиотек
> Реалии современных кодеров

Реалии современного мира. "На плечах гигантов" (с)
Время, когда было достаточно утилитки на 10к строк прошло.
Пока ты будешь велосипедить свои реализации для всего нужного, другой воспользуется уже готовым и выйдет в релиз.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 12:47 
Так растаманы и занимались переписыванием этих утилиток на 10 тыс строк.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 13:17 
> Так растаманы и занимались переписыванием этих утилиток на 10 тыс строк.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено олег , 28-Июн-25 14:22 
> Время, когда было достаточно утилитки на 10к строк прошло.

Сказки венского леса. Никуда это время не ушло. Смотря что и смотря где писать.

>  другой воспользуется уже готовым и выйдет в релиз.

Смотря что и в какой области. Что этот другой накодит? Никому ненужное очередное похожее на всех других приложение? Нах с такими вообще соревноваться? Пусть пишут свои быдлоподелия и конкурируют между собой за 1.5 пользователя. Если ты делаешь приложухи однодневки, что бы туда рекламы напихать и бегом в магазин приложений выложить, то тебе нужно всё это безоб бесспорно.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 14:53 
> Сказки венского леса. Никуда это время не ушло. Смотря что и смотря где писать.

Да что угодно писать.
Пока ты будешь с нуля реализовывать серриализацию или httpRequest, сосед уже предоставит готовую софитину.

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

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



"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:58 
> Пока ты будешь с нуля реализовывать

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

> На реализацию ненужного тратится время, а время - деньги.

А тебе за что платят?

> Сколько было хороших проектов, которые провалились потому что вышли поздно.

пример


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 17:37 
>> Сколько было хороших проектов, которые провалились потому что вышли поздно.
>пример

Windows Mobile
:)


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:52 
> Пока ты будешь велосипедить свои реализации для всего нужного, другой воспользуется уже готовым и выйдет в релиз.

ну я могу также подождать того другого и сцап-царапаю у него, в чем проблема? Дармоед и в Африке дармоед.

> Раст смог сделать "достаточное" кол-во либ переписыванием их с других языков.

Для вас достаточно для меня нет. Я подожду пока на нем будут созданы все средства необходимые допустим для кодирования ОС :)


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:38 
В Zig нет нормального аллокатора (проверенного, надежного, быстрого).

И нет реализации протокола http.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 15:59 
Ну на программируй, в чем дело?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 29-Июн-25 03:06 
" - Я краснодеревщик, а вы мне, уважаемый Работодатель, пустое рабочее место предоставили. Где хотя бы массив из которого мебель делать?
  - Бери топор и вон шуруй в соседний лес, за горой, там полно всяких деревьев...
  - Но нам же ценные породы нужны...
  - Просто потом цену на шкафы-стулья поднимем и станут для покупателя ценными.
  - Но здесь и топора нет, чтобы в лес идти. Да и всех других инструментов. Где пилы, стамески, рубанки?
  - Ты что как маленький. Сам сделай. Железную руду для железа вон в той горе накопай, по пути к лесу. И глины по пути не забудь набрать - печку для плавки железа надо будет слепить.
  - А для электролобзика, циркулярки, фрезера и шлифовальной машинки, которых я здесь тоже не вижу, электромотор и электричество нужны, кроме стали. Это что же, мне самому и мотор делать? Добывать медь для обмотки? Проволоку тянуть? Дамбу и гидрогенераторы строить? Верно понимаю?
  - Верно... Но знаете что, я вижу, у Вас возникает много вопросов и проблем на пустом месте. Мы вообще-то ищем настоящего Профессионала Краснодеревщика, который все проблемы решает самостоятельно и с нуля. Вы нам не подходите, Вы не похожи на профессионала..."

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Пользователь , 28-Июн-25 15:52 
> Это совершенно не так. Там вообще нечего учить, по-сути.

Мне-то рассказывать не надо. Там МНОГО чего надо осваивать и осмысливать:
- странно-замысловатая модель ООП (я привык к ООП в стиле того же Python, которая намного проще, чем в Rust. Разумеется, субъективно);
- ассоциативные типы (в том числе GAT);
- жёсткие области видимости переменных - понимаю, зачем они нужны, объяснять не надо, но простоты это не добавляет;
- lifetimes;
- borrow checking;
- типы из стандартной библиотеки, которые, по сути, являются чуть ли не частью языка, например, в таких областях, как обработка ошибок;
- асинхронное программирование - просто кладезь сложности - пересмотрел несколько статей и несколько роликов, которые пытаются её объяснить, но получилось только у одного автора, который показал, как можно писать асинхронный код не прибегая к ключевому слову async. И то пришлось "курить" его код с помощью LLM, потому что все аспекты, до самых азов (до уровня ОС и железа), автор решил не раскрывать почему-то, хотя это было бы и крайне полезно для понимания;
- многопоточное программирование;
- все навороты cargo;
- все опции компилятора;
- возможные варианты структуры проекта (см., например, исходные код ripgrep, чтобы убедиться, что файлика lib.rs для библиотек может быть недостаточно для организации библиотек).

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

> Но чтобы это понять НУЖНО ПРОСТО ПИСАТЬ КОД.

Зачем вы повторяете то, что я уже и так сказал в своём первом сообщении?


Если вы до сих пор не поняли. Мой первый пост - это сугубо моё индивидуальное мнение, МОЯ оценка языка и его инфраструктуры. Поэтому спорить со мной в данном конкретном случае - абсолютно бесполезная затея. Я не охаиваю этот ЯП, уже сказал, он мне нравится. Но от того, что он мне нравится, он не становится простым для изучения.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 20:47 
Когда в последний раз ты писал многопоточный масштабируемый код? А с современными конструкциями, вроде генераторов? Отладка этого добра в расте удовольствие ещё то. Начинаешь понимать, откуда столько поклонников у додиеза.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 05:12 
Как насчёт Nim?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 05:14 
https://nimble.directory/

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено олег , 28-Июн-25 10:22 
Есть такое. Синтаксис раста и так не подарок, а они ещё завозят в него новые фишки. Посмотрим, что будет через пару лет, но уже понятно что это и отпугивает людей.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Карлос Сношайтилис , 28-Июн-25 11:54 
> получилось что-то сильно замысловатое, увы

Rust это С++, который почистили от легаси, добавили обязательные строгие проверки по памяти и присыпали пачку современных концепций и подходов, типа работы с модулями (крейтами).
Если знаешь С++, разобраться в расте – изи.

> Не знаю, в чем причина этой сложности.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 14:30 
Чтобы вырасти нормальному плюсисту, т.е. это основные библиотеки и умение обходить все разнооборазие подводных камней и мин, нужно от 5-7 лет. И то некоторым этого мало. А Rust обычный миддл с опытом дотнет/C# или тайпскрипт осваивает за 2-3 месяца максимум.

И в этом проблема. Люди инвестировали годы своей жизни в плюсы, чтобы достичь мастерского  уровня. А теперь это все обесценивается более подходящим инструментом, который по факту оказался продуктивнее, легче в сопровождении и быстрее в освоении. Потому наблюдается такое вот сопротивление плюсовой тусовки, т.к. теряется аура крутости и элитарности.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Пользователь , 28-Июн-25 15:57 
> Если знаешь С++, разобраться в расте – изи.

Когда-то меня сильно отпугнула сложность C++. И я тогда бросил разбираться с ним. В принципе, не жалею ни разу об этом.

> Потому что все современные системы сложные!

Думаю, не только в этом дело. А ещё в кривой архитектуре железа, которую в итоге вынуждены "выпрямлять" автора разных языков программирования.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 19:43 
Ну хорошо. Если знаешь питон, разобраться в цпп -- изи. А дальше ты знаешь. Если ты знаешь только лисп, то разберёшься в питоне. Разве что если только паскаль знаешь. то разберёшься разве что в бейсике. Ну а дальше открыта дорога в жс и там по обстоятельствам. Вот чему тебя в школе учили, у тебя российское образование?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Прохожий , 28-Июн-25 21:26 
> Если знаешь питон, разобраться в цпп -- изи.

Ну, не только Питон. На Assembler когда-то простенький софт доводилось писать (забавы ради, не за деньги), на C, на Turbo Pascal, FoxPro (и DOS-овский и Visual), Perl, shell, SQL, PL/SQL. C++ ни разу в жизни не потребовался. А вот ближе к старости почему-то захотелось чего-то новенького, более-менее универсального.

> Вот чему тебя в школе учили, у тебя российское образование?

Нет, у меня советское образование. Я родом из СССР.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 21:45 
А тут такое, чтобы понимать плюсы, желательно иметь опыт работы с ооп-языками, или хотя бы с функциональными. Перечисленное ими не является, это процедурные языки, и все концепции иные (хотя и можно провести определённые параллели). Отсюда и сложности. Раст не является ооп языком в полной мере, что бы там ни говорили, однако, концепции воплощает ровно те же.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Пользователь , 28-Июн-25 23:28 
> А тут такое, чтобы понимать плюсы, желательно иметь опыт работы с ооп-языками, или хотя бы с функциональными. Перечисленное ими не является, это процедурные языки

Похоже, вы просто не в курсе, что Visual Foxpro - это ООП. Python - это 100%-ое ООП с элементами функциональности. Perl - мультипарадигменный ЯП (в том числе там есть поддержка и ООП и функциональщины). Так что у меня есть опыт работы с обеими парадигмами.

Rust, кстати, тоже мультипарадигменный ЯП. Там есть и ООП, и функциональщина местами. Просто Rust намного более навороченный и требует понимания гораздо большего количества нюансов, на которые в других ЯП не требуется обращать никакого внимания, что, в общем, понятно, потому что он гораздо ближе к железу, чем всё перечисленное (ну, кроме C, конечно же).


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 29-Июн-25 00:44 
Так то оно так, насчёт foxpro не в курсе, но то, какой ООП в перл -- лучше не надо. ООП это что-то вроде c++ или java/c#. Так они все императивные конечно, но ООП вполне конкретно характеризуется. Скажем, лисп ООП. И в расте вместо наследования какая-то шляпа, вот и не взлетает никак. А ведь как раз одна из причин успеха многих ЯП. От фунциональщины там понятное дело кое что есть, он поверх принципов функциональшины и построен.

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 29-Июн-25 00:47 
> Просто Rust намного более навороченный и требует понимания гораздо большего количества нюансов

ежу-ужу приделали крылья, зачем себя мучать, если для "понимания нюансов" есть дракон (асм)?


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 29-Июн-25 00:44 
> Когда-то меня сильно отпугнула сложность C++

А в чем заключалась сложность? Вероятно подача материала неподходящая. Вот меня черт дёрнул пару дней назад, интереса ради, отрыть документации по ocaml (ocaml-5.3-refman.pdf), после первой главы, жесть как хотелось плеваться, нет не из-за того что винегрета парадигм, нет не из-за синтаксиса делай пятью разными способами одно и тоже, а тупо подача материала - отвратительная, и после этого они хотят, чтобы молодежь программировало на этом?

> А ещё в кривой архитектуре железа, которую в итоге вынуждены "выпрямлять" автора разных языков программирования.

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


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Lamerok , 28-Июн-25 05:07 
> используется собственный тулкит с библиотекой виджетов

рамки на виджетах надо потолще! а то многим экран 4К нечем заполнить!


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 08:35 
А классный язык. Сначала придумали ограничения и теперь всю жизнь посвятят созданию способов их обхода. Отличная стратегия чтобы никогда не лишиться работы

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Карлос Сношайтилис , 28-Июн-25 12:04 
Поделись с нами своей мудростью, аноним.
Какие способы обхода уже придумали в расте?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Анатолька , 28-Июн-25 08:52 
Rust хороший ЯП, но я перешёл на V

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 11:01 
> Ещё язык не стабилизировали, а уже удаления платформ пошли...

Ну так i686-pc-windows-gnu же!
Сам i686 нинужон, а windows-gnu и подавно.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 09:52 
когда появится rust# и let safe в unsafe блоках

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 13:07 
Тут много комментаторов опять начинают то же самое, из темы в тему.
Ответьте сначала (тогда так и не ответили), что такое "дописать ОС" ?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 13:26 
[cpde]
   if let Channel::Stable(v) = release_info()
       && let Semver { major, minor, .. } = v
       && major == 1
       && minor == 88
   {

Очень читаемо! Кажется понял! (на манер классный днепр, при клевой погоде)

if let Rust::Syntax(wtf) = crap()
&& let = Devs {noobs, dumbass, hipsters, ...} = wtf
&& noobs = fuckoff
&& hipsters = fuckoff
&& dumbass = fuckoff


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 14:00 
>
 
>    if let Channel::Stable(v) = release_info()
>        && let Semver { major,
> minor, .. } = v
>        && major == 1
>        && minor == 88
>    {
>

> Очень читаемо! Кажется понял!

Вобще-то, это обыкновенное сопоставление с образцом/деструктуризация из ЯП семейства ML/Prolog/Haskell.
Поэтому таки да, вполне читаемо для тех, кто не только в школе Турбопаскаль изучал или курсы "войти в ойти за 14 дней" просмотрел.
Вот тем да, не повезло - но их, походу не только Злобные Растоманы угнетают, но даже питонисты с жабоскриптозниками (где это тоже, пусть и более "легкой" форме, завезли). Бедолаги.


"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено IsaacBrown , 28-Июн-25 16:26 
Если вас смущают такие простые конструкции, может вам не место в этой профессии?

"Выпуск Rust 1.88. Операционная система Munal и утилита rsche..."
Отправлено Аноним , 28-Июн-25 20:16 
Это комментаторы ещё icon не видели, которым раст очевидно вдохновлялся.