СИСТЕМНЕ ПРОГРАМУВАННЯ
[ВТФК · 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
Модуль 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 ВЕРСІЇ→
{' ДОВІДКА ТА ДОДАТКОВІ МАТЕРІАЛИ '}
Робоча програма, силабус, план матеріалів, індекс СРС і сітка ачівок.
Ординський Олександр
викладач · Software Developer & Educator
ВТФК • Вінниця, Україна
© 2026 ВТФК · Системне програмування · СИСТЕМА АКТИВНА