Файловая система ZFS известна своей надёжностью, продвинутыми возможностями управления данными и гибкостью. Одним из важнейших элементов, обеспечивающих её высокую производительность, является система кэширования. В ZFS предусмотрены два уровня кэша: ARC (Adaptive Replacement Cache) и L2ARC (Level 2 Adaptive Replacement Cache). Их правильная настройка позволяет добиться максимальной эффективности при работе с различными типами нагрузок. Однако для этого необходимо понимать принципы их работы, а также отличия между ними. читать далее
Что такое eBPF и как его используют для мониторинга ядра?
Современные операционные системы стали настолько сложными, что традиционные инструменты для их анализа и отладки всё чаще оказываются недостаточно гибкими и быстрыми. Именно в этом контексте появилась и начала активно развиваться технология eBPF (extended Berkeley Packet Filter), которая уже успела завоевать доверие разработчиков системного программного обеспечения, специалистов по безопасности и инженеров по мониторингу. Эта технология позволяет запускать безопасный и эффективный код в пространстве ядра, не нарушая его стабильности. В этой статье мы разберёмся, что такое eBPF, в чём его уникальность и каким образом он используется для мониторинга ядра Linux. читать далее
Как работает Lazy TLB в многопроцессорных системах Linux?
Современные многопроцессорные системы требуют высокоэффективного механизма управления памятью, особенно в условиях постоянной смены контекста и многозадачности. Одним из ключевых компонентов виртуализации памяти является таблица трансляции адресов (TLB, Translation Lookaside Buffer) — кэш, содержащий соответствия между виртуальными и физическими адресами. В многоядерных системах на базе Linux управление TLB приобретает особую важность, так как синхронизация этих кэшей между ядрами может сильно повлиять на производительность. В этой связи был введён механизм Lazy TLB, который играет ключевую роль в оптимизации процессов инвалидации TLB в SMP-средах (Symmetric Multiprocessing). читать далее
Seccomp в Linux: тонкая настройка системных вызовов для безопасности
Безопасность операционных систем — это сложная многослойная задача, особенно в мире Linux, где открытость и гибкость сопровождаются необходимостью жесткого контроля над поведением приложений. Одним из эффективных инструментов, позволяющих значительно повысить уровень безопасности, является механизм Seccomp (Secure Computing Mode). Эта технология позволяет ограничивать набор системных вызовов, которые может выполнять процесс, тем самым существенно снижая потенциальную поверхность атаки. читать далее
Изоляция PID namespace: как работают контейнеры внутри контейнеров
Современные технологии виртуализации достигли такой гибкости и мощности, что сегодня можно создавать контейнеры внутри контейнеров, добиваясь изолированной и безопасной среды для запуска приложений. Одним из ключевых механизмов, обеспечивающих эту возможность, является изоляция PID namespace. Это важнейший элемент архитектуры контейнеров, который позволяет реализовать строгую иерархию процессов, не нарушая границ между контейнерами. читать далее
Что изменилось в обработке signals в Linux после glibc 2.34?
В августе 2021 года вышла версия glibc 2.34 — важное обновление GNU C Library, которое принесло множество изменений, среди которых особенно выделяется переработка механизма обработки сигналов. Хотя на первый взгляд это может показаться внутренним техническим нюансом, нововведения затронули широкий круг системных приложений, разработчиков и дистрибутивов. В этой статье мы подробно разберём, как именно изменилась обработка сигналов после glibc 2.34, и почему это оказалось важным шагом вперёд. читать далее
Особенности управления пакетами в CentOS Stream: что изменилось после CentOS 8?
CentOS Stream — это новый этап в развитии популярного дистрибутива Linux, который стал связующим звеном между разработкой Red Hat Enterprise Linux (RHEL) и выпуском его стабильных версий. После прекращения поддержки CentOS 8 в конце 2021 года пользователи были вынуждены перейти на CentOS Stream или искать альтернативные решения. Одним из ключевых изменений стало управление пакетами, что вызвало множество вопросов у системных администраторов и разработчиков. В этой статье мы подробно рассмотрим, как изменилось управление пакетами в CentOS Stream по сравнению с CentOS 8, и на что стоит обратить внимание при переходе. читать далее
Что такое Userland в Unix-подобных системах и как он взаимодействует с ядром?
Unix-подобные операционные системы, такие как Linux и BSD, известны своей гибкостью, стабильностью и безопасностью. Эти характеристики достигаются благодаря четкому разграничению между двумя основными частями системы: ядром (Kernel) и пользовательским пространством (Userland). В этой статье мы подробно разберем, что такое Userland, как он взаимодействует с ядром и почему это разделение играет ключевую роль в архитектуре Unix-подобных систем. читать далее
Использование BPF в FreeBSD: особенности и примеры
Berkeley Packet Filter (BPF) — это мощный инструмент для захвата и фильтрации сетевых пакетов, который активно используется в операционных системах семейства Unix, включая FreeBSD. Благодаря высокой производительности и гибкости, BPF нашел применение не только в отладке сетевых приложений, но и в мониторинге безопасности, анализе сетевого трафика и многом другом. В данной статье мы рассмотрим особенности использования BPF в FreeBSD, а также приведем примеры его практического применения. читать далее
Как работает механизм защиты ядра Kernel Patch Protection в Windows?
Kernel Patch Protection (KPP), также известный как PatchGuard, — это важный механизм безопасности, встроенный в 64-разрядные версии операционных систем Windows. Он предназначен для предотвращения несанкционированных изменений в ядре операционной системы, что значительно усложняет создание вредоносного ПО и увеличивает общую безопасность системы. В этой статье мы подробно рассмотрим, как работает Kernel Patch Protection, какие задачи он решает, а также каким образом разработчики программного обеспечения могут взаимодействовать с этим механизмом. читать далее