The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Шестая версия патчей для ядра Linux с поддержкой языка Rust , opennews (ok), 08-Май-22, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


171. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +7 +/
Сообщение от Аноним (172), 08-Май-22, 18:29 
Никакой пользы от Раста нет. Призыва писать на Хаскеле был бы столь же релевантен.
Ответить | Правка | К родителю #137 | Наверх | Cообщить модератору

231. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (231), 08-Май-22, 22:07 
Польза есть - не нужно тратить годы на С++ с его стандартом на тыщу с гаком страниц и даже спустя 10 лет быть не сильно уверенным, что не налажал где-то. Есть опыт выкатки в прод пачки маложрущих рестовых сервисов с предсказуемым latency в силу отсутствия сборки мусора. Синтаксис зело проще и напоминает OCaml. Че так все взъелись на язык, который идейно отличается от большинства известных, компилирующихся в нативку, только тем, что имеет принудительное следование RAII в compile-time - решительно непонятно. Для перекладывания жысонов unsafe не нужон вообще.
Ответить | Правка | Наверх | Cообщить модератору

237. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +6 +/
Сообщение от Смузихлёб (ok), 08-Май-22, 22:28 
> на тыщу с гаком страниц

Руст существует не так давно по меркам С++, а уже претендует на две тыщи с гаком страниц. По сложности эти два языка вполне могут соревноваться. Вот только нужны ли они оба?

Ответить | Правка | Наверх | Cообщить модератору

238. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (231), 08-Май-22, 23:04 
За примерно 4 года регулярного взаимодействия с растом уверенно могу сказать, что для повседневного использования раст сильно проще. В нем нет каких-то мозговыламывающих вещей из области С++, по типу метапрограммирования, иерархию значений с точки зрения абстрактной С++-машины (rvalue, glvalue, xvalue), SFINAE, perfect forwarding и т.д.. Первое время было сложно совладать с borrow checker, но регулярно читая жалобы компилятора, "правила игры" быстро усваиваются. Все остальное - почитать пару учебников от O'Reilly и позадавать/погуглить вопросы на стаковерфлоу. Еще раз повторюсь, что есть опыт использования раста в контексте бэкендерских задач для типичной корпоративщины, не осведомлен, какие сложности возникают у тру системных прогеров, которые пишут дрова и кастомные аллокаторы памяти. Мой опыт использования только позитивный, какую-нибудь джаву или C# по производительности и жору памяти рвет в клочья, никаких NPE в силу их полного отсутствия в языке, а по сравнению с Go отсутствие необходимости инвестировать время в изучение теории работы сборщика мусора и как с ним совладать, чтобы не было stop-the-world на 10 секунд в самый неподходящий момент.
Ответить | Правка | Наверх | Cообщить модератору

239. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (210), 08-Май-22, 23:41 
> раст сильно проще. В нем нет ... метапрограммирования

Ассемблер сильно проще, в нём вообще ничего нет, а блок unsafe всего один.

Ответить | Правка | Наверх | Cообщить модератору

243. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (219), 09-Май-22, 00:37 
>> раст сильно проще. В нем нет ... метапрограммирования
> Ассемблер сильно проще, в нём вообще ничего нет, а блок unsafe всего один.

Просто Воены Супротив Раста, как обычно, знакомы с матчастью лишь по комментам на опеннете ...
FASM


