Vyšlo v týdeníku: | COMPUTERWORLD |
Číslo: | 21/93 |
Ročník: | 1993 |
Rubrika/kategorie: | Co je čím ... v počítačových sítích |
Díl: | 65 |
Možnost vzdáleného přihlašovaní (v angličtině: remote login) úzce souvisí s existencí tzv. terminálových relací (anglicky: terminal sessions). Pro uživatele víceúlohových operačních systémů je to pojem jistě dobře známý, ale pro mnohé uživatele, "odkojené" počítači PC a jednoúlohovým prostředím MS DOSu, může představovat něco zcela nového a nepříliš "průhledného".
Obrat nastal až v okamžiku, kdy se přešlo na práci v režimu sdílení času. Nyní se již na jednom počítači mohlo současně nacházet více úloh v rozpracovaném stavu, a procesor velmi rychle přecházel z provádění jedné úlohy na provádění druhé úlohy, pak třetí atd. Díky tomuto rychlému střídání vznikla dostatečně věrná iluze toho, že procesor se věnuje více úlohám současně, tzn. že na jednom počítači běží najednou více úloh. Ve skutečnosti se avšak všechny tyto úlohy dělily o čas, který věnoval procesor jejich provádění. Jinými slovy: jednotlivé úlohy sdílely čas procesoru, odsud: režim sdílení času (time sharing).
Tímto způsobem (tj. v režimu sdílení času) bylo nadále možné provozovat úlohy připravené předem ve formě dávek, které nevyžadují bezprostřední styk se svým zadavatelem. Režim sdílení času však umožnil to, aby uživatelé byli v bezprostředním styku se svými úlohami a mohli s nimi komunikovat interaktivním způsobem.
Ukažme si na konkrétním příkladu, v čem byl pro uživatele rozdíl. Vžijme se do role programátora, který opravuje zdrojový text svého programu a má jej na daném počítači uložen jako jeden ze svých souborů. V případě dávkového zpracování musel tento uživatel předem připravit příkazy pro opravu všech chyb ve zdrojovém programu stylem: "na řádce XY změň řetězec ABCD na EFGH", přidat ještě příkaz pro nový překlad zdrojového textu, sestavit z těchto příkazů dávku, a tu zadat k provedení. Druhý den si přišel pro výsledek, zjistil nové chyby a celý postup se opakoval.
Na počítači pracujícím v režimu sdílení času může náš programátor pracovat odlišným způsobem. Nejprve začne komunikovat s operačním systémem, jemuž zadá příkaz ke spuštění interaktivního editoru. Jeho prostřednictvím pak postupně provede potřebné opravy v souboru se zdrojovým textem, načež práci s editorem ukončí a začne opět komunikovat přímo s operačním systémem. Tomu zadá příkaz k překladu opraveného zdrojového textu a nechá si výsledky tohoto překladu zobrazit. Odhalí-li překladač další chyby ve zdrojovém textu, uživatel si znovu zavolá editor a celý cyklus se opakuje. Tentokrát však již s "dobou obrátky", která se měří spíše na minuty než na celé dny, jako u dávkového zpracování.
To ale znamená, že operační systém i aplikační úloha musí mít přístup ke klávesnici a k displeji, které příslušný uživatel používá. Navíc, jde-li o víceuživatelské prostředí, které umožňuje interaktivní způsob práce více uživatelům současně, musí takovýchto dvojic "klávesnice a displej" existovat více a každá konkrétní úloha musí vědět, na které z nich právě pracuje ten "její" uživatel.
Zmíněná dvojice "klávesnice a displej" se obvykle označuje jako terminál a často tvoří i jeden konstrukční celek (i když to není zdaleka podmínkou). Počítače s víceuživatelským operačním systémem, které pracují v režimu sdílení času, bývají vybaveny větším počtem těchto terminálů.
Existence více než jednoho terminálu však znamená, že operační systém i jednotlivé aplikační úlohy nemohou počítat s tím, že uživatel s nimi bude komunikovat vždy z jednoho a téhož terminálu. Naopak je žádoucí, aby z pohledu uživatelů byly všechny terminály ekvivalentní - aby uživatel mohl přijít ke kterémukoli z nich, který je právě volný, a pracovat z něj přesné stejným způsobem jako z kteréhokoli jiného terminálu.
Vztah mezi úlohou, která odněkud očekává své vstupy a někam chce posílat své výstupy, a konkrétním terminálem, ze kterého se uživatel rozhodne pracovat, je tedy vztahem, který není á priori a pevně dán, ale utváří se až v okamžiku, kdy uživatel "zasedne" k některému z terminálů a projeví své přání pracovat v operačním systému.
Toto své přání projevuje uživatel tzv. přihlášením (anglicky: login, nebo: logon), kdy na výzvu operačního systému zadá své uživatelské jméno a svou identitu prokáže potřebným heslem.
Přihlášením uživatele do systému z určitého terminálu vzniká výše naznačený vztah mezi konkrétním terminálem a aplikační úlohou, který je označován jako terminálová relace. Nejlépe si ji lze představit jako abstraktní rozhovor, který určuje, kdo s kým rozmlouvá. Přihlášením uživatele vzniká takováto terminálová relace mezi terminálem a operačním systémem jako takovým - přesněji mezi terminálem a tou systémovou úlohou, která zajišťuje funkci interpreteru příkazů operačního systému, vysílá na obrazovku terminálu nápovědný znak (tzv. prompt), přijímá od uživatele jeho příkazy pro operační systém, a zajišťuje jejich provedení (v prostředí Unixu se takováto úloha označuje jako shell).
Příkazem, jejž uživatel operačnímu systému zadává, může být například příkaz ke spuštění určité aplikace, která pak přebírá již existující terminálovou relaci a jejím prostřednictvím komunikuje se svým uživatelem. Jde-li například o editor, zobrazuje v rámci terminálové relace obsah editovaného souboru na displeji příslušného terminálu a z jeho klávesnice přijímá své příkazy.
V tuto chvíli je vhodné si naši postupně krystalizující představu terminálové relace ještě poněkud poopravit. Není totiž zcela přesné představovat si, že z jednoho terminálu je možné zřídit (někdy se říká též: otevřít) nejvýše jednu terminálovou relaci. V principu je možné, aby si uživatel z jednoho terminálu otevřel více relací s různými aplikacemi, či dokonce s aplikací jedinou - například aby si v každé jednotlivé relaci spustil tentýž editor (přesněji: instanci téhož editoru) a editoval jiný soubor. V každém okamžiku jsou sice klávesnice a displej terminálu vyhrazeny jen jedné relaci - tj. uživatel vždy komunikuje jen s jednou úlohou v rámci jedné relace - ale pomocí klávesnice se může mezi jednotlivými relacemi rychle přepínat (obvykle pomocí nějaké horké klávesy). Záleží jen na tom, zda daný operační systém a příslušný terminál vychází této možnosti vstříc.
Další zajímavé možnosti se pak otevírají v okamžiku, kdy do hry vstupují vzájemně propojené počítače a počítačové sítě.
![]() |
![]() |
Terminál Ta fyzicky připojený k počítači A se tak začne chovat jako terminál přímo připojený k počítači B. Na displeji terminálu se nejprve zobrazí nápovědný znak (prompt) interpreteru příkazů počítače B a uživatel pak může z terminálu Ta zadávat příkazy operačnímu systému na počítači B. Nejprve se tedy přihlásí do systému na počítači B (provést tzv. vzdálené přihlášení, angl.: remote login) a pak si například spustí nějakou aplikační úlohu. Ta "poběží" na počítači B, ale své vstupy bude očekávat z terminálu Ta, a její výstupy se budou zobrazovat na displeji terminálu Ta. Uživatel, který sedí u terminálu Ta, tak bude mít stejné postavení a stejné možnosti práce na počítači B, jako kdyby seděl přímo u terminálu Tb tohoto počítače.
K ocenění výhodnosti a užitečnosti vzdálených terminálových relací a vzdáleného přihlašování snad zbývá dodat jen jediné: je vcelku lhostejné, zda se počítače A a B nalézají blízko sebe nebo zda jsou například každý v jiném městě či na jiném kontinentě. Jedinou podmínkou pro možnost vzdáleného přihlašování je vhodné propojení obou počítačů a pak také softwarová podpora vzdálených terminálových relací. V případě počítačových sítí je potřebné spojení úkolem nižších vrstev a podpora vzdálených terminálových relací je jednou z aplikačních služeb. O tom, jak jsou vzdálené terminálové relace konkrétně realizovány v sítích na bázi TCP/IP, si povíme příště.