Программирование в Linux на C/C++ [2022]
Академия Информационных Систем (АИС)
Сергей Боронин
Приобретаемые навыки:
- Понимание процесса сборки ПО и специфики компилятора C/C++ из состава GCC
- Умение разрабатывать и использовать разделяемые библиотеки
- Навыки по использованию функций файлового ввода-вывода
- Понимание механизмов обеспечения многозадачности и межпроцессного
- Навыки по использованию файловых и сетевых сокетов
- Понимание механизма сигналов и навыки по его использованию
- Знание различий между процессами и потоками, использование многопоточности
8. Навыки по созданию демонов, понимание различий между демонами и
прикладным ПО
- Понимание специфики консольного ввода-вывода и умение ее использовать
- Понимание специфики отображаемых в память файлов и умение их использовать
1. Курс рассчитан на программистов, окончивших курс «Программирование на языке C/C+» или имеющих эквивалентную подготовку.
Модуль 1 - Введение
- Ознакомление со спецификой сборки ПО в GNU/Linux
- Ознакомление с консольными текстовыми редакторами
- Ручная и автоматическая сборка ПО
- Модель Клиент-Интерфейс-Сервер (КИС)
- Статическая сборка библиотек
- Совместно используемые библиотеки
- Работа с переменными окружения
- Обзор механизмов ввода-вывода в Linux
- Файловые дескрипторы
- Системные вызовы: open, close, write, read и lseek
- Типы файлов
- Индексные дескрипторы и жесткие ссылки
- Права доступа к файлу
- Файловая система proc
- Два способа прочесть содержимое директории
- Разреженные файлы
- Блокировка областей файла
- Способы межпроцессного взаимодействия: каналы, сообщения, разделяемая память и семафоры
- Неименованные каналы
- Именованные каналы
- Сообщения
- Разделяемая память
- Семафоры
- Парные сокеты
- Сетевые сокеты
- Знакомство с сигналами
- Отличие сигналов от других механизмов межпроцессного взаимодействия
- Специфика обработки сигналов
- Клонирование процессов - fork()
- Замена исполняемого процесса - exec()
- Зомби - причины возникновения и способы их устранения
- Потоки и процессы
- Специфика построения многопоточных приложений
- Досрочное завершение потока
- Создание обработчика завершения потока
- Средства синхронизации потоков
- Атрибуты потоков
- Отличие демона от консольной утилиты
- Специфика разработки демонов
- Создание демона использующего сетевые сокеты
- Предотвращение перенаправления вывода
- Управление терминалом
- Сокрытие пароля пользователя при аутентификации
- Отображение обычного файла
- Совместный доступ к файлу
- Частные отображения
- Другие применения mmap
https://www.infosystems.ru/courses/avtorskie_unikalnye/ALSE-1608/