NOP::Nuances of Programming
56.5K subscribers
4.29K photos
11 videos
12 files
5.63K links
Любые вопросы по сотрудничеству: @ramilkr
Если нужен токен:
https://telega.in/c/nuancesprog
NOP::Humor - https://xn--r1a.website/nophumor
NOP::Recruiter Удаленка- https://xn--r1a.website/nopremote

РКН: 4977653520
Download Telegram
Эти 10 лайфхаков для работы с CLI Linux помогут вам повысить производительность. Все они довольны просты и показывают, как делать больше меньшими средствами.

https://nsprg.ru/vXoB1x

VK: https://nsprg.ru/m01XPx

Дзен: https://nsprg.ru/mEGYVv

@nuancesprog #Linux #CLI
Краткая вводная инструкция по написанию общей библиотеки Linux на C++. Разберемся, что такое библиотека, и поэтапно ее создадим.

https://nuancesprog.ru/p/16509/

VK: https://vk.com/@nuancesprog-sozdanie-obschei-biblioteki-linux

Дзен: https://dzen.ru/a/Y4nPF-y9t3EYF2W7

@nuancesprog #Linux #CProgramming
Парадокс бэкенд-разработчика в том, что его сила определяется не только кодом, но и тем, насколько он чувствует себя хозяином операционной системы, на которой все работает. Работа с Linux — не просто навык, это карьерное преимущество. Освоите эти 12 принципов — и Linux станет вашей суперсилой.

https://nuancesprog.ru/p/31137/

VK: https://vk.com/@nuancesprog-rabochii-process-v-linux-kotoryi-dolzhen-osvoit-kazhdyi-beke

@nuancesprog #Linux #Backend
Эти инструменты позволят находить и отфильтровывать нужные команды, добавлять их в избранное для мгновенного выполнения и предоставят множество других полезных возможностей.

https://nuancesprog.ru/p/17237/

VK: https://vk.com/@nuancesprog-3-interaktivnyh-instrumenta-dlya-upravleniya-komandami-v-lin

Дзен: https://dzen.ru/a/ZDw7Hr2urCOvTCz3

@nuancesprog #Linux #CLI
Долой унылые черно-белые приложения для командной строки. Добавим в рабочий процесс красок, анимации и динамики с помощью отличных программ: WTF, htop, mapscii, btop и wttr.

https://nuancesprog.ru/p/17211/

VK: https://vk.com/@nuancesprog-5-vizualno-effektnyh-programm-dlya-komandnoi-stroki

Дзен: https://dzen.ru/a/ZDRgP8TJy3j9ft6-

@nuancesprog #CLI #Linux
Вышел OpenSSH 10.5

OpenBSD выпустила OpenSSH 10.5p1. Ветка 10.x — серьёзное обновление: убрали DSA, разделили sshd на процессы sshd-session и sshd-auth для изоляции, обмен ключами теперь постквантовый (mlkem768x25519-sha256) по умолчанию.

Перед раскаткой на прод проверьте совместимость старых клиентов и железок с новым KEX — постквантовые пакеты крупнее, некоторые реализации на них спотыкаются. Почистите sshd_config и authorized_keys от устаревших алгоритмов заранее.

🔗 Подробнее

@nuancesprog #Security #Linux
В Linux 7.3 нехватка vRAM бьёт по FPS не так больно

Патчи по управлению видеопамятью наконец приняли в апстрим и поставили в очередь на Linux 7.3. Речь о ситуации, когда игра просит больше vRAM, чем есть на карте.

Раньше это считалось приговором: вылеты и неиграбельный фреймрейт. На деле переполнение vRAM — вопрос производительности, а не стабильности, и часть данных просто уезжает в оперативку.

Подвох в шине PCIe 4.0 x16: около 32 ГиБ/с, то есть примерно 1 ГиБ за кадр при 30 FPS. Промах мимо Infinity Cache стоит примерно в 4,6 раза дороже обычного чтения из vRAM.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍5
Ядро Linux 7.2: планировщики, futex и Raspberry Pi

Вышло ядро Linux 7.2 — один из самых нагруженных циклов после 6.7. Среди новинок cache-aware scheduling, суб-планировщики для sched_ext и улучшения MGLRU.

