Systemy operacyjne 2009
Transkrypt
Systemy operacyjne 2009
Systemy operacyjne 2009 Plan ćwiczeń i pracowni grupy MSq Marcin Skórzewski Web: http://www.ii.uni.wroc.pl/~msq/so09/: HTML, PDF (bez odnośników) i TEXMACS 13 styczeń 2010 1. Wprowadzenie (7.10.2009) 1.1. Prezentacje • Tryb seminaryjny. Dwie krótkie (dwudziestominutowe) prezentacje. • Obecność obowiązkowa! Punkty ujemne za więcej niż dwie nieobecności. • Omawiane będą konkretne rozwiązania i wstęp potrzebny do samodzielnej pracy. • Linux — jest sporo materiałów w Sieci na temat Linuksa (po angielsku!). • Prezentacja musi być zatwierdzona na konsultacjach (pre-prezentacja). • Wybór tematów co najmniej dwa tygodnie wcześniej (wyjątek — Linux). dwie prezentacje wkład nr zadanie 10% 1 pre-prezentacja 15% 1 prezentacja 10% 2 pre-prezentacja 15% 2 prezentacja 50% 1 + 2 wszystko 1.2. Pracownie • Trzeba znać lub się właśnie uczyć C. Trzeba znać lub mieć chęć nauczenia się języka wysokiego poziomu wspieranego przez FUSE (wspierane języki). cztery pracownie wkład zadanie 5% UML 20% moduły 5% FUSE 20% systemy plików (2) 50% wszystko 2. Linux i emulacja (14.10.2009) Temat najprostszy, ale tylko tydzień czasu. [Mini dystrybucje Linuksa] 2.1. Praca w konsoli (KrzyCzy) Logowanie (minimum!); struktura katalogów i podstawowe komendy do poruszania się po niej; cat, grep, tar, gzip i dd. 1 2 Systemy operacyjne 2009 2.2. Skrypty (ToRyl) Bash: potoki („|”, „>”, „&”, itp.); zmiennych środowiskowych — przypisanie i podstawienie w ${...}; instrucja warunkowa if i pętla while; przekazywanie parametrów do skryptów. 2.3. Uruchamianie „obcych” programów (MiJęd) Przedstawienie: Emulacja, User Mode Linux, coLinux, WINE, NDIS-Wrapper, Linux Unified Kernel. 2.4. Wirtualizacja (MaBrzó) Prezentacja: Wirtualizacja (M.B.) na podstawie: Virtual Linux: An overview of virtualization methods, architectures, and implementations (M. Tim Jones / IBM). 3. Rozruch (21.10.2009) 3.1. Rozruch 1 (MaSie) Prezentacja: Rozruch komputera (M.S.) na podstawie: How Computers Boot Up (Gustavo Duarte). 3.2. Rozruch 2 (GrzeŚpi) [Inside the Linux boot process (IBM)][The Kernel Boot Process] 3.3. Pętla główna (Null) 3.4. Wykonywanie programów (AdGud) Prezentacja: Wykonywanie programów (Adam Gudynowski) na podstawie: Anatomy of a Program in Memory (Gustavo Duarte). 4. Sterowniki (28.10.2009) 4.1. Zarządzanie pamięcią (ToDą; anulowane) [How The Kernel Manages Your Memory] 4.2. Procesy (RaKot; anulowane) [Anatomy of Linux process management] 4.3. Wstęp do modułów (MarMil) Prezentacja: Wstęp do modułów (Marcin Milewski) wraz z przykładami i wykorzystywanym podręcznikiem: tar-gzip na podstawie: The Linux Kernel Module Programming Guide (Peter Jay Salzman). 4.4. Wywołania systemowe (MaSzcze) [Kernel command using Linux system calls (IBM)], uzupełnić (być może tym: [Sysenter Based System Call Mechanism in Linux 2.6] lub tym: [4. System Calls @ The Linux Kernel]). Marcin Skórzewski 3 5. Komunikacja jądro ↔ przestrzeń użytkownika (4.11.2009) 5.1. API jądra do obsługi przestrzeni użytkownika, sysctl, /proc/ (PiBzó) Prezentacja: API jądra do obsługi przestrzeni użytkownika (P.B.) na podstawie: User Space Memory Access, dla The Linux Kernel Module Programming Guide, Chapter 5 The /proc File System (Peter Jay Salzman). Przykład 1. Moduł jądra komunikujący się z użytkownikiem przez /proc/. 5.2. Komunikacja przez urządenia w /dev/, ioctl, gniazda (MarMil) Przykład 2. Moduł jądra komunikujący się z użytkownikiem przez /dev/. 5.3. Connector i Netlink (Null) [Why and How to Use Netlink Socket][Generic Netlink HOWTO] 5.4. Problem C10K (ŁuZap) Prezentacja: The C10K Problem (Łukasz Zapart) na podstawie: The C10K problem (Dan Kegel). 6. Pracownia 1: UML (18.11.2009) Lista zadań na 1. pracownię: User-Mode Linux. (Niewypał! Zadanie przeniesione na 2. pracownię (2.12.2009)!) 7. Systemy plików (25.11.2009) Tylko dwa z {6.3, 6.4, 6.5}. 7.1. FUSE (KrzyKu) 7.2. Linux (ŚwiGrze) [Anatomy of the Linux file system: A layered structure-based review (IBM)] 7.3. VFS (Null) [Anatomy of the Linux virtual file system switch: Abstractions and high-level concepts (IBM)] 7.4. ZFS vs. BTRFS (AdDu) Prezentacja: BTRFS vs ZFS (Adrian Duraj) na podstawie: A short history of btrfs (Valerie Aurora). Także: Krótki wstęp do B-drzew – PDF/TEXMACS (MSq). 7.5. CacheFS (Null) [A general caching filesystem (LWN)][General Documentation)][CacheFS documentation (LWN)] Filesystem Caching (Linux 4 Systemy operacyjne 2009 7.6. NetFilter (BaĆwi) 8. Pracownia 2: moduły (2.12.2009) Lista zadań na 2. pracownię: moduły jądra Linux (zawiera podpowiedź na temat synchronizacji w jądrze Linux – 1.12.2009). 9. Pracownia 3: FUSE (9.12.2009) Lista zadań na 3. pracownię: FUSE. 10. Pracownia 4a: Systemy plików (16.12.2009) Lista zadań na 4. pracownię: Systemy plików — część 1. (obowiązkowa). 11. Pracownia 4b: Systemy plików (23.12.2009) Lista zadań na 5. pracownię: Systemy plików — część 2. (zamiast drugiej prezentacji). Dzień rektorski ⇒ pracownia anulowana! ⇒ dodatkowe ćwiczenia 27.01.2010. 12. Współbieżność (6.01.2010) Źródło: Internet. Łatwo dostępne prezentacje i podstawowe, szybkie kursy technologii 12.1, 12.2 i 12.3. 12.1. MPI (Null) 12.2. OpenMP (ToRyl) 12.3. Przetwarzanie strumieniowe (MiJęd) Temat przeglądowy — poszperać w sieci i pozbierać trochę. Zakres: przetwarzanie SIMD; problemy, które da się tak efektywnie rozwiązać; sprzęt: x86 (m.in. MMX, SSE, itp.), GPGPU (Tesla, FireStream), CELL, itp.; oprogramowanie. 12.4. OpenCL (MaBrzó) 13. Odrobaczanie Linuksa (13.01.2010) 13.1. Podstawowe techniki (MaSie) printk(): Documentation/printk-formats.txt, SysRq: Documentation/sysrq.txt, DebugFS: Documentation/filesystems/debugfs.txt 13.2. UML (GrzeŚpi) Rozdział 11. i 12. Documentation/uml/UserModeLinux-HOWTO.txt 13.3. Kernel debugger (MaSzcze; anulowane) Bardzo krótko o historii (co to KGDB, KGDB Light) i dalej: Inside the Linux kernel debugger (Hariprasad Nellitheertha, IBM) Marcin Skórzewski 5 14. Śledzenie (20.01.2010) 14.1. LatencyTop i BlkTrace (AdGud) 14.2. Wycieki (Null) Detecting kernel memory leaks (LWN), Documentation/kmemleak.txt, Documentation/kmemcheck.txt. 14.3. FunctionTracer (Null) 14.4. Tracepoints & Events (Null) 15. Pracownia: sprawdzanie rozwiązań (26.01.2010) Obecność obowiązkowa tylko dla osób oddających zadania. 16. Rezerwa (27.01.2010) Wpisy.