Рубрика «linux kernel»

Недавно я наткнулся на статью о том, что в ICMP-пакеты можно вставлять произвольные данные. Сразу возникла мысль: а почему бы не попробовать загнать весь трафик через ICMP (да, о существовании ICMP-туннеля я тоже ничего не знал). Так появился проект — ICMP-туннель на уровне ядра, который:

  • перехватывает исходящие TCP/UDP-пакеты;

  • инкапсулирует их в ICMP эхо-запросы (тип ICMP_ECHO);

  • на приёмной стороне извлекает оригинальные пакеты и передаёт их дальше.

Цель проекта — углубить знания в:

Когда мы разрабатываем веб-сервисы на Python, мы почти всегда работаем с готовыми абстракциями: фреймворками (fastapi, flask, django) и веб-серверами (uvicorn, gunicorn). Фреймворк предоставляет удобную модель работы с HTTP, сервер принимает TCP-соединения, парсит HTTP и передаёт данные в приложения через интерфейсы вроде WSGI или ASGI.

Эти абстракции начинают восприниматься как нечто само собой разумеющееся. Но по мере накопления опыта к ним возникает всё больше вопросов:

  • Где проходит граница ответственности между веб-сервером и веб-приложением?

  • Что именно делают WSGI и ASGI?Читать полностью »

Тетрис в ядре Linux - 1

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

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

Читать полностью »

Предыстория

Мне подарили компактную механическую клавиатуру CYBERLYNX ZA63 с подсветкой — выглядит стильно, клавиши приятно щёлкают. До этого дел с механникой не имел. Подключил к домашнему ПК. На Windows всё работало идеально: настроил подсветку под себя, привык к расположению клавиш. Данная модель работает только по проводу (USB Type-C). Есть еще Pro версия с беспроводным подключением. Но это подарок, провод так провод.

Читать полностью »

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

Читать полностью »

Когда в последний раз Вы задумывались, как выделяется память на самом низком уровне? Пытались ли Вы изобрести этот «велосипед» с нуля? Простой ли это «велосипед»?

В данной серии публикаций я постараюсь рассказать про выделение памяти в операционной системе Linux 6-й версии ядра с картинками и источниками, а также рассказать про особенности ее работы со стандартной библиотекой C. Целью данной серии публикаций является выявление связи вызова malloc, структур ядра, системных вызовов и выделений физических страниц процессам.

Ну что, пошлите смотреть, из чего сделан «велосипед» памяти?

Основная часть

Читать полностью »

Аннотация: Это жизненная история о том, как нестабильная легаси-шины принесла миллионные потери. Бизнесу — в рублях, всему персоналу от инженеров до топов — в виде погибших нервных клеток.


1. Пролог: «Антивирус, как спусковой крючок»

Инфраструктура проекта была отлажена годами. Случались иногда в ней какие-то аварии, но обычно из них удавалось довольно быстро выпутаться. Мы, команда поддержки, уже точно знали все болячки, имели всякие припарки. Наша команда обеспечивала работу и обновление следующего состава:


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js