HTML Diff
35 added 16 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Понимание ядра Linux: от архитектуры до разработки эффективных модулей</p>
1 <p>Понимание ядра Linux: от архитектуры до разработки эффективных модулей</p>
2 <h2>Для кого этот курс:</h2>
2 <h2>Для кого этот курс:</h2>
3 <ul><li> <strong>Системные администраторов и DevOps-инженеров</strong>, которые хотят улучшить навыки для решения сложных задач, связанных с оптимизацией и настройкой серверов.</li>
3 <ul><li> <strong>Системные администраторов и DevOps-инженеров</strong>, которые хотят улучшить навыки для решения сложных задач, связанных с оптимизацией и настройкой серверов.</li>
4 <li><strong>Программистов, желающих перейти в системное программирование,</strong>но не понимающих как и с чего начать заниматься системным программированием и разрабатывать модули для ядра.</li>
4 <li><strong>Программистов, желающих перейти в системное программирование,</strong>но не понимающих как и с чего начать заниматься системным программированием и разрабатывать модули для ядра.</li>
5 <li><strong>Инженеров по безопасности информационных систем, сосредоточенных на тестировании и анализе уязвимостей</strong>, которые сталкиваются со сложностями в быстром реагировании на уязвимости, возникающие в ядре, из-за недостатка практического опыта в его разработке и модификации</li>
5 <li><strong>Инженеров по безопасности информационных систем, сосредоточенных на тестировании и анализе уязвимостей</strong>, которые сталкиваются со сложностями в быстром реагировании на уязвимости, возникающие в ядре, из-за недостатка практического опыта в его разработке и модификации</li>
6 <li><strong>Разработчики на C</strong>, которым нужны улубленные знания о внутреннем устройстве операционной системы для написания более эффективного кода.</li>
6 <li><strong>Разработчики на C</strong>, которым нужны улубленные знания о внутреннем устройстве операционной системы для написания более эффективного кода.</li>
7 <li><strong>Системные программисты</strong>, у кого есть необходимость глубокого понимания внутренней архитектуры ОС для создания эффективного программного обеспечения</li>
7 <li><strong>Системные программисты</strong>, у кого есть необходимость глубокого понимания внутренней архитектуры ОС для создания эффективного программного обеспечения</li>
8 - <li><strong>Разработчики embedded-систем</strong>, которые сталкивается с трудностями при необходимости создания драйверов и взаимодействия с аппаратным обеспечением</li>
8 + <li><strong>Разработчики встраиваемых (embedded) систем</strong>, которые сталкивается с трудностями при необходимости создания драйверов и взаимодействия с аппаратным обеспечением</li>
9 <li><strong>Системные администраторы с навыками программирования на C</strong>, которые часто сталкиваются с проблемами при настройке и отладке системы, для которых требуется знание ядра</li>
9 <li><strong>Системные администраторы с навыками программирования на C</strong>, которые часто сталкиваются с проблемами при настройке и отладке системы, для которых требуется знание ядра</li>
10 </ul><h3><strong>Необходимые знания:</strong></h3>
10 </ul><h3><strong>Необходимые знания:</strong></h3>
11 <ul><li>Уметь работать в ОС Linux</li>
11 <ul><li>Уметь работать в ОС Linux</li>
12 <li>Базовое знание Bash</li>
12 <li>Базовое знание Bash</li>
13 <li>Базовое знание Python</li>
13 <li>Базовое знание Python</li>
14 <li>Уверенный уровень разработки на языках программирования C</li>
14 <li>Уверенный уровень разработки на языках программирования C</li>
15 <li>Умение работать и подключаться к Виртуальной машине</li>
15 <li>Умение работать и подключаться к Виртуальной машине</li>
16 </ul><h2>Что даст вам этот курс</h2>
16 </ul><h2>Что даст вам этот курс</h2>
17 <ul><li><strong>Основы разработки ядра:</strong>Понимание архитектуры и базовых компонентов ядра Linux, включая его функции и принципы работы</li>
17 <ul><li><strong>Основы разработки ядра:</strong>Понимание архитектуры и базовых компонентов ядра Linux, включая его функции и принципы работы</li>
18 <li><strong>Создание и отладка модулей:</strong>Навыки разработки, компиляции и интеграции модулей ядра, а также работы с буфером сообщений ядра (dmesg)</li>
18 <li><strong>Создание и отладка модулей:</strong>Навыки разработки, компиляции и интеграции модулей ядра, а также работы с буфером сообщений ядра (dmesg)</li>
19 <li><strong>Работа со структурами данных и алгоритмами:</strong>Освоение операций со сложными структурами данных, такими как связанные списки, очереди, стеки и деревья, с реальными примерами из кода ядра</li>
19 <li><strong>Работа со структурами данных и алгоритмами:</strong>Освоение операций со сложными структурами данных, такими как связанные списки, очереди, стеки и деревья, с реальными примерами из кода ядра</li>
20 <li><strong>Управление процессами и потоками:</strong>Понимание работы процессов и потоков в ядре, включая API и примитивы синхронизации (spin блокировки, mutex, семафоры)</li>
20 <li><strong>Управление процессами и потоками:</strong>Понимание работы процессов и потоков в ядре, включая API и примитивы синхронизации (spin блокировки, mutex, семафоры)</li>
21 <li><strong>Обработка прерываний:</strong>Освоение работы с прерываниями и их обработчиками в контексте ядра, включая аспекты синхронизации</li>
21 <li><strong>Обработка прерываний:</strong>Освоение работы с прерываниями и их обработчиками в контексте ядра, включая аспекты синхронизации</li>
22 <li><strong>Управление памятью:</strong>Знание методов управления физической и виртуальной памятью, включая различия между SLAB- и SLUB-аллокаторами и механизмами страниц.</li>
22 <li><strong>Управление памятью:</strong>Знание методов управления физической и виртуальной памятью, включая различия между SLAB- и SLUB-аллокаторами и механизмами страниц.</li>
23 </ul><h2><strong>Вы научитесь</strong>:</h2>
23 </ul><h2><strong>Вы научитесь</strong>:</h2>
24 <ul><li>Разрабатывать и интегрировать собственные модули ядра: Напишут, соберут и запустят модули, а также смогут анализировать выводы отладки через dmesg</li>
24 <ul><li>Разрабатывать и интегрировать собственные модули ядра: Напишут, соберут и запустят модули, а также смогут анализировать выводы отладки через dmesg</li>
25 <li>Владеть алгоритмами и структурами: Применят темы, изученные о структуре данных для решения реальных задач в проекте на ядре Linux</li>
25 <li>Владеть алгоритмами и структурами: Применят темы, изученные о структуре данных для решения реальных задач в проекте на ядре Linux</li>
26 <li>Реализовывать синхронизацию процессов и потоков: Используют различные примитивы синхронизации в собственных разработках</li>
26 <li>Реализовывать синхронизацию процессов и потоков: Используют различные примитивы синхронизации в собственных разработках</li>
27 <li>Анализировать и обрабатывать прерывания: Понимают, как работают обработчики прерываний и смогут их отлаживать</li>
27 <li>Анализировать и обрабатывать прерывания: Понимают, как работают обработчики прерываний и смогут их отлаживать</li>
28 <li>Управлять памятью в ядре: Разработают решения для эффективного управления памятью, включая использование аллокаторов и механизмов управления страницами</li>
28 <li>Управлять памятью в ядре: Разработают решения для эффективного управления памятью, включая использование аллокаторов и механизмов управления страницами</li>
29 <li>Участвовать в проектах на основе Linux: Подготовят себя к работе в команде на проектах, связанных с разработкой и поддержкой ядра Linux.</li>
29 <li>Участвовать в проектах на основе Linux: Подготовят себя к работе в команде на проектах, связанных с разработкой и поддержкой ядра Linux.</li>
30 </ul><h2>Процесс обучения</h2>
30 </ul><h2>Процесс обучения</h2>
31 <p>Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в Telegram, сдача домашних работ и получение обратной связи от преподавателя.</p>
31 <p>Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в Telegram, сдача домашних работ и получение обратной связи от преподавателя.</p>
32 <p><strong>Вебинары проводятся 2 раза в неделю по 2 ак. часа </strong>и <strong>сохраняются в записи </strong>в личном кабинете. Вы можете посмотреть их в любое удобное для вас время.</p>
32 <p><strong>Вебинары проводятся 2 раза в неделю по 2 ак. часа </strong>и <strong>сохраняются в записи </strong>в личном кабинете. Вы можете посмотреть их в любое удобное для вас время.</p>
33 <p>В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашего выпускного проекта.</p>
33 <p>В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашего выпускного проекта.</p>
34 <p>После выполнения всех домашних заданий вы получите готовый выпускной проект.</p>
34 <p>После выполнения всех домашних заданий вы получите готовый выпускной проект.</p>
35 <h3>Оптимальная нагрузка</h3>
35 <h3>Оптимальная нагрузка</h3>
36 <p>Возможность совмещать учебу с работой</p>
36 <p>Возможность совмещать учебу с работой</p>
37 <h3>Портфолио</h3>
37 <h3>Портфолио</h3>
38 <p>Индивидуальная разработка итоговой проектной работы </p>
38 <p>Индивидуальная разработка итоговой проектной работы </p>
39 <h3>Перспективы</h3>
39 <h3>Перспективы</h3>
40 <p>Получите знания, которые помогут повысить вашу востребованность и доход</p>
40 <p>Получите знания, которые помогут повысить вашу востребованность и доход</p>
41 <h2>Партнеры</h2>
41 <h2>Партнеры</h2>
42 <p>Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности. Мы оказываем помощь в вопросах карьеры на протяжении всего обучения и спустя полгода после его завершения.</p>
42 <p>Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности. Мы оказываем помощь в вопросах карьеры на протяжении всего обучения и спустя полгода после его завершения.</p>
43 <ul><li><b>Получите помощь с оформлением резюме</b>, портфолио и сопроводительного письма</li>
43 <ul><li><b>Получите помощь с оформлением резюме</b>, портфолио и сопроводительного письма</li>
44 <li><b>Разместите свое резюме в базе OTUS</b>и сможете получать приглашения на собеседования от партнеров</li>
44 <li><b>Разместите свое резюме в базе OTUS</b>и сможете получать приглашения на собеседования от партнеров</li>
45 <li><b>Пройдете карьерную консультацию</b>с нашим HR-специалистом</li>
45 <li><b>Пройдете карьерную консультацию</b>с нашим HR-специалистом</li>
46 <li><b>Получите рекомендации, как искать работу</b>, и советы по прохождению собеседования</li>
46 <li><b>Получите рекомендации, как искать работу</b>, и советы по прохождению собеседования</li>
47 </ul><h5>Формат обучения</h5>
47 </ul><h5>Формат обучения</h5>
48 <h3>Интерактивные вебинары</h3>
48 <h3>Интерактивные вебинары</h3>
49 <p>2 занятия по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда</p>
49 <p>2 занятия по 2 ак.часа в неделю. Доступ к записям и материалам остается навсегда</p>
50 <h3>Обратная связь</h3>
50 <h3>Обратная связь</h3>
51 <p>Домашние задания с поддержкой и обратной связью наших преподавателей помогут освоить изучаемые технологии</p>
51 <p>Домашние задания с поддержкой и обратной связью наших преподавателей помогут освоить изучаемые технологии</p>
52 - <h3>Активное комьюнити</h3>
52 + <h3>Активное сообщество</h3>
53 <p>Чат в Telegram для общения преподавателей и студентов</p>
53 <p>Чат в Telegram для общения преподавателей и студентов</p>
54 <h2>Программа</h2>
54 <h2>Программа</h2>
55 <h5>Введение в разработку ядра Linux</h5>
55 <h5>Введение в разработку ядра Linux</h5>
56 <p>В этом модуле вы рассмотрите общие сведения о ядре Linux, его сборке и установке.</p>
56 <p>В этом модуле вы рассмотрите общие сведения о ядре Linux, его сборке и установке.</p>
57 <p>Тема 1: Начальные сведения о ядре Linux</p>
57 <p>Тема 1: Начальные сведения о ядре Linux</p>
58 <p>Тема 2: Компиляция и настройка ядра. Инструменты работы с ядром</p>
58 <p>Тема 2: Компиляция и настройка ядра. Инструменты работы с ядром</p>
59 <p>Тема 3: Ядро Linux. Обзор ядра Linux и его архитектуры. Основные функции ядра // ДЗ</p>
59 <p>Тема 3: Ядро Linux. Обзор ядра Linux и его архитектуры. Основные функции ядра // ДЗ</p>
60 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
60 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
61 <h5>Модули ядра Linux</h5>
61 <h5>Модули ядра Linux</h5>
62 <p>В этом модуле вы рассмотрите что такое модуль ядра; научитесь собирать, загружать и выгружать модули ядра.</p>
62 <p>В этом модуле вы рассмотрите что такое модуль ядра; научитесь собирать, загружать и выгружать модули ядра.</p>
63 - <p>Тема 1: Что такое модуль ядра Linux. Как его написать, собрать, запустить. Что такое буффер сообщений ядра (dmesg) // ДЗ</p>
63 + <p>Тема 1: Модуль ядра Linux. Буффер сообщений ядра (dmesg)</p>
64 - <p>Тема 2: Написание модуля ядра "Hello, World!"</p>
64 + <p>Тема 2: Написание модуля ядра "Hello, World!" // ДЗ</p>
65 <p>Тема 3: Q&amp;A занятие по ДЗ</p>
65 <p>Тема 3: Q&amp;A занятие по ДЗ</p>
 
