Фоновый баннер

Программирование в Linux на C/C++


03.07.2017

Цена: 20,800 

Продолжительность (дни/часы): 4/32

Подробнее о курсе

Цель курса
Дать базовые знания и навыки, необходимые для разработки программного обеспечения для стремительно набирающей популярность операционной системы Linux.

Получаемые знания и навыки

  • Понимание процесса сборки ПО и специфики компилятора C/C++ из состава GCC
  • Умение разрабатывать и использовать разделяемые библиотеки
  • Навыки по использованию функций файлового ввода-вывода
  • Понимание механизмов обеспечения многозадачности и межпроцессного взаимодействия и умение их использовать
  • Навыки по использованию файловых и сетевых сокетов
  • Понимание механизма сигналов и навыки по его использованию
  • знание различий между процессами и потоками, использование многопоточности и ее специфики
  • Навыки по созданию демонов, понимание различий между демонами и прикладным ПО
  • Понимание специфики консольного ввода-вывода и умение ее использовать
  • Понимание специфики отображаемых в память файлов и умение их использовать

Краткое содержание курса  
Модуль 1 — Введение

  • Ознакомление со спецификой сборки ПО в GNU/Linux
  • Ознакомление с консольными текстовыми редакторами
  • Ручная и автоматическая сборка ПО
  • Модель Клиент-Интерфейс-Сервер (КИС)
  • Статическая сборка библиотек
  • Совместно используемые библиотеки
  • Работа с переменными окружения

Модуль 2 — Низкоуровневый ввод-вывод и файловые операции

  • Обзор механизмов ввода-вывода в Linux
  • Файловые дескрипторы
  • Системные вызовы: open, close, write, read и lseek
  • Типы файлов
  • Индексные дескрипторы и жесткие ссылки
  • Права доступа к файлу
  • Файловая система proc
  • Два способа прочесть содержимое директории
  • Разреженные файлы
  • Блокировка областей файла

Модуль 3 — Межпроцессное взаимодействие

  • Способы межпроцессного взаимодействия: каналы, сообщения, разделяемая память и семафоры
  • Неименованные каналы
  • Именованные каналы
  • Сообщения
  • Разделяемая память
  • Семафоры

Модуль 4 — Сокеты

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

Модуль 5 — Сигналы

  • Знакомство с сигналами
  • Отличие сигналов от других механизмов межпроцессного взаимодействия
  • Специфика обработки сигналов

Модуль 6 — Процессы

  • Клонирование процессов — fork()
  • Замена исполняемого процесса — exec()
  • Зомби — причины возникновения и способы их устранения

Модуль 7 — Потоки

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

Модуль 8 — Демоны (службы)

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

Модуль 9 — Консольный ввод-вывод

  • Предотвращение перенаправления вывода
  • Управление терминалом
  • Сокрытие пароля пользователя при аутентификации

Модуль 10 — Отображаемая память

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

Отзывы по курсу