Terminál, konzole, „příkazová řádka“

Telegraf bylo první elektronické nebo rádiové zařízení pro komunikaci z bodu A do bodu B, vymyšlené už v polovině 19. století.

Na telegraf navázalo zařízení, kterému se v angličtině říká teleprinter nebo telex, v češtině dálnopis. Zařízení na dálnopis fungovalo tak, že člověk ťukal něco do klávesnice a tento text se rovnou tisknul na papír na straně příjemce.

Teleprinter, nebo telex, zařízení na dálnopis. Zdroj: Wikipedia

Nejstarší počítače se někdy po 2. sv. ovládaly počítače přes různá táhla, páky, spínače a podobně. Příkazy se později do počítačů zadávaly přes děrkovací štítky a s nástupem dálnopisu (teleprinetrů) vznikly první zařízení, kde uživatel interagoval s počítačem skrz klávesnici.

Veškerá interakce s počítačem se tiskla na papír. Zadali jste příkaz, stiskl „Enter“, příkaz se spustil a veškerý výstup, který příkaz vygeneroval, se tisknul na roli papíru. Abyste zjistili, jestli se příkaz provedl a co vlastně udělal, museli jste se podívat na papír co se vytisklo.

Až později vznikly obrazovky a s nimi zaniknul i neustálý tisk na tehdejších hlasitých jehličkových tiskárnách.

Zdroj: Wikipedia

Terminál je název pro fyzické zařízení, pomocí kterého se zadávají příkazy do nějakého jiného, odděleného zařízení někde jinde. Slovo konzole vzniklo až později pro pojmenování počítačů s obrazovkami. Ty technicky vzato mohly fungovat i jako terminály.

Rozdíl mezi těmito pojmy v IT už kompletně zanikl. Konzole, terminál nebo „příkazový řádek“ je většinou jedno a totéž. Slovo „terminál“ se používá už jen v Linuxech ale při práci s Linuxy většinou nemluvíte o terminálech ale o shellu nebo o bashi, což vysvětlím později.

Operační systém jako program v nekonečné smyčce

Vzpomeňte si, jak funguje procesor. Toto zařízení neumí „nic nedělat“ a neustále přijímá příkazy.

První operační systémy byly velmi jednoduché programy:

  1. Zmáčknul uživatel klávesu na klávesnici?
    Ano: Je to klávesa Enter?
    Ano: Jdi na bod 2.
    Ne: Jdi na bod 1.
    Ne: Ulož si to zmáčknutou klávesu do paměti a jdi na bod 1.
  2. Najdi program, který se jmenuje stejně, jako název uložený v paměti a proveď jej. Následně se vrať na bod 1.
  3. Pokud program neexistuje, zobraz na obrazovku chybu, že program neexistuje a jdi zpátky na bod 1.

Všimněte si, že tato jednoduchá aplikace je v nekonečné smyčce. Pokud by operační systém skončil, procesor by přestával dostávat instrukce a v důsledku toho by se celý počítač vypnul, nebo se restartoval.*

Moderní OS, přestože jsou řádově komplexnější a složitější, také běží v nekonečné smyčce, v případě Linuxu to jsou minimálně 2 vlákna v nekonečných smyčkách:

  • Uživatelské vlákno, které čeká na vstupy od uživatele
  • „Čekací vlákno“ (v Linuxu pojmenované jako „idle loop“) které předává procesoru instrukci pro „nic nedělání“ v případě, že procesor nemá dost věcí na práci. (a v případě, že procesor instrukci pro „nic nedělání“ podporuje. Pokud ne, Linuxy předají procesoru nesmyslné ale neškodné instrukce.)

*V dnešní době by se počítač nevypnul ani automaticky nerestartoval, počítače v dnešní době mají v sobě UEFI nebo minimálně BIOS, což jsou vlastně velmi malé a standardizované OS pro základní správu zařízení integrované přímo v čipech na základních deskách počítačů.

Konzole nebo „příkazová řádka“ dnes

Slovo „terminál“ se už moc nepoužívá, většina ajťáku mluví buď o konzoli, o „shellu“ (co je „shell“ popíšu v pozdější kapitole) nebo o „command lajně“ z anglického „command line“, takto se označuje nejčastěji příkazová řádka ve Windowsech.

Dvě příkazové řádky: jedna běžící přímo ve Windowsech, druhá běžící ve virtualizovaných Linuxech

Operační systémy pro koncové uživatele už dávno příkazové řádky odhodily stranou. Obyčejní uživatelé používají myš a klávesnici pro interakci s grafickými prvky, které reprezentují graficky ovladatelné aplikace. Běžní uživatelé již nepotřebují znát ručně zadávané příkazy.

Příkazová řádka nezmizela ale stal se z ní samostatný program. Pro moderního ajťáka je často normální používat více druhů příkazových řádek, které se liší podle OS kde se používají ale i podle podporovaného skriptovacího jazyka.

Příkazové řádky v dnešní době, přestože už to není potřeba, přebírají stylizaci starých CRT obrazovek, kde se zobrazoval světlý text na černém pozadí. Pouze Apple to dělá jinak – na Mac počítačích se ve výchozím stavu zobrazuje příkazová řádka s černým textem na bílém pozadí.

Výchozí podoba příkazové řádky v Mac počítačích

Ajťáci velmi často s příkazovou řádkou pracují a nebo vytváří jednoduché aplikace, které nemají žádnou grafickou reprezentaci a výstup těchto aplikací si lze prohlédnout jen do příkazové řádky. Vytvářet grafické reprezentace je totiž dost pracné a pro jednoduché aplikace stačí pouze textový výstup.

Shrnutí

  • Pojmy terminál a konzole se v dnešní době už nerozlišují. Tyto pojmy pochází historicky ze zařízení, přes které se posílaly informace nebo zadávaly instrukce pro počítače.
  • Operační systémy historicky nebyly nic jiného, než příkazové řádky, kam bylo možné zadávat jména programů, které se měly spustit.
  • V dnešní době jsou příkazové řádky samostatné programy v mnohem komplexnějších operačních systémech.

Použité zdroje