ČeskyEnglish

Popis předmětu - A4M35OSP

Přehled studia | Přehled oborů | Všechny skupiny předmětů | Všechny předměty | Seznam rolí | Vysvětlivky               Návod
A4M35OSP Open-Source programování Rozsah výuky:2+2c
Garanti:  Role:PO,V Zakončení:Z,ZK
Vyučující: 
Zodpovědná katedra:13135 Kreditů:6 Semestr:L

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,
CZ.NIC, z. s. p. o., 2012, ISBN-13: 978-80-904248-5-2
[2] The Linux Documentation Project http://tldp.org/
[3] Popis programátorských technik v Unixu
http://dce.felk.cvut.cz/pos/os_api/unix.html
[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),
O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900

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/ .

Webová stránka:

https://moodle.fel.cvut.cz/courses/A4M35OSP

Předmět je zahrnut do těchto studijních plánů:

Plán Obor Role Dop. semestr
MPIB Před zařazením do oboru V 3
MPIB Před zařazením do oboru V
MPOI5NEW Softwarové inženýrství PO 2
MPKME2 Multimediální technika V 2
MPKME4 Sítě elektronických komunikací V 2
MPKME1 Bezdrátové komunikace V 2
MPKME3 Elektronika V 2
MPKME5 Komunikační systémy V 2
MPOI2 Počítačové inženýrství PO 2
MPEEM5 Ekonomika a řízení elektrotechniky V 2
MPEEM4 Ekonomika a řízení energetiky V 2
MPEEM2 Elektrické stroje, přístroje a pohony V 2
MPEEM1 Technologické systémy V 2
MPEEM3 Elektroenergetika V 2
MPOI5 Softwarové inženýrství PO 2
MPKYR4 Letecké a kosmické systémy V 2
MPKYR1 Robotika V 2
MPKYR2 Senzory a přístrojová technika V 2
MPKYR3 Systémy a řízení V 2


Stránka vytvořena 25.7.2017 17:54:30, semestry: L/2016-7, Z,L/2017-8, Z/2018-9, 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)
Za obsah odpovídá: doc. Ing. Ivan Jelínek, CSc.