commit -m "better"
3.24K subscribers
1.03K photos
149 videos
3 files
2.39K links
just random thoughts
Download Telegram
https://gaultier.github.io/blog/wayland_from_scratch.html

А вот, кстати, хороший текст про то, как написать #wayland клиент с 0.

Без использования libwayland, без использования всратого xml codegen, а вот так вот - открыть сокет, записать такие-то байты, так-то распарсить результат. Фрейминг, содержание каждого пакета, устройство event loop - все объясняется "на пальцах".

Короче, если хочется разобраться "как оно работает внутри", а не в изысках, которые нахуевертили вокруг этой простой модели - must read.

Жалко, что там нет самой "мякотки" - инициализации drm context, для 3D ускорения, но это было бы сложновато для такой короткой статьи.
👍26
commit -m "better"
Новости из мира GNU. SFC подала иск за нарушение GPL на компанию #Vizio. https://lwn.net/Articles/873338/ Я прочитал публичную часть иска - https://shoestring.agency/wp-content/uploads/2021/10/SFC_PressKit_10-19-2021_v1.pdf Все в лучших традициях GNU/FSF:…
#sfc #gpl #Vizio

https://writing.kemitchell.com/2023/10/13/Wrong-About-GPLs

Коллега пишет, что вот в этом самом суде SFC отстаивало точку зрения, что GPL - это контракт, а не лицензия. #IANAL, но, судя по всему, это нужно, чтобы в суд могла подать третья сторона (а не только авторы кода и нарушители GPL).

Вообще, конечно, это все совершенно прекрасно, когда на сайтах ты пишешь одно, а в суде заявляешь вот такое:

"This is not in the contract. This is on a website. And it’s, again, rather fanciful to imagine that every party to the GPLs is going to the website, looking at a list of 200-plus FAQs, and fixating on the one that concerns enforcement, means of enforcement, in the event of a breach"

С другой стороны, FSF тоже можно понять, потому что идея, и механизм ее реализации - это очень разные вещи.

Ну вот хочется, чтобы было "красиво", но, чтобы работало в каком-то конкретном законодательстве, нужно, чтобы было "ужасно, но единообразно".

Не знаю, по мне, так надо рядом с текстом GPL, под звездочкой, мелким шрифтом, написать, какие реальные механизмы используются для обеспечения правоприменения текста GPL, и всего делов.
🤔7
Кластер PG (хехе), V2.0
Все машинки в моем ДЦ работают на #stal/IX, а как иначе!
🔥20👌8🤡8👍5
commit -m "better"
Будни #bootstrap Вот есть такой https://github.com/microsoft/DirectXShaderCompiler Он мне, сам по себе, не нужен (хотя стараниями Valve теперь DirectX есть и под Linux), но он нужен для сборки #AMDVLK (мне все хочется пощупать альтернативную #mesa-е реализацию).…
Я, кстати, когда собирал DirectXShaderCompiler, подумал про одну штуку, а вот написать про нее - не написал.

Я почему-то всегда считал, что clang/llvm - это "второй среди равных" компиляторов. Так как я с clang практически с самого его рождения, то привык считать, что он всегда находится в догоняющих, по отношению к gcc, позициях.

Поэтому, когда я затеял собирать #ix clang'ом, то думал, что я в "меньшинстве". Возможно, оно так и было, в 19 году.

Но так-то, если подумать, то сейчас clang - главный компилятор С++, потому что:

* В любом tooling его библиотеки. Собственно, dxsc тоже.
* *BSD собираются clang
* macos/ios собирается clang - а это, на минуточку, один из самых популярных сторов приложений!
* С недавних (ну, как недавних, так-то уже дофига времени прошло) пор android (даже ядро для него!) собирается кленгом, и, полагаю, нативные приложения (которые без jvm) в сторах - тоже.
* Непустое количество дистрибутивов Linux, собираемых clang. И не только мой #stal/IX, а та же Open Mandriva.
* Самые популярные программы на любом компьютере (браузеры) собираются clang (chrome, webkit, и все производные). Vscode? Electron?