Igalia довела до ума справедливую политику DRM-планировщика, важную при дележе GPU между клиентами. Ещё закрыли 14-летний баг в robust list у futex(), из-за которого портились данные.

Подвох в том, что fair-политика осталась опциональной: на rc7 прилетел отчёт о регрессии. Владельцам Raspberry Pi 4 и 5 интереснее runtime PM — GPU теперь глушит клок в простое.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍5
Торвальдс чинил драйвер Intel GPU вместе с ИИ

Линус закоммитил однострочный фикс в драйвер xe: round_up() заменён на round_down(). Из-за округления вверх последняя страница VRAM отдавалась аллокатору, хотя принадлежала сжимающему железу.

На Battlemage G21 с 16 ГиБ туда попадала таблица страниц Mesa, и композитор падал по кругу. Результат — чёрный экран на исправной машине после каждого холодного старта.

Отладка заняла 24 патча с отладочным кодом и 18 перезагрузок ядра. ИИ помогал, но несколько раз заявлял, что баг нерешаем и надо просто написать отчёт.

🔗 Подробнее

@nuancesprog #AI #Linux
👍7
SELF: исполняемый файл как база SQLite

Фарид Закария собрал прототип SELF — формата, где бинарник это обычная база SQLite. Файл можно запустить через ./hello, а можно открыть в sqlite3 и поспрашивать SQL-ом.

Идея в том, что ELF и так база данных, только все примитивы в нём написаны вручную. Таблица строк — это интернирование строк, .gnu.hash — самодельный индекс поверх фильтра Блума.

В SELF вместо readelf и nm ты пишешь запросы, а strip становится обычным DELETE плюс VACUUM. Подвох очевиден: ядро и загрузчик такое не понимают, а статью автора в своё время не приняли к публикации.

🔗 Подробнее

@nuancesprog #Tools #Linux
👍3👎2
Драйвер GPU для Apple M1 доведён до конца

Алисса Розенцвейг завершила пятилетнюю работу над открытым графическим драйвером для чипов Apple M1. Начав с одного треугольника в 2021 году, она довела стек до conformant OpenGL 4.6 и Vulkan 1.4.

Это редкий пример полного реверс-инжиниринга закрытого GPU силами энтузиастов. Весь код лежит в Mesa, так что игры под Proton на Asahi Linux работают штатно.

Попутно пришлось написать эмуляцию геометрических шейдеров, которых нет ни у Apple, ни у Arm. Автор уходит из проекта, и дальнейшая поддержка ложится на сообщество Asahi.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍12👎1
Tether: iMessage и SMS с айфона прямо в Linux

Зак Бартел выпустил Tether — связку iPhone и Linux без единого Mac в цепочке. Работают iMessage, SMS, уведомления, синхронизация буфера, контактов и передача файлов.

Ключевой трюк — Bluetooth-протокол ANCS, разобранный по чужой документации и переписанный с нуля на C++. Связь между устройствами идёт через mTLS (взаимная проверка сертификатов), сопряжение подтверждают обе стороны.

Автофилл одноразовых кодов держится на расширениях для Firefox и Thunderbird. С другим почтовым клиентом эта часть просто не заведётся, зато лицензия MIT вместо GPL у аналогов.

🔗 Подробнее

@nuancesprog #Tools #Linux
👍6
Qubes OS: копирование файла из dom0 отдаёт систему атакующему

Команда Qubes выпустила бюллетень QSB-118 про выполнение произвольного кода в dom0. Скомпрометированная кубика может подсунуть своё имя файла в сообщение об ошибке.

Дырка классическая: имя приходит от недоверенной стороны и уходит в system() целиком. Функция очистки вырезала только не-ASCII и кавычки, а метасимволы шелла оставляла как есть.

Обнови qubes-core-dom0-linux до 4.3.22 через штатный апдейтер, других действий не требуется. Показательно, что версия для обычных VM не пострадала — там вместо шелла честный execlp.

🔗 Подробнее

@nuancesprog #Security #Linux
👍4
LWN поднимает цены на подписку впервые с 2022 года

С 15 сентября подписка на LWN.net подорожает примерно на 20%. Уровень «Professional hacker» станет стоить $11 в месяц вместо $9.

LWN живёт только на деньги читателей, без рекламы и слежки — с 2002 года. За эти 24 года цены поднимали всего дважды, а прошлая правка позволила нанять двух новых авторов.

