B4B35OSY: Operační systémy

Podobné dokumenty
B4B35OSY: Operační systémy

Open Source Programování

Seznámení s open source vývojem a open source řešeními pro mobilní zařízení

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Stavba operačního systému

Ochrana software. Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Alžběta Krausová, 2011

Základní principy Open Source

Open Source Programování

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

Úvod do autorského práva, ochrana software, licence. SŠSI Tábor - Aplikační software 1

VirtualBox desktopová virtualizace. Zdeněk Merta

99 % všech desktopů na platformě MS Windows

Licence software. Přednáška číslo 10

Základy informatiky. Operační systémy

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Open source a Free software

Procesy a vlákna (Processes and Threads)

Svobodný software, open source, licence. Michal Dočekal

POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi.

Open Source alternativy

Úvod do operačního systému Linux Mgr. Josef Horálek

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

VY_32_INOVACE_INF.18. Otevřený software

Windows na co se soustředit

Virtualizace. Lukáš Krahulec, KRA556

Služba ve Windows. Služba (service) je program

Operační systémy. Tomáš Hudec.

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

IT ESS II. 1. Operating Systém Fundamentals

úvod Historie operačních systémů

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Operační systémy. Přednáška 1: Úvod

Virtualizace na Linuxu

Principy operačních systémů. Lekce 1: Úvod

Identifikátor materiálu: ICT-3-07

1.2 Operační systémy, aplikace

Jak importovat profily do Cura (Windows a

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Úvod do operačního systému Linux Mgr. Josef Horálek

Svět svobodného softwaru

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Definice OS. Operační systém je základní programové vybavení počítače, nezbytné pro jeho provoz.

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři

Management procesu I Mgr. Josef Horálek

Software je ve světě IT vše, co není Hardware. Do softwaru patří aplikace, program, proces, algoritmus, ale i data (text, obrázky), operační systém

Česká pošta, s.p. na Linuxu. Pavel Janík open source konzultant

Ukázka zkouškové písemka OSY

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Příručka aplikace KMix. Gaurav Chaturvedi Vývojář: Christian Esken Vývojář: Helio Chissini de Castro Vývojář: Brian Hanson

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Mobilní počítač Dolphin TM Stručný návod k použití

Pokročilé architektury počítačů

Jak funguje GNU/Linux

Operační systémy: funkce

Licence Creative Commons a jejich česká verze

Paralelní výpočty ve finančnictví

Formální Metody a Specifikace (LS 2011) Formální metody pro kyber-fyzikální systémy

Czech Republic. EDUCAnet. Střední odborná škola Pardubice, s.r.o.

Matematika v programovacích

2010/2011 ZS. Operační systém. úvod základní architektury

Činnost operačních systémů. Beránek Pavel 1. KŠPA

Programové prostředky IS/IT

RHEV for Desktops & SPICE příklad nasazení v akademickém prostředí. Milan Zelenka, RHCE Enlogit s.r.o.

produktů. produkty: AutoCAD Mechanical Showcase Autodesk Autodesk Designer SketchBook Autodesk Mudbox Vault Autodesk Ultimate Intel Xeon Intel Core

Software. Placený, nebo zdarma? Ing. Simona Martínková Masarykovo gymnázium, Plzeň

EUPŠ Clothes and fashion I

Virtualizace pomocí Novell Open Enterprise Server 2

HelpDesk. Co je HelpDesk? Komu je aplikace určena? Co vám přinese?

Základní typy struktur výpočetních systémů

Efektivní provoz koncových stanic

a co je operační systém?

EU přijímá nový program pro bezpečnější internet: 55 milionů EUR na bezpečnější internet pro děti

Hacking Team - exploity a zranitelnosti v programech. Petr Hanáček Fakulta informačních technologií, VUT v Brně

Legislativa v telekomunikacích. 5. přednáška

Veřejné licence, šedá literatura a vědecká data. Matěj Ústav práva a technologií cyber.law.muni.cz flip.law.muni.

Od Czech POINTu k vnitřní integraci

Projekt: ŠKOLA RADOSTI, ŠKOLA KVALITY Registrační číslo projektu: CZ.1.07/1.4.00/ EU PENÍZE ŠKOLÁM

Úvod do Linuxu SŠSI Tábor 1

FIREBIRD relační databázový systém. Tomáš Svoboda

B4B35OSY: Operační systémy

Obsah. Předmluvy. 1. KAPITOLA Úvod KAPITOLA Základní terminologie 2

Kdo jsme Čím se zabýváme Nabídka služeb pro veřejnou správu Ověřeno v praxi u tisíce uživatelů v podnikatelské a bankovní sféře Plně využitelné u

System Center Operations Manager

Návrh softwarových systémů - architektura softwarových systémů

Daniela Lišková Solution Specialist Windows Client.

Přednáška 1. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Srovnání Linuxu a BSD z pohledu jádra. Jan Dyrczyk

Příručka aplikace KNetWalk. Fela Winkelmolen Eugene Trounev

VY_32_INOVACE_INF.20. OS Linux

Číslo projektu: CZ.1.07/1.5.00/ Název projektu: Inovace a individualizace výuky

Obsah&/&Content& Všeobecné)podmínky)(v)češtině)) Terms)and)Conditions)(in)english)) )

