/usr/bin
4.75K subscribers
147 photos
899 links
Канал для пользователей и администраторов Linux-систем: управление, инфраструктура, технические детали, новости и прочее.

Реклама и цены: @gals_ad_bot
Вопросы: @antoniusfirst

@monitorim_it — канал о мониторинге ИТ
Download Telegram
Решаем архитектурную проблему nginx с HTTP/3: опыт Angie и магия eBPF

Для пользователя может показаться, что переход с HTTP/2 на HTTP/3 — это просто замена TCP на UDP в конфиге. Но для серверного ПО с многопроцессной архитектурой этот шаг превращается в настоящую «головную боль». Классическая схема с accept(), на которой годами строилась работа с TCP‑соединениями, в мире QUIC попросту не существует. Пакеты летят в UDP‑порт, и ядро ОС больше не знает, какому именно рабочему процессу их отдать.

В оригинальном nginx это привело к тому, что поддержка HTTP/3 уже долгое время остается «экспериментальной» и ограниченной: она страдает от проблем с обрывами сессий и деградации сервиса при обновлении конфигурации. Для многих это стало стоп‑фактором для внедрения протокола в реальный продакшен.


В этой статье рассказано, как в Angie 1.11 удалось устранить эти фундаментальные недостатки. Была не просто добавлена поддержка протокола, а пересмотрена механику взаимодействия с ядром. Путь от простых хешей до создания полноценного аналога accept() для QUIC с помощью BPF‑программ позволил заявить: реализация HTTP/3 в Angie закончена, лишена «детских болезней» nginx и полностью готова к эксплуатации в высоконагруженных средах.

@usr_bin_linux
🔥17👍4
Обход стека в ядре Linux для RISC-V: разбираем и чиним

В этой статье рассказано о странностях при обходе стека в RISC-V, которые автор статьи обнаружил пару лет назад, о том, какие нашли ошибки и как их исправили. Поломка оказалась интересна тем, что проявлялась не всегда, но звезды сошлись нужным образом, и они смогли гарантированно воспроизводить странное поведение.
🔥6👍3
eBPF в Linux: когда писать код в ядре — неплохая идея

eBPF давно перестал быть узкоспециализированной игрушкой для kernel-энтузиастов и исследователей внутренностей Linux. Сегодня с ним, так или иначе, сталкиваются не только SRE, но вообще все, кто разрабатывает системы, близкие к сети, производительности или безопасности: от авторов сетевых плагинов (CNI) и прокси, до разработчиков кастомных агентских решений, observability-инструментов и low-level инфраструктурных компонентов. Даже если вы никогда не писали eBPF-код руками, есть хороший шанс, что он уже работает в вашей системе — тихо, незаметно и с довольно широкими полномочиями.

Чаще всего eBPF проявляется через удобные CLI, библиотеки и дашборды: установили агент, включили, и внезапно система знает о происходящем больше, чем strace, tcpdump и половина метрик вместе взятых. Но за этим комфортом скрывается нетривиальный механизм исполнения пользовательского кода прямо внутри ядра Linux — с жёсткими правилами валидации, ограниченной моделью исполнения и целым набором архитектурных компромиссов, о которых обычно не принято говорить в маркетинговых описаниях.


В этой статье заглядываем под капот eBPF и разбираемся, как именно eBPF-программы попадают в ядро, что с ними происходит до и во время выполнения, и почему одни сценарии применения действительно оправданы, а другие выглядят впечатляюще только на слайдах.
🔥8👍2
Все получилось! Debian Linux на Nintendo Wii

Что такое BootMii
На просторах Сети можно найти много разных образов Linux под этот аппарат. Все они в большинстве своем базируются на старых ядрах, что обусловлено весьма скромными техническими характеристиками Wii. Их объединяет способ запуска — они завязаны на такую штуку, как BootMii. Это небольшой кусок кода, который изначально был разработан вовсе не для запуска сторонних ОС, а чтобы в случае чего дать возможность выполнить аварийное восстановление консоли.

Важно понимать: Wii чем-то похожа на обычный компьютер, но в реальности тут нет ни BIOS, ни UEFI. Если вдруг в процессе исследования что-то пойдет не так, то система просто превратится в бесполезный кирпич без адекватных возможностей восстановления. BootMii был создан как раз на этот случай — он работает максимально близко к «нулевому уровню» загрузки и может легко снять точный побитовый слепок текущего состояния NAND-флешки.


