СкладчикОсновы программирования для Linux [2022] [Cubit] [Кирилл Кринкин, Марк Заславский, Татьяна Берленко, Константин Чайка, Валерия Допира]
Указаны на площадке: Кирилл Кринкин, Марк Заславский, Татьяна Берленко, Константин Чайка, Валерия Допира
Основы программирования для Linux [2022]
Cubit
Кирилл Кринкин, Марк Заславский, Татьяна Берленко, Константин Чайка, Валерия Допира
Напиши первый рабочий проект для Linux уже к концу курса.
Чему вы научитесь:
1. Разрабатывать программы для настольной и серверной ОС Linux
2. Программно управлять процессами операционной системы
3. Работать с элементами файловой системы, в том числе со ссылками
4. Организовывать межпроцессное и сетевое взаимодействие приложений
5. Создавать и подключать динамические библиотеки
6. Выполнять многопоточные вычисления
7. Работать с разделяемой памятью
Модуль 1 - Введение в разработку для Linux
Основной инструментарий разработчика Linux
Динамические библиотеки и линковка
Runtime линковка. Libdl
Модуль 2 - Файлы и файловые системы
Базовые функции работы с файлами
Работа с каталогами и путями
Ссылки
Файловая система /proc. Построение дерева процессов
Отладка программ в Linux
Модуль 3 - Процессы и потоки
Жизненный цикл процесса в Linux
Создание процессов fork/exec
Атрибуты создаваемого процесса. Системный вызов clone
Процессы-демоны
Задачи на программирование
Модуль 4 - Взаимодействие процессов
Виды межпроцессного взаимодействия в Linux
Каналы
Сигналы
Разделяемая память
Мультиплексирование ввода-вывода.
Задачи на программирование
Модуль 5 - Сетевые возможности
Введение
Принципы организации IP сетей
Понятие сокета
Разрешение имен
Сокеты дейтаграм. Протокол UDP
Сокеты ориентированные на соединения. Протокол TCP
Задачи на программирование
Модуль 6 - Заключительный модуль
Финальный урок
Модуль 7 - Дополнительный и справочный материал
Дополнительные материалы
Обработка параметров командной строки. Getopt
Примечание: Тариф Стандарт
Получено 27.09.2026StepikОсновы программирования для Linux
Указаны на площадке: Кирилл Кринкин, Computer Science Center (CS центр), Марк Заславский
Операционная система Linux является одной из наиболее распространенных и популярных. Она работает и в серверах и на настольных компьютерах, в различных устройствах (телевизорах, точках доступа, электронных книгах, системах хранения данных...), а также в мобильных телефонах, планшетах и умных часах, обеспечивая системную основу для Android, Tizen, Sailfish. Кроме того, Linux обладает открытым исходным кодом, что делает ее незаменимой для целей обучения, ведь любой может посмотреть на детали реализации системных механизмов и интерфейсов и повысить свой уровень разбирая конкретные технические решения профессиональных разработчиков. Немаловажной является POSIX-совместимость Linux, что позволяет автоматически распространять умения программировать на другие ОС, например, Mac OS X.
В курсе будут рассмотрены базовые инструменты написания программ для Linux, а также затронуты основные прикладные интерфейсы, касающиеся управления процессами, работы с файловой системой, организации межпроцессного и сетевого взаимодействия. Также будет уделено внимание многим аспектам разработки программ, таким как: использование динамических библиотек, организация многопоточных вычислений и разделяемой памяти, получение расширенной информации о системе. Стоит отметить, что в этом курсе сознательно не затрагиваются вопросы программирования графического интерфейса пользователя, которые являются предметом рассмотрения отдельных курсов.
После окончания курса вы сможете уверенно разрабатывать несложные прикладные и серверные приложения, организовывать обработку данных на компьютерах с ОС Linux.