Комментарии (78)
- OpenBSD 7.8 вышел, и участники обсуждают его достоинства: минимализм, безопасность и отсутствие лишнего кода.
- Пользователи делятся опытом: кто-то использует OpenBSD как основную систему, кто-то как фаервол, кто-то как маршрутизатор.
- Обсуждается поддержка различного оборудования, включая Raspberry Pi 5 и ThinkPad.
- Участники обсуждают, что OpenBSD не поддерживает некоторые современные технологии, такие как Bluetooth и Wi-Fi 6.
- Некоторые пользователи отмечают, что OpenBSD не поддерживает некоторые современные технологии, такие как Bluetooth и Wi-Fi 6.
Zig builds are getting faster 🔥 Горячее 💬 Длинная дискуссия
Компиляция Zig становится значительно быстрее благодаря многолетней работе над оптимизацией компилятора. Например, сборка скрипта build.zig в версии 0.15 заняла всего 1,7 секунды против 7,2 секунд в версии 0.14. Полная сборка проекта Ghostty без кеша сократилась с 41 до 32 секунд, даже с использованием LLVM.
Особенно впечатляет скорость инкрементных сборок: пересборка библиотеки libghostty-vt после изменения одной строки теперь занимает менее секунды (975 мс против 2,9 секунд ранее). Это уже ощутимо ускоряет рабочий процесс, а в будущем, с отказом от LLVM и внедрением инкрементной компиляции, результаты станут ещё лучше — ожидаются миллисекундные задержки.
Комментарии (190)
- LLVM рассматривается как ловушка из-за сложности тонкой настройки финальных оптимизаций и линковки, несмотря на преимущества в скорости начальной разработки и поддержке платформ. Cranelift и другие бэкенды могут стать альтернативой.
- Zig фокусируется на скорости компиляции для разработки, используя собственный бэкенд для debug-сборок (x86_64) и LLVM для релизов. Есть баги, но инструментарий ценится за простую кросс-компиляцию и статическую линковку.
- Быстрая компиляция (TCC, Go, Vlang) важна для итеративной разработки, но trade-off с оптимизацией кода неизбежен. Интерпретаторы или JIT-компиляция (Julia) предлагают альтернативы для интерактивности.
- Интеграция Zig с системами сборки (Bazel) возможна через правила, но Turing-полные скрипты сборки могут усложнить кеширование. Библиотеки часто обходятся без кастомных скриптов.
- Поддержка платформ (OpenBSD) требует доработки низкоуровневого IO (kqueue). Статическая линковка зависимостей в Zig упрощает деплой, но динамические библиотеки (libc, GUI) остаются.
DuckDuckGo Donates $25,000 to The Perl and Raku Foundation v2025
Поисковая система DuckDuckGo второй год подряд пожертвовала 25 тысяч долларов Фонду Perl и Raku для поддержки развития языка программирования. Эти средства направляются в Фонд поддержки ядра Perl, который финансирует ключевые улучшения языка.
Среди недавних достижений — модуль builtin, система классов, лексические методы и стабилизация экспериментальных функций вроде сигнатур и try/catch. Разработчик Пол Эванс, получающий финансирование от фонда, внёс значительный вклад в эти нововведения. Многолетняя поддержка спонсоров позволяет фонду увереннее планировать будущее и продолжать работу над развитием Perl.
Комментарии (25)
- DuckDuckGo пожертвовала $25k проекту Perl в рамках благотворительных взносов на общую сумму $1.1M
- В сообществе ведутся дебаты о современной релевантности Perl, где одни отмечают его упадок после неудачи с Perl 6, а другие защищают его как мощный и полезный язык
- Участники делятся личным опытом работы с Perl, отмечая его влияние на их карьеру и сложности, такие как проблемы с версиями библиотек
- Perl продолжает использоваться в крупных компаниях (Craigslist, eBay) и проектах с открытым исходным кодом (OpenBSD)
- Обсуждается необходимость и способы поддержки open-source проектов через публичные пожертвования от брендов
Raspberry Pi 5 support (OpenBSD)
-
Модуль:
src -
Изменил: mglocker@cvs.openbsd.org, 01.09.2025
-
Файлы:
distrib/arm64/iso/Makefile
distrib/arm64/ramdisk/Makefile install.md list -
Суть: добавлена поддержка Raspberry Pi 5 Model B в RAMDISK.
-
Проблемы:
- Не грузится с PCIe-накопителей (нет U-Boot).
- Wi-Fi на платах «d0» не работает.
- Кулер не крутится — отсутствуют драйверы PWM/clock.
Утверждено: kettenis@, deraadt@
Комментарии (35)
- На Raspberry Pi 5 и CM5 в OpenBSD пока не работает Wi-Fi (на «d0»-ревизии плат) и не крутится активный кулер — не хватает драйверов PWM/clock.
- Поддержка всё ещё неполная: аппаратный старт происходит через GPU, документации мало, поэтому U-Boot и драйверы догоняют медленно.
- На Pi 4 OpenBSD уже запускается стабильно, но нужны свежие прошивка и UEFI, а также сторонний firmware для использования >3 ГБ ОЗУ.
- Плюсы OpenBSD на ARM: чистая и последовательная система, «всё в базе» (httpd, spamd, WireGuard через ifconfig), можно носить «сервер в кармане».
- Минусы: нет power-saving на ARM64, после неожиданного отключения могут поломаться системные файлы, а список поддерживаемого «железа» ограничен.
D4D4 🔥 Горячее
Коллега нашёл в ARM-дизассемблере кучу «лишних» инструкций d4d4 (bmi #-0x58), которые никогда не выполняются.
Минимальный пример:
00020100 <one>:
20100: 4770 bx lr
20102: d4d4 bmi …
bx lr возвращает из функции, так что d4d4 недостижима.
Мысль: выравнивание? Thumb-команды 16-битные, но компилятор не выравнивает функции на 32 бита.
Добавляем вторую функцию — d4d4 исчезает.
Третья — d4d4 снова появляется, но только после последней функции.
Смотрим объектный файл: компилятор d4d4 не вставляет. Значит, линковщик lld добивает секцию до 32-битной границы именно этой командой.
Меняем порядок файлов — «лишняя» инструкция перемещается в начало следующего модуля, подтверждая гипотезу.
GNU ld вместо d4d4 ставит нули.
Комментарии (49)
- Коммит 2017 года в OpenBSD закладывал «trapsleds» — заполнение «дырок» в исполняемых секциях инструкциями-ловушками (trap), чтобы сорвать NOP-sled-эксплойты.
- На ARM32/Thumb ожидалось 0xD4 (BRK) или 0xBE (BKPT), но в режиме Thumb та же последовательность байтов декодируется как условный переход назад, превращая «ловушку» в потенциальный ROP-гаджет.
- Это делает защиту нерабочей на Cortex-M (только Thumb), что участники признают ошибкой/«сломанной» митигацией.
- Некоторые считают, что описание механизма в коммит-сообщении достаточно, другие требуют комментариев в коде, чтобы избежать подобных недоразумений.
OpenBSD is so fast, I had to modify the program slightly to measure itself 💬 Длинная дискуссия
OpenBSD быстрее Linux в 10 раз?
Тест Jann Horn: создаём поток, оба потока открывают по 256 сокетов.
Linux
elapsed: 0.017–0.026 s
OpenBSD
ulimit -n 1024
elapsed: 0.002–0.006 s
Машины примерно равны. Подсказка в коде (не в сетевом стеке).
Обычно OpenBSD проигрывает в странных тестах, а тут — наоборот.
Комментарии (153)
- Обсуждение выросло из «патологического» теста, который на Linux показывает замедление из-за роста таблицы файловых дескрипторов и блокировок, а на OpenBSD — нет.
- Участники спорят, что считать «быстрым»: OpenBSD жертвует скоростью ради безопасности, тогда как Linux активно оптимизирует критические пути.
- Для микробенчмарков советуют использовать __rdtsc(), но предупреждают о проблемах синхронизации TSC между ядрами и на ARM.
- Несколько человек отвлеклись на «пасхалку» в статье — плавающие «пушки», стреляющие курсором.
- Общий вывод: измеряйте свою нагрузку на одинаковом железе; универсального «быстрее» не существует.