0Корзина Закладки0
OTUS - Глеб Коробейников, Алексей Иванов → Разработка ядра Linux

OTUS - Глеб Коробейников, Алексей Иванов → Разработка ядра Linux

OTUS

Облако Mail
✅ Лучшее качество
О версии курса

Материал без водяных знаков.

169,00 ₽

Пришлите ссылку — проверим предложение и ответим на почту.

Артикул: 14973
Подробности о материале
Артикул: 14973 В наличии Автор курса: OTUS Категория: Программирование / DevOps и администрирование Дата выхода: 2025 Продажник от автора: Перейти
Для кого этот курс:
  • Системные администраторов и DevOps-инженеров, которые хотят улучшить навыки для решения сложных задач, связанных с оптимизацией и настройкой серверов.
  • Программистов, желающих перейти в системное программирование, но не понимающих как и с чего начать заниматься системным программированием и разрабатывать модули для ядра.
  • Инженеров по безопасности информационных систем, сосредоточенных на тестировании и анализе уязвимостей, которые сталкиваются со сложностями в быстром реагировании на уязвимости, возникающие в ядре, из-за недостатка практического опыта в его разработке и модификации
  • Разработчики на C, которым нужны углубленные знания о внутреннем устройстве операционной системы для написания более эффективного кода.
  • Системные программисты, у кого есть необходимость глубокого понимания внутренней архитектуры ОС для создания эффективного программного обеспечения
  • Разработчики embedded-систем, которые сталкивается с трудностями при необходимости создания драйверов и взаимодействия с аппаратным обеспечением
  • Системные администраторы с навыками программирования на C, которые часто сталкиваются с проблемами при настройке и отладке системы, для которых требуется знание ядра
Вы научитесь:
  • Разрабатывать и интегрировать собственные модули ядра: Напишут, соберут и запустят модули, а также смогут анализировать выводы отладки через dmesg
  • Владеть алгоритмами и структурами: Применят темы, изученные о структуре данных для решения реальных задач в проекте на ядре Linux
  • Реализовывать синхронизацию процессов и потоков: Используют различные примитивы синхронизации в собственных разработках
  • Анализировать и обрабатывать прерывания: Понимают, как работают обработчики прерываний и смогут их отлаживать
  • Управлять памятью в ядре: Разработают решения для эффективного управления памятью, включая использование аллокаторов и механизмов управления страницами
  • Участвовать в проектах на основе Linux: Подготовят себя к работе в команде на проектах, связанных с разработкой и поддержкой ядра Linux.
Необходимые знания:
  • Уметь работать в ОС Linux
  • Базовое знание Bash
  • Базовое знание Python
  • Уверенный уровень разработки на языках программирования C
  • Умение работать и подключаться к Виртуальной машине
Программа

Введение в разработку ядра Linux

В этом модуле вы рассмотрите общие сведения о ядре Linux, его сборке и установке."
Тема 1: Начальные сведения о ядре Linux
Тема 2: Компиляция и настройка ядра. Инструменты работы с ядром
Тема 3: Ядро Linux. Обзор ядра Linux и его архитектуры. Основные функции ядра // ДЗ
Тема 4: Q&A занятие по ДЗ

Модули ядра Linux
В этом модуле вы рассмотрите что такое модуль ядра; научитесь собирать, загружать и выгружать модули ядра."
Тема 1: Что такое модуль ядра Linux. Как его написать, собрать, запустить. Что такое буффер сообщений ядра (dmesg) // ДЗ
Тема 2: Q&A занятие по ДЗ

Структуры данных и алгоритмы в ядре Linux
В этом модуле вы рассмотрите базовые структуры данных и алгоритмы в ядре Linux."
Тема 1: Связанные списки в ядре Linux. Реальные примеры из кода ядра Linux
Тема 2: Очереди в ядре Linux. Реальные примеры из кода ядра Linux
Тема 3: Стеки в ядре Linux. Реальные примеры из кода ядра Linux
Тема 4: Деревья в ядре Linux (бинарные и красно-черные). Реальные примеры из кода ядра Linux
Тема 5: Битовые карты в ядре Linux. Реальные примеры из кода ядра Linux
Тема 6: Алгоритмы в ядре Linux. Бинарный поиск. Поиск с помощью двоичных деревьев. Хэширование // ДЗ
Тема 7: Q&A занятие по ДЗ