Читать дальше на Хабре

@usr_bin_linux
🔥7👍2
Управление ресурсами процессов с помощью контрольных групп Linux

Это не исчерпывающее руководство, а практический пример того, как ограничивать потребление процессом CPU и оперативной памяти с помощью cgroups в Linux. Этот подход можно использовать, чтобы:

Защитить систему от особенно прожорливого процесса

Обеспечить справедливое распределение ресурсов между несколькими приложениями

Проверять производительность приложения при ограниченных ресурсах

Гарантировать доступность ресурсов в мультиарендных средах

Мы начнём с создания, настройки и добавления процесса в cgroup самым базовым (и трудоёмким) способом, напрямую работая с виртуальной файловой системой cgroupfs. Затем посмотрим, как сделать ровно то же самое с помощью более высокоуровневых инструментов вроде cgcreate и cgexec из libcgroup или systemd-run и slice-юнитов в systemd.


Читать дальше на Хабре

@usr_bin_linux
🔥11👍2
Почему сервер тормозит при свободных CPU и RAM

Если мониторинг показывает, что ЦП большую часть времени в простое, а оперативка не выбивается из нормальных значений, значит, узкие места нужно искать в других подсистемах. В статье автор рассказывает про основные причины заторможенности Linux-сервера и как проверить, есть ли они у вас.

@usr_bin_linux
🔥10👍3👎1
40 млн строк кода: как меняется ядро Linux в 2026 году

Начало 2026 года для сообщества ядра Linux получилось насыщенным. В конце января в документацию добавили раздел Linux kernel project continuity. В нем описывается, что произойдет, если ключевые участники проекта внезапно не смогут выполнять свою работу. Обсуждения шли еще на Maintainers Summit в декабре 2025-го, и теперь этот вопрос зафиксирован в документации в явном виде.

Все вполне логично. Ядро Linux давно превратилось в часть огромной мировой инфраструктуры — с десятками миллионов строк кода, тысячами разработчиков из компаний по всему миру и постоянным давлением со стороны требований к производительности, безопасности и энергоэффективности. Поэтому сообщество вынуждено не только поддерживать текущий уровень стабильности, но и экспериментировать, стараться сделать систему гибче и надежнее. В 2026 году проявились несколько направлений такой работы — от Rust и планировщиков до поддержки новых архитектур.


Читать дальше на Хабре

@usr_bin_linux
🔥9👍3
Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

Часто в учебной литературе по Linux приведены скучные и неинтересные примеры написания модулей ядра. Я решил исправить этот пробел и показать, что разработка небольшого модуля — это задача под силу многим, если понимаешь принципы разработки программ.

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


Далее в статье на Хабре.

@usr_bin_linux
🔥12👍4
Централизованный мониторинг логов с помощью Loki, Promtail и Grafana

В этой статье рассмотрена агрегация и визуализация логов с помощью Loki. Будет показано как настроить Loki вместе с Promtail и как создать дашборды.

P.S. Расширенная поддержка Promtail завершится в феврале 2026 года. У Grafana есть способы миграции с Promtail на новый агент Alloy.

@usr_bin_linux
🔥8👍2
SUID, SGID и Sticky Bit в Linux — права доступа, которые незаметно управляют привилегиями

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

@usr_bin_linux
🔥13👍2👎1
10 трюков с терминалом, которые экономят часы каждую неделю

В этой статье разобраны способы оптимизации рутины при работе в терминале. Вы узнаете про !!, !$, pushd, popd, fd, алиасы и многое другое.

@usr_bin_linux
🔥12👍9
Использование команды Shift в Linux

Команда shift в Linux — это встроенная команда используемая в shell-скриптах для управления позиционными параметрами (аргументами, переданными скрипту или функции). Она сдвигает позиционные параметры влево, фактически переназначая их: первый параметр ($1) отбрасывается, а оставшиеся параметры ($2, $3 и т. д.) сдвигаются на одну позицию вниз. Это полезно для итеративной обработки аргументов командной строки. Подробнее в статье.

@usr_bin_linux
🔥8👍5
Почему я никогда не храню пароли в скриптах (и как я вместо этого обеспечиваю безопасность автоматизации)

Автоматизация упрощает жизнь — до тех пор, пока случайно не приводит к утечке ваших учетных данных. За эти годы автор этой статьи видел, как производственные системы выходили из строя из-за того, что кто-то оставил пароль в скрипте Bash, скрипте PowerShell или файле Python. Это одна из самых простых ошибок — и одна из самых опасных. Вот как перестать хранить пароли в скриптах и ​​что использовать вместо этого.

@usr_bin_linux
🔥11👍5👎21
Почему я использую разделы только для чтения на своих Linux-серверах (и вам следует делать так же)

Один из самых недооцененных и одновременно самых простых способов повышения безопасности Linux: разделы только для чтения. В мире вымогательского ПО, неправильных настроек и скрытых руткитов перевод частей системы в режим только для чтения — это мощная мера безопасности с минимальными усилиями.

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

@usr_bin_linux
🔥7👍53👎1
Ваш кластер Kubernetes теряет деньги: вот как это остановить

У нас работал скромный кластер Kubernetes из 50 подов на десяти узлах, и каким-то образом мы тратили больше, чем команды, у которых нагрузка была втрое больше. Хуже всего то, что я понятия не имел, куда уходят деньги.


В этой статье вы узнаете о способах сэкономить. Без воды, только работающие методы.

@usr_bin_linux
🔥11👍4
9 хитростей Linux

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

Это не просто команды; это инструменты выживания. В этой статье собраны 9 трюков Linux, которые помогут превратиться из пользователя в мастера.

Среди них: lsof, reptyr, strace, tune2fs и другие.

@usr_bin_linux
👍13🔥6
Тетрис в ядре Linux

Вероятно, вы знаете, что если запустить ядро Linux без корневой файловой системы или файла initramfs, то оно упадет с сообщением о панике ядра.

Но возможна ли работа ядра Linux без этих, вроде бы обязательных компонентов? Ответ на вопрос — да, возможна, но использовать такие возможности в конечном продукте не стоит.

При запуске ядра ему могут передаваться параметры через командную строку. Одним из параметров является rootwait, указывающий ядру на то, что нужно подождать появление корневой файловой системы. В этом случае ядро ожидает появление корневой системы, а не завершается с ошибкой.

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

Пользовательским приложением может быть, например, игра Тетрис. Она из-за своей простоты в реализации и зрелищности добавляет наглядности в изучении темы и дает чувство завершенности. А мысль о том, что тетрис, работает в ядре, усиливает эффект.


Подробнее в статье на Хабре.

@usr_bin_linux
👍6🔥6
Создатели Gentoo уходят с GitHub из-за ИИ. Разбираем причины и нюансы

Gentoo — один из самых старых дистрибутивов Linux. Он появился в 2002 году и до сих пор работает по тем же принципам: сборка пакетов из исходных текстов, тщательная настройка под любое железо и полное отсутствие компромиссов. В феврале 2026-го появилась новость о начале переноса зеркал репозиториев с GitHub на Codeberg. И это не просто технический маневр, а принципиальный выбор сообщества.


В чем основные причины ухода, что повлияло на выбор площадки и какие дальнейшие планы у Gentoo — разбираются в статье.

@usr_bin_linux
👍9🔥82
OpenObserve Kide

OpenObserve Kide — легковесная IDE для Kubernetes.

Репыч на Гитхаб

@usr_bin_linux
🔥9👍3
Почему Linux «клал» на ваш CSS, или Куда уплывает верстка в openSUSE

Среди фронтенд-разработчиков, привыкших к уютному миру Windows и macOS, бытует одно опасное заблуждение. Оно звучит так: «Если мой код валиден (XHTML 1.1 Strict, привет из 2000-х!), а CSS написан по спецификации, то сайт будет выглядеть одинаково везде».

Но стоит такому разработчику поставить условную Ubuntu или openSUSE, как мир рушится. Шрифты становятся корявыми, кнопки «раздуваются», а блоки, которые филигранно подгонялись пиксель в пиксель, начинают наезжать друг на друга.


Чек-лист в статье на Хабре как справиться с проблемой.

@usr_bin_linux
🔥6👍5👎1
Учим Linux: Файловая система

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


Это 1 часть из 11. Рассказывают доступно.

@usr_bin_linux
🔥12👍7