66 + <h5>Отладка модулей ядра</h5>
 
67 + <p>В этом модуле вы познакомитесь с инструментами отладки ядра и их основными возможностями.</p>
 
68 + <p>Тема 1: Отладка с помощью kgdb</p>
 
69 + <p>Тема 2: Другие инструменты отладки</p>
66 <h5>Структуры данных и алгоритмы в ядре Linux</h5>
70 <h5>Структуры данных и алгоритмы в ядре Linux</h5>
67 <p>В этом модуле вы рассмотрите базовые структуры данных и алгоритмы в ядре Linux.</p>
71 <p>В этом модуле вы рассмотрите базовые структуры данных и алгоритмы в ядре Linux.</p>
68 <p>Тема 1: Связанные списки в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
72 <p>Тема 1: Связанные списки в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
69 <p>Тема 2: Очереди в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
73 <p>Тема 2: Очереди в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
70 - <p>Тема 3: Стеки в ядре Linux. Реальные примеры из кода ядра Linux</p>
74 + <p>Тема 3: Битовые карты в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
71 - <p>Тема 4: Битовые карты в ядре Linux. Реальные примеры из кода ядра Linux // ДЗ</p>
75 + <p>Тема 4: Алгоритмы в ядре Linux. Бинарный поиск. Поиск с помощью двоичных деревьев. Хэширование // ДЗ</p>
72 - <p>Тема 5: Алгоритмы в ядре Linux. Бинарный поиск. Поиск с помощью двоичных деревьев. Хэширование // ДЗ</p>
76 + <p>Тема 5: Сетевой стек в ядре Linux</p>
73 <p>Тема 6: Q&amp;A занятие по ДЗ</p>
77 <p>Тема 6: Q&amp;A занятие по ДЗ</p>
74 <h5>Управление процессами и потоками</h5>
78 <h5>Управление процессами и потоками</h5>
75 <p>В этом модуле вы рассмотрите процессы и потоки в ядре Linux; примитивы синхронизации и их реализацию.</p>
79 <p>В этом модуле вы рассмотрите процессы и потоки в ядре Linux; примитивы синхронизации и их реализацию.</p>
76 - <p>Тема 1: Что такое процесс в ядре Linux. Что такое поток в ядре Linux. API для работы с процессами и потоками</p>
80 + <p>Тема 1: Процесс в ядре Linux. Поток в ядре Linux. API для работы с процессами и потоками</p>
77 <p>Тема 2: Синхронизация процессов и потоков и зачем это надо. Что такое spin блокировка, mutex, семафоры и др. примитивы синхронизации</p>
81 <p>Тема 2: Синхронизация процессов и потоков и зачем это надо. Что такое spin блокировка, mutex, семафоры и др. примитивы синхронизации</p>
78 - <p>Тема 3: Детально рассмотрим как работает Spinlock, Mutex, Semaphores. Deep diving в архитектурный код ядра, где реализованы эти примитивы. Разбираем RCU // ДЗ</p>
82 + <p>Тема 3: Работа Spinlock, Mutex, Semaphores. Архитектурный код ядра, где реализованы эти примитивы. RCU // ДЗ</p>
79 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
83 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
80 <h5>Прерывания. Обработчики прерываний. Cинхронизация в контексте прерываний. Виды Page Fault в Linux</h5>
84 <h5>Прерывания. Обработчики прерываний. Cинхронизация в контексте прерываний. Виды Page Fault в Linux</h5>
81 <p>В этом модуле вы рассмотрите прерывания и их обработка в ядре Linux; разновидности прерываний, разбор PF-ов; механизмы отложенного выполнения в ядре Linux.</p>
85 <p>В этом модуле вы рассмотрите прерывания и их обработка в ядре Linux; разновидности прерываний, разбор PF-ов; механизмы отложенного выполнения в ядре Linux.</p>
82 <p>Тема 1: Прерывания, дескрипторы прерываний, IDT и как это выглядит в ядре Linux</p>
86 <p>Тема 1: Прерывания, дескрипторы прерываний, IDT и как это выглядит в ядре Linux</p>
83 <p>Тема 2: Top-half и Bottom-half обработчиков прерываний. Softirq, Tasklets, Workqueue</p>
87 <p>Тема 2: Top-half и Bottom-half обработчиков прерываний. Softirq, Tasklets, Workqueue</p>
84 - <p>Тема 3: Что такое Page Fault. Какие виды PF бывают в Linux // ДЗ</p>
88 + <p>Тема 3: Page Fault. Виды PF в Linux // ДЗ</p>
85 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
89 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
86 <h5>Время в ядре Linux. Таймеры. Preemption многозадачность.</h5>
90 <h5>Время в ядре Linux. Таймеры. Preemption многозадачность.</h5>
87 <p>В этом модуле вы рассмотрите таймеры в ядре Linux и виды многозадачности, в частности preemption многозадачность; обобщите знания о прерываниях, таймерах, процессах и многозадачности.</p>
91 <p>В этом модуле вы рассмотрите таймеры в ядре Linux и виды многозадачности, в частности preemption многозадачность; обобщите знания о прерываниях, таймерах, процессах и многозадачности.</p>
88 <p>Тема 1: Как протекает время в ядре Linux. API таймеров</p>
92 <p>Тема 1: Как протекает время в ядре Linux. API таймеров</p>
89 <p>Тема 2: Что такое Preemption. Обобщаем работу с процессами и прерываниями // ДЗ</p>
93 <p>Тема 2: Что такое Preemption. Обобщаем работу с процессами и прерываниями // ДЗ</p>
90 <p>Тема 3: Q&amp;A занятие по ДЗ</p>
94 <p>Тема 3: Q&amp;A занятие по ДЗ</p>
91 <h5>Управление RAM памятью</h5>
95 <h5>Управление RAM памятью</h5>
92 <p>В этом модуле вы рассмотрите виртуальную и физическую память; аллокаторы SLAB и SLUB в ядре; способы эффективного выделения памяти под задачу.</p>
96 <p>В этом модуле вы рассмотрите виртуальную и физическую память; аллокаторы SLAB и SLUB в ядре; способы эффективного выделения памяти под задачу.</p>
93 - <p>Тема 1: Управление памятью в Linux. SLAB-аллокатор. SLUB-аллокатор. Плюсы и минусы этих аллокаторов. API для выделения памяти в ядре</p>
97 + <p>Тема 1: Управление памятью в Linux. SLAB-аллокатор, SLUB-аллокатор. API для выделения памяти в ядре</p>
94 <p>Тема 2: Отличие физической памяти от виртуальной памяти. Page Table. Реализация pagging в ядре Linux</p>
98 <p>Тема 2: Отличие физической памяти от виртуальной памяти. Page Table. Реализация pagging в ядре Linux</p>
95 - <p>Тема 3: Ситуация когда нужно выделить заранее много памяти для объектов одинакового размера. Что такое kmem_cache. Что такое mempool // ДЗ</p>
99 + <p>Тема 3: Выделение памяти для объектов одинакового размера заранее. Kmem_cache. Mempool // ДЗ</p>
96 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
100 <p>Тема 4: Q&amp;A занятие по ДЗ</p>
97 <h5>Устройства в Linux</h5>
101 <h5>Устройства в Linux</h5>
98 <p>В этом модуле вы изучите символьные и блочные устройства, виртуальные файловые системы и интерфейсы.</p>
102 <p>В этом модуле вы изучите символьные и блочные устройства, виртуальные файловые системы и интерфейсы.</p>
99 <p>Тема 1: Символьные устройства</p>
103 <p>Тема 1: Символьные устройства</p>
100 <p>Тема 2: Блочные устройства</p>
104 <p>Тема 2: Блочные устройства</p>
101 <p>Тема 3: Взаимодействие с устройством через ioctl. Виртуальные файловые системы /proc, /sys, /dev. Общение через сокет netlink</p>
105 <p>Тема 3: Взаимодействие с устройством через ioctl. Виртуальные файловые системы /proc, /sys, /dev. Общение через сокет netlink</p>
102 - <p>Тема 4: Отладка модулей ядра. Инструменты отладки</p>
 
