]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blob - index.mdwn
lectures: minor update of link to LinuxDays 2023 presentation listing.
[edu/osp-wiki.git] / index.mdwn
1 [[!meta title="Open Source Programování"]]
2 [[!toc]]
3
4 V tomto předmětu se studenti seznámí s open-source projekty a technikami ověřenými při
5 programování rozsáhlejších aplikací a operačních systémů. Budou
6 uvedeny důvody, které vedly k založení projektu GNU, a vysvětleno,
7 proč může být tento přístup vhodnou platformou i pro spolupráci
8 komerčních firem. Dále budou popsány standardní nástroje pro tvorbu,
9 správu, ladění a testování (nejenom) open-source softwaru a základní skladba
10 operačního systému POSIXového typu. Předložen bude i úvod do tvorby
11 ovladačů pro takovéto operační systémy a skladby uživatelských a
12 grafických knihoven. Závěrečný blok přednášek bude zaměřen na využití
13 popsaných technik ve vestavných aplikacích a pro řízení v reálném
14 čase.
15
16 [Popis předmětu][1] na stránkách [fakulty][2] a odkaz na rozvrh v [Bílé knize ČVUT][3].
17
18 Aktuality
19 =========
20
21 <!-- * Dne 20. dubna od 14:30 bude o vývoji grafických aplikací přednášet Ing. František Vacek
22   * Návrh nativních a mobilních GUI aplikací, nástroje, prostředí a knihovny* aneb *Qt everywhere* -->
23
24 <!-- * Ve dnech 5. a 6. března proběhne na Strahově konference a setkání [InstallFest](http://installfest.cz/if16/).
25   Prezentace představí různé otevřené technologie a nástroje. Jejich značná část se pak zabývá operačním systémem
26   GNU/Linux, na ně provozovanými službami a jeho využitím i na různých počítačových a mobilních platformách. -->
27
28 * Říjen 2021  Výkonný ředitel (CEO) společnosti Intel, Pat Gelsinger, potvrzuje prioritní postavení open source řešení ([An Open Letter to an Open Ecosystem ](https://www.phoronix.com/scan.php?page=news_item&px=Intel-Pledge-To-Open)). Za nabídkou je asi i snaha překonat učitou stagnaci za konkurencí (AMD) na straně jejich vývoje procesorů. Intel byl ale vždy v oblasti podpory GPU (až na nešťastný nákup SGX GMA500) příkladný, stejně jako u podpory procesorů atd. Na druhou stranu jejich management engines a FPGA nakloněné otevřenému vývoji, review a syntéze nejsou a reakce na tyto komentáře pod článkem zatím spíš chybí. Naopak [Yosys](https://yosyshq.net/yosys/) již umožňuje návrh z Verilogu i VHDL až po mapování na Xilinx 7-Series and Lattice iCE40 FPGAs, přitom firma Lattice spolupracuje. Open source je volba i v kosmu. International Space Station přešla na terminálových počítačích na palubě z [Windows na Debian GNU/Linux v roce 2013](https://www.computerweekly.com/blog/Open-Source-Insider/International-Space-Station-adopts-Debian-Linux-drops-Windows-Red-Hat-into-airlock) pro jeho stabilitu a flexibilitu a spokojenost s jeho nasazením stále nové zprávy potvrzují.
29
30 * Květen 2021 Linus Torvalds ve dvou rozhovorech pro TAG1 ([první](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git), [druhý](https://www.tag1consulting.com/blog/interview-linus-torvalds-open-source-and-beyond-part-2)) mimo jiné odpovídá na otázku "Is or is not open source sustainable?". V krátkosti "Yes. I'm personally 100% convinced that not only is open source sustainable, but for complex technical issues you really need open source simply because the problem space ends up being too complex to manage inside one single company. Even a big and competent tech company".
31  
32 * Březen 2021 Microsoft dokončuje zametení tísíců člověkoroků práce svých vývojářů do propadliště dějin ([Microsoft is ending support for the old non-Chromium Edge](https://www.theverge.com/2021/3/9/22321779/microsoft-edge-legacy-spartan-browser-support-ended)), komerční model vývoje neodstál proti práci hrstky neplacených nadšenců z projektu [KHTML](https://en.wikipedia.org/wiki/KHTML)
33
34 * Srpen 2020, Prezidentem [Free Software Foundation](https://www.fsf.org/) je zvolený Geoffrey Knauth. Jeho proslov k převzetí a pokračování cesty započaté [Richarde Matthew Stallmanem](https://en.wikipedia.org/wiki/Richard_Stallman) je k dispozici [zde](https://www.fsf.org/blogs/community/statement-from-fsfs-new-president-geoffrey-knauth).
35
36 * Červen 2020 Lenovo certifikuje celou řadu notebooků ThinkPad a ThinkStation Workstation pro použití s Ubuntu LTS a Red Hat Enterprise Linux, více v [oznámení](https://news.lenovo.com/pressroom/press-releases/lenovo-brings-linux-certification-to-thinkpad-and-thinkstation-workstation-portfolio-easing-deployment-for-developers-data-scientists/). Zároveň minmálně vybrané modely budou nabízené ke koupi s předisntalovanou distribucí Fedora, více v čase [1:27:46](https://www.youtube.com/watch?v=eK5IhNbkM5g&t=5266s) [Fedora 32 release party](https://twitter.com/Sesivany/status/1256693535832768512). Setkání české skupiny vývojářů projektu Fedora zajišťovala naše fakulta. přístup firmy Lenovo je příkladný v tom, že nebudou přizpůsobovat svému hardware jen určitou distribuci v určité verzi, ale zajstí podporu přes údržbu a rozvoj ovladačů v hlavním vývojovém stromu Linuse Torvaldse.
37
38 * Červen 2020, Internet Archive přestane podporovat [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) aneb správa zdrojových kódů podle Microsoftu. Po letech popírání Internetu, kdy uživatelé museli spoléhat na cizí řešení [Winsock](https://en.wikipedia.org/wiki/Winsock) založené na [BSD](https://en.wikipedia.org/wiki/Berkeley_sockets) Microsoft BSD kód integruje s velkou slávou do Windows a využívá jí k propagaci až je Bill Gates označen [Otcem Internetu](https://www.lupa.cz/clanky/neslavne-vyroky-slavnych-iii/). Microsoft využívá zdrojové kódy prohlížeče Mosaic a platí až 100 mil USD ročně na jeho vývoj s týmem okolo tisíce vývojářů a další peníze do nástrojů pro tvorbu obsahu, který je z jiných prohlížečů těžko přístupný. Ve stejné době (1998) hrstka vývojářů hledá cestu jak z alternativním platforem udržet dostupnost obsahu Internetu a vzniká [KHTML](https://en.wikipedia.org/wiki/KHTML). Z něho vzniká [WebKit](https://en.wikipedia.org/wiki/WebKit) na kterém staví svůj [prohlížeč](https://en.wikipedia.org/wiki/Safari_(web_browser) Apple, poději Google [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) a nakonec [Blink](https://en.wikipedia.org/wiki/Blink_(browser_engine), na který Microsoft přechází jako na standardní prohlížeč a který jako 230 MB materiálu dodává i na GNU/Linux jako binární (pouze) Debian balíček [Teams](https://en.wikipedia.org/wiki/Microsoft_Teams). Stojí za to se tedy zamyslet kam se podělo deset tisíc člověkoroků práce a jestli do důchodu odchází s pocite většího naplnění dobře živený vývojář, jehož veškerá práce sloužila k proszení pravidla "Jeden prsten vládne všem" a skončila na smetišti dějin nebo sice ne tak zajištění tvůrci původního kódu KHTML, Qt a dalších otevřených technologií. Zároveň je dobré se poučit do budoucna, které technologie pro udržitelný rozvoj používat.
39
40 * Květen 2020, Prezident Microsoftu Brad Smith přiznal na konferenci [pořádané MIT](https://www.zdnet.com/article/microsoft-we-were-wrong-about-open-source-but-luckily-you-can-change/): "Microsoft was on the wrong side of history when open-source exploded at the beginning of the century and I can say that about me personally." Srovnejte s [Halloween documents](https://en.wikipedia.org/wiki/Halloween_documents).
41
42 * Prosinec 2019 Televize CNBC s téměř 100 milióny platících zákazníků publikuje krátký filem [The Rise Of Open-Source Software](https://www.youtube.com/watch?v=SpeDK1TPbew)
43
44 * Říjen 2018 Microsoft nakupuje webowou službu a kopletní systém pro vývoj a správu projektů ve verzovacím systému Git [GitHub](https://github.com/). Viz článek [Microsoft finalizes its $7.5 billion GitHub acquisition](https://www.zdnet.com/article/microsoft-finalizes-its-7-5-billion-github-acquisition/)
45
46 * Listopad 2017 V seznamu [500 nejvýkonnějších](https://www.top500.org) výpočetních systémů světa se již nenachází ani jeden, který by nepoužíval jádro Linux. Viz článek [Linux totally dominates supercomputers](http://www.zdnet.com/article/linux-totally-dominates-supercomputers/)
47
48 * 24 května 2017 Zveřejněnil Brian Harry ve své sérii článků o [Git Virtual File System - GVFS](https://github.com/Microsoft/GVFS) popis závěrečné fáze obměny kocepce správy zdrojových kódů operačního systému Microsoft Windows
49   * [The largest Git repo on the planet](https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/),
50   autor Brian Harry.
51
52 * 13 května 2016 od 13:00 bude v místnosti KN:G-205 k tématu efektivního řešení úlohy *Obsluha mnoha klientů*
53   prezentovat Bc. Martin Vajnar článek
54   *[Algorithmic Improvements for Fast Concurrent Cuckoo Hashing](http://www.cs.princeton.edu/~mfreed/docs/cuckoo-eurosys14.pdf)*,
55   autorů Xiaozhou Li, David G. Andersen, Michael Kaminsky, Michael J. Freedman.
56
57 * 5 května 2016 byly publikovány výsledky průzkumu zájmu zaměstnavatelů o odborníky se znalostí Open-Source technologií a vývoje
58   [The 2016 Open Source Jobs Report: Companies Hungry for Professional Open Source Talent](http://www.linuxfoundation.org/news-media/announcements/2016/05/2016-open-source-jobs-report-companies-hungry-professional-open)
59
60 * 2015 Společnost Microsoft přechází s kompletní platformou Dot Net na otevřený vývojový model
61   * [Oficiální vývojový strom .NET v prostředí GitHub](https://github.com/Microsoft/dotnet)
62
63 Komunikace
64 ==========
65
66 Pro účely komunikace mezi studenty a vyučujícími slouží
67 [mailing list][ml]. Studentům doporučujeme sledovat komunikaci na
68 mailing listu, buď v [archivu][ar] nebo prostřednictvím
69 [přihlášení se k odběru][ml]. Vyučující předpokládají, že studenti
70 berou na vědomí zaslané informace.
71
72 Další komunikační kanály jsou:
73
74 - Twitter: <img src="Twitter_logo.png" alt="Twitter" class="twitter-logo">[[@CTU_OSP|twitter]]
75 - IRC: #ctu_osp on [Freenode](https://freenode.net/) ([Webchat](http://webchat.freenode.net?channels=%23ctu_osp))
76
77 [ml]: https://rtime.felk.cvut.cz/mailman/listinfo/osp
78 [ar]: https://rtime.felk.cvut.cz/pipermail/osp/
79
80 Hodnocení předmětu
81 ==========
82
83 <!-- TODO: U cvičení 3 smazat poznámku a) -->
84 <!-- TODO: Zpřísnit hodnocení - možná kontrolní termín v cca 9. týdnu:
85            Kdo nebude mít uspokojující postup na wiki, toho si pozveme
86            na kobereček.-->
87
88 [[!table class="borders" data="""
89 Co                                                                  | Podmínka<br/>zápočtu |  Body   | Poznámky,<br/>deadline |
90 Úloha 1 (úprava MC)                                                 | ✓                    | 5/1     | a), 10. 3. 2016        |
91 Úloha 2 (dmsg vypíše Hello <my name>)                               | ✓                    | 5/1     | a), 17. 3. 2016        |
92 Konzultace návrhu samostatné práce                                  | ✓                    |         |                        |
93 Úloha 3 (úprava patche proti Git historii)                          | ✓                    | 5/1     | a), 31. 3. 2016        |
94 Prezentace záměru práce                                             | ✓                    | 5/1     |                        |
95 Úloha 4 (Open street map)                                           | ✓                    | 5/1     | a), 14. 4. 2016        |
96 Úloha 5 (obsluha mnoha klientů)                                     | ✓                    | 5(+5)/1 | a), b), 28. 4. 2016    |
97 Test v půli semestru                                                | ✓                    | 15      |                        |
98 *Průběh samostatné práce*                                           |                      |         |                        |
99   Odezva od člena projektu                                          |                      | 3       | c)                     |
100   Vaše změny (i nepřijaté) jsou dostupné ve veřejném repozitáři     |                      | 3       | c)                     |
101   Otestování vašich změn členem projektu                            |                      | 3       | c)                     |
102   Zahrnutí vaší implementace do projektu                            |                      | 3       | c)                     |
103   Vaše změny jsou zdokumentovány v uživatelské dokumentaci projektu |                      | 3       | c)                     |
104   Výsledná práce odpovídá zadání ze 3. týdne                        |                      | 3       | c)                     |
105   Profilová stránka a slidy k závěrečné prezentaci jsou anglicky    |                      | 2       |                        |
106 Prezentace výsledku práce                                           | ✓                    | 1 – 5   | d)                     |
107 Open HUB kudorank                                                   |                      | (3)     | e)                     |
108 Zkouška                                                             |                      | 30      |                        |
109 **Celkem**                                                          |                      | **100+(8)** |                    |
110 """]]
111
112 [[!table class="borders" data="""
113 Známka | počet bodů
114 A       | 90 – ∞
115 B       | 80 – 89
116 C       | 70 – 79
117 D       | 60 – 69
118 E       | 50 – 59
119 F       | < 50 nebo < 15 ze zk. písemky
120 """]]
121
122 #### Poznámky:
123 <ol class="lower-alpha">
124 <li>5 bodů pokud je úloha odevzdána do "deadlinu" (včetně), jinak
125    1 bod.</li>
126 <li>Pět nejlepších studentů získá navíc 1 – 5 bonusových bodů.</li>
127 <li>pokud si vyberete jako samostatnou práci lokalizaci, bude vaše bodové hodnocení sníženo o 1/3.</li>
128 <li>1 – 5 bodů v závislosti na hodnocení (hlasování) všemi přítomnými.</li>
129 <li>[Open HUB][4] profil s kudorankem větším než 0 získaným za commity v open-source
130 projektech splňujících požadavky na [[samostatnou práci|cviceni#semestralka]].</li>
131 </ol>
132
133 #### Pravidla pro studenty kombinovaného studia (KS):
134 Pro absolvování kurzu je vyžadované vypracování všech úloh
135 a prezentací stejně jako pro ostatní studenty. Studentů kombinované
136 formy se však netýká snížení počtu bodů v případě
137 pozdějšího odevzdání úloh a také se mohou dohodnout
138 se cvičícím na odevzdání úloh a první prezentace elektronickou
139 cestou. Povinnou zůstává přítomnost na cvičení s testem
140 a na závěrečných prezentacích.
141
142 Podobné kurzy na jiných školách
143 ===============================
144
145 * [Andrew Tridgell: Teaching FOSS at Universities, LCA 2010](http://2009.r2.co.nz/20100118/50100.htm) 
146   ([slides](http://www.lca2010.org.nz/slides/50100.odp))
147 * [The Australian National University, Free and Open Source Software Development](http://cs.anu.edu.au/students/comp8440/)
148 * [Fachhochschule Augsburg, Hubert Högl](http://hhoegl.informatik.hs-augsburg.de)
149 * [TeachingOpenSource.org](http://teachingopensource.org/)
150 * [Aberystwyth University: Open Source Development Issues](http://www.aber.ac.uk/en/modules/deptcurrent/?m=CS38110) ([Steve McIntyre: prednáška](http://www.einval.com/~steve/talks/Aberystwyth-2009/HEADER.html))
151 * [Karlova Univerzita, MFF, Open source programování](http://pasky.or.cz/vyuka/2011-PRG055/)
152 * [Open Source Comes to Campus](http://campus.openhatch.org/) -- one-day workshop taught by OpenHatch people.
153
154 Literatura
155 ============
156
157 Pro prohloubení či upřesnění látky probírané na přednáškách mohou
158 posloužit následující odkazy:
159
160 * [Karl Fogel: Producing Open Source Software (How to Run a Successful Free Software Project)](http://producingoss.com/en/index.html), CreateSpace, 2009, ISBN-13: 978-1441437716
161 * Překlad [Karl Fogel: Tvorba open source softwaru](http://knihy.nic.cz/), CZ.NIC, z. s. p. o., 2012, ISBN-13: 978-80-904248-5-2
162 * Floss Manuals <http://flossmanuals.net/>
163 * The Linux Documentation Project <http://tldp.org/>
164 * Popis programátorských technik v Unixu <https://wiki.control.fel.cvut.cz/pos/os_api/unix.html>
165 * GNU Operating System <http://www.gnu.org/>
166 * The Open Group Base Specifications Issue 7, 2018 edition IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) [POSIX.1-2017](https://pubs.opengroup.org/onlinepubs/9699919799/idx/topic.html)
167 * Embedded Linux kernel and driver development, <https://bootlin.com/> [Docs](https://bootlin.com/docs/)
168 * Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005.
169 * Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition), O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900
170 * [An Exploration of Fedora’s Online Open Source Development Community](http://www.cyber-anthro.com/beta-an-exploration-of-fedora%E2%80%99s-online-open-source-development-community/)
171 * [Ben Lynn: Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html)
172 * [Defensive patent publications](http://opensource.com/education/13/2/software-defensive-patents)
173
174 Prezentace studentských projektů z minulých běhů předmětu
175 ==========================================================
176
177 * [[Rok 2010|student/2010]]
178 * [[Rok 2011|student/2011]]
179 * [[Rok 2012|student/2012]]
180 * [[Rok 2013|student/2013]]
181 * [[Rok 2014|student/2014]]
182 * [[Rok 2015|student/2015]]
183 * [[Rok 2016|student/2016]]
184
185   [1]: http://www.fel.cvut.cz/cz/education/bk/predmety/12/53/p12539404.html
186   [2]: http://fel.cvut.cz/ 
187   [3]: http://bilakniha.cvut.cz/cs/predmet3054806.html#rozvrh
188   [4]: http://www.openhub.net/