]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blobdiff - prednasky.mdwn
lectures: minor update of link to LinuxDays 2023 presentation listing.
[edu/osp-wiki.git] / prednasky.mdwn
index 915f17bb0a5461054b2e3df9cc9270fddc62c412..5e82a7df8711c384de4f364d60801717396423ce 100644 (file)
@@ -1 +1,107 @@
 [[!meta title="Přednášky"]]
+
+Úč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][1]. Hlavní přednášející je [Pavel Píša][2].
+
+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|osp-intro-gnu.odp]], [[PDF|osp-intro-gnu.pdf]] a [záznam](https://youtu.be/WJvBghM5lnU) z konference [LinuxDays 2023](https://www.linuxdays.cz/2023/))
+
+2. Přehled významných Open source projektů (i pro [[výběr semestrální
+   práce|vyznamne-projekty]])
+   ([[ODF|osp-projects-map.odp]] a [[PDF|osp-projects-map.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][9] a přednáška
+   [Bart Trojanowski, Git the basics][3] ([[PDF|intro-to-git.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|osp-linux-overview.odp]] a [[PDF|osp-linux-overview.pdf]])  
+   [Embedded Linux kernel and driver development][4]; Standardní adresářová struktura ([FHS][6])
+
+5. [[Grafická uživatelská prostředí a knihovny: QT, GTK+, GNOME, KDE|gui]] Tvorba grafických aplikací.
+
+6. Komerční model, sociální a rozhodovací struktury
+   ([[ODF|osp-business-mdl-dec.odp]] a [[PDF|osp-business-mdl-dec.pdf]]);
+   Souborové systémy, správa paměti, bloková zařízení.
+   ([[ODF|osp-linux-fs-vmm.odp]] a [[PDF|osp-linux-fs-vmm.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|osp-project-init-infra.odp]] a [[PDF|osp-project-init-infra.pdf]]);
+   Virtualizace
+
+8. Mezilidská komunikace, dobrovolníci, vývoj a větvení projektů;
+   Zpracování událostí (hlavní smyčka, thread pools, C10k)
+   ([[ODF|osp-event-processing.odp]] a [[PDF|osp-event-processing.pdf]])
+
+9. Linuxové distribuce, vydávání verzí, příprava balíčků a průběžný
+   vývoj. ([[ODF|osp-linux-distributions.odp]] a [[PDF|osp-linux-distributions.pdf]])
+   [GNU/Linux distro timeline][5]
+
+10. Licence, autorská práva a patenty ([[ODF|osp-sw-licensing.odp]] a
+   [[PDF|osp-sw-licensing.pdf]],
+   [[FOSS licensing primer|20151123-unibo-licensing.pdf]]); 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|osp-hw-and-porting.odp]] a [[PDF|osp-hw-and-porting.pdf]]); [Google Code University][7] - Distributed Systems - [RPC Case Studies][8].
+
+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í.
+
+  [1]:http://www.fel.cvut.cz/cz/education/rozvrhy-ng/public/cz/mistnosti/10/11/m10115004.html
+  [2]:http://cmp.felk.cvut.cz/~pisa/
+  [3]:http://www.jukie.net/~bart/slides/
+  [4]:http://free-electrons.com/docs/kernel
+  [5]:http://futurist.se/gldt/
+  [6]:http://refspecs.linuxfoundation.org/fhs.shtml
+  [7]:http://code.google.com/edu/courses.html
+  [8]:http://code.google.com/edu/submissions/rutgers/index.html
+  [9]:http://git-scm.com/book/