103 <h5>Проектная работа</h5>
106 <h5>Проектная работа</h5>
104 <p>Заключительный месяц курса посвящён проектной работе. Проект - это самая интересная часть обучения. Вы будете разрабатывать его на основе полученных на курсе навыков и компетенций. В процессе работы над проектом можно получить консультацию преподавателей.</p>
107 <p>Заключительный месяц курса посвящён проектной работе. Проект - это самая интересная часть обучения. Вы будете разрабатывать его на основе полученных на курсе навыков и компетенций. В процессе работы над проектом можно получить консультацию преподавателей.</p>
105 <p>Тема 1: Выбор темы и организация проектной работы // Проект</p>
108 <p>Тема 1: Выбор темы и организация проектной работы // Проект</p>
106 <p>Тема 2: Консультация по проектам и домашним заданиям</p>
109 <p>Тема 2: Консультация по проектам и домашним заданиям</p>
107 <p>Тема 3: Защита проектных работ</p>
110 <p>Тема 3: Защита проектных работ</p>
108 <p>Тема 4: Подведение итогов курса</p>
111 <p>Тема 4: Подведение итогов курса</p>
109 <h5>Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит</h5>
112 <h5>Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит</h5>
110 <h2>Выпускной проект</h2>
113 <h2>Выпускной проект</h2>
111 <p>Каждый курс завершается финальным проектом, который предстоит защитить перед преподавателями и командой. Вам будет, что обсудить на собеседовании!</p>
114 <p>Каждый курс завершается финальным проектом, который предстоит защитить перед преподавателями и командой. Вам будет, что обсудить на собеседовании!</p>
112 <p>Вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.</p>
115 <p>Вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.</p>
113 <h2>Преподаватели</h2>
116 <h2>Преподаватели</h2>
114 <h3>Коробейников Глеб</h3>
117 <h3>Коробейников Глеб</h3>
115 <p>Astra Linux</p>
118 <p>Astra Linux</p>
116 <p>Senior-разработчик ядра Linux</p>
119 <p>Senior-разработчик ядра Linux</p>
117 <p>4 года опыта разработчиком в ядре Linux. Работал в таких фирмах как RAIDIX, YADRO, SBERTECH. Есть несколько багрепортов и коммитов в ядро Linux. Практический опыт базируется на знании языков C, bash и знании инструментов для отладки ядерного кода таких как kmemleak, KASAN, KGDB, ftrace, eBPF. Теоретический опыт базируется на знании архитектуры amd64, архитектуры современных операционых систем в том числе Linux. Окончил ИГУ по специальности чистая математика.</p>
120 <p>4 года опыта разработчиком в ядре Linux. Работал в таких фирмах как RAIDIX, YADRO, SBERTECH. Есть несколько багрепортов и коммитов в ядро Linux. Практический опыт базируется на знании языков C, bash и знании инструментов для отладки ядерного кода таких как kmemleak, KASAN, KGDB, ftrace, eBPF. Теоретический опыт базируется на знании архитектуры amd64, архитектуры современных операционых систем в том числе Linux. Окончил ИГУ по специальности чистая математика.</p>
118 <h4>Преподает на курсах</h4>
121 <h4>Преподает на курсах</h4>
119 <ul><li>Разработка ядра Linux</li>
122 <ul><li>Разработка ядра Linux</li>
120 </ul><h3>Вячеслав Степанов</h3>
123 </ul><h3>Вячеслав Степанов</h3>
121 <p>НТЦ Модуль</p>
124 <p>НТЦ Модуль</p>
122 <p>Начальник сектора разработки embedded Linux</p>
125 <p>Начальник сектора разработки embedded Linux</p>
123 <p>Мой профессиональный путь начался с должности инженера-программиста в этой же компании. На собственном опыте прошел все ступени развития: начинал с написания низкоуровневых библиотек для микроконтроллеров, а затем перешел к созданию сложных систем на Embedded Linux. Имел опыт работы с отечественными процессорами "Эльбрус", где занимался адаптацией драйверов и прикладных программ. Моим ключевым проектом стала разработка программного обеспечения для встраиваемого бортового вычислителя "NM Pilot", который сегодня используется в реальных промышленных задачах, например, в самоходных буровых установках горнорудной промышленности. Магистр МАИ по специальности "Конструирование и технология электронных средств".</p>
126 <p>Мой профессиональный путь начался с должности инженера-программиста в этой же компании. На собственном опыте прошел все ступени развития: начинал с написания низкоуровневых библиотек для микроконтроллеров, а затем перешел к созданию сложных систем на Embedded Linux. Имел опыт работы с отечественными процессорами "Эльбрус", где занимался адаптацией драйверов и прикладных программ. Моим ключевым проектом стала разработка программного обеспечения для встраиваемого бортового вычислителя "NM Pilot", который сегодня используется в реальных промышленных задачах, например, в самоходных буровых установках горнорудной промышленности. Магистр МАИ по специальности "Конструирование и технология электронных средств".</p>
124 <h4>Преподает на курсах</h4>
127 <h4>Преподает на курсах</h4>
125 <ul><li>Программист С</li>
128 <ul><li>Программист С</li>
126 <li>Разработка ядра Linux</li>
129 <li>Разработка ядра Linux</li>
127 </ul><p>Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания</p>
130 </ul><p>Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания</p>
 
