Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
courses:a4m35osp_reseni [2011/05/29 16:25] novakvo2 |
courses:a4m35osp_reseni [2025/01/03 18:23] (aktuální) |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Řešení otázek z roku 2010 ====== | ====== Řešení otázek z roku 2010 ====== | ||
+ | |||
+ | ===== Pozor, některé otázky jsou chybně vypracované upozorňoval na to ve zkoušce z 28.6.2012, prý dá příště jiné otázky! ===== | ||
+ | |||
===== Co je znakem OS software a produktů obecně? ===== | ===== Co je znakem OS software a produktů obecně? ===== | ||
Řádek 10: | Řádek 13: | ||
===== Na jaké úrovni jsou svázané zdrojové kódy a historie unix, GNU, GNU Linux? ===== | ===== Na jaké úrovni jsou svázané zdrojové kódy a historie unix, GNU, GNU Linux? ===== | ||
- | 1970 Unix vznikl ze zaniklého projektu Multics od Bell Labs | + | * 1970 Unix vznikl ze zaniklého projektu Multics od Bell Labs |
- | 1983 Richard Stallman z MIT založil GNU project pro unix-like system. Založil Free Software Foundation, napsal spoustu toolů pod free licencí | + | * 1983 Richard Stallman z MIT založil GNU project pro unix-like system. Založil Free Software Foundation, napsal spoustu toolů pod free licencí |
- | 1991 Linus Torvalds napsal vlastní jádro a složil ho s GNU prostředím, vzniká GNU/Linux | + | * 1991 Linus Torvalds napsal vlastní jádro a složil ho s GNU prostředím, vzniká GNU/Linux |
===== Jaké základní fce má Busybox a které programy nahrazuje a proč? ===== | ===== Jaké základní fce má Busybox a které programy nahrazuje a proč? ===== | ||
- | Minimalizované alternativy základních linuxových nástrojů | + | * Minimalizované alternativy základních linuxových nástrojů |
- | Minimalizovaný webserver | + | * Minimalizovaný webserver |
- | Minimalizovaná C knihovna | + | * Minimalizovaná C knihovna |
- | Licence GPL | + | * Licence GPL |
- | Velikost 500 kB | + | * Velikost 500 kB |
- | Použití pro vestavěné zařízení s ramdiskem | + | * Použití pro vestavěné zařízení s ramdiskem |
===== Jak vypadá základní návaznost komponent od výkonného HW, kde běží aplikace po grafický výstup na XWIN architektuře? ===== | ===== Jak vypadá základní návaznost komponent od výkonného HW, kde běží aplikace po grafický výstup na XWIN architektuře? ===== | ||
Řádek 49: | Řádek 53: | ||
===== Jak je, případně může být generován zisk společnosti, která investuje do OS systému? ===== | ===== Jak je, případně může být generován zisk společnosti, která investuje do OS systému? ===== | ||
- | Výrobci HW - zvedne poptávky po HW | + | * Výrobci HW - zvedne poptávky po HW |
- | Placená podpora | + | * Placená podpora |
- | Dvojí licencování - GNU/proprietální licence, když nechci svůj kód mít open-source | + | * Dvojí licencování - GNU/proprietální licence, když nechci svůj kód mít open-source |
- | Reklama | + | * Reklama |
- | Zakázkový vývoj rozšíření | + | * Zakázkový vývoj rozšíření |
===== Jaké jsou základní 2 možnosti pro umístění vyrovnávací paměti pro přístup k souborům na disku a podle jakých klíčů jsou data v paměti organizovaná? ===== | ===== Jaké jsou základní 2 možnosti pro umístění vyrovnávací paměti pro přístup k souborům na disku a podle jakých klíčů jsou data v paměti organizovaná? ===== | ||
- | diskové buffery | + | * diskové buffery |
- | pagecache v RAM | + | * pagecache v RAM |
- | + | ||
Pagecache je organizovaná podle příslušnosti a offsetu v souboru inode. Offsety jsou zarovnány tak, aby odpovídaly velikosti paměťové stránky (4 kB u x86). | Pagecache je organizovaná podle příslušnosti a offsetu v souboru inode. Offsety jsou zarovnány tak, aby odpovídaly velikosti paměťové stránky (4 kB u x86). | ||
Řádek 67: | Řádek 69: | ||
===== Základní 2 koncepty pro obsluhu klientů, proč pro více klientů je nutná kombinace? ===== | ===== Základní 2 koncepty pro obsluhu klientů, proč pro více klientů je nutná kombinace? ===== | ||
+ | * jedno vlakno na klienta + vlakno pro prijem spojeni a zakladani vlaken | ||
+ | * zpracovani vseho v jednom vlakne (odpada rezie, ale nevyuzije se vice cpu) | ||
+ | * thread-pool (pripravena vlakna + rizeni pridelovani) | ||
- | GUI vs příkazová řádka? | ||
- | Jak je omezena cena open-source produktů obecně a specificky pro GPL licenci? | + | |
+ | ===== Jak je omezena cena open-source produktů obecně a specificky pro GPL licenci? ===== | ||
Cena není omezena, binárky se mohou prodávat. Musí být ale možnost si to zkompilovat sám. | Cena není omezena, binárky se mohou prodávat. Musí být ale možnost si to zkompilovat sám. | ||
Řádek 76: | Řádek 81: | ||
===== Jaké jsou základní vrstvy operačního systému unixového typu od HW k uživateli? ===== | ===== Jaké jsou základní vrstvy operačního systému unixového typu od HW k uživateli? ===== | ||
- | + | * user | |
- | user | + | * user space (aplikace, knihovny) |
- | user space (aplikace, knihovny) | + | * kernel space (ovladače, komunikace s hw, API pro aplikace) |
- | kernel space (ovladače, komunikace s hw, API pro aplikace) | + | * hardware |
- | hardware | + | |
===== Jak vznikl projekt X Windows a jaké základní principy si tvůrci stanovili? ===== | ===== Jak vznikl projekt X Windows a jaké základní principy si tvůrci stanovili? ===== | ||
Řádek 91: | Řádek 95: | ||
===== Které základní informace a data uchovávají systémy pro správu zdrojových kódů (SCM)? ===== | ===== Které základní informace a data uchovávají systémy pro správu zdrojových kódů (SCM)? ===== | ||
- | + | * které složky a soubory jsou pod SCM | |
- | které složky a soubory jsou pod SCM | + | * commity s diffy změn uspořádané do DAG - directed acyclic graph |
- | commity s diffy změn uspořádané do DAG - directed acyclic graph | + | * odkazy na branche a tagy |
- | odkazy na branche a tagy | + | * odkaz na HEAD branch |
- | odkaz na HEAD branch | + | |
===== Jaký je rozdíl ve výsledném grafu historie/návaznosti verzí při použití „git merge“ a „git rebase“? ===== | ===== Jaký je rozdíl ve výsledném grafu historie/návaznosti verzí při použití „git merge“ a „git rebase“? ===== | ||
- | |||
Merge spojí dvě větve a k oboum větvím je možno se vrátit. | Merge spojí dvě větve a k oboum větvím je možno se vrátit. | ||
Řádek 104: | Řádek 106: | ||
===== Čím je zajímavé řešení výlučného běhu (mutex) použité v GLIBC s NPTL na GNU/Linux a za jaké podmínky na souběh úloh se nejvíce výhody projeví? ===== | ===== Čím je zajímavé řešení výlučného běhu (mutex) použité v GLIBC s NPTL na GNU/Linux a za jaké podmínky na souběh úloh se nejvíce výhody projeví? ===== | ||
- | |||
Používá se futex. Skládá se z wait fronty v kernel space, která je spojená s integerem v user space. Více vláken a procesů může rychle operovat s integerem v user space, relativně náročná změna wait fronty v kernel space se nemusí volat moc často. Výhody se projeví, když jsou aplikace dobře napsané a nevolají změnu wait fronty moc často. | Používá se futex. Skládá se z wait fronty v kernel space, která je spojená s integerem v user space. Více vláken a procesů může rychle operovat s integerem v user space, relativně náročná změna wait fronty v kernel space se nemusí volat moc často. Výhody se projeví, když jsou aplikace dobře napsané a nevolají změnu wait fronty moc často. | ||
Řádek 110: | Řádek 111: | ||
===== Jak může vést použití open-source řešení ke snížení nákladů v komerční firmě? ===== | ===== Jak může vést použití open-source řešení ke snížení nákladů v komerční firmě? ===== | ||
- | + | * snížení licenčních nákladů | |
- | snížení licenčních nákladů | + | * nezávislost na dodavateli |
- | nezávislost na dodavateli | + | * nezávislost na podpoře |
- | nezávislost na podpoře | + | * možnost upravit SW vlastním potřebám |
- | možnost upravit SW vlastním potřebám | + | |
===== Vysvětlete činnost systémového volání mmap() a jak se váže koncepce použitá k implementaci tohoto volání ke spuštění aplikace v systému GNU/Linux (ale i Windows a Unix)? ===== | ===== Vysvětlete činnost systémového volání mmap() a jak se váže koncepce použitá k implementaci tohoto volání ke spuštění aplikace v systému GNU/Linux (ale i Windows a Unix)? ===== | ||
Řádek 123: | Řádek 123: | ||
===== Proč jádro Linux přešlo zcela na koncept stránkové vyrovnávací paměti (pagecache) a vyrovnávací paměť na úrovni diskových bloků se nepoužívá? ===== | ===== Proč jádro Linux přešlo zcela na koncept stránkové vyrovnávací paměti (pagecache) a vyrovnávací paměť na úrovni diskových bloků se nepoužívá? ===== | ||
- | TODO | + | Protože byl požadavek na mapování souborů do paměti (mmap) a data se mohla objevit ve dvou kopiích (nepřípustné). |
===== Porovnejte časovou (algoritmickou) komplexitu různých mechanizmů pro čekání na více událostí (periodické dotazování, select, poll, epoll)? ===== | ===== Porovnejte časovou (algoritmickou) komplexitu různých mechanizmů pro čekání na více událostí (periodické dotazování, select, poll, epoll)? ===== | ||
- | The same functionality is offered by multiple functions, because two were implemented in Unix almost at the same time by two different groups: select was introduced in BSD Unix, whereas poll was the System V solution. The epoll call[4] was added in 2.5.45 as a way of making the polling function scale to thousands of file descriptors. | + | Select a poll bezi v linearnim case O(n), kde n je pocet deskriptoru. Deskriptorum rozumime jako jednotlivejm prostredkum (I-O, souborum) se kteryma pracujeme. Pokud jich jsou stovky, tak hodne zalezi na vykonu HW. |
+ | Select je v BSD, poll je soucasti Solarisu | ||
- | Actually, epoll is a set of three calls that together can be used to achieve the polling functionality. For our purposes, though, we can think of it as a single call. | + | Všechny tyto mechanismy se zeptají, jestli je možné čtení/zápis k danému souboru a a případně proces blokují, než je to možné. |
- | ~~DISCUSSION~~ | + | * Select O(n) |
+ | * Poll O(N) | ||
+ | * ePol O(1) | ||
+ | * Periodické dotazování O(n_registered+n_active) ale zároveň zbytečné čekání a plýtvání zdroji | ||
+ | ===== Ve kterých případech je vhodné použí Model/View architekturu u návrhu GUI? ===== | ||
+ | Pokud je víc zobrazení závislých na jedněch datech (např. tabulka a graf v Excelu). | ||
+ | |||
+ | ===== Popište rozdíl mezi GPL a LGPL, MIT, Apache a Creative Commons licencemi. ===== | ||
+ | |||
+ | GPL je nejvíc virová, cokoliv používá GPL kód musí být taky GPL. | ||
+ | |||
+ | LGPL umožňuje linkovat LGPL kód z jiných licencí. Typické použití je pro knihovny. | ||
+ | |||
+ | MIT a Apache licence nejsou copyleft. Odvozenina může být pod jinou licencí. Je ale nutné uvést disclaimer a z jakého projektu byla odvozenina vytvořena. | ||
+ | |||
+ | Creative commons je license pro jakýkoli obsah, nejenom pro software. Do license si člověk může dát 1-4 z těchto atributů: | ||
+ | * Attribution - nutno uvést autora originálního projektu | ||
+ | * Noncommercial - možno upravovat jenom pro nekomerční účely | ||
+ | * NoDerivatives - možno pouze kopírovat dané dílo, ale nikoliv ho upravovat | ||
+ | * Share-alike - znamená virální copyleft | ||
+ | |||
+ | ===== Popište správa aplikací a koncepce balíčků (Debian DEB, RedHat RPM) ===== | ||
+ | |||
+ | Správa aplikací v Linuxu probíhá přes package manager na jednom místě. Package managers: Aptitude, Yum | ||
+ | |||
+ | Balíčkovací systémy: | ||
+ | * DEB (Debian) - obsahuje tři soubory: debian-binary (identifikátor formátu), control (meta-data o balíčku), data (vlastní soubory balíčku) | ||
+ | * RPM (Red Hat, Fedora) - obsahuje jeden soubor, na jménu záleží. Uvnitř souboru je hlavička, ověření integrity, metadata, soubory v taru. | ||
+ | |||
+ | ===== Co to je OS POSIXového typu? ===== | ||
+ | |||
+ | POSIX je přenositelné rozhraní pro operační systémy standartizované IEEE, vycházejí ze systémů UNIX a popisují jaké API má systém podporovat a jak má API vypadat. | ||
+ | |||
+ | Jaké jsou architektury procesorů? | ||
+ | * x86 | ||
+ | * x86_64 | ||
+ | * ARM | ||
+ | * PowerPC | ||
+ | * Sparc | ||
+ | |||
+ | ===== Co znamená křížový překlad? ===== | ||
+ | |||
+ | Tzv. cross-compiler se používá k překladu softwaru pro jinou platformu než na který běží/na který je ten kód napsán. Např. na linuxu kompilujete program pro Windows. | ||
+ | |||
+ | ===== Jaký je rozdíl mezi shell, core-utils, BusyBox? ===== | ||
+ | |||
+ | * Shell - vyhodnocovač příkazů na příkazové řádce | ||
+ | * core-utils - základní množina příkazů v linuxu - cat, ls, pwd, vi, … | ||
+ | * BusyBox - emulace shellu a core-utils v embedded zařízení při minimální velikosti binárky | ||
+ | |||
+ | ===== Debian projekt a distribuce, popsat a myslím i jeho balíčkovací systém. ===== | ||
+ | Projek založil Ian Murdock v roce 1993. Od začátku předpokládal kompletně nekomerční projekt vyvíjený stovkami dobrovolníků. Přes 1000 dobrovolníků, přes 22000 balíčků, 12 architektur | ||
+ | |||
+ | ===== 5 hlavních věcí omezující výkon počítače ===== | ||
+ | |||
+ | * Výkon a počet CPU, | ||
+ | * velikost fyzikcé paměti (počet stránek) | ||
+ | * šířka pásma pro přístup k paměti | ||
+ | * šířka pásma pro přístup k datům na disku | ||
+ | * šířka pásma síťového připojení / infrastruktury | ||
+ | |||
+ | ===== Rozdíl vzdálená (remote) větev vs lokální větev, jak se změní lokální po zavolání git fetch? ===== | ||
+ | |||
+ | Upravy jsou vždy provadeny na lokalní větvi, po zavolání git fetch je stažen aktuální stav větve nový ukazatel je označen jako server/označení_záložky (tady asi nekdo myslel repo/branch). Lokální větev je větev v PC. Vzálená je někde na serveru. | ||
+ | |||
+ | ===== Co je release a co snapshot? ===== | ||
+ | |||
+ | * Release – soubory jsou uloženy v jejich počáteční podobě + seznam změn jedntlivých souborů (neni to spis vydani nove verze aplikace?) | ||
+ | * snapshot – sadu snímků vlastního malého systému souborů. | ||
+ | |||
+ | ===== Jaké jsou role v Model View vzhledem ke QT ===== | ||
+ | |||
+ | |||
+ | * Odděluje data od jejich prezentace. | ||
+ | * Data jsou v aplikaci jen jednou, řeší data redundancy hell | ||
+ | * Jedny data mohou být zobrazeny více způsoby či perspektivami. | ||
+ | * Jeden pohled lze použít pro zobrazní různých dat, pro různé modely | ||
+ | * Modely generující data, data vubec nemusí existovat, počítají se na požádání. | ||
+ | * Delegát/Controller slouží pro zobrazení/editaci dat | ||
+ | |||
+ | |||
+ | ===== Co je reverzní mapování a kdy se použije? ===== | ||
+ | |||
+ | Otázka se vztahuje k paměti a reverznímu nalezení všech Page Table, který vedou na stejný Page Frame. Viz například [[http://www.makelinux.net/books/ulk3/understandlk-CHP-17-SECT-2|zde]]. | ||
+ | |||
+ | <del>Kromě IP musíme někdy vyhledat zpětně kanonický název hostitele. Proto byla vytvořena speciální doména in-addr.arpa (4 úrovňová). Ta obsahuje IP adresy v obrácené tečkové notaci. tj. 149.251.48.1 odpovídá 1.48.251.149.in-addr.arpa Mezi zónami a IP sítěmi může být vztah 1:n ke každé IP podsíti se musí vytvořit odpovídající zóny v in-addr.arpa a ty musí být zpřístupněny správcům podsítě.</del> | ||
+ | |||
+ | ===== 3 hlavní požadavky (na co si dát pozor) na ABI při přenosu binárních dat (struktury, nativní typy) vzhledem k síťovému přenosu? ===== | ||
+ | |||
+ | rozhraní, které nabízí služby jádra směrem k zařízení. | ||
+ | |||
+ | * Výrobci testují proti binární podobě OS, dodávají binární ovladač. | ||
+ | * Hrozí porušení funkce ovladače se změnou ABI (např. update, service pack). | ||
+ | |||
+ | ===== Co znamená koncept "Všechno je soubor(inode)" kde je použit a jaké jsou výjimky? ===== | ||
+ | |||
+ | * Linux | ||
+ | * Veškerá zařízení (myš, klávesnice ...) jsou v linuxu jako soubory | ||
+ | * Sockety jsou výjimky | ||
+ | |||
+ | ~~DISCUSSION~~ |