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+
Рекомендуемые курсы
Дополнительно

Курс читают тренер-практик с опытом проведения курсов и практическими знаниями в работе программы. 

Для получения более подробной информации о наших преподавателях свяжитесь с нами по тел. (343) 227-30-37, по эл.почте edu@unit-edu.ru или в нашем Online-чате.

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

PG_DEV1 12.07 - 15.07.2027

Разработка серверной части приложений PostgreSQL 16. Базовый курс

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

43 800 ₽

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

60 000 ₽

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

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

PG_DBA1 13.07 - 15.07.2026

Администрирование PostgreSQL 16. Базовый курс

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

32 900 ₽

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

50 000 ₽

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

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

PG_DEV1 13.07 - 16.07.2026

Разработка серверной части приложений PostgreSQL 16. Базовый курс

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

43 800 ₽

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

60 000 ₽

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

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

VM_vSAN 8 13.07 - 16.07.2026

VMware vSAN: Установка, настройка и управление (версия 8)

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

75 000 ₽

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

107 200 ₽

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

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

20461 13.07 - 17.07.2026

Создание запросов к Microsoft SQL Server

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

43 200 ₽

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

72 050 ₽

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

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

20488 13.07 - 17.07.2026

Разработка основного функционала Microsoft SharePoint Server 2013

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

44 000 ₽

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

65 000 ₽

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

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

55201 13.07 - 17.07.2026

Microsoft Project Professional 2016. Управление проектами

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

42 550 ₽

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

80 850 ₽

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

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

WS-011T00 13.07 - 17.07.2026

Администрирование Windows Server 2019/2022

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

50 100 ₽

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

65 150 ₽

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

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

PGSQL_basics 20.07 - 24.07.2026

PostgreSQL уровень 1. Основы SQL

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

46 300 ₽

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

60 000 ₽

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

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

DevOps 20.07 - 24.07.2026

DevOps: Культура, автоматизация и ваш первый конвейер

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

43 800 ₽

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

57 000 ₽

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

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

МО_п 20.07 - 24.07.2026

Машинное обучение на практике. Практика внедрения CatBoost

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

45 800 ₽

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

60 000 ₽

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

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

БТ01 20.07 - 24.07.2026

Безопасность информационных технологий

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

60 400 ₽

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

105 000 ₽

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

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

ICND 1 v3.0 20.07 - 24.07.2026

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

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

66 500 ₽

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

93 500 ₽

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

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

20410 20.07 - 24.07.2026

Установка и настройка Windows Server 2012 R2

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

41 800 ₽

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

64 000 ₽

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

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

Юнит_Тренинг-6 27.07 - 28.07.2026

Развивающее наставничество

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

44 000 ₽

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

66 550 ₽

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

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

Тех.PQ 27.07 - 28.07.2026

Технология Power Query в Excel

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

20 300 ₽

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

37 400 ₽

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

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

SQL-1 27.07 - 29.07.2026

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

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

35 700 ₽

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

46 500 ₽

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

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

PG_ClickHouse 27.07 - 31.07.2026

Язык запросов SQL в базах данных Postgresql и ClickHouse

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

115 000 ₽

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

185 000 ₽

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

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

Python-N&D 27.07 - 31.07.2026

Расширенный курс по NGINX и Docker. Уровень 4

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

43 800 ₽

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

64 200 ₽

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

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

ITSC 27.07 - 31.07.2026

ИТ-департамент как сервисная компания

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

54 450 ₽

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

70 700 ₽

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

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

LPI-Zabbix 27.07 - 31.07.2026

Zabbix. Мониторинг IT инфраструктуры предприятия

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

50 400 ₽

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

65 550 ₽

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

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

HCIP_DC 27.07 - 07.08.2026

Внедрение ключевых технологий направления Datacom Huawei

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

150 000 ₽

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

190 000 ₽

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

80 ак. ч.

20465 03.08 - 05.08.2026

Проектирование решений на основе баз данных SQL Server 2014

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

35 000 ₽

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

53 350 ₽

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

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

10962 03.08 - 05.08.2026

Расширенные возможности по автоматизации администрирования с помощью Windows PowerShell

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

32 500 ₽

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

53 800 ₽

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

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

БТ17 03.08 - 07.08.2026

Расследование компьютерных инцидентов. Компьютерная криминалистика

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

52 250 ₽

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

80 190 ₽

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

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

Python-3 03.08 - 07.08.2026

Разработка веб - приложений в Django. Уровень 3.

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

53 400 ₽

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

105 300 ₽

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

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

20741 03.08 - 07.08.2026

Настройка сети в Windows Server 2016

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

43 000 ₽

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

55 900 ₽

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

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

20345-2-B 03.08 - 07.08.2026

Дизайн и развертывание Microsoft Exchange Server 2016/2019

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

45 100 ₽

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

65 000 ₽

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

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

55293 05.08 - 07.08.2026

SharePoint 2019 конечный пользователь (SharePoint End User 2019)

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

37 900 ₽

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

49 300 ₽

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

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

PG_DBA1 10.08 - 11.08.2026

Администрирование PostgreSQL 16. Базовый курс

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

32 900 ₽

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

50 000 ₽

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

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

БТ10 10.08 - 12.08.2026

Аудит информационной безопасности

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

40 000 ₽

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

64 000 ₽

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

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

Primavera 10.08 - 12.08.2026

Управление проектами с использованием Oracle Primavera

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

35 000 ₽

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

64 900 ₽

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

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

PG_DBA2 10.08 - 13.08.2026

Администрирование PostgreSQL. Настройка и мониторинг

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

43 800 ₽

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

60 000 ₽

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

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

PG_DEV2 10.08 - 13.08.2026

Разработка серверной части приложений PostgreSQL 16. Расширенный курс

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

43 800 ₽

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

60 000 ₽

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

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

Компас-СМ 10.08 - 13.08.2026

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

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

44 000 ₽

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

57 200 ₽

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

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

JV_Advanced 10.08 - 14.08.2026

Язык программирования Java. Создание приложений для работы с базами данных - технологии ORM (Hibernate, TopLink)

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

122 600 ₽

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

140 000 ₽

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

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

20411 10.08 - 14.08.2026

Администрирование Windows Server 2012 R2

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

41 800 ₽

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

64 000 ₽

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

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

10964 10.08 - 14.08.2026

Мониторинг ЦОД с System Center Operations Manager

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

41 650 ₽

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

68 000 ₽

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

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

FBD-102 10.08 - 14.08.2026

Сетевое администрирование FreeBSD

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

40 650 ₽

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

61 050 ₽

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

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