Popis předmětu - AD4M35OSP
| AD4M35OSP | Open-Source programování | ||
|---|---|---|---|
| Role: | Rozsah výuky: | 14KP+6KC | |
| Katedra: | 13135 | Jazyk výuky: | CS |
| Garanti: | Zakončení: | Z,ZK | |
| Přednášející: | Kreditů: | 6 | |
| Cvičící: | Semestr: | L | |
Webová stránka:
http://support.dce.felk.cvut.cz/osp/Anotace:
Studenti se seznámí s open-source projekty a technikami ověřenými při programování rozsáhlejších aplikací a operačních systémů. Budou uvedeny důvody, které vedly k založení projektu GNU, a vysvětleno, proč může být tento přístup vhodnou platformou i pro spolupráci komerčních firem. Dále budou popsány standardní nástroje pro tvorbu, správu, ladění a testování zdrojových kódů a základní skladba operačního systému POSIXového typu. Předložen bude i úvod do tvorby ovladačů pro takovéto operační systémy a skladby uživatelských a grafických knihoven. Závěrečný blok přednášek bude zaměřen na využití popsaných technik ve vestavných aplikacích a pro řízení v reálném čase.Výsledek studentské ankety předmětu je zde: A4M35OSP
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 | |
| 2. | GNU - vznik základních vývojových nástrojů a jejich použití | |
| 3. | Přehled významných Open-source projektů (i pro výběr semestrální práce) | |
| 4. | Založení vlastního projektu a zapojení se do existujícího projektu | |
| 5. | Technická infrastruktura (správa verzí a chyb, komunikace, wiki) | |
| 6. | Komerční model; Sociální a rozhodovací struktury | |
| 7. | Mezilidská komunikace | |
| 8. | Vydávání verzí, příprava balíčků a průběžný vývoj | |
| 9. | Dobrovolníci, vývoj a větvení projektů | |
| 10. | Licence, autorská práva a patenty | |
| 11. | Cílové platformy, přenositelnost a open-source hardware | |
| 12. | Linuxové jádro - vznik, vývoj, skladba a ovladače | |
| 13. | Trendy a výhled do budoucnosti |
Osnovy cvičení:
Seznámení s vývojovými nástroji a prostředím GNU/Linux: Tvorba jednoduché aplikace v jazyce C, využití automake a případných dalších metod k sestavování programu Práce s rozsáhlým projektem a jeho historií: Vhodným kandidátem je Linuxové jádro Procházení historií (git), vývojové stromy, konfigurace a kompilace Tvorba jednoduchého znakového ovladače Samostatná práce: Výběr z nabídky prací na různých open-source projektech nebo návrh vlastní (úprav existujícího projektu, či založení projektu nového). Projekty mohou být z celé škály softwarových projektů, preferované jsou projekty zabývající se programováním na úrovni tradičních jazyků (C, C++, Java, Mono) buď plně přenositelných aplikací (POSIX) nebo programování na systémové úrovni. Práce na projektu/úpravách, komunikace s komunitou okolo projektu, konzultace se cvičícími Prezentace výsledků a hodnocení úspěšnosti, míry začlenění do projektu i studentovi komunikace s dalšími členy týmu.Literatura:
| [1] | Fogel K.: Tvorba open source softwaru, |
| [2] | The Linux Documentation Project http://tldp.org/ | |
| [3] | Popis programátorských technik v Unixu |
| [4] | GNU Operating System http://www.gnu.org/ | |
| [5] | Embedded Linux kernel and driver development, http://free-electrons.com. | |
| [6] | Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005. | |
| [7] | Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition), |
Požadavky:
Dobrá znalost jazyka C a alespoň základní zkušenosti s multithreadovým programováním v POSIXových systémech. Základní znalost skladby hardware počítačových systémů a logických obvodů je též nutnou podmínkou pro pochopení probírané látky a HW, SW návazností. Stránky předmětu: https://moodle.dce.fel.cvut.cz/Poznámka:
| Rozsah výuky v kombinované formě studia: 14p+6c |
| Stránky předmětu: |
| http://support.dce.felk.cvut.cz/osp/ |
Předmět je zahrnut do těchto studijních plánů:
| Plán | Obor | Role | Dop. semestr |
| Stránka vytvořena 15.12.2025 17:51:41, semestry: L/2024-5, Z,L/2025-6, Z,L/2026-7, připomínky k informační náplni zasílejte správci studijních plánů | Návrh a realizace: I. Halaška (K336), J. Novák (K336) |