131 + <h2>Ближайшие мероприятия</h2>
 
132 + <p>Открытый вебинар - это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.</p>
 
133 + <p>Платформенные драйвера. Как управлять периферией систем на кристалле (SoC)</p>
 
134 + <p>Вячеслав Степанов</p>
 
135 + <p>На уроке рассмотрятся механизмы взаимодействия ядра Linux с периферией SoC: как ядро "видит" железо через файл дерева устройств (Device Tree), и путь от описания пинов в DTS до работы готового платформенного драйвера. Что будет рассмотрено на открытом уроке: - Роль Device Tree в современных SoC: Почему на смену "платформенным данным" (platform_data) пришло дерево устройств и как оно описывает нестандартную периферию . - Как ядро анализирует бинарный blob (.dtb), преобразует его в дерево структур struct device_node и создает экземпляры platform_device . - Как осуществляется поиск правильного драйвера. Детальный разбор поля compatible в DTS и таблицы of_match_table в драйвере . - Практический пример: Написание каркаса собственного платформенного драйвера с нуля, включая обработку полученных из DTS ресурсов и взаимодействие с аппаратурой . Какие результаты на выходе: - Понимать, как ядро Linux абстрагирует аппаратные различия SoC с помощью Device Tree. - Уметь находить связь между узлом в файле .dts и конкретным драйвером в коде ядра. - Знать структуру платформенного драйвера (struct platform_driver) и порядок действий при его написании. Кому будет полезно присутствовать - Начинающим embedded-разработчикам: которые хотят понять, с чего начинать написание драйверов для новой платы. - Системным программистам: желающим систематизировать знания о подсистеме platform driver и Device Tree. - Студентам и инженерам: работающим с одноплатными компьютерами (Raspberry Pi, BeagleBone и др.)...</p>
 
