Для развития как специалиста полезно изучать чужие подходы к проектированию и программированию реальных систем. Да и это просто интересно. Я уже писал пост по погружению в архитектуру. В этот раз я нашел другие примеры, которые удачно описывают архитектуру и код.

Первый пример: “История одного блокчейна”

Статья на Хабре про реализацию блокчейна — это отличный пример того, как можно доступно описать архитектуру сложного проекта. В разделе “Утечка памяти” разбирается проблема оседания памяти в контейнерах при долгой работе приложения. Именно эту проблему решает мой проект Malloc_tracer.

Второй пример: плейлист “Source Dive”

Короткий, но содержательный плейлист SourceDive на YouTube от Low Byte Productions.
Автор разбирает устройство операционной системы на примере xv6-riscv — это переписанная версия Unix v6 для обучения.

Основные темы из видео:

  1. Инициализация процессора для запуска C-кода ядра: настройка регистров, уровня привилегий, адресов стека, таймеров и прерываний.
  2. Инициализация консоли:
    • Устройство spin_lock для управления доступом к ресурсам.
    • Использование uart и роль volatile при работе с устройствами, замапленными в память.
  3. Реализация printf с поддержкой переменного количества аргументов.
  4. Аллокатор памяти и использование интрузивных связных списков для управления страницами.
  5. Основы виртуальной памяти и таблиц страниц.

Плейлист, к сожалению, не завершён, но даже в таком виде он хорош.

Рекомендации из Вастрика

Дополнительно я задал вопрос на vas3k.club, и там порекомендовали интересные ресурсы из геймдева, парсинга Ruby, системного программирования, с которыми можно ознакомиться, перейдя по ссылке.