#ядро_linux — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #ядро_linux, aggregated by home.social.
-
[Перевод] Создаём брандмауэр при помощи eBPF и контрольных групп
Технология eBPF — интересная штука. С её помощью можно без труда внедрять в ядро Linux фрагменты кода, которые затем компилируются в коды операций (опкоды), которые гарантированно не обрушат работу ядра. Набор допустимых инструкций ограничен, переходы назад не допускаются (поэтому не будет никаких неопределённых циклов). При этом вы не можете разыменовывать указатели, но вместо этого можете выполнять проверяемые операции считывания через указатели, которые потенциально могут оказаться неудачными, но при этом не спровоцируют паник на всю систему. eBPF в ядре Linux можно закреплять в тысячах хуков (точек перехвата), в качестве которых могут выступать u-пробы, k-пробы, точки трассировки и даже такие штуки как отказы страниц. У eBPF есть целый спектр захватывающих возможностей, которые при этом очень активно разрабатываются. Фичи, поддерживаемые в каждой конкретной версии ядра, перечислены в виде списка по этому адресу .
https://habr.com/ru/companies/timeweb/articles/1022028/
#timeweb_статьи_перевод #ebpf #linux #брандмауэр #mkdir #ядро_linux #tls #интернет #http #программирование
-
[Перевод] Почему eBPF-программа работает на одном ядре, а на другом — нет
eBPF давно стал стандартным инструментом для работы с ядром, но на практике быстро выясняется: одна и та же программа может вести себя по-разному на соседних версиях Linux. Причина — в деталях, которые обычно остаются «под капотом»: структурах ядра, их смещениях и способе доступа к данным. В статье разбираемся, откуда берётся эта нестабильность, как работают механизмы вроде CO-RE и BTF и что на самом деле нужно учитывать, чтобы eBPF-код был переносимым и предсказуемым в разных окружениях. Разобраться в eBPF
https://habr.com/ru/companies/otus/articles/1020852/
#eBPF #ядро_Linux #BPF_CORE #переносимость_программ #версии_ядра_Linux #низкоуровневое_программирование #совместимость_систем