136 + <p>9 апреля в 17:00</p>
 
137 + <p>Открытый вебинар</p>
 
138 + <p>Связанные списки в ядре Linux: от API до реального кода</p>
 
139 + <p>Коробейников Глеб</p>
 
140 + <p>Связанные списки - одна из базовых структур данных в ядре Linux и важный инструмент для разработки драйверов и модулей ядра. На занятии разберём API связанных списков в ядре Linux, посмотрим реальные примеры из кода ядра и драйверов, а также закрепим материал на практике. Покажем, где и зачем используются связанные списки, как писать с ними корректный и безопасный код, и на какие типичные ошибки стоит обращать внимание при работе с динамическими структурами данных в ядре. Что разберём: - API связанных списков и очередей в ядре Linux - Реальные кейсы использования связанных списков в драйверах - Примеры простых модулей ядра с использованием связанных списков - Типовые ошибки при работе с динамическими структурами данных и способы их избежать После занятия вы сможете: - Писать код в ядре Linux с использованием связанных списков; - Понимать, в каких сценариях связанные списки - оптимальный выбор; - Уверенно работать с API связных списков и очередей ядра; - Находить и исправлять ошибки при работе с динамическими структурами данных; - Разрабатывать и отлаживать модули ядра с поддержкой связанных списков. Кому будет полезно - Разработчикам, изучающим внутреннее устройство ядра Linux; - Инженерам, работающим с драйверами и модулями ядра;...</p>
 
