30 апреля
4 месяца
Онлайн
Вт/Чт 20:00 Мск
Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в Telegram, сдача домашних работ и получение обратной связи от преподавателя.
Вебинары проводятся 2 раза в неделю по 2 ак. часа и сохраняются в записи в личном кабинете. Вы можете посмотреть их в любое удобное для вас время.
В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашего выпускного проекта.
После выполнения всех домашних заданий вы получите готовый выпускной проект.
Возможность совмещать учебу с работой
Индивидуальная разработка итоговой проектной работы
Получите знания, которые помогут повысить вашу востребованность и доход
Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности. Мы оказываем помощь в вопросах карьеры на протяжении всего обучения и спустя полгода после его завершения.
2 занятия по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда
Домашние задания с поддержкой и обратной связью наших преподавателей помогут освоить изучаемые технологии
Чат в Telegram для общения преподавателей и студентов
В этом модуле вы рассмотрите общие сведения о ядре Linux, его сборке и установке.
Тема 1: Начальные сведения о ядре Linux
Тема 2: Компиляция и настройка ядра. Инструменты работы с ядром
Тема 3: Ядро Linux. Обзор ядра Linux и его архитектуры. Основные функции ядра // ДЗ
Тема 4: Q&A занятие по ДЗ
В этом модуле вы рассмотрите что такое модуль ядра; научитесь собирать, загружать и выгружать модули ядра.
Тема 1: Модуль ядра Linux. Буффер сообщений ядра (dmesg)
Тема 2: Написание модуля ядра "Hello, World!" // ДЗ
Тема 3: Q&A занятие по ДЗ
В этом модуле вы познакомитесь с инструментами отладки ядра и их основными возможностями.
Тема 1: Отладка с помощью kgdb
Тема 2: Другие инструменты отладки
В этом модуле вы рассмотрите базовые структуры данных и алгоритмы в ядре Linux.
Тема 1: Связанные списки в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ
Тема 2: Очереди в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ
Тема 3: Битовые карты в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ
Тема 4: Алгоритмы в ядре Linux. Бинарный поиск. Поиск с помощью двоичных деревьев. Хэширование // ДЗ
Тема 5: Сетевой стек в ядре Linux
Тема 6: Q&A занятие по ДЗ
В этом модуле вы рассмотрите процессы и потоки в ядре Linux; примитивы синхронизации и их реализацию.
Тема 1: Процесс в ядре Linux. Поток в ядре Linux. API для работы с процессами и потоками
Тема 2: Синхронизация процессов и потоков и зачем это надо. Что такое spin блокировка, mutex, семафоры и др. примитивы синхронизации
Тема 3: Работа Spinlock, Mutex, Semaphores. Архитектурный код ядра, где реализованы эти примитивы. RCU // ДЗ
Тема 4: Q&A занятие по ДЗ
В этом модуле вы рассмотрите прерывания и их обработка в ядре Linux; разновидности прерываний, разбор PF-ов; механизмы отложенного выполнения в ядре Linux.
Тема 1: Прерывания, дескрипторы прерываний, IDT и как это выглядит в ядре Linux
Тема 2: Top-half и Bottom-half обработчиков прерываний. Softirq, Tasklets, Workqueue
Тема 3: Page Fault. Виды PF в Linux // ДЗ
Тема 4: Q&A занятие по ДЗ
В этом модуле вы рассмотрите таймеры в ядре Linux и виды многозадачности, в частности preemption многозадачность; обобщите знания о прерываниях, таймерах, процессах и многозадачности.
Тема 1: Как протекает время в ядре Linux. API таймеров
Тема 2: Что такое Preemption. Обобщаем работу с процессами и прерываниями // ДЗ
Тема 3: Q&A занятие по ДЗ
В этом модуле вы рассмотрите виртуальную и физическую память; аллокаторы SLAB и SLUB в ядре; способы эффективного выделения памяти под задачу.
Тема 1: Управление памятью в Linux. SLAB-аллокатор, SLUB-аллокатор. API для выделения памяти в ядре
Тема 2: Отличие физической памяти от виртуальной памяти. Page Table. Реализация pagging в ядре Linux
Тема 3: Выделение памяти для объектов одинакового размера заранее. Kmem_cache. Mempool // ДЗ
Тема 4: Q&A занятие по ДЗ
В этом модуле вы изучите символьные и блочные устройства, виртуальные файловые системы и интерфейсы.
Тема 1: Символьные устройства
Тема 2: Блочные устройства
Тема 3: Взаимодействие с устройством через ioctl. Виртуальные файловые системы /proc, /sys, /dev. Общение через сокет netlink
Заключительный месяц курса посвящён проектной работе. Проект – это самая интересная часть обучения. Вы будете разрабатывать его на основе полученных на курсе навыков и компетенций. В процессе работы над проектом можно получить консультацию преподавателей.
Тема 1: Выбор темы и организация проектной работы // Проект
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса
Каждый курс завершается финальным проектом, который предстоит защитить перед преподавателями и командой. Вам будет, что обсудить на собеседовании!
Вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.
Astra Linux
Senior-разработчик ядра Linux
4 года опыта разработчиком в ядре Linux. Работал в таких фирмах как RAIDIX, YADRO, SBERTECH. Есть несколько багрепортов и коммитов в ядро Linux. Практический опыт базируется на знании языков C, bash и знании инструментов для отладки ядерного кода таких как kmemleak, KASAN, KGDB, ftrace, eBPF. Теоретический опыт базируется на знании архитектуры amd64, архитектуры современных операционых систем в том числе Linux. Окончил ИГУ по специальности чистая математика.
НТЦ Модуль
Начальник сектора разработки embedded Linux
Мой профессиональный путь начался с должности инженера-программиста в этой же компании. На собственном опыте прошел все ступени развития: начинал с написания низкоуровневых библиотек для микроконтроллеров, а затем перешел к созданию сложных систем на Embedded Linux. Имел опыт работы с отечественными процессорами «Эльбрус», где занимался адаптацией драйверов и прикладных программ. Моим ключевым проектом стала разработка программного обеспечения для встраиваемого бортового вычислителя «NM Pilot», который сегодня используется в реальных промышленных задачах, например, в самоходных буровых установках горнорудной промышленности. Магистр МАИ по специальности "Конструирование и технология электронных средств".
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
OTUS осуществляет лицензированную образовательную деятельность.
В конце прохождения специализации вы получите сертификат OTUS и официальный диплом о получении новой специальности
Стоимость в рассрочку