LINUX.ORG.RU

Сообщения hateyoufeel

 

Rust добавляют в FreeBSD

Привет, ЛОР!

В связи с популярностью языка Rust, его поддержку решили добавить в том числе в базовую систему FreeBSD. Теперь части этой системы можно будет писать на этом замечательном языке программирования. В частности, в систему добавлен сборочный файл share/mk/bsd.rust.mk, что позволит собирать программы на Rust во время make buildworld.

Поддержка Rust в ядре FreeBSD пока отсутствует, но работа над этим так же ведётся. Такие дела, ЛОРовец!

Ну и традиционно, cast @alysnix и @firkax.

Ссылка: https://hardenedbsd.org/article/shawn-webb/2025-05-20/optional-rust-freebsd-support-may-2025-status-report

 , ,

hateyoufeel
()

На самом деле, UB оказалось не нужно

Привет, ЛОР!

Как тебе известно, языки Си и Си++ кишат неопределённым поведением, случаи которого вызывают много боли у программистов на этих языках. Обычно это оправдывается возможностью для оптимизаций, но почему-то никто не был в состоянии привести примеры того, насколько связанные с неопределённым поведением оптимизации действительно улучшают производительность кода. До нынешнего момента.

Исследователи из университета Бухареста и технического университета Лиссабона провели испытания с инструментарием LLVM, в котором была отключена эксплуатация UB, и оказалось, что производительность кода в результате изменилась крайне незначительно, а в некоторых случаях даже улучшилась. В дополнение, в случаях, где без эксплуатации UB производительность просела, можно зачастую было применить другие оптимизации, спасающие ситуацию.

Ссылка: https://web.ist.utl.pt/nuno.lopes/pubs/ub-pldi25.pdf

В общем, по всему выходит, что тысячи и тысячи людей уже десятки лет страдают абсолютно зря, и все эти ужасы на самом деле были абсолютно впустую. Такие дела, ЛОР.

 , , ,

hateyoufeel
()

Про взлом 4chan никому не интересно?

Привет, ЛОР!

Неужели тут никто кроме меня не наблюдает за драмой от взлома известного сайта 4chan?

TL;DR он работал на старой FreeBSD (10.1) с кучей дыр, дырявом PHP, и, что важно, там был дырявый GhostScript (из-за дырявой FreeBSD), через который всё и поимели.

Возможно, это был последний крупный сайт, работавший на FreeBSD.

 ,

hateyoufeel
()

Kagi ищут разработчика под GNOME

Привет, ЛОР!

Ребята из поискового сервиса Kagi ищут разработчика писать нативный браузер на GTK4/libadwaita/WebKitGTK.

Мопед не мой, но вдруг кому зайдёт. Стучать сюда: https://kagi.peopleforce.io/careers/v/115930-gnome-app-developer

 , , kagi, libadwaita

hateyoufeel
()

Отвалилась связь между KeePassXC и Librewolf

Привет, ЛОР!

Сабж. Обновил Librewolf до 136, после этого keepassxc в браузере перестал работать. Если удалить базу из дополнения, новую не добавить, при нажатии Connect ничего не происходит.

В самом KeePassXC, разумеется, интеграция с браузером включена. В какую сторону вообще это копать?

Софт:

  • Librewolf 136.0.1
  • KeePassXC 2.7.10
  • Дополнение к браузеру самое свежее

Решение: почему-то KeePassXC перестал ссылаться на профиль Librewolf или яхз как это работает. Я создал директорию ~/.librewolf/native-messaging-hosts и указал её в настройках KeePassXC в Use a custom browser configuration location. Это всё починило.

 ,

hateyoufeel
()

Разбивка потребления энергии по девайсам

Привет, ЛОР!

После очередного обновления системы ноутбук стал жрать 11-12W вместо привычных 6-7W в простое. Хочу понять, кто такой голодный стал. Есть ли какой-нибудь софт, показывающий какие именно устройства кушают и сколько?

Про powertop в курсе, он тут не помогает, т.к. показывает какую-то ересь.

Если это важно, ноутбук Thinkpad Z16 Gen2. Ryzen 7840H, видео встройка Radeon 780M + дискретка Radeon 6550M.