141 + <p>21 апреля в 17:00</p>
 
142 + <p>Открытый вебинар</p>
128 <h2>Прошедшие мероприятия</h2>
143 <h2>Прошедшие мероприятия</h2>
129 <p>Коробейников Глеб</p>
144 <p>Коробейников Глеб</p>
130 <p>Открытый вебинар</p>
145 <p>Открытый вебинар</p>
131 <p>Вход в ядро: системные вызовы и граница между user space и kernel space</p>
146 <p>Вход в ядро: системные вызовы и граница между user space и kernel space</p>
132 <p>Вячеслав Степанов</p>
147 <p>Вячеслав Степанов</p>
133 <p>Открытый вебинар</p>
148 <p>Открытый вебинар</p>
134 <p>Как ядро Linux взаимодействует с устройствами: драйверы, шины и модель устройств</p>
149 <p>Как ядро Linux взаимодействует с устройствами: драйверы, шины и модель устройств</p>
135 - <p>Оставьте заявку, чтобы получить доступ ко всем записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке</p>
150 + <p>Для доступа ко всем прошедшим мероприятиям необходимо пройти</p>
 
151 + <p><b>входное тестирование</b>Возможность пройти вступительное тестирование повторно появится только через<b>3 дня</b>Результаты тестирования будут отправлены вам<b>на email</b>, указанный при регистрации.Тест рассчитан на<b>30</b>минут, после начала тестирования отложить тестирование не получится!</p>
136 <h2>Этот курс может оплатить ваш работодатель</h2>
152 <h2>Этот курс может оплатить ваш работодатель</h2>
137 <p>Обучайтесь за счёт работодателя или разделите оплату 50/50</p>
153 <p>Обучайтесь за счёт работодателя или разделите оплату 50/50</p>
138 <ul><li>Подробно расскажем об интересующем вас курсе</li>
154 <ul><li>Подробно расскажем об интересующем вас курсе</li>
139 <li>Объясним, как договориться с работодателем</li>
155 <li>Объясним, как договориться с работодателем</li>
140 <li>Сообщим стоимость обучения и варианты оплаты</li>
156 <li>Сообщим стоимость обучения и варианты оплаты</li>
141 <li>Ответим на вопросы</li>
157 <li>Ответим на вопросы</li>
142 <li>Предоставим шаблон договора и счёт на оплату</li>
158 <li>Предоставим шаблон договора и счёт на оплату</li>
143 </ul><h2>Отзывы</h2>
159 </ul><h2>Отзывы</h2>
144 <p>Последнее моё место работы - инженер-программист в концерне "Телематика". Имею достаточно широкий опыт в разработке ПО для программно-аппаратных устройств, а также участие в построении архитектуры разрабатываемых систем. В этом году я решил углубить свои познания в разработке драйверов устройств для ОС "Linux", собственно, ради этого я и выбрал этот курс. Скажу, что нисколько не жалел потраченного времени и денег, хочу выразить признательность преподавателям-авторам этого курса. Главное его преимущество - это возможность учиться у действующих практикующих разработчиков модулей ядра, это очень ценно. Понравилась в Отусе также и гибкость расписания, возможность просмотра записей лекций при отсутствии возможности очного присутствия. Касаемо собственно курса: мог бы посоветовать при его доработке для будущих потоков добавить больше иллюстративных материалов и поработать над доступностью изложения. Касаемо результатов обучения, я не питаю никаких иллюзий относительно трудоустройства и понимаю, что в случае смены своей специальности и при переквалификации в разработчики ядра мне только предстоит освоить огромный пласт информации, набраться опыта, и т.п. Никакой курс не сможет меня обучить на супер-пупер-разработчика, все нужно постигать своим умом и трудом. Но понять направление, куда двигаться, мне удалось.</p>
160 <p>Последнее моё место работы - инженер-программист в концерне "Телематика". Имею достаточно широкий опыт в разработке ПО для программно-аппаратных устройств, а также участие в построении архитектуры разрабатываемых систем. В этом году я решил углубить свои познания в разработке драйверов устройств для ОС "Linux", собственно, ради этого я и выбрал этот курс. Скажу, что нисколько не жалел потраченного времени и денег, хочу выразить признательность преподавателям-авторам этого курса. Главное его преимущество - это возможность учиться у действующих практикующих разработчиков модулей ядра, это очень ценно. Понравилась в Отусе также и гибкость расписания, возможность просмотра записей лекций при отсутствии возможности очного присутствия. Касаемо собственно курса: мог бы посоветовать при его доработке для будущих потоков добавить больше иллюстративных материалов и поработать над доступностью изложения. Касаемо результатов обучения, я не питаю никаких иллюзий относительно трудоустройства и понимаю, что в случае смены своей специальности и при переквалификации в разработчики ядра мне только предстоит освоить огромный пласт информации, набраться опыта, и т.п. Никакой курс не сможет меня обучить на супер-пупер-разработчика, все нужно постигать своим умом и трудом. Но понять направление, куда двигаться, мне удалось.</p>
145 <p>Я занимался разработкой программ на языке Си (userspace), работаю над балансировщиком трафика. Я выбрал этот курс, так как хотел расширить свои знания в области kernelspace. Курс мне в целом понравился. Обучение мне дало систематизацию знаний в области ядра linux.</p>
161 <p>Я занимался разработкой программ на языке Си (userspace), работаю над балансировщиком трафика. Я выбрал этот курс, так как хотел расширить свои знания в области kernelspace. Курс мне в целом понравился. Обучение мне дало систематизацию знаний в области ядра linux.</p>
146 <p>Ринат Гадельшин</p>
162 <p>Ринат Гадельшин</p>
147 <p>14.10.2025</p>
163 <p>14.10.2025</p>
148 <p>Курс мне понравился. Денег своих точно стоит. Уложил в моей голове базовые концепции кода ядра (контейнеры, kthread, память, ну и вообще про драйвера). Вероятно совсем новеньким в Linux будет тяжело, т.к. если каждую тему до конца разжёвывать, то надо курс в разы по времени увеличивать (возможно стоит разбить курс на несколько). Отдельное спасибо за лекцию с отладкой ядра!</p>
164 <p>Курс мне понравился. Денег своих точно стоит. Уложил в моей голове базовые концепции кода ядра (контейнеры, kthread, память, ну и вообще про драйвера). Вероятно совсем новеньким в Linux будет тяжело, т.к. если каждую тему до конца разжёвывать, то надо курс в разы по времени увеличивать (возможно стоит разбить курс на несколько). Отдельное спасибо за лекцию с отладкой ядра!</p>
149 <h2>Подтверждение знаний и навыков</h2>
165 <h2>Подтверждение знаний и навыков</h2>
150 <p>OTUS осуществляет лицензированную образовательную деятельность. В конце прохождения специализации вы получите сертификат OTUS и официальный диплом о получении новой специальности</p>
166 <p>OTUS осуществляет лицензированную образовательную деятельность. В конце прохождения специализации вы получите сертификат OTUS и официальный диплом о получении новой специальности</p>
151 <h2>После обучения вы:</h2>
167 <h2>После обучения вы:</h2>
152 <ul><li>Получите материалы по пройденным занятиям (видеозаписи курса и дoполнительные материалы)</li>
168 <ul><li>Получите материалы по пройденным занятиям (видеозаписи курса и дoполнительные материалы)</li>
153 <li>Создадите свой проект, который поможет при прохождении собеседований</li>
169 <li>Создадите свой проект, который поможет при прохождении собеседований</li>
154 <li>Повысите свою ценность и конкурентоспособность как IT-специалист</li>
170 <li>Повысите свою ценность и конкурентоспособность как IT-специалист</li>
155 <li>Получите сертификат об окончании курса</li>
171 <li>Получите сертификат об окончании курса</li>
156 </ul><h2>Разработка ядра Linux</h2>
172 </ul><h2>Разработка ядра Linux</h2>
157 <p>Доступные способы оплаты. Стоимость указана для оплаты физическими лицами</p>
173 <p>Доступные способы оплаты. Стоимость указана для оплаты физическими лицами</p>
158 <p>Верните с помощью налогового вычета до 13% стоимости обучения.</p>
174 <p>Верните с помощью налогового вычета до 13% стоимости обучения.</p>
159 <p>Пройдите тестирование и менеджер вас проконсультирует</p>
175 <p>Пройдите тестирование и менеджер вас проконсультирует</p>
160 - <p>Запишитесь сегодня</p>
176 + <p>Пройдите тестирование</p>
161 - <p>Старт занятий 16 апреля</p>
177 + <p>Старт занятий 30 апреля</p>
 
178 + <p>Доступные способы оплаты. Стоимость указана для оплаты физическими лицами</p>
 
179 + <p>Верните с помощью налогового вычета до 13% стоимости обучения.</p>
 
180 + <p>Пройдите тестирование и менеджер вас проконсультирует</p>
162 <h2>Частые вопросы</h2>
181 <h2>Частые вопросы</h2>
163 <h5>Что, если в середине курса я не смогу продолжать обучение?</h5>
182 <h5>Что, если в середине курса я не смогу продолжать обучение?</h5>
164 <p>У вас есть право одного бесплатного трансфера в другую группу</p>
183 <p>У вас есть право одного бесплатного трансфера в другую группу</p>
165 <h5>Обязательно ли защищать выпускной проект?</h5>
184 <h5>Обязательно ли защищать выпускной проект?</h5>
166 <p>Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.</p>
185 <p>Для получения сертификата OTUS необходимо сдать проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.</p>
167 <h5>Я могу вернуть деньги?</h5>
186 <h5>Я могу вернуть деньги?</h5>
168 <p>Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.</p>
187 <p>Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.</p>