Linux. Уровень 2. Программирование в Linux на C [Специалист] [Игорь Седых]

Складчина: Linux. Уровень 2. Программирование в Linux на C [Специалист] [Игорь Седых]

2026-09-25_15-45-49.jpg

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

Обучение ведется на версии Linux Mint 22.3 «Zena»

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

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

В Центре «Специалист» обучение Linux проводится на примере популярнейшего дистрибутива Mint (версия Mint 22.3 «Zena»). Однако изучать Вы будете именно Linux, и после обучения в нашем Центре Вы легко сможете работать с любым дистрибутивом Linux: Debian (версия 12.), Red Hat (версия 9.), Mint (версия Mint 22.3 «Zena»), Alt Linux (версия 10.3), Open SUSE (версия 15.) и многие другие.

Программа курса соответствует требованиям профессионального стандарта «Программист».

Вы научитесь:

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

Специалисты, обладающие этими знаниями и навыками, в настоящее время крайне востребованы.

Обучение по мировым стандартам позволяет нашим выпускникам работать в ведущих компаниях России и других стран. Они делают успешную карьеру и пользуются уважением работодателей.

Программа:

  • Модуль 1. Введение
  • Модуль 2. Низкоуровневый ввод-вывод и файловые операции
  • Модуль 3. Межпроцессное взаимодействие
  • Модуль 4. Сокеты
  • Модуль 5. Сигналы
  • Модуль 6. Процессы
  • Модуль 7. Потоки
  • Модуль 8. Потоки (продолжение)
  • Модуль 9. Демоны (службы)
  • Модуль 10. Консольный ввод-вывод
  • Модуль 11. Отображаемая память
  • Модуль 12. Домашнее задание

Спойлер: Подробно Модуль 1. Введение (2,5 ак. ч.)

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

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

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

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

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

Модуль 4. Сокеты (2,5 ак. ч.)

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

Модуль 5. Сигналы (3 ак. ч.)

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

Модуль 6. Процессы (2,5 ак. ч.)

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

Модуль 7. Потоки (2,5 ак. ч.)

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

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

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

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

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

Модуль 10. Консольный ввод-вывод (2,5 ак. ч.)

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

Модуль 11. Отображаемая память (2,5 ак. ч.)

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

Модуль 12. Домашнее задание (2,5 ак. ч.)

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

Цена 28750 руб.