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

Операционная система Linux давно занимает лидирующие позиции в программном обеспечении суперкомпьютеров, она занимает второе место в сегменте интернет-серверов и стремительно набирает популярность в корпоративном сегменте. Этому способствуют главные преимущества Linux по сравнению с коммерческими операционными системами — высокая экономическая эффективность, мобильность, гибкость, оптимальные условия для установки СУБД.

На нашем курсе «Программирование в Linux на C/C++» Вы получите знания и навыки, необходимые для разработки программного обеспечения для стремительно набирающей популярность операционной системы Linux. Вы станете понимать процесс сборки ПО и специфики компилятора C из состава GCC. Вы научитесь разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики. Вы узнаете, кто такие «демоны» и в чем их отличие от прикладного программного обеспечения.

  Для кого:

Этот курс предназначен для специалистов, обладающих базовыми навыками работы с Linux и знаниями языка C\C++, желающих расширить свои знания в программировании в ОС Linux.

Что должен знать слушатель

  • Хорошее знание языка C\C++;
  • Базовые знания ОС Linux, файловой системы, работа с командной строкой;
  • Базовые знания английского языка, чтение технической документации.
 

Результаты обучения

  • Понимать процесс сборки ПО и специфики компилятора C из состава GCC;
  • Использовать функции файлового ввода-вывода;
  • Разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики;
  • Использовать механизмы обеспечения многозадачности и межпроцессного взаимодействия;
  • Создавать демонов, понимать различия между демонами и прикладным ПО;
  • Понимать специфику консольного ввода-вывода и уметь ее использовать.

Программа обучения

Модуль 1 Введение▼

  • 1.1 Сборка программ в GNU/Linux;
  • 1.2 Знакомство с API (интерфейс прикладного программирования) ОС Linux;
  • 1.3 Работа со статическими библиотеками;
  • 1.4 Работа с переменными окружения.

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

  • 2.1 Обзор механизмов ввода-вывода в ОС Linux;
  • 2.2 Файлы, файловые дескрипторы;
  • 2.3 Системные вызовы:для работы с файловой системой;
  • 2.4 Файловая система proc;
  • 2.5 Разреженные файлы и специфика их применения;
  • 2.6 Блокировка областей файла.

Модуль 3 Процессы и потоки▼

  • 3.1 Процессы, диаграмма процессов;
  • 3.2 Создание и управление процессами;
  • 3.3 Потоки и процессы, атрибуты потоков;
  • 3.4 Построение многопоточных приложений;
  • 3.5 Примитивы синхронизации потоков.

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

  • 4.1 Межпроцессное взаимодействие в Linux;
  • 4.2 Каналы;
  • 4.3 Сообщения (message queue);
  • 4.4 Разделяемая память (shared memory);
  • 4.5 Сокеты;
  • 4.6 Сигналы;
  • 4.7 Отображаемая память

Модуль 5 Типы приложений в ОС Linux▼

  • 5.1 Консольный ввод-вывод;
  • 5.2 Демоны, фоновые приложения;
  • 5.3 Библиотеки и модули;
  • 5.4 Специфика разработки 64-битных приложений;
  • 5.5 Программирование графического интерфейса с помощью библиотеки GTK+ или QT.