Управление процессами и потоками
В этом модуле вы рассмотрите процессы и потоки в ядре Linux; примитивы синхронизации и их реализацию; планировщики (CFS, EEVDF).
Тема 1: Что такое процесс в ядре Linux. Что такое поток в ядре Linux. API для работы с процессами и потоками
Тема 2: Синхронизация процессов и потоков и зачем это надо. Что такое spin блокировка, mutex, семафоры и др. примитивы синхронизации
Тема 3: Детально рассмотрим как работает Spinlock, Mutex, Semaphores. Deep diving в архитектурный код ядра, где реализованы эти примитивы. Разбираем RCU
Тема 4: Системный планировщик и диспетчеризация процессов в ядре. Планировщик CFS. Планировщик EEVDF // ДЗ
Тема 5: Q&A занятие по ДЗ

Прерывания. Обработчики прерываний. Cинхронизация в контексте прерываний. Виды Page Fault в Linux
В этом модуле вы рассмотрите прерывания и их обработка в ядре Linux; разновидности прерываний, разбор PF-ов; механизмы отложенного выполнения в ядре Linux"
Тема 1: Прерывания, дескрипторы прерываний, IDT и как это выглядит в ядре Linux
Тема 2: Top-half и Bottom-half обработчиков прерываний. Softirq, Tasklets, Workqueue
Тема 3: Что такое Page Fault. Какие виды PF бывают в Linux // ДЗ
Тема 4: Q&A занятие по ДЗ

Время в ядре Linux. Таймеры. Preemption многозадачность.
В этом модуле вы рассмотрите таймеры в ядре Linux и виды многозадачности, в частности preemption многозадачность; обобщите знания о прерываниях, таймерах, процессах и многозадачности. "
Тема 1: Как протекает время в ядре Linux. API таймеров
Тема 2: Что такое Preemption. Обобщаем работу с процессами и прерываниями // ДЗ
Тема 3: Q&A занятие по ДЗ

Управление RAM памятью
В этом модуле вы рассмотрите виртуальную и физическую память; аллокаторы SLAB и SLUB в ядре; способы эффективного выделения памяти под задачу."
Тема 1: Управление памятью в Linux. SLAB-аллокатор. SLUB-аллокатор. Плюсы и минусы этих аллокаторов. API для выделения памяти в ядре
Тема 2: Отличие физической памяти от виртуальной памяти. Page Table. Реализация pagging в ядре Linux
Тема 3: 3 (28) Ситуация когда нужно выделить заранее много памяти для объектов одинакового размера. Что такое kmem_cache. Что такое mempool // ДЗ
Тема 4: Q&A занятие по ДЗ

Устройства в Linux
В этом модуле вы изучите символьные и блочные устройства, виртуальные файловые системы и интерфейсы.
Тема 1: Символьные устройства
Тема 2: Блочные устройства
Тема 3: Взаимодействие с устройством через ioctl. Виртуальные файловые системы /proc, /sys, /dev. Общение через сокет netlink

Проектная работа
Заключительный месяц курса посвящён проектной работе. Проект – это самая интересная часть обучения. Вы будете разрабатывать его на основе полученных на курсе навыков и компетенций. В процессе работы над проектом можно получить консультацию преподавателей.
Тема 1: Выбор темы и организация проектной работы // Проект
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса

Что даст курс:
  • Основы разработки ядра: Понимание архитектуры и базовых компонентов ядра Linux, включая его функции и принципы работы
  • Создание и отладка модулей: Навыки разработки, компиляции и интеграции модулей ядра, а также работы с буфером сообщений ядра (dmesg)
  • Работа со структурами данных и алгоритмами: Освоение операций со сложными структурами данных, такими как связанные списки, очереди, стеки и деревья, с реальными примерами из кода ядра
  • Управление процессами и потоками: Понимание работы процессов и потоков в ядре, включая API и примитивы синхронизации (spin блокировки, mutex, семафоры)
  • Обработка прерываний: Освоение работы с прерываниями и их обработчиками в контексте ядра, включая аспекты синхронизации
  • Управление памятью: Знание методов управления физической и виртуальной памятью, включая различия между SLAB- и SLUB-аллокаторами и механизмами страниц.
Преподаватели:
- Коробейников Глеб
Astra Linux. Senior-разработчик ядра Linux
1 год в Otus
4 года опыта разработчиком в ядре Linux. Работал в таких фирмах как RAIDIX, YADRO, SBERTECH. Есть несколько багрепортов и коммитов в ядро Linux. Практический опыт базируется на знании языков C, bash и знании инструментов для отладки ядерного кода таких как kmemleak, KASAN, KGDB, ftrace, eBPF. Теоретический опыт базируется на знании архитектуры amd64, архитектуры современных операционых систем в том числе Linux.
Окончил ИГУ по специальности чистая математика.

