UNIX-DEV-SYS. Системное программирование в среде Unix (Linux/FreeBSD) [2022]
Высшая инженерная школа СПбПУ (Санкт-Петербургский Политехнический Университет)
Егор Орлов
Одна из самых высокопереносимых и масштабируемых систем – операционная система UNIX, применяется на сегодняшний момент практически во всех сферах информационных приложений: от настольных приложений до крупнейших вычислительных центров. На базе этой операционной системы были созданы известнейшие интерфейсы прикладного программирования для переносимой вычислительной среды POSIX, которые по праву могут считаться стандартами де-факто для создания современного переносимого программного обеспечения.
В рамках данного курса даются базовые знания по известнейшим стандартам POSIX, cтандартам языка C, а также интерфейсам прикладного программирования (API) UNIX-подобных систем. Уделяется внимание прикладым инструментам разработчика и базовым методам управления программным проектом. Отдельное место уделяется приемам и методам межпроцессного взаимодействия, в том числе и в распределенных структурах – сетях ЭВМ, а так же методам создания распределенного программного обеспечения.
После окончания данного курса слушатели будут обладать знаниями по следующим направлениям:
1.Основные стандарты языка С, операционной системы UNIX и интерфейса переносимой операционной системы POSIX;
- Стандартные библиотеки языка С;
- Интерфейсы прикладного программного обеспечения (API) POSIX и UNIX.
- Методы создания системного программного обеспечения UNIX.
- Методы создания распределенного программного обеспечения.
1. Умение грамотно создавать и поддерживать программные проекты в среде разработки UNIX систем.
Модуль 1. Операционная система UNIX: Основные стандарты.
- ANSI C
- POSIX.1 (IEEE 1003.1-1988, IEEE 1003.1-1990), POSIX.1b (IEEE 1003.4-1993), POSIX.1c (1003.5-1995)
- X/Open (XPG3, XPG4)
- Программы и процессы UNIX
- Библиотечные и системные вызовы UNIX и их заглушки.
- Основные библиотеки UNIX и их заголовочные файлы
- Процесс создания исполняемого файла. Динамическая и статическая компоновка
- Формат ELF. Структура объектного и исполняемого файла
- Позиционно-независимый код. Структура разделяемой библиотеки.
- Компилятор языка C (cc).
- Препроцессор языка C (cpp).
- Компоновщик объектных модулей (ld). Просмотрщик зависимостей динамической компоновки (ldd).
- Архиватор библиотек (ar)
- Система управления сборкой (make). Синтаксис makefile.
- Просмотровщики содержимого объектных и исполняемых файлов (objdump, nm, readelf).
- Утилита очистки объектных и исполняемых файлов (strip).
- Символьный отладчик (gdb).
- Утилита automake
- Утилита autoconf
- Система контроля версий CVS
- Среда разработки KDevelop
- Стандартная библиотека ввода-вывода
- Функции манипулирования строковыми данными.
- Функции манипулирования областями памяти.
- Функции управления динамически выделяемой памятью.
- Открытие и закрытие файлов.
- Чтение и запись в файл.
- Совместное использование и блокировка файлов.
- Создание, удаление и установка атрибутов файлов и каталогов.
- Создание жёстких и символических ссылок.
- Концепция и виды сигналов
- Обработчики сигналов
- Надёжные и ненадёжные сигналы и их семантика.
- Функции управления сигналами.
- Порождение и завершение процессов.
- Аргументы командной строки. Функция getopt.
- Переменные окружения. Функции getenv и setenv
- Управление процессами. Семейство функций fork и exec
- Управление дочерними процессами. Семейство функций wait.
- Неименованные каналы
- Очереди
- Разделяемая память и семафоры
- Конфигурирование терминального ввода-вывода
- Интерфейс командной строки. Библиотека readline.
- Псевдографический интерфейс. Библиотека libncurses.
- Типы данных, используемые в glib.
- Функции и утилиты, предоставляемые glib.
Продажник