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