Proseminarium: Zaawansowane administrowanie systemem Linux

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Tomasz Wierzbicki
Liczba godzin 30 (sem.)
Rodzaj Proseminarium
ECTS 3
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

Na zajęciach będą omawiane różne zaawansowane zagadnienia administrowania systemami linuksowymi i ogólniej — uniksowymi. Zakłada się, że uczestnicy zajęć posiedli już pewną wiedzę, np. w zakresie _Kursu administrowania Linuksem_, choć wcześniejsze ukończenie tego kursu nie jest wymagane. #### Forma zajęć Zwykle dwugodzinne referaty omawiające wybrane tematy, połączone z prezentacjami na żywo. Zajęcia będą się odbywać stacjonarnie w sali ćwiczeniowej z użyciem projektora. #### Propozycje zagadnień omawianych na zajęciach * Dzwięk w Linuksie i Uniksie. Hardware: karty dźwiękowe. Ich obsługa w jądrze: Advanced Linux Sound Architecture (ALSA). Informacja o starszym systemie Open Sound System (OSS). Dźwięk we FreeBSD. Serwery dźwięku: PulseAudio, JACK, PipeWire. Wyższe warstwy: KDE Phonon, OpenAL. Oprogramowanie aplikacyjne: Audacity, SOX. Miksery i odtwarzacze (Xmms2, Amarok i in.). * Obraz w Linuksie. Terminale tekstowe. _Framebuffer_. _Kernel Mode Setting_. * Serwery obrazu. Architektura serwera XWindows. * Nowoczesna obsługa interfejsu graficznego: serwer obrazu Wayland. * Zarządcy obrazu, sesji, okien, pulpitu. Środowiska graficzne. Przegląd. Protokoły. * Infrastruktura KDE. Qt. * Infrastruktura Gnome. Vala. GTK. * Przechwytywanie obrazu w Linuksie: video4linux2. * Komunikacja międzyprocesowa na wysokim poziomie: dbus. * Pakiety bez dystrybucji: AppImage, Snap, Zero Install, Flatpak i in. * Advanced Configuration and Power Interface (ACPI). Zarządzanie stanami. Tabele. ACPI w Linuksie i FreeBSD. * _Hardware_ płyty głównej. Unified Extensible Firmware Interface (UEFI). TianoCore. Coreboot. Środowiska uruchomieniowe x86_64 i arm64. * Sprzętowe wspomaganie grafiki. Direct Rendering Infrastructure (DRI). * _Device mapper_. Zastosowania: dm-crypt, dm-raid, dm-cache, dm-verity, LVM2 i in. * Systemy plików COW. Btrfs i ZFS. Migawki i kopie zapasowe. * Zaawansowane konfigurowanie sieci w Linuksie. QoS, _traffic shaping_ i in. * Implementacja stosu protokołów Bluetooth w Linuksie: BlueZ. * Firewalle i Intrusion Prevention Systems. Iptables i nftables. Konfigurowanie w Linuksie. SNORT. Filtrowanie pakietów we FreeBSD i OpenBSD: PF, IPFW, IPF. * Zdalne monitorowanie systemów. Protokoły SNMP, Syslog i RMON. Przegląd systemów: Nagios, Munin, Cacti, RRDTool i in. * Zdalne konfigurowanie systemów. Systemy zarządzania konfiguracją: Ansible, Salt, Puppet i in. * Wirtualizacja. Xen. KVM. Narzędzia: Qemu, Virtualbox, Bhyve. Zarządzanie maszynami wirtualnymi: virt-manager, vagrant i in. * IaaS. Tworzenie chmur obliczeniowych. OpenStack, OpenNebula i in. * Zarządzanie klastrami. Kubernetes, Docker Swarm i in. * Konfiguracja i kompilacja jądra Linuksa: budowa jądra Linuksa, moduły jądra i zarządzanie nimi, konfigurator kompilacji jądra, przebieg kompilacji, initramfs (initramfs-tools/dracut). Gentoo Linux. * Linux na procesorach ARM. Różnice w stosunku do x86-64. Rozruch z użyciem Coreboot i U-Boot. Custom Linux na typowych platformach (Raspberry, BeagleBone). Buildroot i Yocto. * Życie bez Linuksa — systemy BSD. ###### Uwagi * Tematem zajęć może być wiele innych zagadnień, zależnie od zainteresowań słuchaczy (do uzgodnienia po rozpoczęciu zajęć). * Niektóre z powyższych zagadnień są dostatecznie obszerne, by być tematem więcej niż jednego spotkania.