Účast na přednáškách je doporučená. Předpokládá se, že na cvičeních jsou studenti obeznámení s látkou probíranou na přednášce.

Přednášky jsou v místnosti T2:C3-132. Hlavní přednášející je Pavel Píša.

Osnovy přednášek

  1. Úvodní slovo o předmětu; Open source software, projekt GNU, licence a operační systémy vycházející z jeho filozofie (ODF a PDF)

  2. Přehled významných Open source projektů (i pro výběr semestrální práce) (ODF a PDF)

  3. Verzovací systém Git; GNU - vznik základních vývojových nástrojů a jejich použití, křížový překlad. Materiály: kniha Pro GIT a přednáška Bart Trojanowski, Git the basics (PDF)

     git clone git://git.jukie.net/intro-to-git.git/
     cd intro-to-git
     make
     kpdf intro-to-git.pdf
    
  4. Linuxové jádro - vznik, vývoj, skladba a ovladače; GNU libc a uživatelský prostor (ODF a PDF)
    Embedded Linux kernel and driver development; Standardní adresářová struktura (FHS)

  5. Grafická uživatelská prostředí a knihovny: QT, GTK+, GNOME, KDE Tvorba grafických aplikací.

  6. Komerční model, sociální a rozhodovací struktury (ODF a PDF); Souborové systémy, správa paměti, bloková zařízení. (ODF a PDF);

  7. Založení vlastního projektu a zapojení se do existujícího projektu; Technická infrastruktura (správa verzí a chyb, komunikace, wiki) (ODF a PDF); Virtualizace

  8. Mezilidská komunikace, dobrovolníci, vývoj a větvení projektů; Zpracování událostí (hlavní smyčka, thread pools, C10k) (ODF a PDF)

  9. Linuxové distribuce, vydávání verzí, příprava balíčků a průběžný vývoj. (ODF a PDF) GNU/Linux distro timeline

  10. Licence, autorská práva a patenty (ODF a PDF, FOSS licensing primer); Sledování živého systému, ladění, opravy a analýzy.

  11. Cílové platformy, vestavěná zařízení, open source v průmyslu, přenositelnost a open source hardware. (ODF a PDF); Google Code University - Distributed Systems - RPC Case Studies.

  12. Trendy a výhled do budoucnosti

Požadavky ke zkoušce

Položky v hranatých závorkách budou zahrnuty pokud studenti na přednáškách nebudou potřebovat příliš velké množství opakování látky, kterou si měli osvojit již v předchozích kurzech.

  • Základní znaky open-source software, licence (GPL, LGPL), vývojový model, spolupráce s komunitou, koexistence komerčních firem a open-source komunit, možnosti generování zisku.

  • Správa rozsáhlých softwarových projektů, systémy pro verzování, sledování chyb, koordinace vývojářů a vedení projektů.

  • Binární distribuce, jejich vznik, správa aplikací a koncepce balíčků (Debian DEB, RedHat RPM) a přehled důležitých open-source projektů.

  • Základní přehled o skladbě OS POSIXového typu, jádro, [model ovladačů,] správa paměti, uživatelské prostředí (procesy, knihovny, souborové systémy).

  • Grafická uživatelské rozhraní (Qt, koncepce signal-slot, Gtk, koncepce X - display server).

  • [Alespoň minimální základ znalostí v oblastech Linux pro vestavé systémy, architektury procesorů, křížový překlad, vývojové nástroje, knihovny, aplikace Linuxu v průmyslu, multimediálních zařízeních a v bezpečnostně kritických aplikacích (nanokernely, virtualizace).]

  • Minimální sada komponent pro start a běh systému a interakci s ním (shell, core-utils, BusyBox).

  • K případné ústní části dokumentace k práci na vašem projektu, historie ze systému správy verzí a záznam komunikace s dalšími vývojáři. I některé otázky písemné části se mohou týkat typických aspektů, které se při reálném komunitním vývoji vyskytují.