Программирование в Linux на C\С++
LPI-301
Операционная система Linux давно занимает лидирующие позиции в программном обеспечении суперкомпьютеров, она занимает второе место в сегменте интернет-серверов и стремительно набирает популярность в корпоративном сегменте. Этому способствуют главные преимущества Linux по сравнению с коммерческими операционными системами — высокая экономическая эффективность, мобильность, гибкость, оптимальные условия для установки СУБД.
На нашем курсе «Программирование в Linux на C/C++» Вы получите знания и навыки, необходимые для разработки программного обеспечения для стремительно набирающей популярность операционной системы Linux. Вы станете понимать процесс сборки ПО и специфики компилятора C из состава GCC. Вы научитесь разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики. Вы узнаете, кто такие «демоны» и в чем их отличие от прикладного программного обеспечения.
Обучение на курсе Linux проводится на примере популярнейшего дистрибутива Ubuntu. Однако после обучения в нашем Центре Вы легко сможете работать с любым дистрибутивом Linux: Debian, Mandriva, Red Hat, Mint, Alt Linux, Open SUSE, и многие другие.
Аудитория
Этот курс предназначен для специалистов, обладающих базовыми навыками работы с Linux и знаниями языка C\C++, желающих расширить свои знания в программировании в ОС Linux.
Предварительный уровень подготовки
- Хорошее знание языка C\C++;
- Базовые знания ОС Linux, файловой системы, работа с командной строкой;
- Базовые знания английского языка, чтение технической документации.
Результат обучения
По окончании обучения слушатели смогут:
- Понимать процесс сборки ПО и специфики компилятора C из состава GCC;
- Использовать функции файлового ввода-вывода;
- Разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики;
- Использовать механизмы обеспечения многозадачности и межпроцессного взаимодействия;
- Создавать демонов, понимать различия между демонами и прикладным ПО;
- Понимать специфику консольного ввода-вывода и уметь ее использовать.
Программа курса
Часть 1. Введение.
1. Сборка программ в GNU/Linux;
2. Знакомство с API (интерфейс прикладного программирования) ОС Linux;
3. Работа со статическими библиотеками;
4. Работа с переменными окружения.
Часть 2. Низкоуровневый ввод-вывод и файловые операции.
5. Обзор механизмов ввода-вывода в ОС Linux;
6. Файлы, файловые дескрипторы;
7. Системные вызовы:для работы с файловой системой;
8. Файловая система proc;
9. Разреженные файлы и специфика их применения;
10. Блокировка областей файла.
Часть 3. Процессы и потоки.
11. Процессы, диаграмма процессов;
12. Создание и управление процессами;
13. Потоки и процессы, атрибуты потоков;
14. Построение многопоточных приложений;
15. Примитивы синхронизации потоков.
Часть 4. Межпроцессное взаимодействие.
16. Межпроцессное взаимодействие в Linux;
17. Каналы;
18. Сообщения (message queue);
19. Разделяемая память (shared memory);
20. Сокеты;
21. Сигналы;
22. Отображаемая память.
Часть 5. Типы приложений в ОС Linux.
23. Консольный ввод-вывод;
24. Демоны, фоновые приложения;
25. Библиотеки и модули;
26. Специфика разработки 64-битных приложений;
27. Программирование графического интерфейса с помощью библиотеки GTK+ или QT.