UPD: проблема наполовину решена отключением дискретной карты, но интересно было бы узнать более общее решение.

 , ,

hateyoufeel
()

Дрова для Apple всё

Привет, ЛОР!

После того, как Гектор Мартин смачно хлопнул дверью и вышел из официальной разработки ядра, его хватило очень ненадолго, и он через своего анимешного виртуала объявил, что окончательно сворачивает работу над драйверами для новых макбуков. Похоже, не будет у нас линукса на Apple M1/2/3/4 :(

Похороникс: https://www.phoronix.com/news/Asahi-Lina-Steps-Down-Linux-GPU

 , ,

hateyoufeel
()

defer в C быть!

Привет, ЛОР!

Как я писал три года назад, в стандарт языка Си было предложено добавить выражение defer, выполняющее функцию или блок кода по выходу из области видимости, где оно было объявлено.

На днях данное предложение получило официальный статус и, скорее всего, defer появится в будущем стандарте C2y.

При этом, defer почти наверняка не будет добавлен в C++, так как его использование будет конфликтовать с другими частями этого языка.

Ссылка на пост в блоге автора: https://thephd.dev/c2y-the-defer-technical-specification-its-time-go-go-go

Спецификация: https://thephd.dev/_vendor/future_cxx/technical%20specification/C%20-%20defer/C%20-%20defer%20Technical%20Specification.pdf

 ,

hateyoufeel
()

Для тех кому мало AppImage

Привет, ЛОР!

Зацени степень безумия, которую я нашёл. Dockerc – сборщик образов докер в единый бинарник, который можно просто запустить. Внутрь можно зашить практически что угодно, даже небо, даже @Dimez!

Ссылка: https://github.com/NilsIrl/dockerc

 , очень проклято, проклято

hateyoufeel
()

Tangled — распределённый Git хостинг на основе ATProto

Привет, ЛОР!

Год назад я писал про Radicle, который с тех пор успел релизнуться. Сегодня я принёс тебе такое же, но другое.

Tangled – распределённое хранилище Git-репозитариев в духе GitHub и подобных, построенное на основе протокола ATProto (используется в соц.сети BlueSky). Сеть построена на основе узлов (knots), представляющих собой сервера без UI, которые хранят репозитарии одного или нескольких пользователей и легко разворачиваются даже на малых мощностях, например, на Raspberry Pi. Отдельно работают т.н. App View (терминология ATProto, хз как перевести), которые дают доступ к репозитариям в узлах сети и позволяют загружать код, создавать запросы на Pull, сообщать о проблемах и так далее.

Доступ к этому всему пока что только по инвайтам, инвайты просить на канале #tangled в libera.chat. Но, если спросишь меня, ЛОР, выглядит это достаточно классно всё, и мне определённо нравится тенденция к переходу на независимые от Github и прочих крупных компаний средства разработки.

Ссылка на блог: https://blog.tangled.sh/intro

Написано на Golang, код опубликован под лицензией MIT: https://tangled.sh/@tangled.sh/core

UPD: приглашения нужны только для использования основного сервера tangled.sh. Если разворачивать свой сервер, приглашение не требуется, на взаимодействие с другими серверами ограничений нет.

 , ,

hateyoufeel
()

Предложение по контролю неопределённого поведения в Си

Привет, ЛОР!

В конце прошлого года было опубликовано предложение по добавлению в язык Си конструкций для контроля и упреждения неопределённого поведения.

Ссылка: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3211.pdf

Для Ъ:

Предлагается добавить специальную прагму MEMORY_SAFETY с вариантами DYNAMIC, STATIC и OFF. При включении MEMORY_SAFETY STATIC все варианты UB превращаются в ошибки сборки. Также, запрещаются многие конструкции, которые могут вызывать неопределённое поведение, например, операции над знаковыми числами, которые могут вызвать переполнение. В случае DYNAMIC, код, вызывающий неопределённое поведение, будет выбрасывать ошибку во время выполнения.

Что думаешь, ЛОРовец? Позволит ли это программистам на Си наконец перестать портить память?

 , , неопределённое поведение

hateyoufeel
()

top для radeon

Привет, ЛОР!

Посоветуй аналог nvidia-smi, но для карт radeon. Хочу знать какой процесс выжирает GPU и видеопамять. Radeontop не подходит, в нём нет разбивки по процессам.

 , ,

hateyoufeel
()

Mozilla вводит terms of service (чтобы шпионить за тобой, ЛОРовец!)

Привет, ЛОР!

Корпорация Mozilla опубликовала новые условия использования (Terms of use) браузером Firefox. Среди пунктов, стоит отметить, что при навигации по интернету или вводе любой информации через браузер Firefox, пользователь отныне даёт не эксклюзивное право Mozilla на использование этих данных для «улучшения качества сервиса».

Цитата:

When you upload or input information through Firefox, you hereby grant us a nonexclusive, royalty-free, worldwide license to use that information to help you navigate, experience, and interact with online content as you indicate with your use of Firefox.

Также стоит напомнить о недавней покупке Мозиллой рекламного стартапа, предоставляющего сервис слежки за пользователями.

Ссылка: https://www.mozilla.org/en-US/about/legal/terms/firefox/

UPD:

Opennet подтянулся с переводом: https://www.opennet.ru/opennews/art.shtml?num=62799

 , ,

hateyoufeel
()

Rust обогнал Сишечку по скорости распаковки

Привет, ЛОР!

Случилось непредвиденное и невероятное: реализация библиотеки zlib на Rust (zlib-rs) обогнала реализацию на C по скорости распаковки и показывает примерно схожую с последней скорость запаковки данных. Разница в производительности может достигать аж 14%.

Есть ли смысл теперь вообще писать новый софт на Си, если даже в производительности он начинает терять лидерство? Что скажут эксперты по Си и почему zlib на Си так плохо оптимизирован?

Ссылка на бенчмарки: https://trifectatech.org/blog/zlib-rs-is-faster-than-c/

Перемещено dataman из development

 , ,

hateyoufeel
()

Файловых систем в Linux убыло

Привет, ЛОР!

Следом за недавно удалённой файловой системой авторства известного примерного семьянина ReiserFS, из ядра Linux будет удалена поддержка ФС SystemV. Эта ФС использовалась, например, в ОС Xenix от Microsoft – одно время самой популярной UNIX системы.

Код SystemV оставался без сопровождающих с 2023 года и, судя по всему, был сломан как минимум с 2002 года, когда из ядра был удалён Big Kernel Lock.

Сообщение из коммита:

Since 2002 (change «Replace BKL for chain locking with sysvfs-private rwlock») the sysv filesystem was doing IO under a rwlock in its get_block() function (yes, a non-sleepable lock hold over a function used to read inode metadata for all reads and writes). Nobody noticed until syzbot in 2023. This shows nobody is using the filesystem. Just drop it.

 , system v,

hateyoufeel
()

C, препроцессор и размер/выравнивание типов

Привет, ЛОР!

Добавляю поддержку кросс-компиляции в один проект, возникла такая проблема: нужно сделать сишный файлик с размером и выравниванием некоторых типов без запуска кода. Что я хочу получить:

#define SIZEOF_typename 4
#define ALIGNMENT_OF_typename 4
...

Запускать код при этом нельзя, потому что кросскомпиляция, смерть, жопа и сотона. Сейчас там это делается через автоконф (AC_CHECK_SIZEOF/ALIGNOF) и это не работает именно по этой причине. Что делать?

Про #define ALIGN_OF_X alignof(x) я в курсе, но проект древний и в нём есть вычисления через препроцессор, которые я пока не хочу трогать.

 ,

hateyoufeel
()

Ремаппинг кнопок под Wayland

Привет, ЛОР!

Я хочу одну странную фичу: чтобы при однократном нажатии на Shift без других клавиш генерировалась левая или правая скобка для левого или правого шифта соответственно. Под иксами это делается простым запуском xcape -e 'Shift_L=parenleft;Shift_R=parenright'.

Пробовал через evremap, но он не позволяет отправить именно скобку на ввод. Только комбинацию, например, SHIFT+0, но её результат уже будет зависеть от раскладки.

Что посоветуешь?

UPD:

Анон подсказал рецепт с keyd.

 , ,

hateyoufeel
()

Wayland готов для десктопа?

Привет, ЛОР!

Три года назад один из разработчиков mpv выкатил пост с критикой Wayland, на который очень многие ссылались. В частности, там были описаны проблемы с рендерингом, не слишком корректный подход к проектированию и так далее.

Спустя три года, многое из этого изменилось, о чём и написано в новом посте. Так например, были добавлены протоколы для FIFO режима у Vulkan, поддержка в Mesa была допилена, некоторые другие проблемы тоже ушли. Всё это во многом стараниями корпораций Valve и Nvidia и нанятых ими разработчиков.

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

В то же время стоит отметить, что над сервером Xorg в прошлом году стало работать больше людей, так что иксы умирают явно не собираются и из фреймворков типа Qt их поддержка в ближайшее время точно не исчезнет.

Такие дела, ЛОР.

P.S. пишу этот пост ради эксперимента из KDE+Wayland и хочу сказать, что синяя тема в HDR выглядит особенно мозгоразрывающе. За что мы конечно её ещё больше любим.

 , , ,

hateyoufeel
()

FAQ по Rust в ядре

Привет, ЛОР!

В связи с ожесточёнными спорами вокруг внедрения языка Rust в ядро Linux, разработчик ядра Мигель Охеда (Miguel Ojeda) опубликовал список вопросов и ответов на них касательно сложившихся практик в разработке ядра и как это затрагивает Rust.

Тыц: https://rust-for-linux.com/rust-kernel-policy

В частности, следует отдельно упомянуть, что внедрение Rust поддерживается достаточно больших количеством разработчиков и мейнтейнеров ядра, включая таких людей как Greg Kroah-Hartman.

 , ,

hateyoufeel
()

Linux Foundation и санкции

Привет, ЛОР!

Спустя три с лишним месяца после бана русских разработчиков из ядра, Linux Foundation наконец разразились постом в блоге, где они поясняют текущую ситуацию вокруг открытой разработки кода в проектах, базирующихся в США (как LF), имеющих разработчиков в США, либо принадлежащих компаниям из США.

Ссылка: https://www.linuxfoundation.org/blog/navigating-global-regulations-and-open-source-us-ofac-sanctions

Для Ъ:

  • Санкции запрещают сотрудничество с людьми, находящимися под ними (/ К.О.), и любую работу в интересах этих людей;

  • Санкции не разделяют коммерческую разработку и работу над открытыми проектами, и поэтому касаются фактически всех проектов. Т.е. если ты, ЛОРовец, имеешь друга в США и вы вместе запилили Hello World под GPL/MIT/BSD/WTFPL на гитхабе, твой друг нарушил эти санкции;

  • Технически, если разработчик из России (или другой страны под санкциями) просто прислал патч, то его можно использовать. Однако, двухсторонняя переписка с этим разработчиком запрещена и его нельзя просить внести правки или каким-то другим образом с ним контактировать (см. пункт 3. Avoid Two-Way Engagement);

  • Однако, если этот патч приносит какую-либо пользу людям под санкциями, то его нельзя принимать. Т.е. если разработчик из России нашёл реальный баг в люниксе, прислал патч с исправлением, и точно заранее известно, что принятие этого патча доставит какой-то профит этому разработчику (например, исправит баг в его системах), то это будет нарушением санкций;

  • С разработчиками под санкциями запрещено подписывать CLA или другие лицензионные соглашения;

  • Запрещена непрямая работа с подсанкционными разработчиками. Т.е. если ты, ЛОРовец, попросишь своего друга Пьера из Франции передать за тебя патч в люникс, то такое принятие также будет рассматриваться как нарушение. В том числе это означает потенциальный запрет на совместную работу с анонимными разработчиками или разработчиками под псевдонимами. Пока, судя по всему, не очень понятны последствия этого, но потенциально может так сложиться, что для принятия патча в ядро потребуют скан паспорта.

Наш любимый блоггер Брайан Лундюк выпустил видео с разбором ситуации: https://youtube.com/watch?v=8sbJEH81gJ0

В общем, ЛОР, ситуация достаточно шизофреничная выходит. Enjoy!

 , ,

hateyoufeel
()

RSS подписка на новые темы