Open Source Programování
Cvičení
Zkouška
Co říkal přednášející na poslední přednášce:
důraz bude kladen na snahu se zorientovat v daé věci a umět si jednotlivé věci spojovat
písemná podoba, rozepisovací otázky - ne a/b/c..
prý se dá docela čerpat z Wikipedie k většině tématům (až na správu paměti)
Určil 4 základní okruhy:
sprava projektu - git, sprava verzi, diffy
historie OpenSource a projektu (podstatne co se k cemu hodi), mit prehled o tom o cem jsme se tady bavili, zakladni koncepcni navrhy typu(xWindows - server je tady a klient dava data)
technicka stranka
Qt, reakce na udalosti a spojeni
kernelove principy - potize s velkym mnozstvim pameti, procesoru
obecna skladba operacniho systemu predevsim Unixoveho typu
licence -
GPL, LGP, CreativeCommons, MIT, BSD - hlavni rozdily (ale ty tam moc pry asi nebudou)
Zkouška 26.5.
Co je znakem
OS software a produktů obecně?
Na jaké úrovni jsou svázané zdrojové kódy a historie unix, GNU, GNU Linux?
Jaké základní fce má Busybox a které programy nahrazuje a proč?
Jak vypadá základní návaznost komponent od výkonného HW, kde běží aplikace po grafický výstup na XWIN architektuře?
Jaký je význam termínu branch (větev) v systému správy verzí (vznik, kdy a proč redukované)?
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)?
Vysvětlete jaký je základní přínos signal-slot oproti callback.
Jak je, případně může být generován zisk společnosti, která investuje do
OS systému?
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á?
Základní 2 koncepty pro obsluhu klientů, proč pro více klientů je nutná kombinace?
Zkouška 9.6.2010
Jak je omezena cena open-source produktů obecně a specificky pro
GPL licenci?
Jaké jsou základní vrstvy operačního systému unixového typu od HW k uživateli?
Jak vznikl projekt X Windows a jaké základní principy si tvůrci stanovili?
Které základní informace a data uchovávají systémy pro správu zdrojových kódů (SCM)?
Jaký je rozdíl ve výsledném grafu historie/návaznosti verzí při použití „git merge“ a „git rebase“?
Čí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í?
Jak může vést použití open-source řešení ke snížení nákladů v komerční firmě?
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)?
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á?
Porovnejte časovou (algoritmickou) komplexitu různých mechanizmů pro čekání na více událostí (periodické dotazování, select, poll, epoll)?
Zkouška 6.6.2011
3 body na otázku, hodina na vypracování. Když něco není úplně přesně, spíš lehce strhával body, opravuje v poho. Ne vše si pamatuju přesně, třeba někdo doplní:
Na jaké úrovni jsou svázané zdrojové kódy a historie unix, GNU, GNU Linux? viz vypracovaná otázka tady - šlo mu o to co je odkud přebrané, co je nové
Jaké jsou základní vrstvy operačního systému unixového typu od HW k uživateli? nestačí vypsat kernel space, user space ale i co v nich je
Jak vypadá základní návaznost komponent od výkonného HW k XWindow kde co běží když je to po síti?(podobné tomu co už bylo)
Jaké jsou role v Model View vzhledem ke QT. prostě popsat model view
5 hlavních věcí omezující výkon počítače. takovéto paměť, šířka sběrnice…
Rozdíl vzdálená (remote) větev vs lokální větev, jak se změní lokální po zavolání git fetch?
Co je release a co snapshot?
Co je reverzní mapování a kdy se použije?
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? nepřesné
Debian projekt a distribuce, popsat a myslím i jeho balíčkovací systém.
Zkouška 28.5.2012
Verze 1
Na jaké úrovni jsou svázané historie a zdrojové kódy systémů Unix, GNU a GNU/Linux
Popište koncept signálů a slotů a které nejzásadnější situace řeší?
Jaký je rozdíl mezi operacemi „git pull“ a „git fetch“ ?
Čí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í?
Jaký je význam pojmu release (vydání) softwarového projektu a snapshot (snímek)?
Porovnejte časovou (algoritmickou¨komplexitu různých mechanizmů pro čekání na více událostí (periodické dotazování, select, poll, epoll)?
Jak může vést použití open-source řešení ke snížení nákladů v komerční firmě?
Jaký je vztah velikosti odkládacího oddílu, fyzické a virtuální paměti k maximální velikosti programu a dat jedné aplikace a jejího vícenásobného spuštění?
Popište různé možnosti pořadí ukládání vícebytových slov (číselných datových typů) do paměti a jak se označují?
Co vyjadřuje koncepce „všechno je soubor/pojmenovaný uzel (inode)“, jak se kterého systému týká a kde lze pozorovat výjimky z této koncepce?
Verze 2
Co je základním znakem open-source software a produktů obecně?
Vysvětlete jaký je zásadní přínos konceptu signálů a slotů oproti běžným zpětným voláním (callback) ?
V případě, že máme git repozitář s tisíci commity obsahující tisíce souborů, jehož celková velikost je 1 MiB. O kolik více řádově (/procentuálně) místa zabere repozitíř po vykonání příkazu pro vytvoření nové větve?
Proč (a kdy) je v jádře systému a aplikacích výhodné zjemnit granularitu zamykání (např. na jednotlivé stránky, jména souborů, PID atd), a to přesto, že se pak zamyká častěji a je tedy spotřebováno více cyklů CPU?
Popište využití programů diff a patch pro přenos úprav mezi různými verzemi projektu nebo jeho dvěma vývojáři?
Jakých je pět základních faktorů/zdrojů, které limitují běh počítačových aplikací?
Jaké jsou obecně možné formy řízení open-source projektů a jaký je stav v případě Linuxového jádra a projektu Debian?
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)?
Pro které typy komunikačních protokolů je potřeba řešit rozdíly v reprezentaci nativních datových typů mezi architekturami počítačů a naopak pro které není a čím za to druhá skupina platí?
Základní způsoby čekání na více zdrojů událostí v jednom vlákně?
Ústní otázka:
Reprezentace commitu (ve smyslu, že commit v sobě má nějaký hashe apod)
Co sa deje v systeme pri volani napriklad copy z shellu - otazka na systemove volani.
Zkouška 4.6.2012
Verze 1
Jaké jsou základní myšlenky společenské smlouvy projektu Debian?
Jak probíhá proces alokace fyzických paměťových stránek a na základě čeho je vhodná stránka vybrána a co je s ní (nejčastěji) potřeba před alokací udělat?
Které typy objektů ukládá verzovací systém GIT v adresáři .git/object/XX? (správná odpověď: commits, tags, trees, blobs)
Lilo,…,U-boot k čemu slouží? (K zavedení operačního systému.)
Jak probíhá vývoj, když právo zápisu do hlavního repozitáře(GIT) má pouze jeden člen týmu?
Popište jak vypadá sled událostí (na úrovni
OS) při využití přímého přístupu do paměti(DMA)?
Jak může vést použití open-source řešení ke snížení nákladů v komerční firmě?
Jaký je vztah velikosti odkládacího oddílu, fyzické a virtuální paměti k maximální velikosti programu a dat jedné aplikace a jejího vícenásobného spuštění?
Popište různé možnosti pořadí ukládání vícebytových slov (číselných datových typů) do paměti a jak se označují? Little, big endian
Jaké kompilátory budete potřebovat při úplné portaci
OS na novou architekturu CPU. Uvažujeme, že se na cílové platformě bude systém dále vyvíjet? Nativní překladač, crosscompiler, překladač na dané platformě
Verze 2
Jaká je podpora Debianu pro uživatele kteří potřebují i balíky které se neslučují se společenskou smlouvou Debianu?(sekce repozitářů non-free a contrib)
Jaký je význam řádek uvozených v unidiffu znaky '+++','—','@@',' ','+','-'.
-
Co je to křížový překlad.
Co je potřeba pro start a zavedení systému. (Nejen zavaděč, ale i pak co startuje jádro a tak…)
Jaké je použití DMA a v čem je toto využití výhodný při přenosu velkých souborů.
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 nemapuje do sdíleného paměti, ale do virtuálního prostoru - tak mi to aspoň opravil)
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?
Jaké jsou obecně možné formy řízení open-source projektů a jaký je stav v případě Linuxového jádra a projektu Debian?
Poslední už nevím, kdyžtak někdo doplňte. Předchozí otázky nejsou přesně formulované, jen jak jsem si je zapamatoval.
Zkouška 23.5.2013
Jaké jsou zásluhy pánů Thompson, Stallman a Torvalds?
Napsat jaké znáš možnosti komunikace mezi aplikacema (api a abi) a co o nich říkají open-source licence?
Popiš big endian a little endian.
Lilo,Grub,U-boot k čemu slouží? (K zavedení operačního systému.)
Co to je EULA?
Co to je polling? Jaké má výhody a nevýhody? Kdy je třeba ho používat?
Co je to operační systém posixového typu?
Vysvětlit rozdíl mezi git merge a git rebase.
Jak spolu souvisejí vývoje unixu, gnu a gnu linuxu?
Nevím, prosím doplnit.
Zkouška 7.6.2013
zadani_7_6_2013.zip Omlouvám se za zabělení odpovědí,ale raději jsem vymazal cokoliv, co by mě mohlo identifikovat.
Odpovědi k paměti (ot. 2; nikdo ji neměl 100% dobře):
a) 3 MB
b) 0 MB
c) 16 MB
d) 18 MB - edit 1 a 1 MB jsou vyjmuty ze společného prostoru
e) 31 MB (18+10+3(bss)) rekl, ze muze byt take 32 ten 1MB na vic zalezi na nejaky skript
Zkouška 28.5.2014
Zkouška 9.6.2014
Zkouška 25.5.2015
Zkouška 1.6.2015
Vypracované otázky z písemek
a4m35osp_reseni
otazky.odt asi 5 pridanych otazek
a4m35osp_reseni
otazky_upraveny.odt Dovolil jsem si materiály trochu vylepšit.
Vypracované okruhy a vybrané přednášky z X36OSY.
materials.zip
Poznámka:
Píša má podezření, že máme otázky vypracované, protože se v testech opakují stále stejné chyby. Je potřeba odpovědi opravit a hrozí, že změní zkouškové otázky. Jedná se hlavně o mmap, futex, signal/slot a pár odpovědí je zjevně špatně (release/snapshot atd.)
Nahoru