Внутреннее устройство ОС семейства UNIX — 2019/2020
- Those who don't understand Unix are condemned to reinvent it, poorly.
- Henry Spencer, in Introducing Regular Expressions (2012) by Michael Fitzgerald
Материалы лекций
- Язык программирования C
- Системные вызовы
- Ввод-вывод
- Сигналы
- Создание процессов
- Техника fork-exec
- Потоки
- Библиотека pthreads
- Внутренняя реализация потоков
- Сетевые модели и протоколы
- TCP/IP в Linux
- Sockets
- Виртуальная память
- Организация памяти на x86-64
- Управление памятью
- Структура программы
- Библиотеки
- Файловая система
- Ядро Linux
- Виртуализация
Материалы практик
Содержание занятий
2020-02-10
Вначале было повторение: основные понятия из языка C. Затем перешли к системным вызовам. Написали простую программу на ассемблере. Практических занятий на ноутбуках в этот день не было.
2020-02-17
Лекция отдельно не проводилась, были только прокомментированы основные моменты, относящиеся ко вводу-выводу. На первой паре сразу начали решать задачи из практики 1.
2020-02-24
На лекции разбиралось понятие сигнала, а также изучался механизм создания процесса при помощи системного вызова fork. На практическом занятии решали задачи из практики 2.
2020-03-02
На лекции сначала решали 12 примеров на fork, потом изучали функции семейства exec и реализовывали конвейер на базе пайпа. На практическом занятии решали задачи из практики 3.
2020-03-09
Лекция на тему потоков, библиотеки pthreads и её внутреннего устройства. На практике решали задачи из практики 4.
2020-03-16
Лекцию по основам компьютерных сетей и сетевого программирования под UNIX читал Алексей Рыжиков через сервис Zoom. Материалы выложены в вики.
2020-03-23
Лекция про виртуальную память проводилась удалённо через сервис YouTube: https://youtu.be/QdIXBWp254E
2020-03-30
Продолжение лекции про виртуальную память, рассказ о линковке, программах и библиотеках. https://youtu.be/CN1t6nRCU1g
2020-04-06
На занятии был семинар, который проводился через https://edufpmi.bsu.by.
2020-04-13
Сборная лекция про файловые системы, ядро Linux и виртуализацию. Успешно собрали и запустили свежайшее ядро! https://youtu.be/dsdhUNcSuHo
Домашние задания
Расписание
Учебная программа подразумевает 10 пар лекций и 10 пар лабораторных занятий.
Форма отчётности — зачёт.
Актуальное расписание смотрите в Google Docs.
Контакты
Преподаватели: Сергей Соболь и Алексей Рыжиков.
Литература
- The Linux Programming Interface. A Linux and UNIX® System Programming Handbook. Michael Kerrisk