The OpenNET Project / Index page

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



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

Оглавление

Релиз ядра Linux 6.0, opennews (?), 03-Окт-22, (0) [смотреть все]

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


113. "Релиз ядра Linux 6.0"  +1 +/
Сообщение от лютый жабби.... (?), 03-Окт-22, 13:05 
>http://rustmustdie.com/

на хабре их с гуаном уже перемешали. в целом, самому не смешно? какой-то студент из бабановой республики прям все покровы посрывал )

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

135. "Релиз ядра Linux 6.0"  +3 +/
Сообщение от Аноним (135), 03-Окт-22, 14:09 
Мог бы и ссылку привести https://habr.com/ru/post/598219/
Ответить | Правка | Наверх | Cообщить модератору

157. "Релиз ядра Linux 6.0"  +1 +/
Сообщение от dead morose (?), 03-Окт-22, 15:00 
Основная часть упомянутой статьи на хабре - это куча телодвижений, чтобы заставить раст собрать бинарник без стандартной и core библиотек. По итогу полученное приложение даже не в состоянии числа складывать. Там приведена ссылка на репозиторий, где содержится реализация базовых вещей, типа арифметических операций над примитивами. В репозитории обозначено, что это упрощенная реализация core library. Т.е. если автор rustmustdie.com и перегнул, что rust неотделим от своей стандартной библиотеки, то не так уже и сильно, ибо хотя на расте получается, что вроде как и можно писать т.н. zero runtime код, но это требует больших усилий
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

175. "Релиз ядра Linux 6.0"  +/
Сообщение от Аноним (175), 03-Окт-22, 15:50 
> Т.е. если автор rustmustdie.com и перегнул, что rust неотделим от своей стандартной библиотеки, то не так уже и сильно, ибо хотя на расте получается, что вроде как и можно писать т.н. zero runtime код, но это требует больших усилий

Маленький нюанс - core не является "рантаймом" в общем понимании этого слова, лишь реализацией "платформозависимотей" для генерации кода. Точно так же в реальности "GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp".

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

180. "Релиз ядра Linux 6.0"  +/
Сообщение от dead morose (?), 03-Окт-22, 16:06 
так я же согласился, что на расте, похоже, таки можно писать zero runtime код.
вопрос в трудозатратах.

Вот например взять простейшую программу, которая вычисляет периметр прямоугольника и результат выводит в stdout. Написать под линукс такую программу на С + asm без библиотек и потом такую же, но на rust + asm. Какой вариант будет проще и с меньшим количеством кода?

Я не против раста как такового, но у меня такое впечатление, что писать на нём на системном уровне не очень приятно.

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

239. "Релиз ядра Linux 6.0"  +/
Сообщение от n00by (ok), 03-Окт-22, 20:56 
> Вот например взять простейшую программу, которая вычисляет периметр прямоугольника и результат
> выводит в stdout. Написать под линукс такую программу на С +
> asm без библиотек и потом такую же, но на rust +
> asm. Какой вариант будет проще и с меньшим количеством кода?

Примерно одинаково должно получиться, тут публиковали однажды HelloWolrd на syscall-ах (это всё, что нужно от асма).

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

438. "Релиз ядра Linux 6.0"  +/
Сообщение от 123 (??), 05-Окт-22, 01:48 
zero runtime это как, самому itoa реализовывать?
Ответить | Правка | К родителю #180 | Наверх | Cообщить модератору

217. "Релиз ядра Linux 6.0"  –1 +/
Сообщение от истина в последней инстанции (?), 03-Окт-22, 19:00 
С гауном это вы сами себя уже смешали и последними CVE.

Но это другое, у вас же с памятью проблемы.

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

402. "Релиз ядра Linux 6.0"  +/
Сообщение от yet another anonymous (?), 04-Окт-22, 18:58 
Там их с субстанцией смешали орлы, прогулявшие курс "Теория операционных систем".

