- Сообщения
- Монеты
- 0.0
- Оплачено
- 10
- Купоны
- 0
- Кешбэк
- 0
- Баллы
- 0
- @Skladchiki
- #1
Складчина: [ИнженеркаТех] Разработка на C под Linux. Системный разработчик. Тариф Самостоятельный (Игорь Седых, Глеб Коробейников)
- Ссылка на картинку
-
Файл в Linux можно отобразить в память и организовать совместный доступ к нему. На курсе вы разберётесь, как применять этот механизм в программах на C и управлять системными ресурсами.
Курс охватывает ключевые аспекты разработки под Linux, в том числе компиляцию, работу с файловой системой, межпроцессное взаимодействие, многопоточность, сигналы, сокеты и создание демонов. Студенты научатся разрабатывать эффективные и безопасные приложения для Linux, используя системные вызовы и механизмы ОС.
Для кого курс разработки на C под Linux и чем он будет полезен?
Объясняют просто, учат на кейсах, делают обучение понятным и интересным.
Бесплатная часть:
Основы разработки в Linux:
В этом уроке узнаете:
Статические и динамические библиотеки в Linux:
В этом уроке узнаете:
Переменные окружения и низкоуровневый ввод-вывод:
На этом занятии вы разберете, как в Linux работают переменные окружения и низкоуровневый ввод-вывод:
Спойлер: Часто задаваемые вопросы
1. Сколько длится обучение?
Среднее время прохождения курса составляет 3 месяца.
Программа:
Основы разработки в Linux:
Авторы:
Игорь Седых
Курс охватывает ключевые аспекты разработки под 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
- Отличие сигналов от других механизмов межпроцессного взаимодействия
- Обработка сигналов
- Зомби-процессы, причины возникновения и способы их устранения
- Потоки и процессы
- Специфика построения многопоточных приложений
- Досрочное завершение потока
- Создание обработчика завершения потока
- Средства синхронизации потоков, мьютексы
- Атрибуты потоков
- Отличие демона от консольной утилиты
- Специфика разработки демонов
- Создание демона, использующего сетевые сокеты
- Специфика разработки консольных приложений
- Предотвращение перенаправления вывода
- Управление терминалом
- Сокрытие пароля пользователя при аутентификации
- Отображение обычного файла
- Совместный доступ к файлу
- Частные отображения
- Другие применения mmap
- Видеозаписи и домашние задания
- Расшифровки лекций
Авторы:
Игорь Седых
- Старший преподаватель института интеллектуальных кибернетических систем НИЯУ МИФИ
- Профессионально преподает с 2010 года
- Имеет большой опыт коммерческой разработки инженерного программного обеспечения в области нанотехнологий, включая проекты для корпорации LSI
- Автор множества специализированных программ для работы с компьютерной графикой и базами данных
- Преподает разработку и направления, связанные с Linux, и обучил более 6000 студентов
- Среди его выпускников сотрудники таких известных организаций, как ОАО «Концерн ПВО «Алмаз – Антей», ОАО «Московский вертолетный завод им. М. Л. Миля», Департамент культурного наследия города Москвы, ОАО «Компания «Сухой» и других
- Автор методических пособий, включая курс «Основы программирования и баз данных»
- Senior Разработчик под Linux, AstraLinux
- Более 5 лет разработчик ядра Linux
- Работал в компаниях: Raidix, yadro, sbertech
- Контрибьютор в ядро Linux
- Teхстек: C, bash и инструменты для отладки ядерного кода таких как kmemleak, Kasan, kgdb, ftrace, eBPF
- Опыт с архитектурой amd64, архитектурой современных операционных систем
- Видеолекции в записи
- Домашние задания
- Расшифровки лекций
Показать больше
Зарегистрируйтесь
, чтобы посмотреть авторский контент.