Linux (Ubuntu).Программирование в Linux на C/C++
UCP-300

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

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

Предварительный уровень подготовки

Требуемая подготовка:

  • Успешное окончание курса Программирование на языке C (Си) или эквивалентная подготовка.
  • Успешное окончание курса UCP-101. Администрирование Ubuntu или эквивалентная подготовка.
Результат обучения

По окончании курса слушатель будет уметь: 

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

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

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

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

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

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

  • Механизмы межпроцессного взаимодействия Linux (Ubuntu)
  • Неименованные каналы (pipes)
  • Именованные каналы (named pipes)
  • Сообщения (message queue)
  • Разделяемая память (shared memory)
  • Семафоры (semaphores)

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

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

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

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

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

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

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

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

Модуль 8. Потоки (продолжение)

  • Создание обработчика завершения потока
  • Средства синхронизации потоков (synchronize primitives)
  • Атрибуты потоков

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

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

Модуль 10. Консольный ввод-вывод

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

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

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

Модуль 12. Домашнее задание

  • Специфика разработки 64-битных приложений
  • Использование библиотеки ncurses
  • Программирование графического интерфейса с помощью GTK+

Ближайшие курсы

ROS-101 01.09 - 02.09.2025

Основы работы в РЕД ОС

Стоимость обучения в группе

17 000 ₽

Стоимость индивидуального обучения

26 000 ₽

Длительность

2 дня (16 ак. часов)

SQL-1 01.09 - 03.09.2025

Анализ данных на языке SQL

Стоимость обучения в группе

32 489 ₽

Стоимость индивидуального обучения

42 250 ₽

Длительность

24 ак. ч. (3 дня)

20779 01.09 - 03.09.2025

Анализ Данных с помощью Excel

Стоимость обучения в группе

29 050 ₽

Стоимость индивидуального обучения

45 400 ₽

Длительность

3 дня (24 ак. ч.)

IT-02 01.09 - 03.09.2025

Основы ITIL

Стоимость обучения в группе

31 750 ₽

Стоимость индивидуального обучения

60 500 ₽

Длительность

3 дня (24 ак. ч.)

Asterisk_2 01.09 - 03.09.2025

Продвинутый курс: Asterisk Корпоративная телефония

Стоимость обучения в группе

52 850 ₽

Стоимость индивидуального обучения

90 500 ₽

Длительность

3 дня (32 ак. ч.)

Компас-МП 01.09 - 04.09.2025

Компас 3D. Курс методики проектирования

Стоимость обучения в группе

42 900 ₽

Стоимость индивидуального обучения

55 770 ₽

Длительность

32 ак. ч. (4 дня)

WebU 01.09 - 04.09.2025

Юзабилити сайтов. Проектирование веб – интерфейсов

Стоимость обучения в группе

32 860 ₽

Стоимость индивидуального обучения

53 500 ₽

Длительность

4 дня (32 ак. ч.)

20764 01.09 - 05.09.2025

Администрирование инфраструктуры базы данных SQL

Стоимость обучения в группе

40 350 ₽

Стоимость индивидуального обучения

65 300 ₽

Длительность

5 дней (40 ак. ч.)

ICND 1 v3.0 01.09 - 05.09.2025

Использование сетевого оборудования Cisco (часть I) v3.0

Стоимость обучения в группе

51 035 ₽

Стоимость индивидуального обучения

85 000 ₽

Длительность

5 дней (40 ак. ч.)

РЕДОС-102 01.09 - 05.09.2025

Сетевое администрирование РЕД ОС

Стоимость обучения в группе

37 400 ₽

Стоимость индивидуального обучения

65 000 ₽

Длительность

5 дней (40 ак. ч.)

Agile/Scrum 02.09 - 03.09.2025

Гибкие методологии управления проектами (Agile/Scrum).

Стоимость обучения в группе

35 000 ₽

Стоимость индивидуального обучения

58 500 ₽

Длительность

2 дня (16 ак. ч.)

СПром_видео 02.09 - 03.09.2025

Установка и настройка систем промышленного видеонаблюдения. Базовый курс

Стоимость обучения в группе

46 200 ₽

Стоимость индивидуального обучения

65 600 ₽

