]> rtime.felk.cvut.cz Git - edu/osp-wiki.git/blob - index.mdwn
For complex technical issues, you really need open source
[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 * 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".
29  
30 * 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)
31
32 * 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).
33
34 * Č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.
35
36 * Č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.
37
38 * 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).
39
40 * 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)
41
42 * Ří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/)
43
44 * 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/)
45
46 * 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
47   * [The largest Git repo on the planet](https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/),
48   autor Brian Harry.
49
50 * 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ů*
51   prezentovat Bc. Martin Vajnar článek
52   *[Algorithmic Improvements for Fast Concurrent Cuckoo Hashing](http://www.cs.princeton.edu/~mfreed/docs/cuckoo-eurosys14.pdf)*,
53   autorů Xiaozhou Li, David G. Andersen, Michael Kaminsky, Michael J. Freedman.
54
55 * 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
56   [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)
57
58 * 2015 Společnost Microsoft přechází s kompletní platformou Dot Net na otevřený vývojový model
59   * [Oficiální vývojový strom .NET v prostředí GitHub](https://github.com/Microsoft/dotnet)
60
61 Komunikace
62 ==========
63
64 Pro účely komunikace mezi studenty a vyučujícími slouží
65 [mailing list][ml]. Studentům doporučujeme sledovat komunikaci na
66 mailing listu, buď v [archivu][ar] nebo prostřednictvím
67 [přihlášení se k odběru][ml]. Vyučující předpokládají, že studenti
68 berou na vědomí zaslané informace.
69
70 Další komunikační kanály jsou:
71
72 - Twitter: <img src="Twitter_logo.png" alt="Twitter" class="twitter-logo">[[@CTU_OSP|twitter]]
73 - IRC: #ctu_osp on [Freenode](https://freenode.net/) ([Webchat](http://webchat.freenode.net?channels=%23ctu_osp))
74
75 [ml]: https://rtime.felk.cvut.cz/mailman/listinfo/osp
76 [ar]: https://rtime.felk.cvut.cz/pipermail/osp/
77
78 Hodnocení předmětu
79 ==========
80
81 <!-- TODO: U cvičení 3 smazat poznámku a) -->
82 <!-- TODO: Zpřísnit hodnocení - možná kontrolní termín v cca 9. týdnu:
83            Kdo nebude mít uspokojující postup na wiki, toho si pozveme
84            na kobereček.-->
85
86 [[!table class="borders" data="""
87 Co                                                                  | Podmínka<br/>zápočtu |  Body   | Poznámky,<br/>deadline |
88 Úloha 1 (úprava MC)                                                 | ✓                    | 5/1     | a), 10. 3. 2016        |
89 Úloha 2 (dmsg vypíše Hello <my name>)                               | ✓                    | 5/1     | a), 17. 3. 2016        |
90 Konzultace návrhu samostatné práce                                  | ✓                    |         |                        |
91 Úloha 3 (úprava patche proti Git historii)                          | ✓                    | 5/1     | a), 31. 3. 2016        |
92 Prezentace záměru práce                                             | ✓                    | 5/1     |                        |
93 Úloha 4 (Open street map)                                           | ✓                    | 5/1     | a), 14. 4. 2016        |
94 Úloha 5 (obsluha mnoha klientů)                                     | ✓                    | 5(+5)/1 | a), b), 28. 4. 2016    |
95 Test v půli semestru                                                | ✓                    | 15      |                        |
96 *Průběh samostatné práce*                                           |                      |         |                        |
97   Odezva od člena projektu                                          |                      | 3       | c)                     |
98   Vaše změny (i nepřijaté) jsou dostupné ve veřejném repozitáři     |                      | 3       | c)                     |
99   Otestování vašich změn členem projektu                            |                      | 3       | c)                     |
100   Zahrnutí vaší implementace do projektu                            |                      | 3       | c)                     |
101   Vaše změny jsou zdokumentovány v uživatelské dokumentaci projektu |                      | 3       | c)                     |
102   Výsledná práce odpovídá zadání ze 3. týdne                        |                      | 3       | c)                     |
103   Profilová stránka a slidy k závěrečné prezentaci jsou anglicky    |                      | 2       |                        |
104 Prezentace výsledku práce                                           | ✓                    | 1 – 5   | d)                     |
105 Open HUB kudorank                                                   |                      | (3)     | e)                     |
106 Zkouška                                                             |                      | 30      |                        |
107 **Celkem**                                                          |                      | **100+(8)** |                    |
108 """]]
109
110 [[!table class="borders" data="""
111 Známka | počet bodů
112 A       | 90 – ∞
113 B       | 80 – 89
114 C       | 70 – 79
115 D       | 60 – 69
116 E       | 50 – 59
117 F       | < 50 nebo < 15 ze zk. písemky
118 """]]
119
120 #### Poznámky:
121 <ol class="lower-alpha">
122 <li>5 bodů pokud je úloha odevzdána do "deadlinu" (včetně), jinak
123    1 bod.</li>
124 <li>Pět nejlepších studentů získá navíc 1 – 5 bonusových bodů.</li>
125 <li>pokud si vyberete jako samostatnou práci lokalizaci, bude vaše bodové hodnocení sníženo o 1/3.</li>
126 <li>1 – 5 bodů v závislosti na hodnocení (hlasování) všemi přítomnými.</li>
127 <li>[Open HUB][4] profil s kudorankem větším než 0 získaným za commity v open-source
128 projektech splňujících požadavky na [[samostatnou práci|cviceni#semestralka]].</li>
129 </ol>
130
131 #### Pravidla pro studenty kombinovaného studia (KS):
132 Pro absolvování kurzu je vyžadované vypracování všech úloh
133 a prezentací stejně jako pro ostatní studenty. Studentů kombinované
134 formy se však netýká snížení počtu bodů v případě
135 pozdějšího odevzdání úloh a také se mohou dohodnout
136 se cvičícím na odevzdání úloh a první prezentace elektronickou
137 cestou. Povinnou zůstává přítomnost na cvičení s testem
138 a na závěrečných prezentacích.
139
140 Podobné kurzy na jiných školách
141 ===============================
142
143 * [Andrew Tridgell: Teaching FOSS at Universities, LCA 2010](http://2009.r2.co.nz/20100118/50100.htm) 
144   ([slides](http://www.lca2010.org.nz/slides/50100.odp))
145 * [The Australian National University, Free and Open Source Software Development](http://cs.anu.edu.au/students/comp8440/)
146 * [Fachhochschule Augsburg, Hubert Högl](http://hhoegl.informatik.hs-augsburg.de)
147 * [TeachingOpenSource.org](http://teachingopensource.org/)
148 * [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))
149 * [Karlova Univerzita, MFF, Open source programování](http://pasky.or.cz/vyuka/2011-PRG055/)
150 * [Open Source Comes to Campus](http://campus.openhatch.org/) -- one-day workshop taught by OpenHatch people.
151
152 Literatura
153 ============
154
155 Pro prohloubení či upřesnění látky probírané na přednáškách mohou
156 posloužit následující odkazy:
157
158 * [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
159 * 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
160 * Floss Manuals <http://flossmanuals.net/>
161 * The Linux Documentation Project <http://tldp.org/>
162 * Popis programátorských technik v Unixu <http://dce.felk.cvut.cz/pos/os_api/unix.html> 
163 * GNU Operating System <http://www.gnu.org/>
164 * Embedded Linux kernel and driver development, <https://bootlin.com/>
165 * Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005.
166 * Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition), O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900
167 * [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/)
168 * [Ben Lynn: Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html)
169 * [Defensive patent publications](http://opensource.com/education/13/2/software-defensive-patents)
170
171 Prezentace studentských projektů z minulých běhů předmětu
172 ==========================================================
173
174 * [[Rok 2010|student/2010]]
175 * [[Rok 2011|student/2011]]
176 * [[Rok 2012|student/2012]]
177 * [[Rok 2013|student/2013]]
178 * [[Rok 2014|student/2014]]
179 * [[Rok 2015|student/2015]]
180 * [[Rok 2016|student/2016]]
181
182   [1]: http://www.fel.cvut.cz/cz/education/bk/predmety/12/53/p12539404.html
183   [2]: http://fel.cvut.cz/ 
184   [3]: http://bilakniha.cvut.cz/cs/predmet3054806.html#rozvrh
185   [4]: http://www.openhub.net/