СИСТЕМНЕ ПРОГРАМУВАННЯ

[ВТФК · 123 Комп'ютерна інженерія]
● ONLINE  |  VTFK · OK23 · 4 курс, 7 семестр  | 
{' МАТЕРІАЛИ ДИСЦИПЛІНИ '}

Три межі між програмою і машиною: контейнер · перевірка запозичень Rust · лінійна памʼять WebAssembly. Лекції зі слайдами й конспектом, лабораторні у двох версіях (сюжетна для студента + академічна), самостійна робота до кожної лекції. Почни з Лекції 0 і Лабораторної 0 — вони відкриті завжди.

Модуль 1 · Ізоляція процесів: межа середовища виконання Л 0,1,2,3 · ЛР 0,1,2,3
00
Лекція 0 · вступ
ВСТУП ДО ДИСЦИПЛІНИ: ПРОГРАМА, ОРГАНІЗАЦІЯ РОБОТИ, ОЦІНЮВАННЯ
Системне програмування — це три межі між програмою й машиною (контейнер, пам'ять, набір інструкцій); семестр побудований так, щоб кожну межу перетнути на лекції, у лабораторній і в самостійній роботі.
▶ СЛАЙДИ + КОНСПЕКТВІДКРИТО ЗАВЖДИ
01
Лекція 1
ТРИ МЕЖІ КУРСУ: ПРОЦЕС, АДРЕСНИЙ ПРОСТІР, СИСТЕМНІ ВИКЛИКИ
Процес — це межа між програмою і машиною, яку курс перетинає тричі: контейнер (Docker), безпека пам'яті (Rust), пісочниця виконання (WebAssembly).
▶ СЛАЙДИ + КОНСПЕКТ
02
Лекція 2
ПРОСТОРИ ІМЕН, ГРУПИ КЕРУВАННЯ (CGROUPS), ПРИВІЛЕЇ
Контейнер — це не окрема ОС, а звичайний процес, якому ядро підмінило видимість (namespaces) і обмежило апетит (cgroups).
▶ СЛАЙДИ + КОНСПЕКТ
03
Лекція 3
ОБРАЗ ЯК ШАРИ, DOCKERFILE, КЕШ, БАГАТОЕТАПНА ЗБІРКА
Docker-образ (*image*) — це не файл, а впорядкований стек незмінних шарів (*layers*); Dockerfile — рецепт, за яким кожна інструкція створює новий шар.
▶ СЛАЙДИ + КОНСПЕКТ
00
Лабораторна 0 · вступ
Вступ: як влаштований курс, робоче середовище в Docker і здача робіт
⟷ сюжет: «Перше ввімкнення»
2 ВЕРСІЇВІДКРИТО ЗАВЖДИ
01
Лабораторна 1
Контейнер розробника й огляд просторів імен
⟷ сюжет: «Ізоляційна Капсула»
2 ВЕРСІЇ
02
Лабораторна 2
Dockerfile з багатоетапною збіркою і порівнянням розмірів
⟷ сюжет: «Кібер-Дієта»
2 ВЕРСІЇ
03
Лабораторна 3
Два контейнери разом і ізольована мережа
⟷ сюжет: «Сліпий Канал»
2 ВЕРСІЇ
Модуль 2 · Керування пам'яттю: межа безпеки Л 4,5,6,7 · ЛР 4,5,6,7
04
Лекція 4
ЧОМУ ПРОГРАМИ ПСУЮТЬ ПАМ'ЯТЬ
Помилка керування пам'яттю коштує дорожче за час, витрачений на перевірки, які їй запобігають.
▶ СЛАЙДИ + КОНСПЕКТ
05
Лекція 5
ВОЛОДІННЯ (OWNERSHIP)
У кожного значення в Rust рівно один власник; коли власник виходить з області видимості, значення знищується автоматично.
▶ СЛАЙДИ + КОНСПЕКТ
06
Лекція 6
ЗАПОЗИЧЕННЯ І ЗРІЗИ
Позичити значення — скористатися ним, не забираючи володіння і не звільняючи пам'ять.
▶ СЛАЙДИ + КОНСПЕКТ
07
Лекція 7
OPTION І RESULT
У Rust немає null: відсутність значення і помилка — явні типи, які компілятор змушує обробити.
▶ СЛАЙДИ + КОНСПЕКТ
04
Лабораторна 4
Перший проєкт на Cargo з юніт-тестом
⟷ сюжет: «Кування Відмички»
2 ВЕРСІЇ
05
Лабораторна 5
Набір програм, що не компілюються (borrow checker)
⟷ сюжет: «Мертвий Лог»
2 ВЕРСІЇ
06
Лабораторна 6
Структури і перелічення без null
⟷ сюжет: «Архітектура Ворога»
2 ВЕРСІЇ
07
Лабораторна 7
Читання файлу з обробкою помилок
⟷ сюжет: «Мінне Поле»
2 ВЕРСІЇ
Модуль 3 · Від асемблера до WebAssembly: межа набору інструкцій Л 8,9,10 · ЛР 8,9,10
08
Лекція 8
АСЕМБЛЕР x86-64
Асемблер (*assembler*) — це не «низький рівень заради складності», а пряме відображення того, що вміє робити процесор: регістри, стек, порівняння і переходи.
▶ СЛАЙДИ + КОНСПЕКТ
09
Лекція 9
WEBASSEMBLY ЯК ПЕРЕНОСНИЙ АСЕМБЛЕР
WebAssembly — це той самий принцип 'мова, близька до заліза', але для віртуальної стекової машини (*stack machine*), яку розуміє кожен браузер і кожен рушій незалежно від фізичного CPU.
▶ СЛАЙДИ + КОНСПЕКТ
10
Лекція 10
RUST У WASM, МЕЖА З HOST-СЕРЕДОВИЩЕМ
Останню межу курсу — межу набору інструкцій — перетинає не рука, що пише .wat вручну, а компілятор: Rust компілюється у WASM, а wasm-bindgen генерує міст до JavaScript.
▶ СЛАЙДИ + КОНСПЕКТ
08
Лабораторна 8
Модуль на WAT вручну
⟷ сюжет: «Пряма Ін'єкція»
2 ВЕРСІЇ
09
Лабораторна 9
Той самий алгоритм у двох асемблерах
⟷ сюжет: «Розтин Системи»
2 ВЕРСІЇ
10
Лабораторна 10
Ядро на Rust у WASM на сторінці з відтворюваною збіркою
⟷ сюжет: «Звільнення»
2 ВЕРСІЇ
{' ДОВІДКА ТА ДОДАТКОВІ МАТЕРІАЛИ '}

Робоча програма, силабус, план матеріалів, індекс СРС і сітка ачівок.

Довідка
Робоча програма
90 год · 3 кред · залік
ДОК
Довідка
Силабус
оцінювання, 3 рівні, дедлайни
ДОК
Самостійна
СРС — 20 тем ×2
до кожної лекції дві теми: підготовка до захисту та розширення ЛР
СРС
Методика
План матеріалів
структура курсу, теми, погодинний розподіл
ПЛАН
Гейміфікація
Сітка ачівок
20 нагород: місії, модулі, особливі
★ АЧІВКИ
Ординський Олександр
викладач · Software Developer & Educator
ВТФК • Вінниця, Україна

© 2026 ВТФК · Системне програмування · СИСТЕМА АКТИВНА