Рубрика «linux kernel»

Всем привет! Меня зовут Анна Васильева, я технический менеджер в K2 Cloud и люблю запускать утилиты с максимально возможным уровнем verbose.

Есть фраза, после которой расследование сбоя обычно становится интереснее: «Я ничего не менял». Через несколько часов выясняется, что изменения всё-таки были. Инженер распаковал архив, добавил сетевой интерфейс, обновил библиотеку или перенёс виртуальную машину на другой хост. Действие казалось безобидным, а его последствия проявились в неожиданном месте.

На митапе «Инженеры перебрали / кейсы по Linux» мы взяли семь реальных случаев и разобрали их вместе с экспертами:

Ученики подарили мне ESP32. В коробке было всё, что обычно: датчик температуры, реле, горсть светодиодов, круглый дисплей и провода, которых, как выяснится позже, всегда не хватает ровно на один.

Нормальный человек собирает из этого термостат за вечер. Я собрал термостат, посмотрел на него и подумал: а неприятно же будет каждый раз лезть с кабелем, если я захочу поменять порог с 22 на 23 градуса.

Дальше мысль поехала не туда, и в итоге на плате оказался интерпретатор eBPF со своим верификатором байткода. Логика управления теперь заливается по Wi‑Fi обычной программой на C, скомпилированной clang -target bpfЧитать полностью »

От каждого по способностям, каждому по потребностям. — Карл Маркс, «Критика Готской программы»

После прошлой статьи про Klipper самым частым возражением было не «вы неправы». Самым частым было: «Ну и чо такого? Форкнул, сделал патч, пользуешься». Причём писали это люди, которые сами так живут, — и которых, судя по всему, совершенно не беспокоит, что их труд утонет в миллионах форков и никогда никому не пригодится.

Так что такого? Чтобы ответить, придётся сначала договориться, что вообще значит «открытый».

Публичный — не значит открытый

Откройте Читать полностью »

Недавно я наткнулся на статью о том, что в 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 версия с беспроводным подключением. Но это подарок, провод так провод.

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

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