Сам термин "сишный рантайм" маразматичен и безграмотен. Этим, похоже, называют прослойку для донастройки сразу после загрузчика. И тут:
- загрузчик может быть и другим (со своими фантами и поэтессами);
- что там суёт cargo (или rustc, который и на дуде игрец) на стадии линковки --- это ещё посмотреть надо, и откуда оно это берёт --- от binutils в системе или своё, прикопанное;
- загрузчика может и не быть вовсе;
- донастройка может быть частью собственно программы и "системные" start/stop пристраивать не надо;
- программа с операционной системой не взаимодействует.

Т.е. речь идёт о подстройке "исполняемого" под операционную среду. А она может быть разной.

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

426. "Релиз ядра Linux 6.0"  +/
Сообщение от n00by (ok), 04-Окт-22, 20:49 
Zero runtime - терминология А. В. Столярова, насколько понимаю из цитат*) его книги. Её и использует оппонент и пишет альтернативу исполняемую в аналогичном окружении. По-моему, для 2021-го года утверждение, что zero runtime прерогатива Си, довольно странно для доцента МГУ. Как минимум, можно его пример назвать программой на Си++. Ну и драйвера на Дельфи писали ещё в нулевых. :)

*) Именно это свойство — zero runtime — делает Си единственным и безальтернативным кандидатом на роль языка для реализации ядер операционных систем и прошивок для микроконтроллеров.

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

429. "Релиз ядра Linux 6.0"  +/
Сообщение от yet another anonymous (?), 04-Окт-22, 22:32 
Это приехало от "crt*" --- т.е. т.н. "C runtime". Не специфично для Linux, было во всех (наверное) Unix'ах. Для разных целей на разных платформах может быть туча разных crt* объектников как для инициализации, так и для финализации. В чём прикол выпячивания "zero runtime" --- не понимаю: перемещение этого из одного объектника в другой --- чисто вопрос оределённых соглашений/удобства.
И механизма взаимодействия с операционой средой (если она есть :)).
Ответить | Правка | Наверх | Cообщить модератору

433. "Релиз ядра Linux 6.0"  +/
Сообщение от yet another anonymous (?), 04-Окт-22, 23:01 
А, ну и в догонку: в принципе стадии линковки (и объектников) может и не быть: для однопроходных компиляторов. Классический Паскаль, например. Но там лезут проблемы с "промышленной" разработкой (т.е. с большими проектами).
Ответить | Правка | Наверх | Cообщить модератору

440. "Релиз ядра Linux 6.0"  +/
Сообщение от n00by (ok), 05-Окт-22, 15:15 
> В чём прикол выпячивания "zero runtime" --- не
> понимаю: перемещение этого из одного объектника в другой --- чисто вопрос
> оределённых соглашений/удобства.

Например, "C++ runtime" требует библиотеку с "C runtime" и без неё не работает. Отсюда сложности с запуском Си++ в ядре. Для ядра NT мы реализовали такой "C++ runtime", который не требует библиотеку с "C runtime". К Rust-у основная претензия - «оно линкуется с libc.so, потому для ядра не годится». Потому они и доказывают, что можно без libc.so. Мне в этой ситуации не ясно одно - а зачем они изначально на libc.so завязывались. Представьте себе ситуацию, когда некий достаточно сложный драйвер (файловой системы) пишется и отлаживается с минимальным риском в юзерленде (через FUSE), а потом сменой ключей транслятору «портируется» в ядро. Сейчас, насколько понимаю, такой сценарий затруднён.

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

442. "Релиз ядра Linux 6.0"  +/
Сообщение от yet another anonymous (?), 05-Окт-22, 20:46 
> Например, "C++ runtime" требует библиотеку с "C runtime" и без неё не работает. Отсюда сложности с запуском Си++ в ядре. Для ядра NT мы реализовали такой "C++ runtime", который не требует библиотеку с "C runtime".

Это нельзя комментировать --- смешались в кучу кони, люди...

>  К Rust-у основная претензия - «оно линкуется с libc.so, потому для ядра не годится».

Нет. Это вы сами выдумали, и сами опровергли.

Проблемы:

  - cargo (который вроде как и не язык, но хрен от него отстроишся);
  - единственная реализация языка, контролируемая группой попечителей с замечательной репутацией
    (всё остальное --- недореализации, легко превращаемые в тыкву группой попечителей).

