commit -m "better"
2.96K subscribers
868 photos
105 videos
3 files
2.07K links
just random thoughts
Download Telegram
* https://lists.llvm.org/pipermail/llvm-dev/2021-October/153113.html

LLVM хочет отказаться от фабрикатора, в пользу github PR's(не потому что он плохой, а потому что его забросили). Печаль. Мне гораздо более симпатичны(и удобны) тулзы, которые делают программисты для программистов(хотя они и вырвиглазны), чем те, которые делают дизайнеры для программистов.

* #glibc теперь можно не только собрать c clang, но и слинковать с lld. Вы уже знаете мою любовь к инструментам от GNU, поэтому новость позитивная, конечно. https://www.collabora.com/news-and-blog/blog/2021/09/30/a-tale-of-two-toolchains-and-glibc/

* пост за paywall, https://lwn.net/Articles/871866/ Про реализацию SMB протокола в ядре. #ksmbd Мои 5 копеек:
- судьба #khttpd ничему людей не научила
- нормальные люди из ядра пытаются что-то вынести, а не добавить. Сотни миллионов строк кода в ring 0 - это ненормально.
- почему не попробовали сделать то же самое, но в user space, с помощью #io_uring? io_uring нивелирует стоимость системных вызовов, и чем больше нагрузка, тем меньше получаются расходы на системные вызовы.

* умер Jörg Schilling https://lwn.net/Articles/872489/. Если бы не этот плачевный факт, он бы обязательно попал бы к нам в коллекцию упоротых(в хорошем смысле этого слова) людей. Посудите сами - своя система сборки smake, свой дистрибутив Solaris, так же он автор cdrtools(школота уже не помнит, но мы-то помним, как резали ими компакт-диски под linux). Мы такое любим. :(
Как натянуть сову на глобус семантику Rust на C++:
https://docs.google.com/document/d/e/2PACX-1vSt2VB1zQAJ6JDMaIA9PlmEgBxz2K5Tx6w2JqJNeYCy0gU4aoubdTxlENSKNSrQ2TXqPWcuwtXe6PlO/pub

Спойлер: увы.

RedHat планомерно сворачивает "бесплатный RedHat Linux", во всех его проявлениях. Интересно, ждет ли ее судьба ELK && MongoDB? https://www.opennet.ru/opennews/art.shtml?num=54219

Microsoft колбасит .NET:
https://www.opennet.ru/opennews/art.shtml?num=56027
https://www.opennet.ru/opennews/art.shtml?num=56020

Тут еще должна была быть ссылка с извинением-неизвинением кого-то из управляющего совета .NET перед сообществом, но я ее не нашел.

———
Я как-то обещал написать про то, как #eBPF && #io_uring поменяют Linux, но так и не написал. Давайте я совсем коротко обозначу свою мысль, а раскрою ее позже.

Благодаря тому, что syscall станут бесплатными(io_uring), и станет возможным безопасно выполнять пользовательский код в контексте ядра(eBPF), ядро станет мигрировать в область микроядра - сервисы в пространстве (kernel-user)space(кто сказал "Microsoft Singularity?!" - https://ru.wikipedia.org/wiki/Microsoft_Singularity), c реализацией ядерной функциональности.

Это не просто спекуляция - сеть уже едет вовсю в (kernel-user)space, а вот теперь и шедулер: https://lwn.net/ml/linux-kernel/[email protected]/ (патчи от нашего бывшего коллеги!) #sched
https://www.opennet.ru/opennews/art.shtml?num=56079

Highlights:

* "При сборке ядра с использованием компилятора Clang по умолчанию теперь задействован встроенный ассемблер от проекта LLVM."

Это означает, что теперь ядро можно собрать полностью GNU-free toolchain(поддержка clang и lld появились раньше). Очень позитивная новость!

* "В #io_uring также добавлена поддержка системных вызовов mkdirat(), symlinkat() и linkat()."

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

* "В состав ядра добавлен модуль ksmbd с реализацией файлового сервера, использующего протокол SMB3."

Про это я уже ругался. Адовейшая поверхность для атак, чо. #ksmbd

* "В ядро принята новая реализацией файловой системы NTFS, открытая компанией Paragon Software."

Тут сказать нечего, кроме того, что Linux теперь окончательно "production ready"!

https://kroah.com/log/blog/2021/02/03/helping-out-with-lts-kernel-releases/

Грег K-H слезно просит тестировать свежие ядра. Свое отношение к качеству разработки ядра я тут уже высказывал, добавим в копилочку :)

———
https://lwn.net/Articles/874546/
https://news.ycombinator.com/item?id=29062982
https://www.opennet.ru/opennews/art.shtml?num=56083

Почему-то, когда смузиязыки хвастались символами эмоджи в идентификаторах, мне казалось, что до добра это не доведет. Впрочем, современный С++ не лучше.

———
https://ethw.org/Milestones:List_of_IEEE_Milestones

Вечерами почитываю этот список, он огромный. Я до конца не понимаю, почему он меня вставляет. Возможно, это сродни истории про bootstrap, и необходимости копаться в старом говнокоде. Возможно, потому что про бОльшую часть этих достижений можно понять, как они повлияли на нашу текущую жизнь. ¯\_(ツ)_/¯

