Складчина: Linux. Уровень 2. Программирование в Linux на C [Специалист] [Игорь Седых]
На нашем курсе «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 руб.