Длительность

2 дня (20 ак. часов)

132_1 08.09 - 09.09.2025

Макросы в Excel: практическое программирование. Уровень I.

Стоимость обучения в группе

24 995 ₽

Стоимость индивидуального обучения

38 600 ₽

Длительность

2 дня (16 ак. ч.)

55160 08.09 - 10.09.2025

Microsoft Excel 2016 Уровень 2. Расширенный

Стоимость обучения в группе

17 595 ₽

Стоимость индивидуального обучения

23 500 ₽

Длительность

3 дня (24 ак. ч.)

Or12c_SQLI 08.09 - 10.09.2025

Основы БД Oracle 12c: SQL часть I

Стоимость обучения в группе

38 700 ₽

Стоимость индивидуального обучения

58 500 ₽

Длительность

3 дня (24 ак. ч.)

Or11g_SQLI 08.09 - 10.09.2025

Основы БД Oracle 11g: SQL часть I

Стоимость обучения в группе

38 700 ₽

Стоимость индивидуального обучения

58 500 ₽

Длительность

3 дня (24 ак. ч.)

10987 08.09 - 11.09.2025

Настройка производительности и оптимизации баз данных SQL

Стоимость обучения в группе

38 100 ₽

Стоимость индивидуального обучения

55 500 ₽

Длительность

4 дня (32 ак. ч.)

VM2 v.8.0/7.0/6.5 08.09 - 12.09.2025

Продвинутый курс по оптимизации и решению проблем виртуальных сред VMware vSphere

Стоимость обучения в группе

77 600 ₽

Стоимость индивидуального обучения

115 000 ₽

Длительность

5 дней (40 ак. ч.)

Python-1 08.09 - 12.09.2025

Основы программирования Python. Уровень 1.

Стоимость обучения в группе

34 050 ₽

Стоимость индивидуального обучения

55 500 ₽

Длительность

5 дней (40 ак. ч.)

ROS-103 08.09 - 12.09.2025

Расширенное администрирование РЕД ОС

Стоимость обучения в группе

37 400 ₽

Стоимость индивидуального обучения

50 000 ₽

Длительность

5 дней (40 ак. ч.)

Or12c_SQLк 08.09 - 12.09.2025

Основы БД Oracle 12c: SQL- комплексная программа

Стоимость обучения в группе

62 300 ₽

Стоимость индивидуального обучения

106 000 ₽

Длительность

5 дней (40 ак. ч.)

Or11g_SQLк 08.09 - 12.09.2025

Основы БД Oracle 11g: SQL- комплексная программа

Стоимость обучения в группе

62 300 ₽

Стоимость индивидуального обучения

104 000 ₽

Длительность

5 дней (40 ак. ч.)

ICND 2 v3.0 08.09 - 12.09.2025

Использование сетевого оборудования Cisco (часть II) v3.0

Стоимость обучения в группе

51 035 ₽

Стоимость индивидуального обучения

85 000 ₽

Длительность

5 дней (40 ак. ч.)

MD-100T00 08.09 - 12.09.2025

Windows 10

Стоимость обучения в группе

45 550 ₽

Стоимость индивидуального обучения

65 500 ₽

Длительность

5 дней (40 ак. ч.)

РЕДОС-103 08.09 - 12.09.2025

Расширенное администрирование РЕД ОС

Стоимость обучения в группе

37 400 ₽

Стоимость индивидуального обучения

65 000 ₽

Длительность

5 дней (40 ак. часов)

ME_Mid 08.09 - 12.09.2025

Microsoft Excel Middle. Автоматизация рутинных процессов

Стоимость обучения в группе

26 500 ₽

Стоимость индивидуального обучения

35 000 ₽

Длительность

40 ак.ч. (5 дней)

132_2 10.09 - 12.09.2025

Макросы в Excel: практическое программирование. Уровень II.

Стоимость обучения в группе

32 500 ₽

Стоимость индивидуального обучения

48 600 ₽

Длительность

3 дня (24 ак. ч.)

55166 11.09 - 12.09.2025

Microsoft Excel 2016. Уровень 2

Стоимость обучения в группе

14 405 ₽

Стоимость индивидуального обучения

18 650 ₽

