Tagi
systemy sieciowe i komputerowe algorytmika i złożoność obliczeniowa metody numeryczne i grafika komputerowa języki programowania i logika przetwarzanie danych Data Science Praca zespołowa Bazy danych Ekonomia Inżynieria oprogramowania Projektowanie i programowanie obiektowe Architektury systemów komputerowych Systemy operacyjne Sieci komputerowe Ochrona własności intelektualnej Rachunek prawdopodobieństwa i statystyka AI (II st.) probabilistyczne aspekty sztucznej inteligencji AI (II st.) praktyczne aspekty sztucznej inteligencji AI (II st.) uczenie maszynowe dla złożonych struktur danych AI (II st.) obowiązkowy AI (II st.) seminarium specjalistyczneEfekty kształcenia
Podstawy informatyki i programowania Programowanie i projektowanie obiektowe Architektury systemów komputerowych Rachunek prawdopodobieństwa (L) Systemy operacyjne Sieci komputerowe Bazy danych Podstawy inżynierii oprogramowania Inżynieria oprogramowania (L) Rachunek prawdopodobieństwa (I) Społeczno-ekonomiczne aspekty informatyki (I)Kurs administrowania systemem Linux lato 2020/21
Język wykładowy | Polski |
---|---|
Opiekun | Tomasz Wierzbicki |
Liczba godzin | 30 (wyk.) 30 (prac.) |
Rodzaj | Kurs inżynierski |
ECTS | 5 |
Polecany dla I roku | Nie |
Egzamin | Nie |
Opis przedmiotu:
Celem kursu jest rozwinięcie u uczestników praktycznych umiejętności zarządzania systemem Linux na komputerze osobistym lub serwerze. Zostaną przedstawione podstawowe informacje na temat budowy i sposobu działania systemów uniksopodobnych, a szczególnie różnych dystrybucji Linuksa. Zajęcia są adresowane do wszystkich studentów, którzy chcieliby sprawnie korzystać na co dzień z systemów linuksowych i którzy są zdania, że to użytkownik powinien mieć władzę na komputerem, a nie komputer nad użytkownikiem. Mimo że osiągnięcie tego celu wymaga sporego zaangażowania, wiedzy i praktycznych umiejętności, nie zakłada się wstępnego doświadczenia słuchaczy w zakresie administrowania Linuksem. Wystarczy wola odłączenia myszy i chęć pracy z terminalem tekstowym.
ORIENTACYJNY SPIS ZAGADNIEŃ PORUSZANYCH NA ZAJĘCIACH
I. WSTĘP: ŻYCIE Z LINUKSEM
- Hardware i software. Budowa komputera i struktura oprogramowania podstawowego. Jądro i przestrzeń użytkownika. Proces rozruchu komputera. Instalacja systemu i rozpoczęcie pracy z Linuksem.
- Terminal tekstowy. Powłoka systemowa. Podstawowe polecenia. Uruchamianie programów, standardowe strumienie wejściowe i wyjściowe, potoki. Uruchamianie i zatrzymywanie procesów. Zarządzanie plikami, prawa dostępu, kopiowanie, archiwizowanie. Edytory tekstu. Przetwarzanie plików tekstowych.
- Użytkownik root. Hasła. Su i sudo.
II. ZAGADNIENIA SZCZEGÓŁOWE
- Hardware i jego diagnostyka, lshw, lsusb, lspci, dmidecode, i2c-tools i in. Urządzenia. Sysfs i udev. Udevd i udevadm.
- Dyski. Protokoły SCSI i ATA. USB Storage. Hdparm i smartmontools.
- Partycje. MBR i GPT. Narzędzia do partycjonowania dysków, fdisk, parted.
- Urządzenia blokowe, device mapper, losetup, dm-crypt, LVM.
- Systemy plików. Budowa systemu plików, inode. Księgowanie. Systemy ext2, ext3 i ext4. Tworzenie i zarządzanie systemami plików. Diagnostyka systemów plików, fsck. Montowanie, mount, /etc/fstab itp. Dowiązania, pliki specjalne. FAT i NTFS. Filesystem in userspace. Systemy plików btrfs, ufs, zfs, ffs i in. Szczególne wymagania dysków SSD, discard i fstrim. Linux Directory Structure, katalogi /etc, /usr, /var, /tmp, /boot i ich przeznaczenie.
- Przestrzeń wymiany w osobnej partycji i w pliku. Przestrzeń wymiany w pamięci RAM, zram, zswap.
- Rozruch komputera. Firmware, Legacy BIOS i UEFI. Konfiguracja, efibootmgr. Inne (Coreboot, Libreboot, U-Boot). Bootloadery drugiego poziomu. GNU Grub 2 i jego konfiguracja. Informacja o Legacy GRUB. Inne popularne bootloadery, Syslinux, LILO, systemd-boot (Gummiboot). Konfiguracja wielosystemowa z BIOS i UEFI, współżycie z systemem MS Windows, rEFInd. PXE i rozruch poprzez sieć komputerową. BOOTP i TFTP. Plymuth i estetyka rozruchu.
- Start jądra. Tworzenie i konfigurowanie initramfs. Uruchamianie awaryjne i tryb pojedynczego użytkownika. Moduły jądra, modprobe, lsmod, rmmod, /etc/modules.
- Konfiguracja systemu. Katalog /etc i jego struktura.
- Uruchamianie przestrzeni użytkownika. System V Init. Proces init, inittab, init.d i rc?.d, runlevels, telinit, update-rc.d, insserv, run-parts. Informacja o Upstart.
- Systemd i jego konfiguracja. Filozofia działania systemd. Organizacja i składnia plików konfiguracyjnych. Demony systemd. Jednostki systemd. Cele i metody ich osiągania. Serwisy i inne jednostki.
- Zarządzanie użytkownikami. Logowanie do systemu, getty i login. Konsola zdalna i minicom. Hasła, passwd i shadow. PAM. Własność procesów, suid.
- Dziennik systemowy, rsyslog, logger, /var/log, journalctl i dmesg. Zdalny zapis dziennika. Protokół SMTP i narzędzia do korzystania z niego.
- Synchronizacja czasu, NTP, ntpd, ntpdate, open-ntp, chrony, systemd-timesyncd.
- Planowanie wykonania procesów, procesy wsadowe. Cron, crontab, anacron, systemd-timer. Polecenie at.
- Zarządzanie procesami i ich diagnostyka, ps, lsof, strace, ltrace. Wysyłanie sygnałów do procesów, kill, killall, nohup. Wątki. Pomiar czasu procesora, obciążenia, zużycia pamięci i operacji wejścia/wyjścia (top, times, vmstat, iostat, iotop, pidstat itp). Priorytety procesów, nice. Komunikacja międzyprocesowa. Gniazda. Dbus. Komunikacja między użytkownikami, wall.
- Biblioteki współdzielone, /lib, /usr/lib, ldd, ldconfig, /etc/ld.so.conf, LD_LIBRARY_PATH.
- Repozytoria pakietów i dystrybucje Linuksa. Debian, Ubuntu i pakiety deb. Konfigurowanie apt i aptitude. RHEL, Fedora, Centos i rpm. Arch Linux i pacman. Dystrybucje specjalizowane, Kali Linux, Tails i in. Krzyżowanie dystrybucji. Linux from scratch.
- Efektywna praca w trybie tekstowym. Powłoki bash (sh, dash, ash), c-shell (csh, tcsh), zsh. Biblioteka readline. Terminal, terminfo, termcap. Screen i tmux. Konfiguracja iterpretera powłoki. Tekst zachęty, Powershell. Lokalizacja i internacjonalizacja, locale, tzdata, kodowanie znaków.
- Skrypty powłoki. Narzędzia sed, awk. Polecenia użytkowe wc, tr, sort, head, tail, tee, xargs, grep, find, locate i wiele innych.
- Separacja procesów, namespaces, cgroups. Piaskownice, firejail i in. Apparmor. Selinux.
- Wirtualizacja. LXC i docker. Qemu i KVM. Xen. Informacja o programie Virtualbox.
- Sieci komputerowe i podstawowa konfiguracja sieci w Linuksie. Podstawowe polecenia konfiguracyjne. Konfiguracja statyczna i dynamiczna. DHCP. Gniazda. Bezpieczeństwo i iptables. Usługi sieciowe, sshd, inetd i xinetd. Gniazda systemd. RPC. Usługi nazw, bind9.
- Usługi drukowania, lpr i Cups.
- Informacja o trybie graficznym (gdyby kiedyś był potrzebny). Serwer wyświetlania X Windows, xinit, startx. Graficzny zarządca logowania (xdm, gdm, sddm, lightdm i in). Zarządca okien (kwin, Metacity, xfwm, Openbox i wiele in). Typy zarządców okien (tiling, stacking, compositing, dynamic). Środowisko graficzne (KDE, Gnome, XFCE i wiele innych). XTerminale (xterm, urxvt, konsole, terminal i in). Niedoskonałości serwera X Windows. Weyland. Zdalny terminal graficzny (xpra, xephyr, xnest, RDP, Winswitch, vnc, x2go, NX tech i in.)
- Oprogramowanie Open Source. FSF. Typy licencji. GNU i BSD.
Zakres materiału obejmuje większość zagadnień wymaganych na egzaminach certyfikacyjnych CompTIA Linux+ (LX0-103 i LX0-104) oraz LPIC-1 (LPI 101 i LPI 102 — Certified Linux Administrator).
LITERATURA
- Brian Ward, Jak działa Linux. Podręcznik administratora, wydanie II, Helion 2015.
- Evi Nemeth, Garth Snyder, Trent R. Hein, Ben Whaley, Dan Mackin, Unix i Linux. Przewodnik administratora systemów, wydanie V, Helion 2018.
Wykłady
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Tomasz Wierzbicki
|
cz 12:00-14:00 (s. ) | 200 | 30 | 0 |
UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.
Pracownie
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Tomasz Wierzbicki
|
wt 18:00-20:00 (s. ) | 15 | 9 | 0 |
Tomasz Wierzbicki
|
śr 14:00-16:00 (s. ) | 15 | 6 | 0 |
Tomasz Wierzbicki
|
śr 18:00-20:00 (s. wirtualna3) | 15 | 15 | 1 |
UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.
Konsultacje prowadzących:
Imię i nazwisko | Pokój | Konsultacje |
---|---|---|
Tomasz Wierzbicki | 303 | Po wcześniejszym umówieniu pocztą elektroniczną. Nie w trakcie lub bezpośrednio przed moimi zajęciami (plan zajęć jest dostępny w systemie Zapisy). |