The OpenNET Project / Index page

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



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

Оглавление

Линус Торвальдс подключился к обсуждению начальной реализации поддержки Rust в ядре Linux , opennews (??), 12-Июл-20, (0) [смотреть все]

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


78. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  –4 +/
Сообщение от n00by (ok), 12-Июл-20, 15:02 
>> Следует транслировать его в Си
> Зачем тогда этот ваш раст нужен? Генерить Си-код, теоретически, можно вообще из
> любого ЯП'а.

В том то и дело. При этом в результате трансляции некоторых ЯП  образуется вермишель. Но Rust то рвёт всех как Тузик грелку. Представляете себе лицо Линуса, когда ему дают вариант на Си в 2.71 — 3.15 раз более оптимальный, чем он написал ручками?

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

79. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +1 +/
Сообщение от nelsonemail (??), 12-Июл-20, 15:51 
> Но Rust то рвёт всех как Тузик грелку

Особенно по скорости компиляции, ага.
> Представляете себе лицо Линуса, когда ему дают вариант в 2.71 — 3.15 раз более оптимальный, чем он написал на Си?

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

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

113. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от Ordu (ok), 12-Июл-20, 21:03 
> Высокоуровневые ЯП'ы с функцией подтирания соплей за нерадивыми разрабами в этой области нафиг не сдались.

Да, именно об этом и говорит нам новость.

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

116. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +1 +/
Сообщение от PnD (??), 12-Июл-20, 21:50 
Уровнем ниже — "языки ассемблера" ("высокоуровневая" абстракция над оп-кодами), и их вовсю используют. Там, где без этого будет плохо.
А C — как раз таки кросс-ассемблер "среднего" уровня. Где всё ещё всё можно, но есть инструменты для написания "универсального" кода. И современные реализации, что приятно, знают обо всякой рутине. Вроде размера указателя или приведения типов.

Но кое чего начинает не хватать. Ядер в последнее время стало много, а C хорошо заточен под программирование *одного* потока. "Фреймворки" (библиотеки) понятно есть, но для их использования надо прокачивать скилл шизофреника (утрирую, но не сильно).
Вот где-то здесь (как мне кажется) начинается заход на более "молодёжные" ЯП. Но конкретно на счёт rust есть сомнение, т.к. от него явственно попахивает оверинженирингом. Поглядим, может и сумеют зашлифовать. Ну или выпустят на следующем витке какой-нибудь "corrosion"…

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

136. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от n00by (ok), 13-Июл-20, 07:17 
> Уровнем ниже — "языки ассемблера" ("высокоуровневая" абстракция над оп-кодами),
> и их вовсю используют. Там, где без этого будет плохо.
> А C — как раз таки кросс-ассемблер "среднего" уровня. Где всё ещё
> всё можно, но есть инструменты для написания "универсального" кода.

С не просто кроссассемблер, а абстракция над машинным кодом PDP (см. пре- и пост-инкременты/декременты). В языке отсутствуют аналоги для команд обмена (bswap и xchg), lock лишь недавно появился. Потоковые "мультимедия" инструкции вообще отдельная тема.

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

208. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от Аноним (-), 15-Июл-20, 18:22 
> Потоковые "мультимедия" инструкции вообще отдельная тема.

Кроме потоковых инструкций, на "ассемблере" можно и вот так: (GPL2+, сперто из examples)


#include "lwan.h"

LWAN_HANDLER(hello_world)
{
    static const char message[] = "Hello, World!";

    response->mime_type = "text/plain";
    lwan_strbuf_set_static(response->buffer, message, sizeof(message) - 1);

    return HTTP_OK;
}

int
main(void)
{
    const struct lwan_url_map default_map[] = {
        { .prefix = "/", .handler = LWAN_HANDLER_REF(hello_world) },
        { .prefix = NULL }
    };
    struct lwan l;

    lwan_init(&l);

    lwan_set_url_map(&l, default_map);
    lwan_main_loop(&l);

    lwan_shutdown(&l);

    return 0;
}

...а чо, ассемблерщики или там какие растаманы покажут нам чонить сравнимое? А то я нечто похожее только на Go видел :). Это lwan.ws, с очень милыми корутинами, кстати. И кстати си достаточно низкоуровневый чтобы эти самые корутины на нем можно было выпилить, даже если их изнчально и не было. А растаманы так расширять ЯП могут? Ассемблерщики то смогут... если не заколебутся раньше :)

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

221. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от Аноним84701 (ok), 15-Июл-20, 19:21 
> с очень милыми корутинами, кстати. И кстати си достаточно низкоуровневый чтобы
> эти самые корутины на нем можно было выпилить, даже если их изнчально и не было.

Зашкаливающее знания матчасти анонимами 🙄
http://www.dabeaz.com/coroutines/ - реализация корутин на питоне 2 в 2009 году.
Еще есть для жабки/Scala/Clojure/Kotlin
https://github.com/leonoel/cloroutine/tree/master/src/clorou...
https://github.com/Kotlin/kotlinx.coroutines

> А растаманы так расширять ЯП могут?

Просто зашк... а не, не буду повторяться ...

https://docs.rs/corona/0.4.3/corona/
> A library combining futures and coroutines.

https://docs.rs/coroutine/0.8.0/coroutine/
> Coroutine implementation in Rust.

https://docs.rs/tokio/0.2.9/tokio/task/index.html

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

227. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  –1 +/
Сообщение от Аноним (-), 15-Июл-20, 19:55 
> http://www.dabeaz.com/coroutines/ - реализация корутин на питоне 2 в 2009 году.
> Еще есть для жабки/Scala/Clojure/Kotlin
> https://github.com/leonoel/cloroutine/tree/master/src/clorou...
> https://github.com/Kotlin/kotlinx.coroutines

Этот мусор вообще к чему? Он позволяет выжать больше перфоманса? Или там будет код лаконичнее и симпатичнее? Или это до кучи, "с лопаты"? Это в упомянутом случае был реверанс на тему низкоуровневости си, пример что при желании си может стать и довольно высокоуровневой штукой, где минимальный "вебапп"/"микросервис" - полстранички кода аж. С минимумом зависимостей. У той фигни весь бинарь с кучей фич менее 200К на все. Сравним с jvm, python, clojure... :D

> Просто зашк... а не, не буду повторяться ...

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

>> https://docs.rs/corona/0.4.3/corona/ A library combining futures and coroutines.
> https://docs.rs/coroutine/0.8.0/coroutine/

Отлично, только это - не вебсервак. А покажете весь вебсервак с корутинами и чтобы не менее лаконично чем тот пример? Я пока только у go'пников что-то сравнимое видел, но у них бинарь такого пошиба - мегов на 6, и тормознее, с GC и прочими прелестями :)

> https://docs.rs/tokio/0.2.9/tokio/task/index.html

На мой вкус - многовато странного мусора в синтаксисе. А нельзя было оставить аккуратный сиобразный синтаксис не усугубляя его лишними закорючками? В сях и так странных закорючек хватает :P

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

134. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от n00by (ok), 13-Июл-20, 07:08 
>> Но Rust то рвёт всех как Тузик грелку
> Особенно по скорости компиляции, ага.
>> Представляете себе лицо Линуса, когда ему дают вариант в 2.71 — 3.15 раз более оптимальный, чем он написал на Си?
> В каком плане более оптимальный? Как раз таки Си - наиболее оптимальный
> ЯП для решения задач из области разработки системного ПО и, тем
> более, ядер ОС из существующих в природе.

Это не совсем так. Си всем понятен, это не всегда хорошо. Вы пробовали отправлять код в ядро? Сразу же отвечают: вот тут ошибка, вот так не пишут, и так далее. Приходится читать очередную главу из Кернигана и Риччи. Очень долго и не оптимально.

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

244. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от СССР (?), 17-Июл-20, 12:30 
да отстаньте вы уже от людей! со своими модными штучками. напишите сво линукс, в чем проблема? сделайте форк и балуйтесь. реально эти покемоны уже достали.
Ответить | Правка | К родителю #78 | Наверх | Cообщить модератору

245. "Линус Торвальдс подключился к обсуждению начальной реализаци..."  +/
Сообщение от n00by (ok), 17-Июл-20, 13:07 
Проблема в том, что кто-то читает выборочно, потому недостаточно осведомлён о передовых достижениях науки. Британские учёные скрестили Тузика и Грелку, и новое животное порвало само себя.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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