Упоротый синтаксис уже так себе проблема. Есть ещё одна, но я не в курсе --- что там в rust'е по этому вопросу творится (cross, canadian).

> Представьте себе ситуацию, когда некий достаточно сложный драйвер (файловой системы) пишется и отлаживается с минимальным риском в юзерленде (через FUSE), а потом сменой ключей транслятору «портируется» в ядро. Сейчас, насколько понимаю, такой сценарий затруднён.

Оставьте эти фантазии себе.

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

448. "Релиз ядра Linux 6.0"  +/
Сообщение от n00by (ok), 06-Окт-22, 15:57 
>> Например, "C++ runtime" требует библиотеку с "C runtime" и без неё не работает. Отсюда сложности с запуском Си++ в ядре. Для ядра NT мы реализовали такой "C++ runtime", который не требует библиотеку с "C runtime".
> Это нельзя комментировать --- смешались в кучу кони, люди...

Это придётся прокомментировать иначе, если вспомнить, что "C++ runtime" я скопировал из Вашего сообщения №429, где не было ничего на тему freestanding и hosted implementations или environments.

>>  К Rust-у основная претензия - «оно линкуется с libc.so, потому для ядра не годится».
> Нет. Это вы сами выдумали, и сами опровергли.

Это я читал здесь много раз, до того как кто-то показал HelloWorld на syscall и некоторое время после.

> Проблемы:
>   - cargo (который вроде как и не язык, но хрен
> от него отстроишся);
>   - единственная реализация языка, контролируемая группой попечителей с замечательной репутацией
>     (всё остальное --- недореализации, легко превращаемые в тыкву
> группой попечителей).
> Упоротый синтаксис уже так себе проблема. Есть ещё одна, но я не
> в курсе --- что там в rust'е по этому вопросу творится
> (cross, canadian).

Я могу ещё от себя добавить «в чужой монастырь со своим уставом не ходят». На том же основании не стоит тянуть Си++ в ядро, которое писали Си программисты десятилетия. Технические детали, если ими озадачиться, в конце концов решаются. Данную проблему я указал в ответ на Ваше «В чём прикол выпячивания "zero runtime" --- не понимаю». Иногда стоит освежить в памяти, что писали сами, прежде чем объяснять очевидные собеседнику вещи.

>> Представьте себе ситуацию, когда некий достаточно сложный драйвер (файловой системы) пишется и отлаживается с минимальным риском в юзерленде (через FUSE), а потом сменой ключей транслятору «портируется» в ядро. Сейчас, насколько понимаю, такой сценарий затруднён.
> Оставьте эти фантазии себе.

Я делал подобное на другом языке, потому мне не ясно, что помешало в случае с Rust - он же позиционируется как замена.

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

455. "Релиз ядра Linux 6.0"  +/
Сообщение от yet another anonymous (?), 06-Окт-22, 18:10 
> ... если вспомнить, что "C++ runtime" я скопировал из
> Вашего сообщения №429, где не было ничего на тему freestanding и
> hosted implementations или environments.

Минуточку. Там ещё не было про "C++ runtime".


>>>  К Rust-у основная претензия - «оно линкуется с libc.so, потому для ядра не годится».
>> Нет. Это вы сами выдумали, и сами опровергли.
> Это я читал здесь много раз, до того как кто-то показал HelloWorld
> на syscall и некоторое время после.

И причём тут это?


> Я могу ещё от себя добавить «в чужой монастырь со своим уставом
> не ходят». На том же основании не стоит тянуть Си++ в
> ядро, которое писали Си программисты десятилетия. Технические детали, если ими озадачиться,
> в конце концов решаются. Данную проблему я указал в ответ на
> Ваше «В чём прикол выпячивания "zero runtime" --- не понимаю». Иногда
> стоит освежить в памяти, что писали сами, прежде чем объяснять очевидные
> собеседнику вещи.

И при чём тут C++? На котором как бы туева хуча ядер (действующих!) написана?

