Jak operační systémy řídí váš digitální život bez povšimnutí

8

Stisknete tlačítko napájení. Obrazovka se rozsvítí. Kliknete na ikonu. Když mávnete myší, abyste vyvolali Spotify nebo Chrome, máte pocit, jako byste byli dirigentem orchestru. Ale tento pocit naprosté kontroly je iluze.

Za sklem obrazovky pracuje neviditelný dělník. Postará se o zpracování složité a spletité logiky, takže vy nemusíte. Tento pracovník je operační systém.

Bez něj se váš hardware stane jen drahým trikem. OS je správce. Rozhoduje, který program bude mít přístup k procesoru. Odesílá data do tiskárny. Zabraňuje zhroucení paměti, když otevřete příliš mnoho karet.

Největší hráči na trhu stolních počítačů

Microsoft Windows stále dominuje na trhu osobních počítačů. Jedná se o standardní řešení pro většinu kancelářských úkolů a herních systémů. Uživatelé Apple používají macOS, který je úzce integrován s hardwarem.

Následuje Linux. Znáte to jako motor internetu. Na něm běží většina serverů, které umožňují fungování webových stránek. Linux už ale není jen pro systémové administrátory. Distribuce jako Ubuntu nebo Fedora se staly překvapivě pohodlnými pro každodenní uživatele, kteří chtějí uniknout z ekosystému Microsoftu.

Mobilní a vestavěné ekosystémy

Trh smartphonů je duopol. Google Android má globální většinu. Apple iOS dominuje prémiovému trhu v zemích jako USA.

Někteří výrobci se snaží tomuto duopolu uniknout. Huawei používá svůj vlastní HarmonyOS. Samsung aktivně propaguje shell One UI. Většina doplňků pro Android však zůstává založena na stejném jádře.

Apple se neomezuje pouze na telefony. iPad běží na iPadOS. Apple Watch – na watchOS. Set-top box Apple TV – na tvOS. Každý z nich je variací na stejné téma: přísné kontroly, vysoké zabezpečení a hluboká integrace hardwaru.

Vypnutá obrazovka

Často zapomínáme, že vše má nyní „mozek“. Vaše chytrá lednička to má. Vaše televize to má. Multimediální systém vašeho auta běží na vlastním operačním systému, často založeném na QNX nebo Android Automotive.

Samořídící auta jsou úplně jiný příběh. Jejich operační systémy musí zpracovat data senzorů v milisekundách. Zpoždění je víc než jen nepříjemnost. Jedná se o potenciální bezpečnostní riziko.

Co vlastně dělá program operačním systémem?

Ne každý software je operační systém. Textový procesor není OS. Webový prohlížeč není OS.

Aby se software kvalifikoval jako operační systém, musí dělat tři věci:

  • Správa hardwaru: Přímo spolupracuje s procesorem, pamětí a úložnými zařízeními.
  • Poskytujte uživatelské rozhraní: Poskytuje vám způsob interakce, ať už prostřednictvím myši nebo dotykové obrazovky.
  • Spustit aplikace: Poskytuje prostředí, ve kterém žijí a běží další programy.

“Operační systém je mostem mezi vaším záměrem a schopnostmi stroje.”

Bez tohoto mostu nebudete moci spouštět aplikace. Nebudete moci ukládat soubory. Nebudete se moci připojit k Wi-Fi. Ocitnete se ve slepé uličce.

Proč je to pro vás důležité?

Porozumění vašemu operačnímu systému je důležité, protože určuje vaše zabezpečení, soukromí a flexibilitu. Aktualizace systému Windows mohou vynutit restart systému. macOS vás uzamkne ve službách Apple. Linux nabízí svobodu, ale vyžaduje údržbu.

V následujících částech se podrobně podíváme na to, jak přesně tyto systémy fungují. Podíváme se na jádro. Probereme uživatelské rozhraní. A my vám ukážeme, jak získat zpět část kontroly, kterou si myslíte, že máte.

Proč se většina gadgetů obejde bez OS

Dalo by se předpokládat, že každý čip, na kterém běží kód, potřebuje plnohodnotný operační systém. To je špatně. Vezměte počítač do mikrovlnné trouby. Dělá jednu věc: ohřívá jídlo. Vstupní data pocházejí z klávesnice. Hardware se nikdy nemění.

Komplexní OS je zde jen balast. Zvyšuje to náklady. Přidává to zbytečné složitosti. Místo toho taková zařízení provádějí jeden pevně zakódovaný úkol. Toto je vestavěný systém. Pracuje neustále. Nenačte se. Není aktualizován. Prostě to funguje.

Ale pro ostatní zařízení se pravidla mění.

Hodnota operačního systému

Proč potřebujeme OS? Protože poskytují flexibilitu. Bez OS jste omezeni na to, co rozhodl výrobce hardwaru. Operační systém vytváří schopnost:

  • Provádějte různé úkoly na stejném hardwaru
  • Komunikujte s uživateli složitými způsoby
  • Přizpůsobte se měnícím se potřebám v průběhu času

To je důvod, proč je každý stolní počítač dodáván s OS. Máme rodinu Windows od Microsoftu. Existuje macOS od společnosti Apple. Pak je tu rodina UNIX, mozaika jednotlivců a korporací vytvořená v průběhu desetiletí. Kromě nich existují stovky dalších systémů. Specializují se na sálové počítače. Robotika. Výroba. Ovládání v reálném čase.

Síla přenosného kódu

Zde je klíčový rozdíl mezi mikrovlnnou troubou a vaším notebookem. Jedno zařízení lze upravit. Ostatní – ne.

Operační systémy používají spíše přenosný kód než trvalé fyzické obvody. To není nehoda. Jedná se o vědomou volbu designu. Umožňuje provádět změny, aniž byste zařízení vyhodili.

Pro uživatele stolního počítače to znamená odolnost. Dostáváte aktualizaci zabezpečení. Nainstalujete opravu. Přidáváte novou aplikaci. Pokud se OS stane příliš nafouknutým nebo nekompatibilním, můžete nainstalovat zcela nový OS. Počítač nevyhazujete do koše. Nákupem nového vybavení nezačínáte od nuly. Pokud víte, jak se do systému dostat, můžete změnit jeho chování.

Co vlastně OS dělá?

Odeberte uživatelské rozhraní. Odstraňte ikony. co zbylo?

V nejjednodušším případě plní operační systém dvě kritické funkce.

Za prvé, spravuje zdroje. To platí pro počítače, tablety a smartphony. Zpracovává data procesoru. Přiděluje paměť. Spravuje místo na disku. Ona to všechno vyvažuje.

Za druhé, poskytuje stabilní rozhraní. Poskytuje aplikacím konzistentní způsob interakce s hardwarem. Aplikace nepotřebuje znát napětí procesoru. Nepotřebuje znát mapu sektorů pevného disku. OS abstrahuje detaily. Umožňuje spuštění softwaru bez znalosti tajemství stroje.

Právě tato abstrakce umožňuje, aby váš software běžel na různých počítačích. To je důvod, proč nemusíte psát nový ovladač pokaždé, když vyjde nová grafická karta. Překlad provede OS.

Představte si centrální procesorovou jednotku (CPU) jako rušnou kuchyni při večerním náporu zákazníků. Několik programů vyžaduje pozornost současně. Některé vyžadují více paměti, jiné vyžadují vysokou I/O propustnost. Bez řádu nastává chaos. Operační systém přichází na pomoc. Působí jako přísný, ale spravedlivý rodič. Jeho úkolem je distribuovat zdroje tak, aby žádná aplikace „nekazila párty“. Spravuje omezenou kapacitu pro společné dobro všech uživatelů a aplikací běžících současně.

Proč je důležitá konzistence

Druhou klíčovou odpovědností je poskytovat konzistentní uživatelskou zkušenost. To se stává kritickým při nasazení více počítačů stejného typu nebo při výměně hardwarových komponent. Tajnou omáčkou je standardizované rozhraní pro programování aplikací (API).

Vývojáři na tuto konzistenci spoléhají. Napíší kód jednou a poté jej nasadí na různé stroje. Dělají to s vysokou jistotou, že software bude i nadále fungovat, i když má cílový počítač jiné množství paměti RAM nebo místa na disku. API abstrahuje hardwarové rozdíly. Vývojář nemusí přepisovat základní logiku pro každou konkrétní konfiguraci.

Manipulace s rozmanitostí hardwaru

I na unikátním, ručně vyrobeném stroji zůstává operační systém během aktualizací stabilní. K tomu dochází, protože hardware je spravován operačním systémem, nikoli aplikací. Aplikace pouze požaduje služby a OS je poskytuje.

Pro vývojáře to představuje obrovskou výzvu. Musí zachovat flexibilitu operačních systémů pro podporu tisíců výrobců. Dnes vejdete do obchodu a můžete si sestavit PC s tiskárnou značky A, diskovou jednotkou značky B a specializovanou periferií značky C. OS musí zvládnout jakoukoli kombinaci. Abstrahuje složitost a zajišťuje, že váš software běží bez ohledu na použitý křemíkový čip.

Typy operačních systémů

Většina lidí jen klikne a očekává, že obrazovka udělá to, co chtějí. Ale za tímto kurzorem leží složitá hierarchie typů softwaru. Nejsou všechny stvořeny stejně. Kategorie závisí na tom, co počítač ovládá a jaké aplikace spouští.

Tvrdé systémy v reálném čase

Operační systémy v reálném čase (RTOS) se nestarají o tapetu na ploše. Obsluhují zařízení. Vědecké přístroje. Průmyslová automatizace.

RTOS je uzavřená jednotka. Nemá uživatelské rozhraní. Žádné nástroje pro koncového uživatele. Pouze čistá funkce. Cílem je přesnost. Konkrétní operace by měla při každém provedení zabrat přesně stejnou dobu.

Proč je to důležité? Představte si složitý mechanismus. Pokud se robotické rameno pohybuje rychleji, než bylo plánováno, jednoduše proto, že systém byl nečinný, může do něčeho narazit. Katastrofa. Pokud se kvůli zatížení systému pohybuje pomaleji, výrobní linka se zastaví. Oba výsledky jsou neúspěchy. Jediným ukazatelem je konzistence (předvídatelnost doby odezvy).

Provádějte vždy jen jednu akci

Jednouživatelské a jednoúlohové systémy jsou v některých ohledech přežitky, ale existují. Umožňují jedné osobě dělat jednu věc. Tečka.

MS-DOS je klasickým příkladem. Otevřete program. Vy pracujete. Během upravování textu nemůžete stáhnout soubor na pozadí. Je lineární. Jen. Velmi jednoduché.

Moderní standard: multitaskingové systémy pro jednoho uživatele

To je to, co pravděpodobně právě teď používáte. Toto je standard pro stolní počítače a notebooky. Microsoft Windows. Apple macOS.

Umožňují provádět více úkolů současně. Můžete vytvořit dokument, stáhnout soubor a vytisknout e-mail. Operační systém přepíná mezi těmito úkoly tak rychle, že se zdá, že jsou současné. Ve skutečnosti to není pravda. Je to prostě velmi dobré v přepínání kontextu.

Vyrovnávání zátěže: systémy pro více uživatelů

Víceuživatelské operační systémy umožňují mnoha lidem přístup ke zdrojům současně. Ale to není svolnost.

Systém musí vyrovnávat požadavky. Každý uživatel obdrží samostatné zdroje. Pokud dojde k selhání aplikace uživatele A, uživatel B si toho nevšimne. Unix. VMS. Sálové počítače, jako je MVS. Jedná se o těžké váhy pro podniková prostředí, kde je stabilita pro komunitu uživatelů absolutním požadavkem.

Distribuované výpočty

Distribuované operační systémy nespravují pouze jeden stroj, ale jejich síť.

Místo toho, aby jeden superpočítač vyřešil velký problém, OS jej rozdělí na části. Tyto díly jsou odesílány do mnoha menších počítačů. Vidíte to na velkých serverových farmách. Ale nevyužívají ho jen korporace. Nadšenci a pedagogové budují své vlastní distribuované systémy pomocí levných strojů. Někdy i předělané herní konzole.

Je to způsob, jak spojit výpočetní výkon bez nákupu superpočítače.

Nezaměňujte síťové technologie s přístupem pro více uživatelů

Tady to začíná být nejasné. Systém pro více uživatelů není totéž jako online systém pro jednoho uživatele.

Pracujete pro společnost? S největší pravděpodobností používáte systém pro jednoho uživatele. Správce řídí, co můžete nainstalovat. Můžete tisknout na sdílené tiskárně. Máte přístup na souborový server pro dokumenty oddělení.

Jedná se o síťové technologie. Není přístup pro více uživatelů. Samotný OS neuděluje současná přístupová práva různým uživatelům na tomto konkrétním místním počítači. Jednoduše spolupracuje s jinými stroji.

Proces spouštění: jak operační systém přebírá kontrolu

Když zapnete napájení, OS se nespustí okamžitě. Nejprve funguje firmware.

Na starších počítačích to byl BIOS. Nové stroje používají UEFI (Unified Extensible Firmware Interface). Tento kód kontroluje hardware. Funguje vše? V UEFI také kontroluje, zda je spouštěcí software legitimní. Zabezpečené spouštění. Žádné změny.

Po úspěšném absolvování testů přenese firmware řízení na bootstrap loader.

Nakladač

Bootloader má jeden úkol. Načtěte OS do paměti. Spusťte to.

Toto je malý program. Zhruba řečeno, jednoduché. Konfiguruje programy ovladačů pro hardwarové podsystémy. Sdílí paměť. Část paměti zabírá OS. Součástí jsou informace o uživateli. Část – aplikace.

Vytváří datové struktury. Signály. Vlajky. Semafory. Jedná se o komunikační linky mezi subsystémy a aplikacemi.

Poté předá klíče operačnímu systému. Řízení přechází do jiných rukou.

Co OS vlastně dělá

Po načtení OS ovládá základní funkce. Jsou rozděleny do následujících kategorií:

  • Řízení CPU
  • Správa paměti
  • Správa zařízení
  • Správa úložiště
  • Aplikační rozhraní
  • Uživatelské rozhraní
  • Řízení bezpečnosti systému

Toto jsou pilíře. Každý operační systém, od vašeho telefonu po váš superpočítač, se dotýká těchto sedmi oblastí. Nástroje, které používají k provádění těchto funkcí, se značně liší, ale cíle zůstávají stejné. Udržujte zařízení v provozuschopném stavu. Udržujte provoz softwaru. Nedovolte, aby uživatel všechno rozbil.

Výpočetní výkon je omezený zdroj. Pokud chcete, aby váš počítač zvládal videohovor a současně stahoval velký soubor a spouštěl antivirovou kontrolu, musí procesor rozdělit svůj čas. Není to magie. To je matematika. A to je řízeno přísnou hierarchií.

Operační systém se dívá na víc než jen na vaši otevřenou aplikaci. Podívá se na procesy. Proces je jakákoli část softwaru, která provádí akci. Svůj webový prohlížeč si můžete představit jako jeden. Ale to není pravda. Ano, je to proces, ale vytváří další procesy pro zpracování síťových požadavků, alokaci paměti a vykreslování. Na pozadí také běží mnoho neviditelných procesů, které spravují diskové I/O nebo kontrolují systém na přítomnost malwaru. Plánování provádí operační systém, nikoli aplikace, které vidíte na obrazovce.

V rámci procesu se skutečná práce provádí ve vláknech. Aplikace musí mít alespoň jeden proces a tento proces musí mít alespoň jedno vlákno. Plánovač spravuje vlákna až po nejmenší jednotku provedení. Tento rozdíl je důležitý, protože přepínání vláken je rychlejší a vyžaduje méně prostředků než přepínání procesů. Při multitaskingu nepřepínáte pouze okna. Přepínáte kontext procesoru mezi vlákny patřícími různým procesům.

Role přerušení v řízení procesoru

Plynulý tok kódu je neustále přerušován realitou. Přerušení jsou signály vysílané hardwarem nebo softwarem, aby upoutaly pozornost procesoru. Představte si setkání, kde někdo najednou zvedne ruku. Procesor pozastaví, co dělal, aby reagoval na přerušení.

Not all interrupts are created equal. The OS can sometimes mask interrupts. To znamená, že dočasně ignoruje signály z méně kritických zdrojů, aby mohl určitý úkol dokončit bez přerušení. But some interruptions cannot be ignored. These are non-maskable interrupts (NMI). Vyžadují okamžitou akci bez ohledu na to, co procesor dělá.

Proč je to pro vás důležité? Consider your laptop battery. Pokud nabití klesne na kriticky nízkou úroveň, spustí se NMI. Nečeká, až váš textový editor uloží dokument. Okamžitě zahájí postup vypnutí nebo spánku. Ignorování by mělo za následek ztrátu dat nebo poškození hardwaru. Když dojde k nemaskovatelným přerušením, OS upřednostňuje integritu systému spíše než aplikační vlákno.

The illusion of multitasking

In a single-task system, the schedule is simple. Aplikace běží, dokud nedojde k přerušení nebo dokud není přijat uživatelský vstup. But modern systems are multitasking. OS by měl vytvářet pocit, že se vše děje současně. I u vícejádrových procesorů každé jádro zpracovává vždy pouze jednu úlohu. Iluze simultánnosti vzniká díky rychlosti.

Operační systém přepíná mezi procesy tisíckrát za sekundu. To se děje dostatečně rychle, takže si mezery nevšimnete. But the mechanics of the process are precise. Here’s what happens during this switch:

  • Proces drží určité zdroje v RAM, registrech, zásobníkech a frontách.
  • OS přiděluje procesu určitý počet cyklů procesoru.
  • Po uplynutí těchto hodinových cyklů OS pozastaví proces.
  • Uloží stav prvního procesu: zkopíruje všechny registry, zásobníky a fronty do paměti. Zaznamenává se také přesná hodnota ukazatele instrukce, při které se proces zastavil.
  • Načte stav dalšího procesu: obnoví jeho registry a fronty z paměti.
  • The second process gets its turn.

This is called context switching. It’s effective, but not free. Kopírování paměti a aktualizace registrů trvá v hodinových cyklech. Pokud provádíte úlohu náročnou na CPU, časté přepínání kontextu může způsobit zpoždění. OS se to snaží minimalizovat seskupováním souvisejících vláken nebo přidělováním delších časových úseků procesům s vyšší prioritou.

Proč počet jader nevyřeší všechny problémy

Můžete si koupit 16jádrový procesor a předpokládat, že vaše problémy jsou vyřešeny. Ale to není pravda. Každé jádro ze své podstaty zůstává jednovláknovým exekutorem. Pokud je váš software špatně optimalizovaný, nevyužije všechna tato jádra. It will load one core while the others are idle.

Proto je důležitá optimalizace softwaru. Vývojáři by měli navrhovat aplikace tak, aby vytvořily více vláken, která lze nezávisle naplánovat. Pokud je aplikace jednovláknová, vytěží maximálně jedno jádro a zbytek drahého hardwaru zůstane nečinný. Operační systém může naplánovat spouštění dalších procesů na těchto nečinných jádrech, ale nemůže mezi nimi sdílet jedinou vláknovou aplikaci.

Interakce mezi hardwarem a softwarem je neustálým vyjednáváním. Procesor zajišťuje taktovací cykly. OS je odděluje. Software je spotřebovává. Když jedna vrstva nemůže jasně komunikovat s ostatními, produktivita trpí. Cítíte to jako zpoždění. Systém to vnímá jako neefektivnost.

Vždy existuje limit. Bez ohledu na to, kolik jader přidáte, akt přepínání kontextu představuje režii. Čím rychleji přepnete, tím více hodinových cyklů strávíte na samotném přepínači, spíše než na výpočtech. Je to kompromis. Malé zpoždění kvůli vzhledu paralelismu. To je cena moderních počítačů.

Když operační systém přepíná mezi úkoly, nehádá jen, co se děje. Spoléhá se na speciální datovou strukturu nazývanou Procesní řídicí blok (PCB). Představte si tento blok jako kombinaci ID procesu a jeho aktuálního souhrnu. Operační systém potřebuje každý detail, aby pozastavil jednu úlohu a pokračoval v další, aniž by ztratil kontext.

Každý blok obsahuje jedinečný identifikátor. Označuje, kde v kódu a datech se proces naposledy zastavil. Zaznamenává přesný stav registrů a vlajek. Obsahuje seznam otevřených souborů. Hranice paměti a stav I/O jsou monitorovány. Určuje se také priorita.

Bez těchto podrobností by byl OS při přepínání kontextu slepý.

Proces není vždy aktivní. Někdy je to pozastaveno. Může čekat na stisknutí klávesy. Zatímco čeká, nespotřebovává cykly CPU. Je v klidovém režimu. Po příchodu vstupu se stav změní. Systém jej přesune ze stavu čekání do stavu provozu. Z řídicího bloku procesu se pak stane instrukce. Říká přepínacímu mechanismu přesně, jak obnovit provádění.

To se děje bez povšimnutí. Samotný spínač nevidíte. Vidíte pouze plynulé přechody. Každému procesu je přidělen dostatek času CPU k dokončení své práce. Ale je tu limit. Pokud otevřete příliš mnoho aplikací, OS začne mít problémy. Stráví více cyklů ukládáním a obnovováním registrů. Řádky se prodlouží. Hromady jsou hlubší.

Systém nakonec tráví více času přepínáním, než vykonáváním užitečné práce. Tomu se říká shaking (mlácení). Je to digitální ekvivalent duševního přetížení. Počítač se snaží dělat příliš mnoho najednou. On se “dusí”. Obvykle musíte zasáhnout. Zavřete aplikace. Restartujte systém. Obnovit řád v chaos.

Vývojáři se snaží navrhovat systémy s ohledem na tento problém. Vytvářejí obranné mechanismy. Pomoci ale můžete i vy. Přidejte RAM. Zavřete karty. Nechte operační systém spravovat zdroje efektivně.

Doposud jsme se zabývali plánováním pro jednoprocesorové systémy. Většina moderních strojů má více jader. Operační systém musí distribuovat práci mezi nimi. Vyrovnává poptávku a dostupné cykly.

Asymetrické operační systémy rezervují jeden procesor pouze pro samotný OS. Aplikační procesy obdrží zbývající procesory. OS provádí údržbu samostatně.

Symetrické operační systémy rozdělují práci jinak. Vyvažují poptávku a dostupnost napříč všemi procesory. I když běží pouze OS, zátěž je rozložena. Sdílí se také paměť. To platí i pro vícejádrové čipy.

Možná právě teď používáte symetrický systém. To je běžné v moderních prostředích.

Pokud je OS jedinou entitou spotřebovávající CPU čas, pak CPU není jediným úzkým hrdlem. Další prioritou se stává správa paměti.

Ukládání a správa paměti

Operační systémy jsou v podstatě regulátory provozu paměti vašeho počítače. Mají dva hlavní úkoly. Za prvé poskytují každému procesu dostatek prostoru pro běh, aniž by zasahovaly do jiných aplikací. Zadruhé spravují různé typy hardwarové paměti, aby vše běželo co nejrychleji.

První problém se týká rozchodu. OS vytváří přísné hranice mezi typy softwaru a jednotlivými aplikacemi.

Podívejme se na jednoduchý příklad. Představte si malý systém s pouhým 1 megabajtem paměti RAM (random access memory). Během spouštění si operační systém přidělí 300 kilobajtů. Poté zabere 200 kilobajtů ve spodní části fondu pro ovladače hardwaru. Pro vaše skutečné aplikace tak zbývá přesně 500 kilobajtů.

Když se programy spustí, operační systém jim přidělí části tohoto zbývajícího prostoru. Pokud otevřete novou aplikaci, zatímco ostatní jsou již spuštěny, systém může snížit aktivitu otevřených oken, aby uvolnil prostředky. Co se ale stane, když je těch 500 kilobajtů úplně zaplněných?

Můžete si koupit více RAM. Většina moderních počítačů umožňuje zvýšit kapacitu z 8 na 16 gigabajtů nebo více. Ale i s velkým množstvím paměti může procesor přistupovat vždy pouze k jedné adrese. Většina vaší paměti RAM je nečinná, zatímco centrální procesorová jednotka (CPU) zpracovává aktivní data.

Zde vstupuje do hry správa virtuální paměti.

OS neustále uvolňuje nevyužitá data z paměti RAM a načítá data, která aktuální proces potřebuje. Vytváří iluzi, že každý proces má svůj soukromý a obrovský prostor. To zabraňuje poškození dat mezi procesy a udržuje stabilitu systému, i když je fyzická paměť velmi nízká.

Diskové úložiště ale není jediným faktorem. Operační systém musí vyvážit potřeby mezi třemi různými úrovněmi paměti seřazenými podle rychlosti.

Pochopení hierarchie paměti a stránkování

Na rychlosti záleží. Pokud musí CPU čekat, vše se zpomalí. Hierarchie vypadá takto:

  • Vysokorychlostní mezipaměť: Jedná se o malou, neuvěřitelně rychlou paměť umístěnou vedle CPU. Řadiče mezipaměti předpovídají, jaká data budete brzy potřebovat, a načítají je z hlavní paměti ještě předtím, než o ně vůbec požádáte. Vše je o předvídání a rychlosti.
  • Hlavní paměť: Toto je vaše standardní paměť s náhodným přístupem (RAM). Měří se v gigabajtech a to je to, co zvýšíte, když se váš počítač začne zpomalovat.
  • Sekundární úložiště: Toto je váš pevný disk (HDD) nebo SSD (Solid State Drive). Je výrazně pomalejší než RAM, ale nabízí obrovské množství úložiště. Při správě virtuální paměti funguje sekundární úložiště jako rezervoár přetečení pro virtuální paměť RAM.

Tyto vrstvy spravuje OS. Přesouvá data v blocích zvaných stránky mezi dostupnými typy paměti, protože procesy vyžadují více zdrojů. Je to neustálý, neviditelný akt vyvažování.

Potřebuje jeden proces více mezipaměti? Operační systém přesouvá stránky, aby tuto potřebu splnil. Někdo jiný potřebuje více fyzické RAM? Přenese nečinné stránky na SSD.

Proč je to pro vás důležité? Protože umožňuje vašemu počítači spouštět více náročných aplikací současně, aniž by došlo k pádu. Bez takové správy by se váš systém zastavil v okamžiku, kdy se RAM zaplní. OS udržuje systém v chodu tím, že rozhoduje, co zůstane v rychlém pruhu a co zaparkuje v pomalém pruhu.

Ale kompromisem je vždy rychlost. Stránkování dat do sekundárního úložiště přináší zpoždění. To je důvod, proč mít více fyzické paměti RAM často působí jako přímé zvýšení výkonu. Snížíte potřebu těchto nákladných operací stránkování.

O komplexnost se stará OS. Zůstane vám jen výsledek: systém, který provozuje více aplikací, udržuje je izolované a nedochází mu místo.

Skrytý překladač ve vašem systému

Ovladače jsou neviditelnými prostředníky ve výpočetní technice. Nevidíte je pracovat, ale pokaždé, když stisknete klávesu nebo uložíte soubor, jsou zaneprázdněni. Cesta mezi operačním systémem (OS) a téměř jakýmkoliv hardwarem nepřipájeným k základní desce prochází přímo těmito programy. Jejich úkolem je překlad. Přeměňují elektrický chaos hardwarových subsystémů na jazyk vysoké úrovně, kterému operační systém a vaše aplikace skutečně rozumí.

Přemýšlejte o tom. OS vidí data jako soubory. Tiskárna vidí světelné pulzy. SSD vidí úrovně napětí v konkrétních paměťových buňkách. Řidiči tuto mezeru překlenují. Vezmou soubor definovaný operačním systémem a převedou ho do bitových proudů, které jsou zapsány na média, nebo do laserových pulzů zaměřených na papír. Bez této překladové vrstvy je váš počítač jen hromadou drahého kovu a křemíku, která neví, co se sebou.

Proč řidiči žijí mimo jádro

Ovladače jsou odděleny od hlavního jádra operačního systému ze specifického důvodu: flexibilita. Pokud by každý nový požadavek vyžadoval úpravu jádra, rekompilaci a redistribuci celého OS, nikdy bychom se nedočkali aktualizací. Udržování externích ovladačů umožňuje výrobcům přidávat funkce do hardwarových subsystémů, aniž by to ovlivnilo základy systému.

Toto oddělení také znamená, že vývojáři OS nemusí psát každý ovladač. Výrobci hardwaru si často vytvářejí vlastní ovladače nebo platí za jejich vývoj. To jim dává přímou kontrolu nad aktualizací a zlepšováním vstupně/výstupních (I/O) schopností. To je dělba práce. OS poskytuje scénu. Skript napíše výrobce ovladače.

Propast mezi komunitními a firemními řidiči

Je snadné počkat na aktuální ovladače pro Windows nebo macOS. Velké ziskové společnosti za těmito operačními systémy mají prostředky k zajištění kompatibility. Linux a další open source systémy se ubírají jinou cestou. Spoléhají na komunitní vývojáře. Tito dobrovolníci věnují svůj čas a programovací dovednosti, aby poskytli ovladače pro systémy a periferní zařízení. Toto je práce lásky. A většinou to funguje. Konzistence se však může lišit v závislosti na tom, kdo v té době kód spravuje.

Vyrovnávací paměti a fronty: Pohybové ovladače

I/O management je více než jen překlad. Je to také o ovládání tempa. OS spravuje I/O prostřednictvím front a vyrovnávací paměti. Jedná se o speciální úložiště, která zachycují bitový tok ze zařízení. Mohla by to být klávesnice. Může to být sériový port. Vyrovnávací paměť uchovává tyto bity a přenáší je do procesoru tak rychle, jak je CPU dokáže zpracovat.

Proč je to důležité? Protože procesy soutěží o čas CPU. Operační systém dá vyrovnávací paměti pokyn, aby pokračovala v přijímání vstupu ze zařízení, i když je procesor zaneprázdněn. Přestane posílat data do CPU, dokud není pozastaven proces využívající tento vstup. Když se tento proces obnoví, vyrovnávací paměť uvolní nashromážděná data.

Tento mechanismus umožňuje vysokorychlostním zařízením pracovat na plnou kapacitu. Klávesnice zvládne rychlé úhozy. Modem zvládne velké množství dat. I když je procesor přetížený a nemůže okamžitě zpracovat vstup, systém nespadne. Data čekají ve vyrovnávací paměti. Je to jednoduchý koncept. Zabraňuje ztrátě dat při vysokém zatížení.

Realita v reálném čase

Správa všech těchto zdrojů zabírá většinu funkcí operačního systému. Na operačních systémech pracujících v reálném čase to může být téměř veškerá potřebná funkce. Pro obecný operační systém je hlavním cílem poskytnout konzistentní rozhraní. Aplikace a lidé potřebují snadný způsob přístupu k hardwarovým funkcím. Řidič je klíčem, který otevírá tyto dveře.

Není to ideální. Řidiči mohou způsobit nehody. Mohou být v konfliktu. Ale jsou nezbytným spojením mezi vaším záměrem a reakcí stroje. Bez nich je zařízení slepé a hluché. S nimi se stává nástrojem.

Složitost je skryta na očích. Stiskněte. Řidič překládá. Zařízení je funkční. Cyklus pokračuje.

Aplikační programovací rozhraní (API) řeší pro vývojáře specifický problém. Eliminují potřebu rozumět jemným detailům toho, jak procesor zpracovává instrukce. Stejně jako ovladače zařízení abstrahují složitost hardwaru, rozhraní API umožňují aplikačním programátorům volat funkce operačního systému, aniž by museli sledovat každý stav hardwaru na nízké úrovni.

Zvažme vytvoření souboru. Vědec zaznamenávající data z přístroje musí výsledky uložit. Operační systém poskytuje funkci API nazvanou MakeFile. Programátor napíše příkaz jako:

MakeFile [1, %Name, 2]

Tato jediná linie vyjadřuje komplexní záměr. Číslo „1“ označuje náhodný přístup. Alternativní hodnota 0 by označovala sekvenční soubor. %Name přímo nahradí název souboru z uživatelského vstupu. Číslo 2 definuje chování úložiště. Ukazuje na soubor proměnné velikosti. Nula znamená pevnou velikost. Jeden znamená, že soubor roste s daty, ale nikdy se nezmenšuje.

Operační systém se postará o zbytek práce. Vyžádá si první dostupnou volnou úložnou oblast z diskové jednotky. Poté aktualizuje metadata systému souborů. Tato položka sleduje počáteční a koncové bloky, název souboru, typ souboru a stav archivace. Zaznamenává uživatelská práva a časová razítka vytvoření.

Tato abstrakce je pro vývojáře zásadní. Nepotřebují spravovat instrukční kódy nebo datové typy pro každý možný pevný disk nebo páskovou jednotku. Operační systém podporovaný hardwarovými ovladači spravuje tyto měnící se detaily. Vývojář píše kód pro API a důvěřuje systému.

Ale tato důvěra něco stojí. Rozhraní API otevírají vektory útoku. Hackeři mohou zneužít zranitelnosti uvnitř volání API k získání neoprávněného přístupu. To neznamená, že samotná API jsou špatná. To znamená, že vývojáři musí agresivně řešit slabiny. Zabezpečení není funkce; to je základní požadavek.

API jsou také ekonomickými bojišti. Společnosti chápou, že kontrola API znamená kontrolu nad segmentem odvětví. Někteří vývojáři poskytují čtečky nebo prohlížeče zdarma, aby nalákali spotřebitele. Poté vybírají licenční poplatky od ostatních vývojářů, jejichž software se chce s těmito nástroji integrovat. Jiní uvolňují API zdarma k budování ekosystémů. Strategie se liší, ale cíl je vždy stejný – kontrola nad trhem.

Grafická rozhraní, shelly a pracovní prostory

Zatímco rozhraní API standardizují, jak aplikace komunikují se systémem, uživatelské rozhraní (UI) strukturuje, jak lidé komunikují se systémem. Během posledního desetiletí vývoj silně upřednostňoval grafické uživatelské rozhraní (GUI). Apple macOS a Microsoft Windows dominují tomuto prostoru a zachycují drtivý podíl na trhu.

Linux je jiný. Většina distribucí obsahuje GUI, ale výběr je decentralizovaný. Distribuční tým vybírá pracovní prostředí. Uživatelé na to nejsou vázáni. Mohou změnit prostředí, pokud chtějí. Mezi oblíbené možnosti patří Cinnamon, GNOME, KDE a Xfce. Tato flexibilita je charakteristickým znakem filozofie Linuxu.

Dále je zde příkazový řádek (CLI). Toto textové rozhraní, které je často spojováno s UNIXem, spoléhá na psané příkazy. Uživatelům zvyklým na ukazování a klikání se to může zdát zastrašující. Nabízí ale výkon a flexibilitu, které GUI často postrádají. Korn Shell a C Shell jsou klasickými příklady. Poskytují nástroje, které usnadňují manipulaci s funkcemi operačního systému těm, kteří znají syntaxi.

Uživatelé UNIXu mají často otevřeno více oken shellu současně. To umožňuje paralelní pracovní vlákna, jejichž správa v GUI je obtížnější. Uživatelé systémů UNIX a Linux se však neomezují pouze na příkazový řádek. Mohou spouštět GUI spolu s nástroji CLI.

Windows, macOS a Linux nabízejí shelly nebo terminální aplikace. Jsou určeny pro uživatele, kteří potřebují přímý přístup k příkazovému řádku.

Je důležité si pamatovat, kde se tato rozhraní v zásobníku nacházejí. UI je vrstva nad operačním systémem. Je to program nebo soubor programů. Základem jsou základní manažerské funkce. Jádro dělá těžkou práci. Spojení mezi jádrem, uživatelským rozhraním a podpůrným softwarem definují uživatelskou zkušenost. Tento vztah je důvodem, proč se macOS cítí jinak než Windows, nebo proč Linux nabízí tak rozmanité desktopové prostředí. Jádro zůstává nezměněno. Rozhraní se mění. A tento rozdíl bude i nadále utvářet způsob, jakým komunikujeme s počítači v dohledné budoucnosti.

Síťová konektivita již není jen funkcí. Toto je základní úroveň. Nelze skutečně mluvit o moderním OS, aniž bychom uznali jeho neustálou komunikaci se servery a dalšími stroji. Vývojáři spoléhají na internet jako na svůj hlavní kanál pro přijímání záplat, bezpečnostních oprav a hlavních aktualizací. Ano, můžete i nadále používat jednotku DVD nebo USB. To se ale stává anachronismem. Většina systémů prostě stahuje vše na pozadí, zatímco spíte.

Větší kontroverze se však skrývá pod povrchem. Jde o filozofii distribuce softwaru. Dokáže jediný model uspokojit jak firemní giganty, tak běžné spotřebitele? Odpověď je složitá.

Otevřený zdroj vs. uzavřený

Linux změnil hru. Dokázal, že open source software může skutečně fungovat v celém odvětví. To je v ostrém kontrastu s modelem uzavřeného zdroje, který dominuje na trhu stolních počítačů. Většina komerčních ovladačů a nástrojů je dodávána jako spustitelné soubory. Obdržíte binární soubor. Spustíte to. Nevidíte zdrojový kód. Nemůžete to studovat. Nemůžete to změnit. Toto je černá skříňka.

Open source tuto situaci obrací. Originální zdrojové materiály jsou k dispozici všem. Můžete si je přečíst. Můžete si je přizpůsobit. Na jejich základě můžete vytvořit něco nového a sdílet to s ostatními. Toto je cyklus transparentnosti. Právě tato filozofie dala vzniknout nástrojům, které často považujeme za samozřejmost. GIMP pro zpracování obrázků. LibreOffice pro ty, kteří odmítají platit za Word. Apache je motor, který pohání velkou část webových stránek.

Vnitřní mobilní zahrady

Podívejte se na svůj telefon. Všimli jste si, jak čisté je rozhraní? Toto je záměrné. Spotřebitelská zařízení záměrně skrývají operační systém z pohledu uživatele. Proč? Protože uživatelé mohou rozbít všechno. Mohou odstranit potřebné součásti. Mohou proměnit svá zařízení v cihly a pokusit se „optimalizovat“ něco, co optimalizaci nepotřebuje.

Výrobci proto blokují přístup. Ale nechávají mezeru ve dveřích. „Režim vývojáře“ nebo „režim programátoru“. Pokud víte, kde hledat, máte přístup. Ale jakmile se dostanete dovnitř, vodítko je krátké. Můžete provádět změny, ale pouze v přísně omezeném rozsahu. Nedostanete klíče od celého království. Jen náhradní klíč od kůlny.

Vzniká tak zvláštní dichotomie. Na stolních počítačích máte svobodu (a odpovědnost) provádět změny. Na mobilu máte pohodlí za cenu kontroly. Jaký přístup je nejlepší pro dlouhodobé zdraví naší digitální infrastruktury? Hranice se stírají, ale zásadní kompromis zůstává nezměněn. Buď vidíte, jak mechanismy fungují, nebo si jízdu jednoduše užíváte.