Длительность

2 дня (16 ак. ч.)

Or12c_SQLII 11.09 - 12.09.2025

Основы БД Oracle 12c: SQL часть II

Стоимость обучения в группе

26 550 ₽

Стоимость индивидуального обучения

48 500 ₽

Длительность

2 дня (16 ак. ч.)

Or11g_SQLII 11.09 - 12.09.2025

Основы БД Oracle 11g: SQL часть II

Стоимость обучения в группе

26 550 ₽

Стоимость индивидуального обучения

48 500 ₽

Длительность

2 дня (16 ак. ч.)

55270 15.09 - 15.09.2025

Microsoft Excel 2019. Уровень 3

Стоимость обучения в группе

8 070 ₽

Стоимость индивидуального обучения

15 450 ₽

Длительность

1 день (8 ак. ч.)

55167 15.09 - 16.09.2025

Microsoft Excel 2016. Уровень 3

Стоимость обучения в группе

16 000 ₽

Стоимость индивидуального обучения

19 000 ₽

Длительность

2 дня (16 ак. ч.)

АС1 15.09 - 17.09.2025

AutoCAD: уровень I. Основы проектирования

Стоимость обучения в группе

36 385 ₽

Стоимость индивидуального обучения

50 000 ₽

Длительность

3 дня (24 ак. ч.)

20762 15.09 - 19.09.2025

Разработка баз данных SQL

Стоимость обучения в группе

40 350 ₽

Стоимость индивидуального обучения

65 300 ₽

Длительность

5 дней (40 ак. ч.)

ДИТ 15.09 - 19.09.2025

Директор по ИТ

Стоимость обучения в группе

80 650 ₽

Стоимость индивидуального обучения

105 000 ₽

Длительность

5 дней (40 ак. часов)

Python-2 15.09 - 19.09.2025

Продвинутое программирование Python. Уровень 2.

Стоимость обучения в группе

34 050 ₽

Стоимость индивидуального обучения

58 500 ₽

Длительность

5 дней (40 ак. ч.)

10969 15.09 - 19.09.2025

Cлужбы Active Directory в Windows Server 2012 R2

Стоимость обучения в группе

38 700 ₽

Стоимость индивидуального обучения

65 000 ₽

Длительность

5 дней (40 ак. ч.)

Р7_П 22.09 - 25.09.2025

Офис-Р7. Полный

Стоимость обучения в группе

18 480 ₽

Стоимость индивидуального обучения

27 500 ₽

Длительность

4 дня (32 ак. часа)

VM1 v.8.0/7.0/6.5 22.09 - 26.09.2025

Построение виртуальной инфраструктуры с помощью VMware ESXi 8.0/7.0/6.5 и VMware vCenter Server 8.0/7.0/6.5

Стоимость обучения в группе

75 930 ₽

Стоимость индивидуального обучения

105 000 ₽

Длительность

5 дней (40 ак. ч.)

Or12c_DBA 22.09 - 26.09.2025

Administration Workshop

Стоимость обучения в группе

81 400 ₽

Стоимость индивидуального обучения

136 600 ₽

Длительность

5 дней (40 ак. ч.)

Or12c_DBA1 22.09 - 26.09.2025

Администрирование Oracle 12c. Часть I.

Стоимость обучения в группе

57 900 ₽

Стоимость индивидуального обучения

98 500 ₽

Длительность

5 дней (40 ак. ч.)

Or11g_DBAI 22.09 - 26.09.2025

Администрирование Oracle 11g. Часть I

Стоимость обучения в группе

57 900 ₽

Стоимость индивидуального обучения

80 500 ₽

Длительность

5 дней (40 ак. ч.)

20761 22.09 - 26.09.2025

Запрос данных с использованием Transact SQL

Стоимость обучения в группе

40 350 ₽

Стоимость индивидуального обучения

65 300 ₽

Длительность

5 дней (40 ак. ч.)

HCIA_DC 22.09 - 03.10.2025

Курс подготовки специалиста Huawei по технологиям и оборудованию передачи данных. Базовый уровень.

Стоимость обучения в группе

136 400 ₽

Стоимость индивидуального обучения

155 000 ₽

Длительность

80 ак. ч.