Курс СРС
Самостійна робота · 50 год

СРС — 20 тем ×2 версії

Дві теми на кожну лекцію — виконуються на 2-й годині заняття після презентації і публікуються в Google Classroom разом із лекцією. Та сама пара тем готує до лабораторної: одна — до захисту (рівень 2 → «4»), друга — до розширення (рівень 3 → «5»). Кожна тема — окрема сторінка з теорією, терміналом-прикладом, завданнями й контрольними питаннями. Оцінюється рівень ЛР, не СРС.

Модуль 1 · Ізоляція процесів: межа середовища виконання
SRS01 · рівень 2 → «4»
Простори імен Linux (PID, NET, MNT, UTS, IPC, USER): що ізолює кожен
🌌 Шість Вартових на брамах: що кожен бреше процесові
до ЛР1Л1~2.5 год
SRS02 · рівень 3 → «5»
Групи керування cgroups v2: обмеження CPU та пам'яті контейнера
🌌 Маскування енергоспоживання капсули
до ЛР1Л1~3 год
SRS03 · рівень 2 → «4»
OverlayFS і шари образу: як влаштовано об'єднану файлову систему
🌌 Пласти міста-привида
до ЛР2Л2~2.5 год
SRS04 · рівень 3 → «5»
Відтворюваність збірки і довіра до образу (digest, pin версій)
🌌 Цифровий відбиток фундаменту
до ЛР2Л2~3 год
SRS05 · рівень 2 → «4»
Мережі Docker (bridge/none/host) і службове DNS між контейнерами
🌌 Листоноша приватного кварталу
до ЛР3Л3~2.5 год
SRS06 · рівень 3 → «5»
Керування секретами: env проти файлів проти docker secrets
🌌 Ключар: передати ключ без звуку
до ЛР3Л3~3 год
Модуль 2 · Керування пам'яттю: межа безпеки
SRS07 · рівень 2 → «4»
Модель володіння Rust проти збирача сміття і ручного керування пам'яттю
🌌 Чому відмичка не ламається
до ЛР4Л4~2.5 год
SRS08 · рівень 3 → «5»
Екосистема crates.io, Cargo.toml/Cargo.lock і семантичне версіонування залежностей
🌌 Арсенал відмички
до ЛР4Л4~3 год
SRS09 · рівень 2 → «4»
Часи життя (lifetimes) у сигнатурах функцій: що саме перевіряє компілятор
🌌 Розшифровка часових міток координат
до ЛР5Л5~2.5 год
SRS10 · рівень 3 → «5»
Rc<T> і RefCell<T>: спільне володіння та внутрішня мутабельність без гонок
🌌 Спільний доступ до ядра
до ЛР5Л5~3 год
SRS11 · рівень 2 → «4»
Алгебраїчні типи даних (enum) і вичерпне зіставлення зі зразком (match)
🌌 Мова опису ворожих вузлів
до ЛР6Л6~2.5 год
SRS12 · рівень 3 → «5»
Патерн «зробити некоректний стан непредставним» (make illegal states unrepresentable)
🌌 Архітектура без дір
до ЛР6Л6~3 год
SRS13 · рівень 2 → «4»
Result<T, E> проти panic!: коли доречна відновна відмова, а коли зупинка програми
🌌 Тиха обробка пасток
до ЛР7Л7~2.5 год
SRS14 · рівень 3 → «5»
Власні типи помилок і трейт std::error::Error: Display, Debug, Box<dyn Error>
🌌 Єдина мова інцидентів
до ЛР7Л7~3 год
Модуль 3 · Від асемблера до WebAssembly: межа набору інструкцій
SRS15 · рівень 2 → «4»
Стекова машина WebAssembly і структура текстового формату .wat
🌌 Асемблер нейроімпланта
до ЛР8Л8~2.5 год
SRS16 · рівень 3 → «5»
Лінійна пам'ять WASM і межі безпеки пісочниці
🌌 Пряма робота з пам'яттю монітора
до ЛР8Л8~3 год
SRS17 · рівень 2 → «4»
Угоди виклику (calling conventions) x86-64: System V AMD64 ABI
🌌 Як ворожий процесор приймає команди
до ЛР9Л9~2.5 год
SRS18 · рівень 3 → «5»
Інструменти дизасемблювання: objdump та wasm-objdump, синтаксис AT&T проти Intel
🌌 Розтин бінарника
до ЛР9Л9~3 год
SRS19 · рівень 2 → «4»
Межа Rust↔JS через wasm-bindgen: маршалінг типів і виклик з JavaScript
🌌 Міст між ядром і панеллю
до ЛР10Л10~2.5 год
SRS20 · рівень 3 → «5»
Відтворювані збірки Rust→WASM і цілісність ланцюга постачання (supply chain)
🌌 Щоб звільнення можна було повторити
до ЛР10Л10~3 год