macro use32
{
        macro push args
        \{
                local list,arg,status
                define list
                define arg
                irps sym, args \\{
                        define status
                        match =dword, sym \\\{

MASM

@SaveRegs MACRO regs:VARARG
        LOCAL myEnd, num, flag, reg

        num=0
        flag=0
        WHILE flag EQ 0
%               IFDEF @CatStr(<RealEnd>,<%num> )
                        num = num + 1
                ELSE
                        flag = 1
                ENDIF
        ENDM

%       FOR reg, <regs>
                push reg
        ENDM

NASM


%define xyzzy(=expr,&val) expr, str
    %define plugh(x) xyzzy(x,x)
    db plugh(3+5), `\0` ; Expands to: db 8, "3+5", `\0`

Ответить | Правка | Наверх | Cообщить модератору

244. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –3 +/
Сообщение от Смузихлёб (ok), 09-Май-22, 01:06 
А предельно простые mov, push, jmp не осилил? К чему эти макросы? Попытка сваять своё подобие языка высокого уровня?
Ответить | Правка | Наверх | Cообщить модератору

246. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (219), 09-Май-22, 01:30 
>>> В нем нет ... метапрограммирования
>> <тыканье носом в лужу>
> А предельно простые mov, push, jmp не осилил? К чему эти макросы?
> Попытка сваять своё подобие языка высокого уровня?

Занятный юлеж (и заодно, перепись опеннетных "Знатоков").

Btw, у очередного опеннетного теоретика^W "знатока матчасти" автор FASM (а тот кусок был из сорца самого ассемблера, реализация режимов LINUX/X64/MODES.INC, впрочем, макрос для MASM тоже был "штатный") - "неосилятор".


Ответить | Правка | Наверх | Cообщить модератору

352. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от n00by (ok), 10-Май-22, 09:04 
> Btw, у очередного опеннетного теоретика^W "знатока матчасти" автор FASM (а тот кусок
> был из сорца самого ассемблера, реализация режимов LINUX/X64/MODES.INC

Уже пора из fasm g публиковать _макросы_ mov, push, jmp :)

Ответить | Правка | Наверх | Cообщить модератору

241. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +2 +/
Сообщение от Смузихлёб (ok), 09-Май-22, 00:12 
> раст сильно проще

Это пока, а года через три будет винегрет похлеще крестов.


Ответить | Правка | К родителю #238 | Наверх | Cообщить модератору

245. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –2 +/
Сообщение от Аноним (231), 09-Май-22, 01:11 
Ну либо пруфы в студию, какие фичи за последние лет 5 завезли в ржавый, что если сравнить "тогда" и "сейчас", то мать родная не узнает, либо утверждение голословное.
Ответить | Правка | Наверх | Cообщить модератору

367. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (-), 10-Май-22, 10:23 
> Ну либо пруфы в студию, какие фичи за последние лет 5 завезли
> в ржавый, что если сравнить "тогда" и "сейчас", то мать родная
> не узнает, либо утверждение голословное.

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

Ответить | Правка | Наверх | Cообщить модератору

373. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 10-Май-22, 12:18 
>> Инструментарий и вариант библиотеки alloc
>> Предложена начальная реализация модуля "net"
> Так новость прочитай. Или если храбрый - вон туда в рассылку к линуксоидам сходи. Там есть фич которые вот-вот уже без пяти минут как есть в ночной версии, и вообще, идет уже пятый год стабилизца синтаксиса,

Так-так, вариант библиотеки alloc (ничего, что для сишки там тоже спец. вариант?) резко стал изменением синтаксиса. Ох уже эти опеннетные "спицы".

Ответить | Правка | Наверх | Cообщить модератору

395. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –3 +/
Сообщение от Аноним (-), 11-Май-22, 16:32 
А также всякие боксы где аллокация таки может не получиться и все такое прочее. Хотели как лучше, а получилось как всегда - оказалось что падеж программы по панике катит далеко не всем, особенно в системщине. И получились в результате фееричные костыли. Чем оно лучше сей и плюсов в результате то? :)
Ответить | Правка | Наверх | Cообщить модератору

399. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 11-Май-22, 17:39 
> А также всякие боксы где аллокация таки может не получиться и все такое прочее.

А также всякие фантазии оеннетных знатоков и прочие сравнения опы (std либы) с пальцем ...
> Хотели как лучше, а получилось как всегда - оказалось что падеж программы по панике катит далеко не всем, особенно в системщине. И получились в результате фееричные костыли.

Но только в фантазиях местных "знатоков", не различающих язык и его std либу.

> Чем оно лучше сей и плюсов в результате то? :)

Стабильным припеканием пятых точек "знатоков" на опеннете.

Ответить | Правка | Наверх | Cообщить модератору

400. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 11-Май-22, 17:46 

ЗЫ: для теоретиков, слышавших лишь звон:

Trait std::alloc::GlobalAlloc
...
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocate memory as described by the given layout.
Returns a pointer to newly-allocated memory, or null to indicate allocation failure.

Ответить | Правка | Наверх | Cообщить модератору

405. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от n00by (ok), 12-Май-22, 09:41 
> ЗЫ: для теоретиков, слышавших лишь звон:
> Trait std::alloc::GlobalAlloc

Кстати, GlobalAlloc() - функция из Win API. Там она зачастую служит маркером малообразованных буратин, не читающих документацию.

Ответить | Правка | Наверх | Cообщить модератору

416. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –2 +/
Сообщение от Аноним (-), 15-Май-22, 01:10 
> А также всякие фантазии оеннетных знатоков и прочие сравнения опы (std либы) с пальцем ...

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

А прикольно когда создатели "типа системного" языка показательно игнорят многолетний опыт окружающих и собирают все грабли самолично, в максимально дурном формате. Еще сильнее изгаживая синтаксис. А вы думали что всякие зиги и хари появляются просто так? А вот и хрен, это попытка сделать то же самое менее черезджеппно :)

> Но только в фантазиях местных "знатоков", не различающих язык и его std либу.

В хрусте стдлиб почти прибили на гвозди. И сколь-нибудь нормального standalone режима там почти и нету, что самое интересное. Вплоть до того что эта фигня подразумевает MMU и без него вообще гарантий не дает.

> Стабильным припеканием пятых точек "знатоков" на опеннете.

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

Ответить | Правка | К родителю #399 | Наверх | Cообщить модератору

424. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (424), 17-Май-22, 01:43 
> В хрусте стдлиб почти прибили на гвозди. И сколь-нибудь нормального standalone режима
> там почти и нету, что самое интересное. Вплоть до того что
> эта фигня подразумевает MMU и без него вообще гарантий не дает.

Стандартная библиотека отключатеся одной строкой в главном файле модуля - "#![no_std]". При этом теряется возможность подключать имена из модуля std (стандартной библиотеки), а только остается использовать голый core - в котором нет типов использующих heap (потому не превязаных к MMU ОС). Документация по модулю, соответственно логически разделена для удобства навигации.

Для интересующихся советую вот из этой статьи промотать на параграф "Пример" и посмотреть самим как это может быть просто и безопасно в Раст https://habr.com/ru/post/495948/ (заметьте что в статье используется Cortex-M у которого нет MMU)

Ответить | Правка | Наверх | Cообщить модератору

266. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +1 +/
Сообщение от Аноним (62), 09-Май-22, 10:41 
> Польза есть - не нужно тратить годы на С++

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

https://os.phil-opp.com

в ядре Linux раст не нужен, он не даёт никаких преимуществ по сравнению с С

Ответить | Правка | К родителю #231 | Наверх | Cообщить модератору

302. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (326), 09-Май-22, 16:37 
Си даёт гарантии, что какой-то указатель не будет использован повторно после free()? Си годная тема для МК, чтобы не опускаться до всяких MIPS ассемблеров и написать несложную логику на пару тысяч строк, которую, разбив по файлам, вполне можно досконально вычитать. Миллионы же строк на С - это кошмар, ничего нельзя трогать, не запуская статический анализатор каждый раз, чтобы, не дай бог, не пролез "человеческий фактор".
Ответить | Правка | Наверх | Cообщить модератору

320. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (62), 09-Май-22, 19:32 
> Си даёт гарантии, что какой-то указатель не будет использован повторно после free()?

дело в том что и раст в ядре таких гарантий не даст - буферы и блокировки используются разными подсистемами ядра, чтобы следить за ними в компилетайм надо чтобы всё было написано на расте. Вот придумали они свои реализации alloc, smutex::Mutex и NoWaitLock - а что с ними делать в сишном коде ? т.е. смысл в них есть только для растовиков, для изолированного пользования только растокодом

> С - это кошмар, ничего нельзя трогать, не запуская статический анализатор каждый раз

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

Ответить | Правка | Наверх | Cообщить модератору

303. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  –1 +/
Сообщение от Аноним (326), 09-Май-22, 16:38 
Си даёт гарантии, что какой-то указатель не будет использован повторно после free()? Си годная тема для МК, чтобы не опускаться до всяких MIPS ассемблеров и написать несложную логику на пару тысяч строк, которую, разбив по файлам, вполне можно досконально вычитать. Миллионы же строк на С - это кошмар, ничего нельзя трогать, не запуская статический анализатор каждый раз, чтобы, не дай бог, не пролез "человеческий фактор".
Ответить | Правка | К родителю #266 | Наверх | Cообщить модератору

368. "Шестая версия патчей для ядра Linux с поддержкой языка Rust "  +/
Сообщение от Аноним (-), 10-Май-22, 10:25 
Все это верно только если кодер модуляризацию ниасилил. Более того - на хрусте в этом случае будет точно такой же кошмар. А может и более хреновый - кто его знает как там с статическим анализом и отоловом крайвых дурных ситуаций? Вон на хрустософт уже сотни CVE так то есть.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру