Forwarded from Технологический Болт Генона
Miguel Ojeda (https://ojeda.dev/) принёс в рассылку
https://lore.kernel.org/rust-for-linux/CANiq72m-R0tOakf=j7BZ78jDHdy=9-fvZbAT8j91Je2Bxy0sFg@mail.gmail.com/
Rust kernel policy
https://rust-for-linux.com/rust-kernel-policy
Спасибо подписчику за наводку
Hi all,
Given the discussions in the last days, I decided to publish this page
with what our understanding is:
https://rust-for-linux.com/rust-kernel-policy
I hope it helps to clarify things. I intend to keep it updated as needed.
https://lore.kernel.org/rust-for-linux/CANiq72m-R0tOakf=j7BZ78jDHdy=9-fvZbAT8j91Je2Bxy0sFg@mail.gmail.com/
Who maintains Rust code in the kernel?
The usual kernel policy applies. That is, whoever is the listed maintainer.
The "RUST" subsystem maintains certain core facilities as well as some APIs that do not have other maintainers. However, it does not maintain all the Rust code in the kernel — it would not scale.
. . .
Who is responsible if a C change breaks a build with Rust enabled?
The usual kernel policy applies. So, by default, changes should not be introduced if they are known to break the build, including Rust.
However, exceptionally, for Rust, a subsystem may allow to temporarily break Rust code. The intention is to facilitate friendly adoption of Rust in a subsystem without introducing a burden to existing maintainers who may be working on urgent fixes for the C side. The breakage should nevertheless be fixed as soon as possible, ideally before the breakage reaches Linus.
. . .
Are duplicated C/Rust drivers allowed?
The usual kernel policy applies. So, by default, no.
Rust kernel policy
https://rust-for-linux.com/rust-kernel-policy
Спасибо подписчику за наводку
👍10❤4🤡3🐳1
Меня тут спрашивают, почему давно нет историй про #bootstrap (а мемасиков, наоборот, с лихвой).
Все потому, что, последние две недели, вечерами и выходными, я собирал Chromium.
Предыдущая попытка была ажно вот тут - https://www.tgoop.com/itpgchannel/534, и, насколько я сейчас понимаю, она была обречена на поражение, хорошо, что я тогда это гиблое дело бросил.
Моему пакетнику нужно было набраться мощи, как выразительной, так и наполнением утилит и библиотек, чтобы это стало реалистичным.
TL;DR - я сделал!
На этот раз я подошел к делу очень системно:
* Системно нашел последний snapshot Chromium в Alpine, в котором еще не было Rust - https://gitlab.alpinelinux.org/alpine/aports/-/commit/2b73ae849e016647a7b5c0d79d92b0b0574aac1a
* Системно попиздил все патчи из Alpine (потому что musl) - https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/chromium
* Cистемно воссоздал все нужное окружение (потому что clang-17 оно собирается, а вот clang-19 - нет) - https://github.com/pg83/ix/blob/main/pkgs/bin/chromium/ix.sh#L4
* Системно продрался через ошибки сборки, потом через ошибки линковки, а потом и через падения на старте.
Падения были вокруг NSS модуля, и я думал, что я поседею, пока это дебажил:
* Найти место, где случилась ошибка, было сложно, потому что она несколько раз преобразовывалась из одного пространства error codes в другое, и грепать это было решительно невозможно.
* А потом нужно было понять, почему же падает инициализация генератора случайных чисел в NSS...
Падало оно вот в этом блоке кода - https://github.com/nss-dev/nss/blob/master/lib/freebl/drbg.c#L237-L241
Я, признаться, долго не мог понять, почему оно в этом месте падало, грешил сначала на какой-нибудь многопоточный race, но потом обнаружил, что, если запустить это вне дерева Chromium, в отдельном небольшом примере, то все работает, как надо.
Long story short - в NSS есть https://github.com/nss-dev/nss/blob/master/lib/freebl/drbg.c#L234 (SHA256_Update), а еще SHA256_Update есть в boringssl, которая лежит в исходниках Chromium. И, так уж получилось, версия из boringssl победила, поэтому, конечно, там получалась какая-то дичь, а не хеш.
В общем, в воскресенье оно кое-как заработало, без 3D ускорения, и без живого root CA, но заработало, и это прямо вау!
Все потому, что, последние две недели, вечерами и выходными, я собирал Chromium.
Предыдущая попытка была ажно вот тут - https://www.tgoop.com/itpgchannel/534, и, насколько я сейчас понимаю, она была обречена на поражение, хорошо, что я тогда это гиблое дело бросил.
Моему пакетнику нужно было набраться мощи, как выразительной, так и наполнением утилит и библиотек, чтобы это стало реалистичным.
TL;DR - я сделал!
На этот раз я подошел к делу очень системно:
* Системно нашел последний snapshot Chromium в Alpine, в котором еще не было Rust - https://gitlab.alpinelinux.org/alpine/aports/-/commit/2b73ae849e016647a7b5c0d79d92b0b0574aac1a
* Системно попиздил все патчи из Alpine (потому что musl) - https://gitlab.alpinelinux.org/alpine/aports/-/tree/master/community/chromium
* Cистемно воссоздал все нужное окружение (потому что clang-17 оно собирается, а вот clang-19 - нет) - https://github.com/pg83/ix/blob/main/pkgs/bin/chromium/ix.sh#L4
* Системно продрался через ошибки сборки, потом через ошибки линковки, а потом и через падения на старте.
Падения были вокруг NSS модуля, и я думал, что я поседею, пока это дебажил:
* Найти место, где случилась ошибка, было сложно, потому что она несколько раз преобразовывалась из одного пространства error codes в другое, и грепать это было решительно невозможно.
* А потом нужно было понять, почему же падает инициализация генератора случайных чисел в NSS...
Падало оно вот в этом блоке кода - https://github.com/nss-dev/nss/blob/master/lib/freebl/drbg.c#L237-L241
Я, признаться, долго не мог понять, почему оно в этом месте падало, грешил сначала на какой-нибудь многопоточный race, но потом обнаружил, что, если запустить это вне дерева Chromium, в отдельном небольшом примере, то все работает, как надо.
Long story short - в NSS есть https://github.com/nss-dev/nss/blob/master/lib/freebl/drbg.c#L234 (SHA256_Update), а еще SHA256_Update есть в boringssl, которая лежит в исходниках Chromium. И, так уж получилось, версия из boringssl победила, поэтому, конечно, там получалась какая-то дичь, а не хеш.
В общем, в воскресенье оно кое-как заработало, без 3D ускорения, и без живого root CA, но заработало, и это прямо вау!
Telegram
commit -m "better"
Медленно продираюсь через сборку chromium, и она меня, конечно, очень бесит.
Пока как-то так:
"[11727/51727] CXX obj/third_party/dawn/src/dawn/native/sources/PipelineLayoutVk.o
[11728/51727] CXX obj/third_party/dawn/src/dawn/native/sources/DeviceVk.o
[11729/51727]…
Пока как-то так:
"[11727/51727] CXX obj/third_party/dawn/src/dawn/native/sources/PipelineLayoutVk.o
[11728/51727] CXX obj/third_party/dawn/src/dawn/native/sources/DeviceVk.o
[11729/51727]…
🔥45🤯9❤8❤🔥3🎉3🤡1
https://digitalcommons.usu.edu/cgi/viewcontent.cgi?article=5598&context=smallsat
A/B деплой, но не в датацентры, а на группировку спутников starlink.
TL;DR - все, как у всех, с поправкой на то, что там радиация, флапают биты, и слетать на орбиту с флешкой, чтобы переналить, не получится,
Каждый спутник содержит 500 встроенных компьютеров, и деплой надо оркестрировать не только по спутникам, но и по этим устройствам внутри каждого спутника:
"Each satellite is a collection of computers(referred to as “nodes”)in control of various subsystems on the vehicle. The earliest satellites have 80 nodes, the newest have 237 nodes, and future designs approach 500 independent nodes. These nodes have bidirectional communications interfaces with one anotherto achieve coordinated tasks."
A/B деплой, но не в датацентры, а на группировку спутников starlink.
TL;DR - все, как у всех, с поправкой на то, что там радиация, флапают биты, и слетать на орбиту с флешкой, чтобы переналить, не получится,
Каждый спутник содержит 500 встроенных компьютеров, и деплой надо оркестрировать не только по спутникам, но и по этим устройствам внутри каждого спутника:
"Each satellite is a collection of computers(referred to as “nodes”)in control of various subsystems on the vehicle. The earliest satellites have 80 nodes, the newest have 237 nodes, and future designs approach 500 independent nodes. These nodes have bidirectional communications interfaces with one anotherto achieve coordinated tasks."
🔥35👍5🆒4🤯3✍2
commit -m "better"
* Не надо поддерживать свою васянскую инфру (#gitlab #infra), а надо брать, и использовать github.
#selfhost
Вот, коллеги из xiph.org так и сделали - забили на свой #gitlab, и выкатили новый релиз только на github:
https://gitlab.xiph.org/xiph/flac/-/tags
https://github.com/xiph/flac/tags
Это, безусловно, хорошо, потому что нефиг держать свою #infra, если не умеете (а вы не умеете, чуть менее чем 100%, ага).
#предложка
UPD: в gitlab тоже появилось
Вот, коллеги из xiph.org так и сделали - забили на свой #gitlab, и выкатили новый релиз только на github:
https://gitlab.xiph.org/xiph/flac/-/tags
https://github.com/xiph/flac/tags
Это, безусловно, хорошо, потому что нефиг держать свою #infra, если не умеете (а вы не умеете, чуть менее чем 100%, ага).
#предложка
UPD: в gitlab тоже появилось
GitLab
Tags · Xiph.Org / flac · GitLab
Free Lossless Audio Codec
👍12🤡9❤2🔥1🥰1🤔1
commit -m "better"
Схватился дед с батей автор #asahi, и Linus.
https://marcan.st/2025/02/resigning-as-asahi-linux-project-lead/
Штош, закономерный результат всей этой истории:
"I’m resigning as lead of the Asahi Linux project, effective immediately. The project will continue on without me, and I’m working with the rest of the team to handle transfer of responsibilities and administrative credentials. My personal Patreon will be paused, and those who supported me personally are encouraged to transfer their support to the Asahi Linux OpenCollective (GitHub Sponsors does not allow me to unilaterally pause payments, but my sponsors will be notified of this change so they can manually cancel their sponsorship)"
#asahi
Штош, закономерный результат всей этой истории:
"I’m resigning as lead of the Asahi Linux project, effective immediately. The project will continue on without me, and I’m working with the rest of the team to handle transfer of responsibilities and administrative credentials. My personal Patreon will be paused, and those who supported me personally are encouraged to transfer their support to the Asahi Linux OpenCollective (GitHub Sponsors does not allow me to unilaterally pause payments, but my sponsors will be notified of this change so they can manually cancel their sponsorship)"
#asahi
marcan.st
Resigning as Asahi Linux project lead
Update: Thank you everyone for all the heartfelt and encouraging emails in response to this post. I can’t reply to all of them, but I do read every single one. <3
Back in the late 2000s, I was a major contributor to the Wii homebrew scene. At the time, I…
Back in the late 2000s, I was a major contributor to the Wii homebrew scene. At the time, I…
😢17🤣8🔥3👍2🤡2
Forwarded from Философия Говна
This media is not supported in your browser
VIEW IN TELEGRAM
👍16💯13❤8🐳4🔥2
commit -m "better"
если проект не перестанет получать деньги от военных, то он обречен
тем временем, компания, которая платит деньги автору nixos (https://news.ycombinator.com/item?id=40199153), вполне себе процветает:
https://www.cnbc.com/2025/02/11/anduril-to-take-over-microsofts-22-billion-us-army-headset-program.html
(позволю себе напомнить про начало драмы в nixos - https://discourse.nixos.org/t/nixcon-na-2024-is-getting-sponsored-by-anduril-what-to-do-about-it/41258)
https://www.cnbc.com/2025/02/11/anduril-to-take-over-microsofts-22-billion-us-army-headset-program.html
(позволю себе напомнить про начало драмы в nixos - https://discourse.nixos.org/t/nixcon-na-2024-is-getting-sponsored-by-anduril-what-to-do-about-it/41258)
CNBC
Anduril to take over Microsoft's $22 billion U.S. Army headset program
Anduril Industries will take control of Microsoft's multibillion-dollar augmented reality headset program for the U.S. Army.
🤔6🐳4❤3👍1
https://dudemanguy.github.io/blog/posts/2025-02-03-wayland-xorg-2/wayland-xorg-2.html
Пишут, что #wayland - торт.
Так же там высказывается непопулярное мнение, что все хорошее в explicit sync в Linux сделано благодаря Nvidia, что очень хорошо aligned с моей точкой зрения, что все хорошее в Linux делают корпорации (#valve) (несмотря на активно сопротивляющееся сообщество).
Пишут, что #wayland - торт.
Так же там высказывается непопулярное мнение, что все хорошее в explicit sync в Linux сделано благодаря Nvidia, что очень хорошо aligned с моей точкой зрения, что все хорошее в Linux делают корпорации (#valve) (несмотря на активно сопротивляющееся сообщество).
🤔9👍5🔥4❤2🤡1🐳1
https://github.com/thomcc/ubrustc
rustc, но без borrow checker.
Классная штука - можно получить пакетный менеджер, норм экосистему библиотек, и не ебаться с borrow checker.
К сожалению, работать это не будет, потому что, помимо borrow checker, на семантику Rust завязаны многие его оптимизации, и они просто сломаются, будет генериться некорректный код.
rustc, но без borrow checker.
Классная штука - можно получить пакетный менеджер, норм экосистему библиотек, и не ебаться с borrow checker.
К сожалению, работать это не будет, потому что, помимо borrow checker, на семантику Rust завязаны многие его оптимизации, и они просто сломаются, будет генериться некорректный код.
GitHub
GitHub - thomcc/ubrustc: Unborrowed Rust Compiler (rustc without a borrowchecker)
Unborrowed Rust Compiler (rustc without a borrowchecker) - thomcc/ubrustc
👍11👎6😁6🔥3🤡1
https://ebpf.foundation/case-study-bytedance-uses-ebpf-to-enhance-networking-performance/
TL;DR - что только не сделают проклятые капиталисты, лишь бы быстрее доставить танцующих телочек на ваши смартфоны!
"With over a million servers running containerized applications, the company required a networking solution that could handle high throughput while maintaining stability. By leveraging eBPF technology, Bytedance successfully implemented a decentralized networking solution that improved efficiency, scalability, and performance"
TL;DR - что только не сделают проклятые капиталисты, лишь бы быстрее доставить танцующих телочек на ваши смартфоны!
"With over a million servers running containerized applications, the company required a networking solution that could handle high throughput while maintaining stability. By leveraging eBPF technology, Bytedance successfully implemented a decentralized networking solution that improved efficiency, scalability, and performance"
😁10❤7🤔4😱1🐳1
https://www.opennet.ru/opennews/art.shtml?num=62719
Уязвимость в iconv() в #musl.
Я, как обычно, в домике, потому что в моей #herobora libc iconv() используется из libiconv от GNU.
Уязвимость в iconv() в #musl.
Я, как обычно, в домике, потому что в моей #herobora libc iconv() используется из libiconv от GNU.
www.opennet.ru
Уязвимость в Musl, эксплуатируемая при перекодировании текста в кодировке EUC-KR
В стандартной Си-библиотеке Musl выявлена уязвимость (CVE-2024-2961), приводящая к переполнению буфера при преобразовании специально оформленного текста из кодировки EUC-KR в UTF-8 при помощи функции iconv(). Уязвимость проявляется начиная с версии musl 0.9.13…
🐳9👍6❤3🔥1🥱1
commit -m "better"
Поэтому я, конечно, очень жду, когда gui можно будет компилировать в что-то типа #WASM #WASI, и чтобы 3d драйвера жили исключительно в одном бинаре с WebAssembly VM, о как. Это, если что, не влажная фантазия, у вас прямо сейчас так работает webgl в браузере!
https://creston.blog/wasm-will-replace-containers/
Скорее бы уже, потому что я все еще имею мечту про "правильно" устроенный Linux:
* Все компилируется в #WASI #WebAssembly
* Есть одна большая WebAssembly VM, в которую статически слинкованы "системные" библиотеки - API opengl/vulkan, драйвера для opengl/vulkan (mesa), libc, ABI ядра, fontconfig, harfbuzz, и так далее - все, что имеет стабильный ABI.
* Все пользовательские приложения - тонкие клиенты к этой VM. В них нет свох кешей шейдеров, своих кешей шрифтов, и так далее, все это живет в VM.
* WebAssembly VM - идеальный клей между языками и рантаймами (CGO - тихий ужас, а вот загрузить Rust модуль в #wazero - это заебись. Линковать mesa в каждую программму - тихий ужас, а вот иметь OpenGL как "тонкий клиент" в VM - очень даже хорошо).
Скорее бы уже, потому что я все еще имею мечту про "правильно" устроенный Linux:
* Все компилируется в #WASI #WebAssembly
* Есть одна большая WebAssembly VM, в которую статически слинкованы "системные" библиотеки - API opengl/vulkan, драйвера для opengl/vulkan (mesa), libc, ABI ядра, fontconfig, harfbuzz, и так далее - все, что имеет стабильный ABI.
* Все пользовательские приложения - тонкие клиенты к этой VM. В них нет свох кешей шейдеров, своих кешей шрифтов, и так далее, все это живет в VM.
* WebAssembly VM - идеальный клей между языками и рантаймами (CGO - тихий ужас, а вот загрузить Rust модуль в #wazero - это заебись. Линковать mesa в каждую программму - тихий ужас, а вот иметь OpenGL как "тонкий клиент" в VM - очень даже хорошо).
creston.blog
WASM will replace containers
WebAssembly is a true write-once-run-anywhere experience.
👍14🔥9❤5🤯5🤮3🤡3🐳2🤔1
commit -m "better"
Пишут, что #wayland - торт.
https://www.opennet.ru/opennews/art.shtml?num=62725
"Пользователям KDE рекомендовано попробовать перейти на использование сеанса на базе протокола Wayland, так как разработчики KDE практически прекратили тестирование сеанса на базе X11"
Ну все, лед тронулся, через пару лет про X можно будет просто забыть, эффект будет лавинообразный.
"Пользователям KDE рекомендовано попробовать перейти на использование сеанса на базе протокола Wayland, так как разработчики KDE практически прекратили тестирование сеанса на базе X11"
Ну все, лед тронулся, через пару лет про X можно будет просто забыть, эффект будет лавинообразный.
www.opennet.ru
Сеанс KDE на базе X11 остался почти без тестирования. Начало разработки KDE 6.4
Нейт Грэм (Nate Graham), разработчик, занимающийся контролем качества в проекте KDE, опубликовал очередной отчёт о разработке KDE. После релиза KDE Plasma 6.3.0 выявлено несколько неприятных ошибок, которые планируют устранить в корректирующем обновлении…
👍16🤔10❤8🤡4🤮3😢2🆒1