Последние посты

Admin Guides | Сисадмин
22 сент., 08:42
mremap(): как Linux переносит огромный mapping без копирования страницЕсли процесс выделил большой участок через mmap(), изменение его размера не обязательно означает копирование всех данных.Для этого есть mremap():mremap(old_addr, old_size, new_size, MREMAP_MAYMOVE);Ключевой флаг:MREMAP_MAYMOVEразрешает kernel переместить виртуальный mapping, если рядом нет свободного места. Например, было:0x40000000 ┌──────────────────┐ │ 1 GB mmap │ └──────────────────┘ ↓


Admin Guides | Сисадмин
22 сент., 05:05



Admin Guides | Сисадмин
21 сент., 09:35
setcap: как бинарник получает привилегию без SUIDОбычно для запуска программы с дополнительными правами вспоминают SUID:chmod u+s ./appНо Linux умеет выдавать процессу отдельные capabilities, не делая весь бинарник root. Например:sudo setcap cap_net_raw=ep ./ping-likeТеперь при запуске программа получает CAP_NET_RAW:getcap ./ping-like ./ping-like cap_net_raw=epЭто не флаг в chmod. Capability хранится прямо в extended attribute файла:getfattr -n security.capability ./ping-like


Admin Guides | Сисадмин
21 сент., 05:05
⚡️35 лет со дня релиза Linux 0.0117 сентября 2026 года исполнилось 35 лет с момента первого публичного релиза Linux 0.01, опубликованного Линусом Торвальдсом в 1991 году при участии Ари Леммке.За несколько недель до этого, 25 августа, Торвальдс написал знаменитое письмо сообществу Minix, где рассказал о своей новой ОС:«Я разрабатываю (бесплатную) операционную систему (просто как хобби…) для клонов AT на базе процессоров 386».Сегодня Linux работает на всём: от смартфонов, серверов и суперкомпьютеров до телевизоров, роутеров, IoT-устройств и роботов.При этом изначально проект назывался Freax - от free, freak и X из Unix. Сам Торвальдс придумал название Linux (Linus + Unix), но считал его слишком нескромным. Ари Леммке, разместивший проект на FTP-сервере, предпочёл «Linux» и создал каталог с таким названием. Так оно и осталось.


Admin Guides | Сисадмин
18 сент., 09:40
PID 1 в контейнере: почему обычный процесс внезапно становится ответственным за orphan processesВ обычной системе PID 1 - это init/systemd. В контейнере им может оказаться что угодно:docker run --rm alpine psНапример:PID COMMAND 1 /app/server 7 worker 12 helperИ здесь у PID 1 есть особая обязанность, о которой часто забывают. Если процесс становится orphan, ядро должно перепривязать его к другому процессу. Внутри PID namespace таким процессом становится namespace init, то есть PID 1.Упрощённо:PID 1 └── worker


Admin Guides | Сисадмин
18 сент., 07:37
Автоматизация платформы не отбирает у вас интересные задачи. Она забирает рутину.Deckhouse Platform берёт на себя обновление, масштабирование и поддержку инфраструктуры «из коробки». Освободившееся время остаётся вам — на то, что вам действительно нравится.Обсудите с инженерами Deckhouse, что можно автоматизировать в вашем стеке 👈


Admin Guides | Сисадмин
18 сент., 05:05



Admin Guides | Сисадмин
17 сент., 09:40
/dev/shm в контейнере: почему shared memory имеет отдельный лимит и namespace/dev/shm выглядит как обычный каталог:df -h /dev/shmНо внутри Linux это обычно tmpfs, который используется для POSIX shared memory, mmap() и IPC между процессами.В контейнере ситуация интереснее.Запустим контейнер:docker run --rm -it alpine shИ посмотрим:df -h /dev/shm mount | grep shmМожно увидеть отдельный mount примерно такого вида:


Admin Guides | Сисадмин
17 сент., 05:05
💬 Вопрос на собеседовании для DevOps-инженераДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое mmap() и почему его использование может быть быстрее обычного read()/write()?✅Ответ: mmap() отображает файл или область другого объекта в виртуальное адресное пространство процесса. После этого приложение может обращаться к данным через обычные операции с памятью, а не постоянно вызывать read() и write().Как это работает: • Ядро создаёт отображение виртуальных адресов процесса на страницы файла. • При первом обращении к странице возникает page fault, после чего нужные данные подгружаются в память. • Последующие обращения выполняются как обычный доступ к памяти. • Изменённые страницы могут быть записаны обратно в


Admin Guides | Сисадмин
16 сент., 09:35
epoll vs poll: где появляется преимущество, когда socket’ов становятся тысячиРазница становится заметной не из-за самого количества соединений, а из-за того, сколько socket’ов приходится проверять на каждом цикле.С poll() приложение передаёт ядру массив всех интересующих FD:poll(fds, 10000, timeout);Если готовы только 3 socket’а из 10 000, kernel всё равно должен пройти по массиву и проверить их:10000 FD ↓ проверить 1 проверить 2 проверить 3 ... проверить 10000 ↓ нашли 3 готовых


Admin Guides | Сисадмин
16 сент., 05:05

Admin Guides | Сисадмин
15 сент., 10:46
MSI-X: почему одна NIC может иметь сотни interrupt vectorsСтарые устройства часто работали через один interrupt:NIC ──→ IRQ ──→ CPUПри высокой нагрузке это становится узким местом: одна очередь устройства и один поток обработки начинают конкурировать за CPU.MSI-X позволяет PCIe-устройству иметь множество независимых interrupt vectors.Например:┌─ IRQ 120 → CPU 2 NIC queue 0 ────┤ ├─ IRQ 121 → CPU 3 NIC queue 1 ────┤ ├─ IRQ 122 → CPU 4 NIC queue 2 ────┤ └─ IRQ 123 → CPU 5