> Я делал подобное на другом языке,

Так "подобное" или делал? Если так, как написано, то это гланды вырезать автогеном через анус. Собственно и в fuse вы лезли из-за "другого языка" (точнее --- того, что он с собой тащит), ибо иначе у вас там никак --- только в userspace.

> потому мне не ясно, что помешало
> в случае с Rust - он же позиционируется как замена.

Обратите внимание: позиционируется группой попечителей (за ними ещё кое-кто может быть, но это уже другая история, не надо её здесь теребить). Цели они публично не озвучивали. (Не "обеспечивающего безопасную работу с памятью, ..." и прочую маркетинговою ахинею же за цель считать).

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

468. "Релиз ядра Linux 6.0"  +/
Сообщение от n00by (ok), 08-Окт-22, 17:46 
>> ... если вспомнить, что "C++ runtime" я скопировал из
>> Вашего сообщения №429, где не было ничего на тему freestanding и
>> hosted implementations или environments.
> Минуточку. Там ещё не было про "C++ runtime".

Дословно: «Это приехало от "crt*" --- т.е. т.н. "C runtime"». Точно то, что Вы назвали "C runtime" есть и в Си++. Я вывел «термин» по аналогии с Вашим (на самом деле, он не Ваш - на MSDN достаточно про «C runtime libraries»).

>>>>  К Rust-у основная претензия - «оно линкуется с libc.so, потому для ядра не годится».
>>> Нет. Это вы сами выдумали, и сами опровергли.
>> Это я читал здесь много раз, до того как кто-то показал HelloWorld
>> на syscall и некоторое время после.
> И причём тут это?

При том, что Вы написали «В чём прикол выпячивания "zero runtime" --- не понимаю». Я попробовал объяснить, почему любители Rust уделяют этому столько внимания.

>> Я могу ещё от себя добавить «в чужой монастырь со своим уставом
>> не ходят». На том же основании не стоит тянуть Си++ в
>> ядро, которое писали Си программисты десятилетия. Технические детали, если ими озадачиться,
>> в конце концов решаются. Данную проблему я указал в ответ на
>> Ваше «В чём прикол выпячивания "zero runtime" --- не понимаю». Иногда
>> стоит освежить в памяти, что писали сами, прежде чем объяснять очевидные
>> собеседнику вещи.
> И при чём тут C++? На котором как бы туева хуча ядер
> (действующих!) написана?

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

>> Я делал подобное на другом языке,
> Так "подобное" или делал? Если так, как написано, то это гланды вырезать
> автогеном через анус. Собственно и в fuse вы лезли из-за "другого
> языка" (точнее --- того, что он с собой тащит), ибо иначе
> у вас там никак --- только в userspace.

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

>> потому мне не ясно, что помешало
>> в случае с Rust - он же позиционируется как замена.
> Обратите внимание: позиционируется группой попечителей (за ними ещё кое-кто может быть,
> но это уже другая история, не надо её здесь теребить). Цели
> они публично не озвучивали. (Не "обеспечивающего безопасную работу с памятью, ..."
> и прочую маркетинговою ахинею же за цель считать).

Цель можно понять на примере нашего диалога. Вы почему-то решили, что я поддерживаю внедрение Rust в ядро, и через эту призму читаете мои сообщения. Когда я пишу «в чужой монастырь со своим уставом не ходят», имеется ввиду, что в итоге взаимопонимание между разработчиками закончится, кто-то уйдёт под давлением вновьпришедших, а последние не справятся. Когда я пишу «на том же основании не стоит тянуть Си++ в ядро» - это значит, что имеется реализация стандартной библиотеки Си++, которая работает в ядре, её возможно адаптировать для Linux, но заниматься этим и слать патчи в рассылку - не стоит. Как максимум, оформить отдельно, как ReiserFS или ZFS, сопроводив примерами, где был бы заметный выигрыш от языка.

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

466. "Релиз ядра Linux 6.0"  +/
Сообщение от Аноним (459), 08-Окт-22, 01:25 
На швабре кого-то смешали с говном? А в чём новость?
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

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

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




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

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