Основы программирования для Linux

Кирилл Кринкин

Computer Science Center

Курс нацелен на изучение основ программирования в операционной сиcтеме Linux. Он затрагивает базовый инструментарий и все основные компоненты: управление процессами, межпроцессные взаимодействия, сетевые возможности

Syllabus

1. Введение в разработку для Linux
1.1 Основной инструментарий разработчика Linux
1.2 Динамические библиотеки и линковка
1.3 Runtime линковка. Libdl
1.4 Обработка параметров командной строки. Getopt
2. Введение в разработку для Linux (задачи на программирование)
2.1 Задачи
3. Файлы и файловые системы
3.1 Базовые функции работы с файлами
3.2 Работа с каталогами и путями
3.3 Ссылки
3.4 Файловая система /proc. Построение дерева процессов
4. Процессы и потоки
4.1 Жизненный цикл процесса в Linux
4.2 Создание процессов fork/exec
4.3 Атрибуты создаваемого процесса. Системный вызов clone
4.4 Процессы-демоны
4.5 Задачи на программирование
5. Взаимодействие процессов
5.1 Виды межпроцессного взаимодействия в Linux
5.2 Каналы
5.3 Сигналы
5.4 Разделяемая память
5.5 Мультиплексирование ввода-вывода.
5.6 Задачи на программирование
6. Сетевые возможности
6.1 Введение
6.2 Принципы организации IP сетей
6.3 Понятие сокета
6.4 Разрешение имен
6.5 Сокеты дейтаграм. Протокол UDP
6.6 Сокеты ориентированные на соединения. Протокол TCP
6.7 Задачи на программирование
7. Заключительный модуль
7.1 Финальный урок
8. Дополнительный и справочный материал
8.1 Дополнительные материалы

key words, tags

программирование, Linux, разработка для Linux


Course properties

Competition track
Science and engineering
Form of education
Informal
Learning language
Russian
Discipline
Information and Communication Technologies (ICTs)
Course authors
Кирилл Кринкин
Author’s characterization
Кандидат технических наук. Доцент кафедры математического обеспечения и применения ЭВМ Санкт-Петербургского электротехнического университета "ЛЭТИ". Основатель студенческой лаборатории открытого программного обеспечения и мобильных платформ OSLL
Organization
Computer Science Center
Organization characterization
http://compscicenter.ru Основная цель Computer Science Center – дать возможность желающим получить востребованные современной наукой и промышленностью знания в дополнение к университетскому образованию в ИТ. Computer Science Center – это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных
Knowledge level entrance requirements
Для комфортного восприятия материала курса, необходимо обладать пониманием того, как работать в Linux на уровне пользователя, а также уверенными навыками программирования на языке С или C++.
Entrance test
Groups formation by readiness level
Teachers presence
Tutors presence
Facilitators presence
Training materials forms
texts, multimedia, video lecture, presentation, synchronous video, textbook, professional software access
Interactivity in training materials
Collaborative learning presence
Practical activities
labs
Discussions, forums presence
Webinars, video conferences presence
meetup presence
LMS integration
Learning Analytics
Certification presence
Certification types
Электронный сертификат
Certificate name
Сертификат Stepik.org
Course time limits
Duration
8 (weeks)
Learning types (sync/async)
asynchronous
Course modules number
8
Personal learning path possibility, course individualization
Operating System
Windows (начиная с версии 7), Linux, Ubuntu, Debian, MacOS, iOS, Android (начиная с версии 4.0)
Supported browsers
Минимальные версии поддерживаемых браузеров: IE / Edge 10 Firefox 38 Chrome 31 Safari 8 Opera 30 iOS Safari 9 Android Browser 4.4 Chrome for Android 44
Learner’s devices
Компьютер, ноутбук, планшет, телефон
Special needs support

Comments