Разработка на C под Linux (Системный разработчик) [Тариф Самостоятельный] [ИнженеркаТех] [Игорь Седых, Глеб Коробейников]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
155.824
Реакции
80.258
Складчина: Разработка на C под Linux (Системный разработчик) [Тариф Самостоятельный] [ИнженеркаТех] [Игорь Седых, Глеб Коробейников]



Файл в Linux можно отобразить в память и организовать совместный доступ к нему. На курсе вы разберётесь, как применять этот механизм в программах на C и управлять системными ресурсами.

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

Для кого курс разработки на C под Linux и чем он будет полезен?

Разработчики C/C++
До курса.
Имеют базовые знания о Linux и C/C++, но не владеют техниками оптимизации, взаимодействия процессов и потоков, работы с памятью.
После курса.
Способны разрабатывать эффективные и оптимизированные сервисы, управлять ресурсами системы, использовать сокеты, отображаемую память и синхронизацию потоков
Инженеры встраиваемых и высоконагруженных систем
До курса.
Умеют писать код на C/C++, но не понимают, как работают системные вызовы и потоки, как происходит взаимодействие процессов и управление памятью в Linux.
После курса.
Уверенно пишут системные приложения, используют межпроцессное взаимодействие, многопоточность и сигналы, работают с файловой системой и могут разрабатывать демоны
Программисты, изучающие системные механизмы и взаимодействие процессов в Linux
До курса.
Знают базовые команды Linux, но не понимают, как устроены механизмы работы с файлами, процессами, сигналами и IPC.
После курса.
Разбираются в низкоуровневом взаимодействии с ОС, могут писать сложные серверные приложения и разрабатывать производительные многопоточные программы
Как проходит обучение?

В формате видеолекций в записи с преподавателем и домашними заданиями
Записи лекции с расшифровкой
В каждом курсе –живые примеры, реальный опыт авторов и немного самоиронии.
Объясняют просто, учат на кейсах, делают обучение понятным и интересным.

Бесплатная часть:

Основы разработки в Linux:

В этом уроке узнаете:

Как устроена компиляция и сборка проектов
Познакомитесь с редакторами и инструментами Linux
Напишете и собрете проект из одного и двух C-файлов
Разберетесь с Makefile и объектными файлами
Узнатете, как анализировать бинарники через nm и cat
+ домашнее задание

Статические и динамические библиотеки в Linux:

В этом уроке узнаете:

Модель KISS (клиент-интерфейс-сервер) и роль заголовочных файлов как интерфейса между main и библиотеками
Научитесь собирать статические библиотеки с помощью утилиты ar и подключать их через Makefile
Разберетесьь с назначением флага -fPIC и сборкой динамических библиотек (.so)
Выясните, как работает линковка и зачем нужны ключи -l, -L, -Wl,rpath
Сравните плюсы и минусы статической и динамической компоновки: автономность, объем, производительность, необходимость пересборки
Освоите навык оформления заголовочных файлов с защитой от повторного подключения (ifndef, define, endif)
+ домашнее задание

Переменные окружения и низкоуровневый ввод-вывод:

На этом занятии вы разберете, как в Linux работают переменные окружения и низкоуровневый ввод-вывод:

Изучите переменные окружения: environ, getenv, setenv, putenv, unsetenv
Научитесь читать и записывать данные через системные вызовы open, read, write, close, lseek
Познакомитесь с файловыми дескрипторами и стандартными потоками (0, 1, 2)
Сравните поэффективности побайтовое и блочное чтение


Спойлер: Часто задаваемые вопросы
1. Сколько длится обучение?

Среднее время прохождения курса составляет 3 месяца.

Программа:

Основы разработки в Linux:

Компиляция и сборка программ в Linux, ручная и автоматическая сборка с использованием Makefile
Модель "Клиент-Интерфейс-Сервер"
Статическая сборка библиотек
Совместно используемые библиотеки (динамические библиотеки в Linux)
Работа с переменными окружения
Межпроцессное взаимодействие:

Клонирование процессов
Замена исполняемого процесса
Неименованные каналы
Именованные каналы
Очереди сообщений
Совместно используемая память
Семафоры
Сокеты:

Сокеты в файловом пространстве имен (UNIX-сокеты)
Парные сокеты
Сетевые сокеты
Сигналы:

Устройство и применение сигналов в Linux
Отличие сигналов от других механизмов межпроцессного взаимодействия
Обработка сигналов
Зомби-процессы, причины возникновения и способы их устранения
Потоки:

Потоки и процессы
Специфика построения многопоточных приложений
Досрочное завершение потока
Создание обработчика завершения потока
Средства синхронизации потоков, мьютексы
Атрибуты потоков
Демоны:

Отличие демона от консольной утилиты
Специфика разработки демонов
Создание демона, использующего сетевые сокеты
Консольный ввод-вывод и GTK:

Специфика разработки консольных приложений
Предотвращение перенаправления вывода
Управление терминалом
Сокрытие пароля пользователя при аутентификации
Отображаемая память:

Отображение обычного файла
Совместный доступ к файлу
Частные отображения
Другие применения mmap
Что получите:

Видеозаписи и домашние задания
Расшифровки лекций
Для самостоятельной отработки материала

Авторы:





Игорь Седых

Старший преподаватель института интеллектуальных кибернетических систем НИЯУ МИФИ
Профессионально преподает с 2010 года
Имеет большой опыт коммерческой разработки инженерного программного обеспечения в области нанотехнологий, включая проекты для корпорации LSI
Автор множества специализированных программ для работы с компьютерной графикой и базами данных
Преподает разработку и направления, связанные с Linux, и обучил более 6000 студентов
Среди его выпускников сотрудники таких известных организаций, как ОАО «Концерн ПВО «Алмаз – Антей», ОАО «Московский вертолетный завод им. М. Л. Миля», Департамент культурного наследия города Москвы, ОАО «Компания «Сухой» и других
Автор методических пособий, включая курс «Основы программирования и баз данных»
Глеб Коробейников

Senior Разработчик под Linux, AstraLinux
Более 5 лет разработчик ядра Linux
Работал в компаниях: Raidix, yadro, sbertech
Контрибьютор в ядро Linux
Teхстек: C, bash и инструменты для отладки ядерного кода таких как kmemleak, Kasan, kgdb, ftrace, eBPF
Опыт с архитектурой amd64, архитектурой современных операционных систем
Тариф Самостоятельный

Видеолекции в записи
Домашние задания
Расшифровки лекций
Старт 13 ноября

Цена 35000 руб.




СКАЧАТЬ СЛИВЫ КУРСОВ
 

Возможно, Вас ещё заинтересует: