Obsah

Ř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ě?

OS popisuje způsoby výroby a vývoje, které upřednostňují přístup ke kompletnímu výrobnímu postupu pro všechny účastníky.

OS software není zatížen patenty a NDAs, je volně přístupný pro všechny. Na vývoji se podílí komunita, produkty pro koncové uživatele jsou obvykle zdarma. Zdarma ale není podpora a zakázkový vývoj navazujících komponent.

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
  • 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

Jaké základní fce má Busybox a které programy nahrazuje a proč?

  • Minimalizované alternativy základních linuxových nástrojů
  • Minimalizovaný webserver
  • Minimalizovaná C knihovna
  • Licence GPL
  • Velikost 500 kB
  • 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?

XServer komunikuje přímo s HW a generuje výstup na monitor Klienti jsou aplikace, může jich být víc a na různých mašinách. Přijímají vstupy přes X protokol a říkají Xserveru, co zobrazovat.

Jaký je význam termínu branch (větev) v systému správy verzí (vznik, kdy a proč redukované)?

Branch je kopie zdrojového kódu, na které se může pracovat paralelně s jinými větvemi a později mergovat.

Proč a kdy je v jádře a aplikacích vhodné zjemnit granualitu zamykání na úkor častějšího zamykání (potřeba více cyklů CPU)?

Granualita je množství dat, které zámek chrání. Pokud máme málo procesů, je vhodnější hrubší granulalita, protože režie zamykání bude menší. Pokud ale máme hodně procesů, hrubá granualita by způsobovala kolize a zbytečné čekání.

Vysvětlete jaký je základní přínos signal-slot oproti callback.

Signal-slot je koncept ve frameworku QT, vysílají se signály a kdo má zaregistrovaný příslušný slot, správu přijme. Callback je je pointer na funkci, která se zavolá když je něco hotovo.

Callbacky nejsou type-safe, nemůžeme si být jisti, že se zavolá funkce se správnými argumenty. Callbacky jsou silně vázány se zpracovávací funkcí, nemůžeme jí jen tak vyměnit.

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
  • Placená podpora
  • Dvojí licencování - GNU/proprietální licence, když nechci svůj kód mít open-source
  • Reklama
  • 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á?

  • diskové buffery
  • 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).

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)

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.

Jaké jsou základní vrstvy operačního systému unixového typu od HW k uživateli?

  • user
  • user space (aplikace, knihovny)
  • kernel space (ovladače, komunikace s hw, API pro aplikace)
  • hardware

Jak vznikl projekt X Windows a jaké základní principy si tvůrci stanovili?

Projekt vznikl v roce 1984 na MIT

Principy: omezovat složitost, přidávat funkce jenom když to jinak nejde, podporovat rozšiřitelnost, když to nerozumíš, raději to nedělej

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
  • commity s diffy změn uspořádané do DAG - directed acyclic graph
  • odkazy na branche a tagy
  • 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“?

Merge spojí dvě větve a k oboum větvím je možno se vrátit. Rebase také udělá merge, ale jednu větev kompletně vyřadí z grafu, nejde s už k ní vrátit.

Čí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.

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ů
  • nezávislost na dodavateli
  • nezávislost na podpoře
  • 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)?

MMAP je systémové volání, které umožňuje mapovat soubory nebo zařízení do paměti. Je to výhodné pokud více aplikací přistupuje k stejnému souboru - nemusí si každý nahrávat soubor zvlášť do paměti. Pamět sdílená MMAP je přístupná všemi forky. Dá se použít pro komunikaci mezi procesy.

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á?

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)?

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

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

  • 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 zde.

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

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
courses/a4m35osp_reseni.txt · Poslední úprava: 2019/01/10 18:36 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0