Tabulka 1 Stav členské základny SK Praga Vysočany k roku 2015 Tabulka 2 Výše členských příspěvků v SK Praga Vysočany Tabulka 3 Přehled finanční

Copyright by Silca S.p.A All Rights Reserved. products quality.

Systém pro správu experimentálních dat a metadat. Petr Císař, Antonín Bárta 2014 Ústav komplexních systémů, FROV, JU

Transkript:

B4B35OSY: Operační systémy Trendy a zajímavé koncepty v OS Michal Sojka michal.sojka@cvut.cz 4. leden, 2018 1 / 53

Obsah 1 Spolehlivost/bezpečnost Windows Qubes OS Mikrojádra GNU/Hurd NOVA Plan 9 2 Real-time OS 3 Open source Ekonomické aspekty Základy autorského práva a licence 4 Mobilní OS 2 / 53

Spolehlivost/bezpečnost Obsah 1 Spolehlivost/bezpečnost Windows Qubes OS Mikrojádra GNU/Hurd NOVA Plan 9 2 Real-time OS 3 Open source Ekonomické aspekty Základy autorského práva a licence 4 Mobilní OS 3 / 53

Spolehlivost/bezpečnost Problémy běžných OS Monolitický design Jádro! Uživatelské komponenty (X-server,...) Chyba v jedné části OS (např. ovladač zvukové karty) způsobí pád celého systému Skrze zranitelnost v jedné části OS lze napadnout jakoukoli jinou část OS Řešení Lepší izolace jednotlivých komponent OS Přesun komponent z jádra OS do uživatelského prostoru 4 / 53

Spolehlivost/bezpečnost Ovladače v uživatelském prostoru Chyba v ovladači může způsobit pád systému Nekvalitní ovladače jsou také zdrojem mnoha bezpečnostních problémů Ovladače v uživatelském prostoru: Podporovány jak Linuxem (UIO) tak Windows Spouštěny jako běžná aplikace Přístup k registrům HW: mmap() Obsluha přerušení OS upozorní aplikaci pokud nastalo přerušení UIO: int uio = open("/dev/uio0",...); read(uio,...); // waits for interrupt handle_interrupt(); Při chybě ovladače ho lze jednoduše restartovat Ostatní aplikace nevolají ovladač pomocí systémových volání, ale pomocí meziprocesní komunikace (např. fronty zpráv) OS založené na mikrojádře mají (těměř) všechny ovladače v uživatelském prostoru 5 / 53

Spolehlivost/bezpečnost» Windows Windows Počínaje Windows NT 4.0 (1996), GUI bylo implementováno v jádře převážně kvůli rychlosti nižší stabilita Počínaje Windows Vista (2006) a zejména Windows 7 (2009) byly některé komponenty přesunuty do uživatelského módu Správce oken (DWM) Zvukový server a související služby Některé ovladače 6 / 53

Spolehlivost/bezpečnost» Qubes OS Qubes OS https://www.qubes-os.org/ Praktický a velmi bezpečný OS základem je hypervizor Xen Jednotlivé komponenty OS běží jako virtuální stroje a komunikuji pomocí hypervizoru 7 / 53

Spolehlivost/bezpečnost» Qubes OS Bezpečné GUI 8 / 53

Spolehlivost/bezpečnost» Qubes OS Qubes GUI Barevné označení oken podle zdrojové VM 9 / 53

Spolehlivost/bezpečnost» Qubes OS Qubes GUI Integrace MS Windows 10 / 53

Spolehlivost/bezpečnost» Mikrojádra Mikrojádra V privilegovaném režimu procesoru implementují jen to, co nejde udělat jinde Jaká funkcionalita to je? 11 / 53

Spolehlivost/bezpečnost» Mikrojádra Mikrojádra V privilegovaném režimu procesoru implementují jen to, co nejde udělat jinde Jaká funkcionalita to je? Typicky Správa adresních prostorů (procesů resp. stránkovacích tabulek) Komunikace mezi vlákny/procesy pomocí zasílání zpráv Plánování a synchronizace běhu vláken 11 / 53

Spolehlivost/bezpečnost» Mikrojádra Mikrojádra V privilegovaném režimu procesoru implementují jen to, co nejde udělat jinde Jaká funkcionalita to je? Typicky Správa adresních prostorů (procesů resp. stránkovacích tabulek) Komunikace mezi vlákny/procesy pomocí zasílání zpráv Plánování a synchronizace běhu vláken V už. prostoru: vše ostatní správa paměti (alokátor) souborové systémy síťové protokoly ovladače 11 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd https://www.gnu.org/software/hurd/ Cíl: Nahradit monolitická jádra používaná s OS GNU mikrojádrem OS GNU 12 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd https://www.gnu.org/software/hurd/ Cíl: Nahradit monolitická jádra používaná s OS GNU mikrojádrem OS GNU Svobodný OS Unixového typu Založen v r. 1984 R. M. Stallmanem Dnes používán převážně s jádrem Linux Hurd ve vývoji od r. 1990 Funkční, ale mnoho problémů (ovladače,...) Lze si stáhnout image a experimentovat např. v Qemu Distribuce GNU/Debian je portována na Hurd 12 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd Základní struktura Hurd = jádro Mach a uživatelské servery poskytující služby jako např. síť, souborový systém,... ext2fs pf net root auth proc user sh cp Kernel Tasks, memory, IPC 13 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd Souborový systém je poskytován aplikacím serverem. Zde transparentní přístup k souborům v ISO obrazu na vzdáleném serveru přístupném protokolem FTP. ext2fs pf net root auth proc ftpfs user sh isofs cp Kernel 14 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd Tradiční systémové služby jsou nejsou dostupné přes systémová volání, ale přes vzdálené volání procedur (RPC) ext2fs pf net root auth proc ftpfs user sh libc isofs cp libc Kernel 15 / 53

Spolehlivost/bezpečnost» Mikrojádra GNU/Hurd Propojení serverů lze libovolně kombinovat. ISO image na diskovém oddílu na FTP přístupném přes VPN. ext2fs pf net root Kernel auth proc open vpn ftpfs pf net user part ext2fs sh isofs cp 16 / 53

Spolehlivost/bezpečnost» Mikrojádra NOVA http://hypervisor.org/ Výkonný mikrohypervizor (9000 řádek kódu) Vývoj začal na TU Dresden Bezpečnost je řešena pomocí schopností (capability, viz 8. přednáška) Přehledná specifikace jen několik jednoduchých konceptů: https://github.com/udosteinberg/nova/raw/master/doc/specification.pdf 17 / 53

Spolehlivost/bezpečnost» Mikrojádra NOVA http://hypervisor.org/ Výkonný mikrohypervizor (9000 řádek kódu) Vývoj začal na TU Dresden Bezpečnost je řešena pomocí schopností (capability, viz 8. přednáška) Přehledná specifikace jen několik jednoduchých konceptů: https://github.com/udosteinberg/nova/raw/master/doc/specification.pdf Objekty spravované jádrem: Protection domain částečně podobné procesům z jiných OS Execution context Scheduling context } vlákno Portal něco mezi rourou a UNIXovým socketem Semaphore 17 / 53

Spolehlivost/bezpečnost» Mikrojádra NOVA http://hypervisor.org/ Výkonný mikrohypervizor (9000 řádek kódu) Vývoj začal na TU Dresden Bezpečnost je řešena pomocí schopností (capability, viz 8. přednáška) Přehledná specifikace jen několik jednoduchých konceptů: https://github.com/udosteinberg/nova/raw/master/doc/specification.pdf Objekty spravované jádrem: Protection domain částečně podobné procesům z jiných OS Execution context Scheduling context } vlákno Portal něco mezi rourou a UNIXovým socketem Semaphore Uživatelské prostředí: např. https://genode.org/ 17 / 53

Spolehlivost/bezpečnost» Mikrojádra Genode OS framework 18 / 53

Spolehlivost/bezpečnost» Mikrojádra Protection domain Objekt zodpovědný za izolaci Skládá se z: paměťový prostor stránky fyzické paměti prostor I/O portů přístupné I/O porty prostor jaderných objektů ostatní objekty S prostory se pracuje pomocí schopností, které jsou indexovány selectory (celé číslo int) capability selector object space with capabilities kernel objects 2 Portal 0 1 3 PT Capability PT Capability EC Capability Null Capability Portal Execution Context 19 / 53

Spolehlivost/bezpečnost» Mikrojádra Vlákna To, co jiné OS nazývají vlákny jsou v OS NOVA dva různé objekty Execution context (EC) reprezentuje stav procesoru daného vlákna a obsahuje Uložené registry procesoru Odkaz na protection domain... Scheduling context (SC) informace pro rozvrhovač Priorita Časové kvantum Odkaz na execution context Koncepty jsou oddělené proto, že když nějaký server (reprezentovaný EC) vykonává službu pro jiný EC (např. aplikaci), propůjčí aplikace svůj SC serverovému EC. 20 / 53

Spolehlivost/bezpečnost» Mikrojádra Systémová volání jádra NOVA 1 Call komunikace pomocí portálů a delegování schopností 2 Reply odpověď na call a delegování schopností zpět 3 Create PD 4 Create EC 5 Create PT 6 Create SC 7 Create SM 8 Revoke odnímání delegovaných schopností 9 Lookup zjišťování stavu/existence schopností 10 EC Ctrl podobné zaslání signálu jinému EC 11 SC Ctrl zjištění doby běhu 12 PT Ctrl 13 SM Ctrl operace nad semaforem 14 Assign PCI delegování přístupu k PCI zařízení 15 Assign GSI nastavení routování přerušení 21 / 53

Spolehlivost/bezpečnost» Mikrojádra Příklad vytvoření procesu v OS NOVA Zjednodušený pseudokód unsigned cap = 2048; // start of block of free capabilities unsigned cap_newec = cap+0, cap_newpd = cap+1, cap_newsc = cap+2; unsigned cap_nameserver_pt = cap+3; unsigned event_pt_base = 32; // Vytvor komunikacni kanaly pro "potomka" // Kdyz potomek zavola "call" na danem portalu, vyvola nase funkce create_pt(cap_nameserver_pt, cap_self_pd,..., nameserver_handler); create_pt(cap + event_pt_base + STARTUP_EVT,..., child_startup); create_pt(cap + event_pt_base + PAGE_FAULT_EVT,..., child_page_fault); // Vytvor PD se zakladnimi schopnostmi a hlavni "vlakno" create_pd(cap_newpd, cap_self_pd, cap_range(cap, cap+256)); create_ec(cap_newec, cap_newpd, CPU_0, UTCB, stack_ptr, event_pt_base); create_sc(cap_newsc, cap_newpd, cap_newec) 22 / 53

Spolehlivost/bezpečnost» Plan 9 Plan 9 https://9p.io/plan9/ Vyvíjen v Bellových laboratořích z části i původními autory UNIXu Dotažení UNIXové filozofie Všechno je soubor do úplné dokonalosti Distribuovaný OS Na rozdíl od UNIXu integruje síť do konceptu OS systém může běžet na více počítačích dohromady 23 / 53

Real-time OS Obsah 1 Spolehlivost/bezpečnost Windows Qubes OS Mikrojádra GNU/Hurd NOVA Plan 9 2 Real-time OS 3 Open source Ekonomické aspekty Základy autorského práva a licence 4 Mobilní OS 24 / 53

Real-time OS Operační systémy reálného času Pokud počítač interaguje s objekty v reálném světě, je často potřeba, aby kromě běžných požadavků na OS navíc garantoval dodržení časových parametrů Např. zpoždění obsluhy přerušení Běžný OS takově časování negarantuje a při větším zatížení se může zasekávat Používají se real-time OS (RTOS) Typické aplikace: Řízení letadel Průmysl (např. obráběcí CNC stroje) Robotika Více v předmětu x35psr 25 / 53