- Алексей Иванов
ПАО "Яковлев" - филиал"ОАК". Инженер-программист
1 год в Otus
Занимаюсь разработкой и модернизацией PLM систем; Разработкой ПО для автоматизации обработки Конструкторско-технологической информации. В IT 3 года. Практический опыт базируется на знании языков С и С#.
Окончил ИГУ по направлению "Математика", и курс повышения квалификации "Программирование на C# Продвинутый уровень - часть 1" от Трайтек

ИСТОЧНИК

СКАЧАТЬ

Как выбрать версию «OTUS - Глеб Коробейников, Алексей Иванов → Разработка ядра Linux» на CoursX

Эта карточка относится к разделу «Программирование / DevOps и администрирование / OTUS». Материал подготовлен автором или школой OTUS. Дата выхода, указанная в каталоге: 2025. Начните с программы выше: проверьте темы, название тарифа и перечисленные дополнительные файлы.

Для этого варианта действует отметка «Лучшее качество»: материал представлен без водяных знаков. Комплектацию смотрите в программе.

Способ доступа: Облако Mail. Доступные действия с файлами зависят от их формата.

Актуальная сумма заказа показана рядом с кнопкой покупки.

Есть вопрос о курсе?

Уточните детали перед покупкой

Написать в поддержку
Помощь и отзывы

💬 Помощь перед покупкой

Хотите проверить материал?
Отправим дополнительные скриншоты, пример видео или запись содержимого курса.

💰 Нашли дешевле?
Пришлите ссылку на предложение — постараемся сделать цену ещё выгоднее.

⭐ Отзывы покупателей
Читать отзывы на сайте
Читать отзывы в Telegram

💬 Связаться с поддержкой
Написать в Telegram
admin@coursx.net

ПОКУПКА И ДОСТУП

Вопросы и ответы

Ответы перед покупкой и помощь с заказом

Как купить курс на CoursX?

Добавьте материал в корзину или нажмите «Купить». Укажите действующий e-mail и выберите доступный способ оплаты. После подтверждения платежа на эту почту придёт информация о заказе и доступе.

В одном заказе можно купить несколько материалов.

Что входит в курс и есть ли обратная связь?

Состав, версия и формат доступа указаны в карточке. Обычно это запись курса и сопутствующие файлы для самостоятельного обучения. Обратная связь автора не входит, если в описании не указано иное.

Если хотите уточнить содержимое до покупки, напишите в поддержку.

Где смотреть материалы и можно ли их скачать?

В этой карточке указан формат доступа: Облако Mail.

Ссылка или инструкция придёт после оплаты. Возможность просмотра онлайн и скачивания зависит от хранилища и формата файлов. Рекомендуем сохранить доступные материалы себе.

Оплата прошла, а письмо не пришло. Что делать?

Проверьте папки «Спам» и «Промоакции», а также адрес, указанный при покупке. Для авторизованного аккаунта проверьте раздел «Мои заказы».

Если доступа нет, отправьте в поддержку номер заказа, e-mail и подтверждение платежа — поможем найти покупку.

Как использовать бонусы?

Бонусы доступны в аккаунте. Размер начисления за этот курс указан рядом с покупкой. При оформлении заказа можно применить доступный бонусный баланс: 1 бонус соответствует 1 рублю.

Итоговую сумму и списание проверьте в корзине перед оплатой.

Как получить цену ниже?

Нажмите «Нашли дешевле?» рядом с ценой курса, пришлите ссылку, цену и e-mail. Мы сравним предложения и сообщим решение на почту. Если заявку одобрят, в письме будет персональная цена и срок её действия.

При покупке по персональной цене используйте почту из заявки.

Что делать, если ссылка на материал перестала работать?

Откройте покупку в разделе «Мои заказы». Если для неё доступен запрос обновления, отправьте его. Либо свяжитесь с поддержкой, указав номер заказа и название курса.

Где посмотреть условия возврата?

Условия описаны на странице «Условия возврата». Если возникла проблема с оплаченной покупкой, напишите в поддержку с номером заказа и описанием ситуации.

Главная » Программирование » OTUS - Глеб Коробейников, Алексей Иванов → Разработка ядра Linux