Pull to refresh
8K+
34
Тимур@mrognor

C++ enthusiast and developer

15
Rating
11
Subscribers
Send message

Рефлексия в C++26 на примере сериализации и десериализации JSON

Level of difficultyMedium
Reading time25 min
Reach and readers9.6K

Всем привет! Меня зовут Тимур, я работаю в YADRO, и уже больше двух месяцев мой системный компилятор — gcc16. В новом стандарте добавили очень много, и сегодня я расскажу вам о некоторых обновлениях. В основном о рефлексии, но также будет немного и о контрактах.

Рефлексия в программировании — это способность программы работать со своим исходным кодом. Например, пройтись в цикле по всем полям класса и узнать их названия и типы. Работа с json — это очень хороший пример для изучения возможностей рефлексии. Я поигрался с ней, мне очень понравилось, и этой радостью я хочу поделиться с сообществом.

Читать далее

Как патчить ядро Linux: подробное руководство

Level of difficultyMedium
Reading time23 min
Reach and readers19K

Всем привет, это Тимур. Сейчас в YADRO я разрабатываю сетевую операционную систему для коммутаторов KORNFELD. В ходе этого проекта летом я получил сложную задачу: реализовать установку опции PROTO_DOWN для Ethernet-интерфейсов в ядре Linux. «Из коробки» ядро поддерживает эту опцию только для vxlan и macvlan-интерфейсов, а для Ethernet поддержка определяется драйвером сетевого устройства.

В статье я подробно расскажу о той части задачи, что касается непосредственно ядра Linux. На реализацию требования я потратил много сил, времени и хочу, чтобы мой опыт остался в сообществе. Постараюсь максимально подробно объяснить каждый шаг, чтобы вы смогли построить собственный процесс разработки на этой основе, даже если никогда не занимались разработкой для ядра. Статья будет полезна не только программистам, но и любителям Linux, так как в большей степени она посвящена тонкостям работы с этой ОС, а не программированию.

Читать далее

Эльбрус стал намного ближе

Level of difficultyEasy
Reading time6 min
Reach and readers29K

Недавно МЦСТ опубликовала кросскомпилятор для «Эльбрус». Это большой шаг в развитии платформы. Теперь любой человек может собрать программу под е2к на своем домашнем компьютере.

В этой статье вас ждет инструкция по ручному развертыванию всего окружения для разработки под е2к, скрипт для автоматического развертывания, а также Docker-контейнер с готовым окружением. Благодаря контейнеру процесс развертывания упрощается до вызова одной команды, а также он позволяет работать даже на Windows.

Если вы хотели попробовать собрать свой код или какой-нибудь другой код под «Эльбрус», то сейчас самое время.

Читать далее

Как отслеживать состояние сетевых интерфейсов на Linux с помощью netlink

Level of difficultyMedium
Reading time29 min
Reach and readers29K

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

Я постараюсь не просто осветить теорию и представить готовый код, а показать, как с netlink можно сделать именно то, что вам нужно. Как узнать, что именно делает система при настройке сетевых интерфейсов и как обрабатывать ее команды. Это важно, поскольку из множества сообщений от netlink для решения конкретной задачи обычно нужны лишь некоторые.

Читать далее

Автодокументация Doxygen и её развертывание на GitHub Pages

Level of difficultyEasy
Reading time8 min
Reach and readers19K

Наверняка вы создавали open source проекты и выкладывали их на GitHub, но я уверен, что очень немногие из вас создавали документацию для этих проектов. В этой статье я расскажу, как создавать и публиковать доки максимально просто.

Документация будет создаваться на основе исходного кода, она будет обновляться при каждом коммите и при этом будет доступна через интернет. Документирование происходит через Doxygen, в качестве хостинга выступает GitHub, а за обновление документации отвечает GitHub Pages.

Читать далее

Information

Rating
529-th
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity