Toto je starší verze dokumentu!
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.
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.
Branch je kopie zdrojového kódu, na které se může pracovat paralelně s jinými větvemi a později mergovat.
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í.
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.
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).
Cena není omezena, binárky se mohou prodávat. Musí být ale možnost si to zkompilovat sám.
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
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.
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.
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.
Protože byl požadavek na mapování souborů do paměti (mmap) a data se mohla objevit ve dvou kopiích (nepřípustné).
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é.
Pokud je víc zobrazení závislých na jedněch datech (např. tabulka a graf v Excelu).
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ů:
Správa aplikací v Linuxu probíhá přes package manager na jednom místě. Package managers: Aptitude, Yum
Balíčkovací systémy:
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ů?
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.
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
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.
Release – soubory jsou uloženy v jejich počáteční podobě + seznam změn jedntlivých souborů snapshot – sadu snímků vlastního malého systému souborů.
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ě.
rozhraní, které nabízí služby jádra směrem k zařízení.