Бауманский учебный центр «Специалист»

Программа курса Linux. Уровень 2. Программирование в Linux на C
  Тема Ак. часов  
   
  Модуль 1. Введение
  • Ознакомление со спецификой сборки ПО в GNU/Linux (версия 2024)
  • Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit)
  • Ручная и автоматическая сборка ПО (Makefile)
  • Модель Клиент-Интерфейс-Сервер (КИС)
  • Статическая сборка библиотек
  • Совместно используемые библиотеки
  • Работа с переменными окружения
2.5  
  Модуль 2. Низкоуровневый ввод-вывод и файловые операции
  • Обзор механизмов ввода-вывода в Linux
  • Файловые дескрипторы
  • Системные вызовы: open, close, write, read и lseek
  • Типы файлов
  • Индексные дескрипторы и жесткие ссылки
  • Права доступа к файлу
  • Файловая система proc
  • Два способа прочесть содержимое директории
  • Разреженные файлы и специфика их применения
  • Блокировка областей файла
2.5  
  Модуль 3. Межпроцессное взаимодействие
  • Механизмы межпроцессного взаимодействия Linux
    • Неименованные каналы (pipes)
    • Именованные каналы (named pipes)
    • Сообщения (message queue)
    • Разделяемая память (shared memory)
    • Семафоры (semaphores)
3  
  Модуль 4. Сокеты
  • Сокеты в файловом пространстве имен (UNIX-сокеты)
  • Парные сокеты (pair sockets)
  • Сетевые сокеты (sockets)
2.5  
  Модуль 5. Сигналы
  • Знакомство с сигналами (signals)
  • Отличие сигналов от других механизмов межпроцессного взаимодействия
  • Специфика обработки сигналов (signal handling)
3  
  Модуль 6. Процессы
  • Клонирование процессов — fork()
  • Замена исполняемого процесса — exec()
  • Зомби (zombies) — причины возникновения и способы их устранения
2.5  
  Модуль 7. Потоки
  • Потоки и процессы
  • Специфика построения многопоточных приложений (multithreading)
  • Досрочное завершение потока
2.5  
  Модуль 8. Потоки (продолжение)
  • Создание обработчика завершения потока
  • Средства синхронизации потоков (synchronize primitives)
  • Атрибуты потоков
3  
  Модуль 9. Демоны (службы)
  • Отличие демона от консольной утилиты
  • Специфика разработки демонов (daemons)
  • Создание демона использующего сетевые сокеты
3  
  Модуль 10. Консольный ввод-вывод
  • Специфика разработки консольных приложений
  • Предотвращение перенаправления вывода
  • Управление терминалом
  • Сокрытие пароля пользователя при аутентификации
2.5  
  Модуль 11. Отображаемая память
  • Отображение обычного файла
  • Совместный доступ к файлу
  • Частные отображения
  • Другие применения mmap
2.5  
  Модуль 12. Домашнее задание
  • Специфика разработки 64-битных приложений
  • Использование библиотеки ncurses
  • Программирование графического интерфейса с помощью GTK+
2.5  
  Аудиторная нагрузка в классе с преподавателем 32 +32
бесплатно
 
  По окончании обучения на курсе проводится итоговая аттестация. Аттестация проводится в виде теста на последнем занятии или на основании оценок практических работ, выполняемых во время обучения на курсе.