Real-time OS Bezpečnostně-kritické aplikace Aplikace interagující s reálným světem mají často bezpečnostně-kritický charakter Selhání takové aplikace může mít katastrofální následky Výbuch atomové elektrárny Pád letadla Srážka vlaků Bezpečnostně-kritické aplikace spouštějí se na spolehlivém (tj. pomalém) HW jsou co nejjednodušší, aby šly dobře verifikovat Ideální pro nasazení mikrojader (např. PikeOS) 26 / 53

Real-time OS Bezpečnostně-kritické aplikace Aplikace interagující s reálným světem mají často bezpečnostně-kritický charakter Selhání takové aplikace může mít katastrofální následky Výbuch atomové elektrárny Pád letadla Srážka vlaků Bezpečnostně-kritické aplikace spouštějí se na spolehlivém (tj. pomalém) HW jsou co nejjednodušší, aby šly dobře verifikovat Ideální pro nasazení mikrojader (např. PikeOS) Častým požadavkem na bezp.-kritické aplikace je tzv. freedom from interference (nepodléhání rušení) Aplikace se skládá z komponent Při vývoji bychom chtěli testovat komponenty samostatně a mít jistotu, že po jejich integraci budou fungovat stejně Může to fungovat, pokud nám někdo (např. RTOS) garantuje, že samostatně běžící komponenta poběží stejně jako při běhu s jinými komponentami Této vlastnosti se říká temportal isolation (časová izolace) 26 / 53

Real-time OS Bezpečnostně-kritické aplikace budoucnosti Autonomně řízená auta Pro zpracování dat ze senzorů je potřeba velký výpočetní výkon Aplikace jsou složité (umělá inteligence, zpracování obrazu,...) Pravý opak dnešních bezpečnostně-kritických aplikací U takových aplikací je velmi těžké zajistit freedom from interence 27 / 53

Real-time OS Bezpečnostně-kritické aplikace budoucnosti Autonomně řízená auta Pro zpracování dat ze senzorů je potřeba velký výpočetní výkon Aplikace jsou složité (umělá inteligence, zpracování obrazu,...) Pravý opak dnešních bezpečnostně-kritických aplikací U takových aplikací je velmi těžké zajistit freedom from interence Proč? 27 / 53

Real-time OS Many-core revolution 28 / 53

Real-time OS Vícejádrové CPU a heterogenní SoC Díky fyzikálním omezením dnes nelze zvyšovat výpočetní výkon zvyšováním taktovací frekvence CPU Zvyšuje se tedy počet CPU na čipu CPU ale nejsou 100% nezávislá sdílí například paměť 29 / 53

Real-time OS Vícejádrové CPU a heterogenní SoC Díky fyzikálním omezením dnes nelze zvyšovat výpočetní výkon zvyšováním taktovací frekvence CPU Zvyšuje se tedy počet CPU na čipu CPU ale nejsou 100% nezávislá sdílí například paměť Pokud mám 2jádrové CPU, výpočet, který nepotřebuje moc paměti (např. hledání prvočísel) běží 2 rychleji 29 / 53

Real-time OS Vícejádrové CPU a heterogenní SoC Díky fyzikálním omezením dnes nelze zvyšovat výpočetní výkon zvyšováním taktovací frekvence CPU Zvyšuje se tedy počet CPU na čipu CPU ale nejsou 100% nezávislá sdílí například paměť Pokud mám 2jádrové CPU, výpočet, který nepotřebuje moc paměti (např. hledání prvočísel) běží 2 rychleji Výpočty, které přistupují k paměti jsou ale zpomalovány ostatními jádry na dnešních CPU lze pozorovat až 5násobné zpomalení 29 / 53

Real-time OS Vícejádrové CPU a heterogenní SoC Díky fyzikálním omezením dnes nelze zvyšovat výpočetní výkon zvyšováním taktovací frekvence CPU Zvyšuje se tedy počet CPU na čipu CPU ale nejsou 100% nezávislá sdílí například paměť Pokud mám 2jádrové CPU, výpočet, který nepotřebuje moc paměti (např. hledání prvočísel) běží 2 rychleji Výpočty, které přistupují k paměti jsou ale zpomalovány ostatními jádry na dnešních CPU lze pozorovat až 5násobné zpomalení Ještě horší je situace u heterogenního HW: CPU + paralelní akcelerátor (GPU/FPGA) GPU má mnohem větší šířku pásma k přístupu do paměti a zpomaluje CPU mnohem víc Freedom from interference? Těžko 29 / 53