Удел gcc сейчас - это серверные дистрибутивы в датацентрах, и, так-то, это довольно узкая область, да хотя бы по числу инсталляций! Но и в них без llvm никуда, потому что llvm широко используется во всякого рода компиляторах шейдеров (#mesa).

Ну и получается, что случайное приложение, которое ты используешь, собрано clang, а не gcc.

Такие дела.
👍19🤡9🤔6🔥41😢1
https://rachelbythebay.com/w/2023/10/16/env/

getaddrinfo() из glibc зовет getenv(). Ну зовет и зовет, и не такое бывает.

Мне вот помнится boost condvar timed wait, который иногда начинал шуршать диском, потому что там внутре была заиспользована какая-то "не такая" функция работы с временем, и она пыталась читать локаль с диска.

(если у кого-то есть про это ссылка, поделитесь, потому что, с ходу, я не нашел)
😁11👍5🔥3🐳2😱1
https://www.phoronix.com/news/GNOME-Foundation-New-Director

Новый исполнительный директор у GNOME foundation.

https://www.phoronix.com/forums/forum/phoronix/latest-phoronix-articles/1415943-gnome-foundation-names-a-new-executive-director?p=1415977#post1415977

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

name is Holly Million, and I am a professional shaman, an artist, an herbal medicine maker, and a micro-homesteader.​

Eight years ago, I realized the best word to describe me must be “shaman.”​
​​​​​​
I do energy healing work on behalf of individuals, land, houses, and businesses. I can do this work remotely because everything is connected. We live in a quantum universe. My clients for personal and land clearing are located all over the country.

Как пишет другой коллега:

"The perfect person to shaman in the miracle required to make GNOME a good DE"
😁28👍4🔥2🤡2
Forwarded from /g/‘s Tech Memes (Gianmarco)
😁12🔥5👍31🤡1
https://nibblestew.blogspot.com/2023/10/the-road-to-hell-is-paved-with-good.html

Странный текст про модули в С++, от автора #meson.

Я ожидал чего-то горячего, но весь текст, в основном, про то, какие gcc/clang негодяи, как им нужно правильно парсить command line, и как разбирать файлы.

Я бы сказал, что у автора зашкалило ЧСВ, и он, на голубом глазу, рассказывает, как clang/gcc должны выстраивать интерфейсы, чтобы их удобно можно было звать в #ninja.

Ну или он просто не видит дальше своего носа, и не понимает, что модель парсинга зависимостей у meson/ninja - ущербна (*), и что не надо ей потакать.

(*): в основном, потому, что она создана для решения задачи, которую решать не нужно, а именно - чтобы генератор сборочного графа мог жить отдельно от выполнителя этого графа (тут появляется сложная зависимость между этими инструментами, так как зависимости для пересборки появляются не на configure стадии, а в процессе первого выполнения графа).
🤔6👍3🔥3😁1
https://github.com/rui314/mold/releases/tag/v2.3.0

Вышел новый #mold.

Вполне обычный релиз, в changelog глаз зацепился за

"mold 2.3.0 has introduced an experimental flag, -z rewrite-endbr, which rewrites superfluous endbr64 instructions as nop"

Полез смотреть, что это за инструкция, https://stackoverflow.com/questions/56905811/what-does-the-endbr64-instruction-actually-do - вполне норм описание, с выдержками из арх. мануалов, и все такое.

Прикольная штука, насколько я понимаю, она делает #ROP почти obsolete.

А вы знали? Я не знал!
👍6🔥6🤔3🆒32
Как мы себе это представляем:

https://ru.wikipedia.org/wiki/%D0%9F%D0%BB%D0%B0%D0%BC%D1%8F_%D0%BD%D0%B0%D0%B4_%D0%B1%D0%B5%D0%B7%D0%B4%D0%BD%D0%BE%D0%B9

"Все внимание новорожденного повернулось к уходящим кораблям. Микробы, вдруг оказавшиеся болезнетворными. Как могло это случиться? Вдруг ускорились миллионы планов. Расцвет обычным порядком более не рассматривался, следовательно, отпала нужда в людях, оставшихся в Лаборатории.

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

Пять, десять секунд — и больше перемен, чем за тысячелетия людской цивилизации. Миллиард триллионов построений, с каждой стены спадает плесень, восстанавливая то, что было когда-то сверхчеловеческим. Это было так же мощно, как правильный расцвет, хотя и не столь тонко настроено."

Как это происходит на самом деле:

https://github.com/OpenBMB/XAgent#-xagent-1

....
Safety: XAgent is designed to run safely. All actions are constrained inside a docker container. Run it anyway!
....
🤔8👍5🔥3😱3😁2
https://gitlab.gnome.org/GNOME/gnome-session/-/merge_requests/98

MR в #GNOME, насколько я понимаю, он убирает возможность выбора X11 сессии в login manager.

Ну и хорошо.

Wayland, конечно, местами, слишком анально огорожен, на каждый чих нужен протокол, и чтобы его поддержали основные вендоры, но X11 - это тихий ужас.

Если вы запустили X сессию от рута/#suid (раньше точно нельзя было иначе), то вы, считай, подарили свой компьютер кому угодно. Потому что проезды в коде X11 перестали находить не потому, что они там кончились, а просто никто, в здравом уме, не хочет читать ЭТО.
10🤔4🖕4
https://www.opennet.ru/opennews/art.shtml?num=59965

Взлом jabber.ru, с перехватом трафика, в течение длительного периода времени.

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

С одной стороны, новость "вкусная", с другой - ну взломали и взломали, mitm, при условии контроля над инфраструктурой, дело не очень хитрое - "Первый поддельный TLS-сертификат был получен 18 апреля 2023 года через сервис Let’s Encrypt, в котором атакующий, имея возможность перехватить трафик, смог подтвердить доступ к сайтам jabber.ru и xmpp.ru".

Мораль?

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

А если вам нужна настоящая приватность - то, получается, нельзя доверять никаким third party, только обмен ключами на бумажке, при личной встрече.
👍8😱6🤔4💯32🥱2🤯1😢1
Forwarded from КиберТопор
«Я дам им миллиард долларов, если они поменяют имя на Хуепедию».

Илон Маск сделал идеальное предложение для Википедии.

🕹КиберТопор — Подписаться
🤡12🔥6🐳3🆒2🥱1
#llvmweekly

https://www.linaro.org/blog/tracking-code-size-variations-between-llvm-releases/

Немного картинок на предмет "как меняется размер .text AOSP SPEC, скомпилированного LLVM, в зависимости от версии LLVM".

Картинки предсказуемо скучные, потому что радикальных изменений в кодогенераторе/оптимизаторе LLVM давно не случалось, колебания на десятые доли процентов в ту или иную сторону.
👍43🔥2
https://www.phoronix.com/review/xeon-max-linux-software

Миша с фороникса, в очередной раз, пишет, какой же clear linux крутой.

https://www.phoronix.com/review/xeon-max-linux-software/5 - сводный результат.

TL;DR - чуть ли не в разы быстрее, чем другие дистрибутивы Linux.

Не верю в это ни на грош.

Флаги оптимизации - это проценты перфа, а все остальные наработки инженеры Intel отдают в opensource upstream, то есть, оптимизации в произвольном кодеке ffmpeg, в итоге, попадут во все дистрибутивы.

Ну, то есть, нельзя собрать тот же zstd так, чтобы он в полтора раза отличался по скорости в clear linux, и в остальных дистрибутивах. Нельзя и все, если ты только не прикопал парочку .S файлов, и не отдал их в open source. Никакие -mtune/-flto не помогут.

Я гораздо более легко поверю в то, что инженеры Intel "правильно" настроили окружение для Миши и его тестов, зная особенности тестируемого процессора.

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

https://github.com/clearlinux - муть мутная, несколько десятков репозиториев, без четкой структуры. https://github.com/clearlinux/clr-bundles - самое близкое к описанию сборки пакетов, но все равно не то.

Если вы знаете, куда смотреть - ткните, пожалуйста, пальцем. Очень хочется разобраться.

История с душком, если вы понимаете, о чем я.

UPD: мне показали ссылку на то, что может быть их пакетной базой. Ну вот вам патч про zstd - https://github.com/clearlinux-pkgs/zstd-bin/blob/main/multi-thread-default.patch https://github.com/clearlinux-pkgs/zstd-bin/blob/main/quiet.patch. Это честный патч? Не смешите мои тапочки!
👍9🤡7🤔6🌚3😁2
https://dgl.cx/2023/09/ansi-terminal-security #foot #terminfo

Исчерпывающий текст про эмуляторы терминала, про то, что, по сути, они являются shell (в том смысле, в котором браузер является shell, то есть, sandbox для выполнения пользовательского кода, возможно, зловредного).

Про всякие ошибки, которые автор находил в разным там терминалах (спойлер - почти во всех), про связанные CVE, и про то, как правильно.

И, сюрпрайз-сюрпрайз, новый релиз xterm:

https://invisible-island.net/xterm/xterm.log.html

Patch #388 - 2023/10/22
improve disallowPasteControls by adding a category for the special characters known to stty (prompted by discussion with David Leadbeater).

А вот "David Leadbeater" - это как раз автор предыдущей статьи.

Совпадение?
👍5🔥52
Forwarded from Tech Mumble
Посмотрел keynote с bazelcon. Мне нравится, что bazel еле-еле, но становится таким стандартом де-факто для больших проектов. Грустно только что оно сильно завендерлочено, ничего не помешает гуглу через 5 лет закрыть проект, и всё загнётся.

Работают над тремя большими штуками.

* само собой пытаются выпилить поддержку С++ и Java из ядра, куда без этого
* bzlmod — перепридумали работу с внешними зависимостями, говорят давайте будем импортировать граф к себе, где-то я уже такое видел (вот так выглядит https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/protobuf/3.19.6/MODULE.bazel)
* почему-то много внимания уделяют SBOM — списку зависимостей для проверки уязвимостей (https://security.googleblog.com/2022/06/sbom-in-action-finding-vulnerabilities.html)
🤝43👍2🤔2
commit -m "better"
https://github.com/google/fuzzing/blob/master/docs/silifuzz.pdf Забавный подход к фаззингу CPU(на предмет дефектов) - давайте пофаззим дизассемблер и QEMU, на получившемся корпусе будем проверять реальные CPU. Подход интересный, выхлоп, ИМХО, слабоват(всякие…
https://www.opennet.ru/opennews/art.shtml?num=59986

Еще в тему фаззинга CPU.

На этот разу улов интереснее, правда, не в столь массовых процессорах.

Особенно доставляет

"Одна ошибка классифицирована как возможность встраивания скрытой логики на этапе проектирования чипа. Проблема присутствует в открытом пакете Yosys, предназначенном для синтеза уровня регистровых передач (RTL) и применяемом при проектировании и эмуляции CPU. Ошибка привела к синтезу некорректной логики в FPU процессора CVA6. Злонамеренный участник разработки может использовать данную проблему для внесения скрытой ошибки в проект, в котором для синтеза логики применяется Yosys, через передачу внешне безобидного описания уровня регистровых передач (RTL)"

Злонамеренный код в тулинге для разработки CPU!

Если это правда, то это даже круче, чем атака Томпсона https://www.cs.cmu.edu/~rdriley/487/papers/Thompson_1984_ReflectionsonTrustingTrust.pdf
🔥16🤯2🤔1