———
https://blog.pyston.org/2021/10/26/pyston-roadmap/

Не CPython единым. Pyston - проект от Dropbox, он сдох несколько лет назад, но вот, ожил. Обещают поддержку 3.10, macOS(без этого я его даже пробовать не хочу).

Конкуренция интерпретаторов - это хорошо, а вот плохо то, что все альтернативные интерпретаторы недостаточно хороши, чтобы быть drop-in replacement.

Тем временем, я пристально слежу за тредом на python.org, в котором предложили убрать GIL. Там случился новый виток активности, и Гвидо даже вежливо попросили не заниматься ху%:,ей: #gil

https://mail.python.org/archives/list/[email protected]/message/WBLU6PZ2RDPEMG3ZYBWSAXUGXCJNFG4A/

"Something just occurred to me. If you upstream all the other goodies (register VM, etc), when the time comes to upstream the no-GIL parts won't the complaint then be (again), "but it's slower for single-threaded code!" ? ;-)"

Гвидо пока не ответил.
👍1
https://blog.ffwll.ch/2018/08/no-2d-in-drm.html

Недавно плакался, что для ускорения десктопа используется дорогущее и жрущее батарейку 3D железо. Хотя хватило бы блиттера и смешения по альфа-каналу.

Вот, объяснение, можно сказать, от самих разработчиков dri. Пишут, что 2D сложнее, чем 3D. Интересно, что он этим имеет в виду? Конечно нет, не сложнее. Просто не стандартизировано, в отличие от. Стандартизировать ни у кого желания нет, потому что профит по сравнению с уже существуюшим 3D не то чтобы большой.

———
https://wingolog.org/archives/2021/12/13/webassembly-the-new-kubernetes

Писал про #ebpf + #io_uring, и, буквально, на днях, про #wasm. Короче, идея, что нужна более легкая виртуализация, витает в облаках.

———
https://www.supergoodcode.com/zink-4ever/

Важная для меня тема :) Я в Mix решил строить графический стек в виде #zink + vulkan, чтобы 2 раза не вставать(и чтобы без #LLVM в драйверах*). И оказывается, не прогадал. Уже писал, что zink по перфу догнал классический OpenGL, а теперь просто прекрасное - #zink - самый фичастый из OpenGL в Mesa. Короче, старый стек уже можно закапывать.

Чувак работает на Valve.

Все #хорошее в OSS делают корпорации, когда это не основной их продукт. Гугл продает рекламу, а не браузер, FB, знаете ли, не продает системы сборки, и так далее. А вот результат у mongo и elastic немного хуже. Вот и Valve продает не OpenGL, а игры.

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

*: кстати, в копилку про "не умеют договариваться" и #fontconfig - в нормальной жизни компилятор шейдеров был бы демоном. Тогда и кеш понятно, как устроить, без вычисления md5 от образа библиотеки, и как не запускать llvm в каждом приложении, и как падения ретраить(sic).

PS: тут про компилятор шейдеров я имел в виду штуку, которая SPIR-V в машинный формат переводит.
commit -m "better"
Я как-то обещал написать про то, как #eBPF && #io_uring поменяют Linux, но так и не написал. Давайте я совсем коротко обозначу свою мысль, а раскрою ее позже.
3 года назад я (в первый раз) написал, что #ebpf и #io_uring радикально поменяют Linux, и периодически писал на эту тему.

https://www.opennet.ru/opennews/art.shtml?num=62187

Совершенно прекрасная новость в тему - IETF хочет стандартизировать #ebpf, например, чтобы оффлоадить его выполнение, ну и чтобы сторонные реализации появились.

#ebpf уже сделал большинство ядреных файерволов ненужными, а #io_uring делает userspace реализации быстрыми.

И вторая интересная новость в тему - https://www.phoronix.com/news/DRM-Graphics-Drivers-IO_uring

Кажется, io_uring как способ доставки команд до 3D драйвера - это прямо конфетка.
👍13🔥7💯3🆒2
https://lwn.net/SubscriberLink/1002371/0ff2be6a2c7624ca/

"Process creation in io_uring"

Пишут про добавление clone() в #io_uring.

Я, даже не читая текст, закатил глаза, и подумал "#ebpf", потому что это очень разумно - загрузить через io_uring программу, которая сделает необходимый setup, и позовет clone()

(вообще, напомню в данном контексте свой текст от 21 года - https://t.iss.one/itpgchannel/56)

И, пожалуйста, первый же комментарий про это - https://lwn.net/Articles/1003051/

Но, в целом, этот текст (и дикуссия по ссылкам) не дает ответа на самый главный вопрос - а какая семантика у асинхронного clone()?

Тут же основная проблема - а что происходит, если clone() реально происходит хз когда, когда программа имеет неизвестное состояние блокировок/открытых fd/memory maps и так далее?

Синхронно-то сложно обеспечить нормальное окружение для clone(), а асинхронно - это какой-то леденящий душу пиздец!
👍12🔥5🤔4🆒2🤯1