Эти 10 лайфхаков для работы с CLI Linux помогут вам повысить производительность. Все они довольны просты и показывают, как делать больше меньшими средствами.
https://nsprg.ru/vXoB1x
VK: https://nsprg.ru/m01XPx
Дзен: https://nsprg.ru/mEGYVv
@nuancesprog #Linux #CLI
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
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/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
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
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
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
Патчи по управлению видеопамятью наконец приняли в апстрим и поставили в очередь на 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
Вышло ядро 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:
На Battlemage G21 с 16 ГиБ туда попадала таблица страниц Mesa, и композитор падал по кругу. Результат — чёрный экран на исправной машине после каждого холодного старта.
Отладка заняла 24 патча с отладочным кодом и 18 перезагрузок ядра. ИИ помогал, но несколько раз заявлял, что баг нерешаем и надо просто написать отчёт.
🔗 Подробнее
@nuancesprog #AI #Linux
Линус закоммитил однострочный фикс в драйвер xe:
round_up() заменён на round_down(). Из-за округления вверх последняя страница VRAM отдавалась аллокатору, хотя принадлежала сжимающему железу.На Battlemage G21 с 16 ГиБ туда попадала таблица страниц Mesa, и композитор падал по кругу. Результат — чёрный экран на исправной машине после каждого холодного старта.
Отладка заняла 24 патча с отладочным кодом и 18 перезагрузок ядра. ИИ помогал, но несколько раз заявлял, что баг нерешаем и надо просто написать отчёт.
🔗 Подробнее
@nuancesprog #AI #Linux
👍7
SELF: исполняемый файл как база SQLite
Фарид Закария собрал прототип SELF — формата, где бинарник это обычная база SQLite. Файл можно запустить через
Идея в том, что ELF и так база данных, только все примитивы в нём написаны вручную. Таблица строк — это интернирование строк,
В SELF вместо
🔗 Подробнее
@nuancesprog #Tools #Linux
Фарид Закария собрал прототип 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
Алисса Розенцвейг завершила пятилетнюю работу над открытым графическим драйвером для чипов 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
Зак Бартел выпустил 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. Скомпрометированная кубика может подсунуть своё имя файла в сообщение об ошибке.
Дырка классическая: имя приходит от недоверенной стороны и уходит в
Обнови
🔗 Подробнее
@nuancesprog #Security #Linux
Команда 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
С 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 часто раздают приложению доступ к домашней папке целиком.
Проверь реальные права клиента через
🔗 Подробнее
@nuancesprog #Security #Linux
В 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
Исследователи собрали классическую атаку «доверия к доверию» вокруг 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
Крис Сибенманн разбирает, откуда у привычной тройки чисел столько странностей. Load average — экспоненциально сглаженная длина очереди готовых процессов за 1, 5 и 15 минут.
Исторически ядро считало её по таймеру, и периодические задачи могли попадать в такт замерам. В Linux в счёт идут ещё и процессы в непрерываемом сне, ждущие диска.
Значит, высокая цифра не означает, что ты упёрся именно в процессор. И она не делится на число ядер: 8 на 16-ядерной машине — совсем не беда.
🔗 Подробнее
@nuancesprog #Infrastructure #Linux
👍2
Zoom на Linux читает буфер обмена без спроса
Саймон Тэтэм, автор PuTTY, заметил странное поведение обновлённого Linux-клиента Zoom. Программа запрашивает содержимое буфера X11 при каждом изменении, а не только при вставке.
В X11 скопированные данные хранит приложение-владелец и отдаёт их по запросу. Значит, Zoom видит всё, что ты копируешь, включая пароли из менеджера.
Проверить легко: запусти
🔗 Подробнее
@nuancesprog #Security #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
Коди Хо и Никлас написали с нуля драйвер 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
Автор Emilua разбирает основы песочниц и признаёт: цельной карты по теме до сих пор нет. За опору взято определение с Hack In The Box 2009: урезать права процесса программно, без прав администратора.
Обычные UNIX-права под это не заточены — они про администрирование, а не про код приложения. Поэтому появились Capsicum во FreeBSD, seccomp и Landlock в Linux.
Главный спорный тезис: user namespaces (основа Docker) для песочницы плохи. Внутри namespace процесс становится root, и ядро открывает пути, писавшиеся без учёта такого сценария.
🔗 Подробнее
@nuancesprog #Security #Linux
👍3