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

Dozhd

Администратор
Регистрация
17 Янв 2014
Сообщения
183.309
Реакции
388.569
Складчина: 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 руб.




СКАЧАТЬ