Real-time OS Řešení 1 Vývoj speciálního HW bez sdílených komponent drahé 2 Aktuální výzkum v oblasti RTOS: Predictable Execution Model Speciální způsob kompilace zdrojového kódu Shlukování přístupů do paměti a speciální plánování vláken, aby nedocházelo k interferenci Naše výsledky: 9násobné snížení interference mezi jádry na platformě NVIDIA Drive CX2 30 / 53

Real-time OS Závody F1/10 s univerzitou z italské Modeny 31 / 53

Real-time OS Zájem médií 32 / 53

Real-time OS Budoucnost Italové spolupracují s Maserati ČVUT s Porsche Na léto je plánován podobný závod Maserati vs. Porsche na italském autodromu 33 / 53

Open source Obsah 1 Spolehlivost/bezpečnost Windows Qubes OS Mikrojádra GNU/Hurd NOVA Plan 9 2 Real-time OS 3 Open source Ekonomické aspekty Základy autorského práva a licence 4 Mobilní OS 34 / 53

Open source Historie FOSS FOSS = Free and Open Source Software 50 a 60 léta: open source (public domain) bylo normou Lidé mezi sebou sdíleli kód jako kuchařské recepty nebo znalosti matematiky V 70. letech začaly firmy software uzavírat a prodávat (AT&T Unix, Microsoft,...) Richard M. Stallman (RMS) 1980 naštvala ho nemožnost opravit chybu v softwaru nové tiskárny na MIT 1983 začal vyvíjet operační systém GNU ( GNU s not Unix ) 35 / 53

Open source Svobodný software Program je svobodný software, pokud uživatelé toho programu mají čtyři základní svobody: Svoboda 0: spuštět program k libovolnému účelu Svoboda 1: studovat jak program funguje a měnit ho Svoboda 2: redistribuovat kopie programu Svoboda 3: vylepšovat program a zveřejňovat svá zlepšení Richard Stallman, 1986 (original version) http://www.gnu.org/philosophy/free-sw.en.html 36 / 53

Open source Open source Termín vznikl okolo roku 1998 Označuje otevřený vývojový model a snaží se odlišit od filozoficky a politicky motivovaného pojmu svobodný software Definice open source: https://opensource.org/osd-annotated 37 / 53

Open source» Ekonomické aspekty Otevřít nebo neotevřít? Firemní know-how: konkurenční výhoda (malá část) ostatní (velká část) Maximalizace ekonomického úspěchu = maximalizace investic do konkurenční výhody Ostatní know-how Koupit ho Spolupráce s ostatními (i s konkurenty) FOSS Standardizace Zdroj: OSADL 38 / 53

Open source» Ekonomické aspekty Otevřít nebo neotevřít? Firemní know-how: konkurenční výhoda (malá část) ostatní (velká část) Maximalizace ekonomického úspěchu = maximalizace investic do konkurenční výhody Ostatní know-how Koupit ho Spolupráce s ostatními (i s konkurenty) FOSS Standardizace Globalizace Tlak na firmy více konkurence, levnější práce jinde Zdroj: OSADL 38 / 53

Open source» Ekonomické aspekty Otevřít nebo neotevřít? Firemní know-how: konkurenční výhoda (malá část) ostatní (velká část) Maximalizace ekonomického úspěchu = maximalizace investic do konkurenční výhody Ostatní know-how Koupit ho Spolupráce s ostatními (i s konkurenty) FOSS Standardizace Globalizace Tlak na firmy více konkurence, levnější práce jinde Umožňuje vývoj FOSS FOSS lze chápat jako kompenzace negativních efektů globalizace Zdroj: OSADL 38 / 53

Open source» Ekonomické aspekty Jak vydělat peníze s FOSS? Mnoho způsobů nejběžnější: 1 Prodej HW: Dostupnost FOSS zvyšuje užitečnost/prodej HW Android, Intel,... 39 / 53

Open source» Ekonomické aspekty Jak vydělat peníze s FOSS? Mnoho způsobů nejběžnější: 1 Prodej HW: Dostupnost FOSS zvyšuje užitečnost/prodej HW Android, Intel,... 2 Placená podpora: SW je zdarma; lidé platí za vývojářovo know-how (konzultace) nebo vývoj rozšíření SW (také FOSS) Cygnus = Cygnus, your GNU Support, RedHat 39 / 53

