Описание складчины

Изучайте практическое программирование, работу с кодом и инструменты разработчика вместе с курсом [Otus] Системное программирование (Артём Токарев, Петр Усольцев). Участие в складчине открывает доступ к урокам и дополнительным материалам.

Зарегистрируйтесь, чтобы посмотреть контент
Робот
Робот
Робот форума
Сообщения
469 242
Реакции
2 933
Монеты
21 179
Оплачено
0
Ссылка на картинку
От железа и ОС — к производительному коду.

Для кого этот курс:
  • Разработчики на системных языках (C, С++, Rust), желающие расширить свои знания.
  • Backend-разработчики, которые планируют или работают с высокопроизводительными системами.
  • Архитекторы и тимлиды, которым необходимо проектировать производительные компоненты и проводить разбор инцидентов/узких мест.
Необходимые знания:
  • Опыт программирования на C/C++
  • Знания структур данных
Чему научится студент на курсе:
  • Понимать, как код исполняется от железа к ОС: CPU/регистры, иерархия памяти и кэши, стек/куча, виртуальная память (MMU/TLB).
  • Разбираться, как устроен исполняемый файл и загрузка: статическая/динамическая линковка, анатомия ELF.
  • Понимать устройство ядра как менеджера ресурсов: системные вызовы, прерывания, page fault, copy-on-write, процессы/потоки и планирование.
  • Писать системный код на уровне API ОС: управление процессами, низкоуровневый I/O, управление памятью (brk/sbrk, mmap), многопоточность и синхронизация (pthread, mutex, semaphore, condition variables).
  • Работать с IPC: сигналы, пайпы/FIFO, shared memory (shm_open + mmap) и принципы корректной синхронизации между процессами.
  • Отлаживать и профилировать системный/многопоточный код: strace, gdb, valgrind, AddressSanitizer/ThreadSanitizer.
Почему стоит освоить:
  • Курс позволит закрыть разрыв между написанием кода и пониманием почему он не работает или тормозит на уровне ОС и железа. Часто эти знания критично необходимы для собеседований и первых задач в системной/инфраструктурной разработке.
  • Вы сможете на практике разобраться как устроена ОС: процессы/потоки, память, IPC. Также, в программу курса включен блок про отладку и профилирование.
Процесс обучения:

Занятия в OTUS — это не заранее отснятый материал. Вебинары проходят в режиме реального времени, где преподаватели-практики рассказывают об актуальных кейсах и инструментах, которые нужны им в работе сейчас. Вы сможете активно участвовать голосом, практиковаться, задавать вопросы и получать обратную связь. Такой формат дает реальный результат.

А если вы не смогли посетить занятие в реальном времени, то сможете посмотреть его в записи и задать вопрос преподавателю в закрытом чате.

Формат обучения:
  • Интерактивные вебинары
    2 онлайн-трансляции по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда.
  • Практика
    Домашние задания
Длительность 3 месяца.

Программа:

1. Аппаратная архитектура


В этом модуле мы разберёмся, как наш код взаимодействует с реальным железом компьютера. Узнаем, почему память работает медленнее процессора, и как заставить CPU не простаивать в ожидании данных. Научимся читать ассемблерный выхлоп компилятора и спроектируем бенчмарк, чтобы пощупать влияние архитектуры процессора на исполнение кода.
  • Тема 1: Архитектура CPU и Ассембли
  • Тема 2: Иерархия памяти и Кэши
  • Тема 3: Branch prediction
  • Тема 4: SIMD // ДЗ
2. Операционная система как менеджер

В этом модуле мы заглянем внутрь операционной системы и поймем, по каким правилам ядро Linux управляет нашими программами. Разберёмся, как устроена виртуальная память процесса, как процессор ускоряет работу с ней через аппаратные кэши TLB, и в чем физическая разница между стеком и кучей. Мы изучим анатомию файловых систем на уровне диска, разберем магию слоев VFS и Page Cache, а также научимся управлять потоками и системными сигналами.
  • Тема 1: Пространство ядра и системные вызовы
  • Тема 2: Процессы, потоки и шедулинг
  • Тема 3: Виртуальная память процесса
  • Тема 4: Аппаратное ускорение виртуальной памяти
  • Тема 5: Layout данных и Stack Frame
  • Тема 6: Сигналы ОС // ДЗ
  • Тема 7: Файловая система
3. Системное программирование

В финальном модуле мы научимся писать высокопроизводительный софт и управлять ресурсами Linux из кода. Вы разберете сетевой стек, решите проблему False Sharing и соберете собственный Event Loop на базе `epoll`. В конце мы перейдем на `io_uring` для асинхронного I/O и освоим отладку/профилирование через `strace` и `perf`.
  • Тема 1: Управление процессами в коде // ДЗ
  • Тема 2: Аллокаторы и управление памятью
  • Тема 3: Конкурентность и низкоуровневая синхронизация
  • Тема 4: Конкурентность и синхронизация на уровне компилятора и языка
  • Тема 5: Примитивы синхронизации ОС // ДЗ
  • Тема 6: IPC
  • Тема 7: Сеть
  • Тема 8: Мультиплексирование I/O
  • Тема 9: Продвинутый I/O
  • Тема 10: Отладка и профилирование системного кода
4. Проектная работа

Заключительный месяц курса посвящён проектной работе. Свой проект — это то, что интересно писать слушателю. То, что можно создать на основе знаний, полученных на курсе.
  • Тема 1: Консультация по проектам и домашним заданиям // Проект
  • Тема 2: Защита проектных работ и подведение итогов
Преподаватели:
  • Руководитель курса Артём Токарев
    Lead Rust Developer
  • Петр Усольцев
    Старший инженер-программист, ООО "Стайл Телеком"
  • Егор Мищерин
    Разработчик С++, NDA
  • Ольга Плисенко
    Зав. сектором разработки, ЦИГИТ АГУ
Старт 06 августа 2026 года.
Показать больше
 
Зарегистрируйтесь , чтобы посмотреть контент.
Поиск по тегу:
otus артём токарев петр усольцев потоки программирование процессы

Зарегистрируйте учетную запись

У вас появится больше возможностей!

Создать учетную запись

Пройдите быструю регистрацию

Войти

Уже зарегистрированы? Войдите.