Admin Guides | Сисадмин
15 сент., 08:21
Бесплатный PAM, который уже используют в крупных компаниях!Jumpserver PAM -- для компаний любых масштабов.Бесплатная версия с открытым исходным кодом закрывает большинство задач для наведения порядка в сети и безопасного доступа специалистов и подрядчиков к серверам и сервисам.Для расширенных сценариев есть платная редакция с дополнительными возможностями и поддержкой на русском языке.JumpServer PAM это: • Контроль доступа к RDP, SSH, веб-интерфейсам и СУБД • Фильтрация SQL-запросов и SSH-команд • Подробный журнал действий • Встроенный 2FA • Масштабирование и надёжная кластеризация • Установка одной командойПознакомьтесь с JumpServer PAM на вебинаре 17 сентября в 12:00 по Москве Регистрируйтесь по ссылке: Регистрация на вебинарИ присоединяйтесь к сообществу пользователей (ссылка на телеграм-канал):


Admin Guides | Сисадмин
15 сент., 05:05



Admin Guides | Сисадмин
14 сент., 11:15
NFS hard vs soft: что произойдёт с приложением при исчезновении storageПредставим приложение, которое пишет данные в NFS:app → write() → NFS client → network → NFS serverИ в этот момент NFS-сервер перестаёт отвечать.Поведение зависит от параметров монтирования.hardПо умолчанию NFS обычно работает в hard-режиме. Если запрос не получил ответа, клиент продолжает его повторять:write() ↓ NFS server недоступен ↓ retry


Admin Guides | Сисадмин
14 сент., 09:15
САП "Клавдий" - архивация электронной почты для организаций любого масштаба! • сбор писем с почтовых серверов, архивов и из SMTP-трафика • поиск по письмам и вложениям • дедупликация и сжатие • доступ к архивной почте через веб или любой почтовый клиент • кластеризация и хранилище с настраиваемой длительностью хранения • бесплатная версия до 50 почтовых ящиковСАП "Клавдий" - решение для тех, у кого: • почтовый сервер, который задыхается от старых писем • возникает необходимость найти и восстановить старое письмо • есть кладбище PST-файлов и почтовых ящиков уволенных сотрудников • есть обязательство сохранять всю переписку за несколько лет • планируется переезд на другой почтовый сервер • ограниченный бюджет на решение этих проблемПодключайтесь к онлайн-демо. Среда, 16 сентября, в 12:00 по Москве. Ссылка для регистрации: Регистрация на вебинар


Admin Guides | Сисадмин
14 сент., 05:05
Claude по одному промпту и нескольким итерациям спроектировала печатную плату в KiCad с нуля, а другой ИИ написал для неё ПО.Пользователь Reddit a6m-zero подключил Claude Fable 5 к KiCad через MCP и поручил создать плату с Raspberry Pi RP2350, E-ink-дисплеем, четырьмя кнопками, I2C и GPIO.⏺ИИ сама разработала схему, разместила компоненты и развела дорожки. Несколько раз она выбирала неподходящие детали и компоненты, которых не было у поставщика. Пользователь не правил проект вручную, а просил Claude исправлять ошибки.После нескольких итераций пять плат отправили в производство за около $150. При подключении одна из них успешно заработала.Программную часть написал Claude Opus 5. Готовое устройство выводит меню с фотоальбомом, электронной книгой, заметками и секундомером.На API-кредиты для нейросетей пользователь потратил ещё около $450. При этом


Admin Guides | Сисадмин
11 сент., 09:34
NVMe queues: почему накопитель может обрабатывать тысячи операций параллельноУ старого SATA-диска модель довольно простая: отправили команду → накопитель её обработал → получили ответ.У NVMe всё иначе. Между CPU и SSD используется очередь команд, причём таких очередей может быть очень много.Например, посмотрим параметры устройства: cat /sys/class/nvme/nvme0/queue_countА сами очереди можно увидеть через:ls /sys/class/nvme/nvme0/Архитектура примерно такая:CPU 0 ──┐ CPU 1 ──┤ CPU 2 ──┼──> NVMe Submission Queues ──> SSD CPU 3 ──┤ CPU 4 ──┘ │


Admin Guides | Сисадмин
11 сент., 05:05
💬 Вопрос на собеседовании для сисадминаДавайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.❓Вопрос: Что такое PSI (Pressure Stall Information) и чем он отличается от обычного мониторинга загрузки CPU, RAM и диска?✅Ответ: PSI - механизм Linux, который показывает, сколько времени процессы фактически не могли нормально выполняться из-за нехватки CPU, памяти или I/O. Он позволяет измерять не просто занятость ресурса, а влияние его нехватки на приложения.Как это работает:• some показывает периоды, когда хотя бы одна задача в группе была вынуждена ждать ресурс. • full показывает периоды, когда все задачи группы одновременно были заблокированы из-за нехватки ресурса. • Для CPU PSI может показать contention даже тогда, когда CPU


Admin Guides | Сисадмин
10 сент., 09:35
MGLRU: как современный Linux решает, какие страницы памяти вытеснятьКогда RAM заканчивается, Linux должен решить, какие страницы памяти можно убрать из RAM, а какие лучше оставить.Старый подход с классическим LRU пытался поддерживать порядок страниц по давности использования. Но на больших системах отслеживать всё это эффективно становится дорого.⏺MGLRU (Multi-Gen LRU) меняет сам принцип: страницы распределяются по поколениям в зависимости от того, насколько недавно они использовались.Упрощённо:Gen 5 → использовались недавно Gen 4 Gen 3 Gen 2 Gen 1 → давно не использовались ↓ reclaimЕсли страница снова получила доступ, она может перейти в более новое поколение.

