Брокер сообщений на Rust
Всем привет.
Написал бессерверный брокер сообщений, кому интересно прошу под кат.

Пишем под *nix
Всем привет.
Написал бессерверный брокер сообщений, кому интересно прошу под кат.

В данной статье рассматривается использование механизма разделяемой памяти (shared memory) для эффективной передачи данных между независимыми процессами в рамках одной машины. Цель статьи — продемонстрировать не только базовые принципы работы с разделяемой памятью, но и показать, как размещать в ней высокоуровневые контейнеры, такие как хеш-таблицы (unordered_map), а также рассмотреть практический пример потоковой обработки данных при помощи кольцевого буфера.

Осенью мы в YADRO собрали митап про ядро Linux. Можно было бы придумать интересный каламбур, но вместо этого мы поблагодарим SpbLUG, питерское сообщество пользователей GNU/Linux, и расскажем, что было на митапе. На повестке дня — «точечные» обновления ядра Linux без перезагрузки, расширения RISC-V в Linux, а также создание собственного модуля Memory Extender. Далее в посте вы найдете записи и презентации докладов.

В октябре 2024 года я описал историю создания программатора микросхем CH341a для Linux систем. Год назад я рассказал о дополнительных возможностях программы, появившихся позднее. Давайте посмотрим, что изменилось в программе за год.

Хабр, привет! С вами снова на связи команда ALD Pro, а за главного сегодня буду я, Илья, и мой коллега Михаил.
Сегодня мы поделимся с вами одним из примеров, который вошел в состав нашего LTS-релиза 2.4.0, — проанализируем подробно предпосылки создания этого решения и технические аспекты его реализации, обеспечивающие высокую производительность. Материал будет интересен не только системным администраторам, но и разработчикам распределенных систем.
Привет, Хаброжители!
Аннотация - Сетевые стеки являются основой коммуникации и обмена информацией. В данной статье исследуется сетевой стек TCP/IPv4 и UDP/IPv4 в Linux, наиболее распространенной серверной ОС. Мы описываем трассировку наиболее важных сетевых функций ядра Linux 5.10.8. Хотя документация по сетевому коду Linux существует, она часто устарела или охватывает только отдельные аспекты, такие как уровень IP или TCP. Мы рассматриваем эту проблему комплексно, охватывая путь пакета на выходе и входе через сетевой стек Linux. Кроме того, мы освещаем тонкости реализации и показываем, как ядро Linux реализует сетевые протоколы. Наша статья может послужить основой для оптимизации производительности, анализа безопасности, наблюдения за сетью или отладки.

В современных инфраструктурах информационной безопасности одной из ключевых задач является ограничение доступа к системным метрикам. По умолчанию Prometheus Node Exporter предоставляет метрики в открытом доступе, что может привести к утечке информации о состоянии системы или атаке на сервис мониторинга.
Для повышения безопасности необходимо реализовать возможность ограничения доступа к метрикам только для определённых IP-адресов, что позволит контролировать, какие клиенты могут запрашивать метрики.
В данной статье рассмотрим, как внести соответствующие изменения в код Node Exporter, а также процесс сборки обновленного пакета.
Изменение кода
Добавление нового флага командной строки
Для управления доступом по IP-адресам добавим новый аргумент --web.client-ip-only, который будет содержать список разрешённых IP-адресов, разделённых запятыми. Если параметр не указан, метрики будут доступны для всех.
В файле main.go регистрируем новый флаг:

Привет! Я Кирилл Пронин, разработчик PIX RPA из PIX Robotics. В этой статье расскажу о том, как мы учили наш продукт работать с импортозамещенными табличными редакторами в Linux-подобных операционных системах, кто сильнее - XDocument или XmlDocument, и какие лайфхаки я унес с собой.

🚀 ROS2 – Новый этап в образовательной робототехнике!
ROS долгое время считался инструментом для профессионалов, но теперь он становится доступным даже для школьников. Мы разработали бесплатный курс, который пошагово обучает установке, настройке и работе с ROS2. В нем разобраны основные принципы коммуникации, создание собственных нод, а также собран учебный робот, который станет базой для экспериментов и изучения технологий.
🔍 В статье расскажу, как родилась идея курса, какие проблемы он решает и как любой желающий может начать осваивать ROS2, даже без опыта работы с Linux.
Готовы изучать ROS2 и строить роботов? Для желающих 4-6 апреля пройдет хакатон!