Подписки, купленные до 15 сентября, действуют до конца срока по старой цене. Читатели в комментариях спорят о другом: расплывчатый заголовок «A Note from LWN» напугал многих закрытием издания.

🔗 Подробнее

@nuancesprog #Opinion #Linux
👍2
qBittorrent и сбежавший из песочницы торрент-клиент

В Mastodon разошёлся пост: у пользователя копия qBittorrent «выбралась» из песочницы. Деталей в записи почти нет — это скорее байка, чем баг-репорт.

Даже такая шутка бьёт в больное место: песочница не гарантия, а слой защиты. Flatpak и Snap часто раздают приложению доступ к домашней папке целиком.

Проверь реальные права клиента через flatpak info --show-permissions и урежь лишнее. Подвох в том, что без подтверждённых деталей это просто повод пересмотреть настройки, а не новость об уязвимости.

🔗 Подробнее

@nuancesprog #Security #Linux
👍3
Атака Томпсона через strip: заражена вся сборка NixOS

Исследователи собрали классическую атаку «доверия к доверию» вокруг GNU strip, обычной утилиты сборки. Она не читает исходники и не генерирует код — только правит готовые ELF-файлы.

Один подменённый strip в бинарном зерне NixOS переживает весь бутстрап и попадает в финальное окружение. На реальной ревизии nixpkgs так собрали графический установщик с бэкдором почти во всех бинарниках.

Вывод неприятный: аудита компилятора мало, доверять надо каждому инструменту в цепочке сборки. Спасают только воспроизводимые сборки и разнообразие бутстрапа, но полного bootstrap from source пока нет почти нигде.

🔗 Подробнее

@nuancesprog #Security #Linux
👍3
Чем плох load average: исторические грабли Unix

Крис Сибенманн разбирает, откуда у привычной тройки чисел столько странностей. Load average — экспоненциально сглаженная длина очереди готовых процессов за 1, 5 и 15 минут.

Исторически ядро считало её по таймеру, и периодические задачи могли попадать в такт замерам. В Linux в счёт идут ещё и процессы в непрерываемом сне, ждущие диска.

Значит, высокая цифра не означает, что ты упёрся именно в процессор. И она не делится на число ядер: 8 на 16-ядерной машине — совсем не беда.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍2
Zoom на Linux читает буфер обмена без спроса

Саймон Тэтэм, автор PuTTY, заметил странное поведение обновлённого Linux-клиента Zoom. Программа запрашивает содержимое буфера X11 при каждом изменении, а не только при вставке.

В X11 скопированные данные хранит приложение-владелец и отдаёт их по запросу. Значит, Zoom видит всё, что ты копируешь, включая пароли из менеджера.

Проверить легко: запусти xclip или свой обработчик и посмотри, кто дёргает выделение. Zoom объясняет это подготовкой к вставке, но заранее тянуть каждую копию — перебор.

🔗 Подробнее

@nuancesprog #Security #Linux
👍6👎1
Linux-драйвер GPU для M4 Mac Mini собрали за месяц

Коди Хо и Никлас написали с нуля драйвер AGX, совместимый с OpenGL ES 3.0. Chrome и Firefox тянут WebGL, Minecraft идёт на 200 fps.

Обычно такой драйвер пишут годами, а тут уложились в недели. Помог гипервизор, который снимал трассы обращений macOS к прошивке GPU.

Прошивочный ABI у A18 Pro вдвое сложнее, чем у M1: в полтора раза больше структур. Код пока не готов для пользователей, да и чистоту clean room ещё будут проверять.

🔗 Подробнее

@nuancesprog #Infrastructure #Linux
👍13
Софтварный сэндбоксинг: как ограничить процесс без root

Автор Emilua разбирает основы песочниц и признаёт: цельной карты по теме до сих пор нет. За опору взято определение с Hack In The Box 2009: урезать права процесса программно, без прав администратора.

Обычные UNIX-права под это не заточены — они про администрирование, а не про код приложения. Поэтому появились Capsicum во FreeBSD, seccomp и Landlock в Linux.

Главный спорный тезис: user namespaces (основа Docker) для песочницы плохи. Внутри namespace процесс становится root, и ядро открывает пути, писавшиеся без учёта такого сценария.

🔗 Подробнее

@nuancesprog #Security #Linux
👍3