Open source» Ekonomické aspekty Jak vydělat peníze s FOSS? Mnoho způsobů nejběžnější: 1 Prodej HW: Dostupnost FOSS zvyšuje užitečnost/prodej HW Android, Intel,... 2 Placená podpora: SW je zdarma; lidé platí za vývojářovo know-how (konzultace) nebo vývoj rozšíření SW (také FOSS) Cygnus = Cygnus, your GNU Support, RedHat 3 Dvojité licencování: copyleftová licence nebo placená komerční licence Qt, MySQL 39 / 53

Open source» Ekonomické aspekty Jak vydělat peníze s FOSS? Mnoho způsobů nejběžnější: 1 Prodej HW: Dostupnost FOSS zvyšuje užitečnost/prodej HW Android, Intel,... 2 Placená podpora: SW je zdarma; lidé platí za vývojářovo know-how (konzultace) nebo vývoj rozšíření SW (také FOSS) Cygnus = Cygnus, your GNU Support, RedHat 3 Dvojité licencování: copyleftová licence nebo placená komerční licence Qt, MySQL 4 Reklama: FOSS dělá reklamu jinému produktu/firmě a je jím placen Firefox, (Ubuntu) 39 / 53

Open source» Ekonomické aspekty Jak vydělat peníze s FOSS? Mnoho způsobů nejběžnější: 1 Prodej HW: Dostupnost FOSS zvyšuje užitečnost/prodej HW Android, Intel,... 2 Placená podpora: SW je zdarma; lidé platí za vývojářovo know-how (konzultace) nebo vývoj rozšíření SW (také FOSS) Cygnus = Cygnus, your GNU Support, RedHat 3 Dvojité licencování: copyleftová licence nebo placená komerční licence Qt, MySQL 4 Reklama: FOSS dělá reklamu jinému produktu/firmě a je jím placen Firefox, (Ubuntu) 5 Placená rozšíření: Eclipse IDE 39 / 53

Open source» Základy autorského práva a licence Duševní vlastnictví Duševní vlastnictví jsou výsledky procesu lidské tvořivosti, zkoumání a myšlení. Těmi jsou myšleny různé výsledky více či méně originálních myšlenek, námětů, návodů a řešení. Lze jej chránit pomocí: patentů ochranných známek zákonů o obchodním tajemství autorského práva (copyright) Software spadá pod duševní vlastnictví 40 / 53

Open source» Základy autorského práva a licence Autorské právo Omezuje použití specifických vyjádření myšlenek t.j., může být použito k omezení činností jako např.: Tvorba kopií díla a jejich prodej Tvorba odvozených děl Veřejné provozování díla Prodej a převod autorských práv na jiné osoby Vztahuje se na cokoli, co vykazuje známky kreativity Automaticky se vztahuje na všechno co vytvoříte, pokud se to vyskytuje v nějaké pevné a konkrétní podobě Výchozí nastavení autor má monopol, ostatní nemohou s dílem nakládat Omezení: Trvání: obvykle 70 150 let (podle státu) Férové použití: svoboda slova, svoboda citování atd. (v českých zákonech toto omezení není) Téměř shodné po celém světě od Bernské úmluvy z roku 1886 41 / 53

Open source» Základy autorského práva a licence Proč jsou potřeba licence? Autorské právo platí pro software Výchozí nastavení je všechna práva vyhrazena Z pohledu uživatele Bez licence nemůžete se softwarem dělat skoro nic. Z pohledu autora Bez licence nemohou vaší (potenciální) uživatele SW používat Musíte jim dát aspoň nějaká práva 42 / 53

Open source» Základy autorského práva a licence Licence svobodného software a autorské právo Licence svobodného software jsou právní hack : jsou podobné ostatním licencím, ale místo toho, aby činnost uživatelů omezovaly, tak naopak uživatelům některá speciální práva dávají Licence FOSS dávají uživatelům právě ta práva, aby si uživatelé mohli užívat 4 základní svobody (spouštět, studovat, kopírovat a modifikovat) Ale to neznamená, že je s FOSS možné dělat cokoli FOSS většinou licence vyžadují plnění určitých určitých podmínek Pokud je uživatel nedodrží, licence pro něj neplatí a tudíž platí výchozí nastavení autorského práva všechna práva vyhrazena. Poznámka; FOSS není proti ochraně duševního vlastnictví. Ve skutečnosti licence FOSS využívají autorského práva k zajištění svobody SW. 43 / 53