Привет хабр! Новичок в написании статей, но никогда не поздно начать. Объемный гайд по функциям pthreads для людей знающих базы C/C++.

В этой статье я расскажу, как создать хакерское приложение, используя встроенный язык программирования Linux, и собрать базу данных участников западной «Национальной Киберлиги». Можно сказать, хакнем хакеров! ;)
Начнем со ссылки на отчет о соревнованиях Western National Cyber League, а закончим полноценным инструментом автоматизации. По пути рассмотрим основы работы с сURL, научимся обходить базовые ограничения веб-приложений и поработаем с PDF-документами из командной строки.
Статья будет полезна специалистам по информационной безопасности и всем, кто интересуется автоматизацией процессов в Linux.


Начало 80-х. AT&T, в чьей Bell Labs был разработан Unix, внезапно осознала очевидный факт: их программный продукт популярен, но при этом не приносит никакого дохода. Руководство решает начать продажу коммерческих лицензий.
Если верить журналу Byte за октябрь 1983 года, лицензию Unix для частной компании можно было купить за умопомрачительные 20 000 долларов. Лишь немногие могли себе позволить такие траты (справедливости ради, для учебных заведений ценник был гораздо ниже — всего 200 долларов США). В это непростое время появился проект, который поставил своей целью конкурировать с оригинальным Unix. Сегодня расскажу, что из этого вышло.

Привет, Хабр! Меня зовут Константин, я работаю в команде файлового доступа в YADRO. Помимо основной работы, я пишу в open source, работаю над несколькими проектами — в том числе над дебаггером BugStalker (BS) на Rust.
В этой статье речь пойдет о разработке дебаггеров. Расскажу, какие технологии лежат в основе любого популярного отладчика и как с их помощью реализуются точки останова или функции step. Особое внимание уделим нюансам отладки Rust-кода и поддержке Rust в дебаггерах.
Если уже решили писать свой отладчик, дочитайте до конца — там будет аналитика, которая поможет не наступить на Rust-грабли.

Всем привет! Меня зовут Тимур, в компании YADRO я разрабатываю ПО для коммутаторов KORNFELD. Однажды на работе мне потребовалось написать программу для включения прослушивания интерфейсов, которые удовлетворяют определенной конфигурации системы. Старшие коллеги сказали, что это можно сделать с помощью netlink. Я начал разбираться в этой технологии с нуля, потратил больше двух месяцев на изучение протокола, написание обработчика и хочу поделиться своим опытом.
Я постараюсь не просто осветить теорию и представить готовый код, а показать, как с netlink можно сделать именно то, что вам нужно. Как узнать, что именно делает система при настройке сетевых интерфейсов и как обрабатывать ее команды. Это важно, поскольку из множества сообщений от netlink для решения конкретной задачи обычно нужны лишь некоторые.

Каждый админ хотя бы раз сталкивался с ситуацией, когда сервер внезапно начинает тупить: подвисают процессы, появляются странные задержки, что-то перестаёт работать. И первая остановка в таком случае — это журналы событий. В Linux системные логи хранятся в systemd-journald, а его главный инструмент для работы — journalctl. Но просто читать логи — это скучно. Разберем, как фильтровать, искать ошибки, анализировать данные и автоматизировать разбор логов с помощью grep, awk, sed и других утилит.

Мы работаем над базой данных EdgeDB и в настоящее время портируем с Python на Rust существенную часть кода, отвечающего за сетевой ввод/вывод. В процессе работы мы узнали много всего интересного.

Наша команда системного программирования YADRO продолжает работать с open source-эмулятором QEMU. В этой статье я расскажу, как и зачем мы создали виртуального двойника Intel NTB Gen3.
Документации по этому устройству нет в открытом доступе, поэтому итог работы — это результат наблюдения и экспериментов с реальной установкой, а также изучения существующих применений и драйверов Linux с другой. Прошу под кат, где я подробно описываю результаты и все шаги. Уверен, что информация пригодится вам для создания своих классных проектов.