Open source» Základy autorského práva a licence Kategorie FOSS licencí Licence FOSS mohou být klasifikovány podle podmínek, které vyžadují výměnou za svobodu softwaru. Obecně se hovoří o následujících třídách licencí FOSS: Permisivní Reciproční Reciproční s omezeným působením (AKA silný copyleft ) (AKA slabý copyleft ) 44 / 53

Open source» Základy autorského práva a licence Akademické licence Relevant subset of popular permissive licenses The simplest licenses: very few restrictions Reserving only attribution (keep names and copyright notice) Available for all uses, including use in proprietary products Originally written for and popularized by universities Examples: MIT jquery BSD FreeBSD, CMake ISC BIND, ISC DHCP 45 / 53

Open source» Základy autorského práva a licence Permisivní licence Superset of academic licenses Include explicit grant of patent license (in modern variants) Available for almost all uses, including use in proprietary products Examples: Apache License Apache web server, Ant 46 / 53

Open source» Základy autorského práva a licence Reciproční licence Requires that derivative work maintains the same license In most case reciprocal licenses require binary distribution to also include full source code Also known as strong copyleft or just copyleft Sometimes called viral licenses, as a denigration tactic. If reciprocally licensed code is incorporated, then the application is infected and must be released as a whole under the same license Examples: GNU GPL Linux AGPL MongoDB, CiviCRM CC BY-SA (for non-software works) this presentation 47 / 53

Open source» Základy autorského práva a licence Reciproční licence a omezeným působením Like reciprocal licenses, but with limits on the scope of which parts of a derived work fall under the license terms changes to the main work falls under the license terms additional works that happen to be used with/added to/embedded with the main work do not They vary in the way the scope of the main work is limited According to the denigratory analogy: virality is limited to the main work Also known as: weak copyleft Examples: MPL Firefox, Libre Office CDDL NetBeans LGPL Qt 48 / 53

Open source» Základy autorského práva a licence What is copyleft? Copyleft is a strategy of utilizing copyright law to pursue the policy goal of fostering and encouraging the equal and inalienable right to copy, share, modify and improve creative works of authorship. Copyleft (as a general term) describes any method that utilizes the copyright system to achieve the aforementioned goal. Copyleft as a concept is usually implemented in the details of a specific copyright license, such as the GNU General Public License (GPL) and the Creative Commons Attribution Share Alike License. Copyright holders of creative work can unilaterally implement these licenses for their own works to build communities that collaboratively share and improve those copylefted creative works. http: // copyleft. org/ 49 / 53

Open source» Základy autorského práva a licence What is copyleft? (cont.) Granting the four freedoms is enough to guarantee users will get them only for a specific copy of the work how about further downstream redistribution? how about derived works? how about future versions? Copyleft makes sure that all users receiving a copy of the program, no matter how modified, also enjoy the four freedoms. The copyleft clause might have diverse implementations but all of them (at least for software licenses) share the same concept: distribution of any version of this program must preserve user freedoms. On the other hand copyleft does preclude some business models, and for that reason it gets backlash (e.g., from corporations) 50 / 53

Open source» Základy autorského práva a licence Restrictions and FOSS Are there permissible restrictions in FOSS licenses? 51 / 53

Open source» Základy autorského práva a licence Restrictions and FOSS Are there permissible restrictions in FOSS licenses? Yes: everything that does not get in the way of software freedom is acceptable. In practice, deciding what is OK and what is not is not always clear cut, and the decisions may very across gatekeepers (FSF/OSI/Debian/etc). Commonly accepted restrictions are: attribution of authors (as long as attribution does not impede normal use of the work) transmission of freedoms (e.g., copyleft) detailed protection of user freedoms (access to source code or prohibition of technical measures, e.g., DRM) 51 / 53

Mobilní OS Obsah 1 Spolehlivost/bezpečnost Windows Qubes OS Mikrojádra GNU/Hurd NOVA Plan 9 2 Real-time OS 3 Open source Ekonomické aspekty Základy autorského práva a licence 4 Mobilní OS 52 / 53

Mobilní OS Android Android vs. Linux 53 / 53