Shell (calcul) - Shell (computing)

O interfață grafică de la sfârșitul anilor 1980, care prezintă o fereastră TUI pentru o pagină manuală, o fereastră în formă (oclock), precum și mai multe ferestre iconizate . În dreapta jos, putem vedea un emulator de terminal care rulează un shell Unix , în care utilizatorul poate tasta comenzi ca și cum ar fi stat la un terminal .

În calcul , un shell este un program de calculator care expune serviciile unui sistem de operare unui utilizator uman sau altui program. În general, shell-urile sistemului de operare utilizează fie o interfață de linie de comandă (CLI), fie o interfață grafică de utilizator (GUI), în funcție de rolul unui computer și de operația particulară. Este denumit shell deoarece este stratul cel mai exterior din jurul sistemului de operare.

Shell-urile din linia de comandă necesită ca utilizatorul să fie familiarizat cu comenzile și sintaxa apelurilor și să înțeleagă concepte despre limbajul de scriptare specific shell-ului (de exemplu, bash ).

Shell-urile grafice sunt o sarcină redusă pentru utilizatorii de computere începători și sunt caracterizate ca fiind ușor de utilizat. Deoarece vin și cu anumite dezavantaje, majoritatea sistemelor de operare compatibile cu GUI oferă, de asemenea, shell-uri CLI.

Prezentare generală

Sistemele de operare furnizează diverse servicii utilizatorilor lor, inclusiv gestionarea fișierelor , gestionarea proceselor (rularea și terminarea aplicațiilor ), procesarea în serie și monitorizarea și configurarea sistemului de operare.

Majoritatea shell-urilor sistemului de operare nu sunt interfețe directe către nucleul subiacent, chiar dacă un shell comunică cu utilizatorul prin dispozitive periferice atașate direct la computer. Shells sunt de fapt aplicații speciale care utilizează API-ul kernel în același mod în care este folosit de alte programe de aplicații. Un shell gestionează interacțiunea utilizator-sistem solicitând utilizatorilor intrarea, interpretând intrarea acestora și apoi tratând o ieșire din sistemul de operare subiacent (la fel ca o buclă de citire-evaluare-imprimare, REPL ). Deoarece shell-ul sistemului de operare este de fapt o aplicație, poate fi ușor înlocuit cu o altă aplicație similară, pentru majoritatea sistemelor de operare.

Pe lângă shell-urile care rulează pe sistemele locale, există diferite moduri de a pune sistemele la distanță disponibile pentru utilizatorii locali; astfel de abordări sunt denumite de obicei acces la distanță sau administrare la distanță. Disponibil inițial pe mainframele multi-utilizator , care furnizau IU bazate pe text pentru fiecare utilizator activ simultan prin intermediul unui terminal text conectat la mainframe prin linie serială sau modem , accesul de la distanță s-a extins la sistemele de tip Unix și Microsoft Windows. Pe sistemele de tip Unix, protocolul Secure Shell este de obicei utilizat pentru shell-uri bazate pe text, în timp ce tunelarea SSH poate fi utilizată pentru interfețele grafice de utilizator (GUI) bazate pe sistemul X Window. În Microsoft Windows, Remote Desktop Protocol poate fi utilizat pentru a furniza acces la distanță GUI și, din Windows Vista , PowerShell Remote poate fi utilizat pentru acces la distanță bazat pe text prin WMI, RPC și WS-Management.

Majoritatea shell-urilor sistemului de operare se încadrează în una din cele două categorii - linie de comandă și grafică. Shell-urile de linie de comandă oferă o interfață de linie de comandă (CLI) către sistemul de operare, în timp ce shell-urile grafice oferă o interfață grafică de utilizator (GUI). Alte posibilități, deși nu sunt atât de obișnuite, includ interfața vocală a utilizatorului și diferite implementări ale unei interfețe utilizator bazate pe text (TUI) care nu sunt CLI. Meritele relative ale shell-urilor bazate pe CLI și GUI sunt adesea dezbătute.

Linii de comandă

Prompt de comandă , un shell CLI în Windows
Bash , un shell Unix adoptat pe scară largă

O interfață de linie de comandă (CLI) este un shell de sistem de operare care utilizează caractere alfanumerice tastate pe o tastatură pentru a furniza instrucțiuni și date sistemului de operare, în mod interactiv. De exemplu, un teletipator poate trimite coduri reprezentând apăsări de taste către un program de interpretare a comenzilor care rulează pe computer; interpretul de comandă analizează secvența de apăsări de taste și răspunde cu un mesaj de eroare dacă nu poate recunoaște secvența de caractere sau poate efectua alte acțiuni ale programului, cum ar fi încărcarea unui program de aplicație, listarea fișierelor, conectarea la un utilizator și multe altele. Sistemele de operare precum UNIX au o mare varietate de programe shell cu comenzi, sintaxă și capabilități diferite, shell-ul POSIX fiind o linie de bază. Unele sisteme de operare aveau doar un singur stil de interfață de comandă; sistemele de operare de marfă, cum ar fi MS-DOS, au venit cu o interfață de comandă standard ( COMMAND.COM ), dar interfețele terților erau, de asemenea, deseori disponibile, oferind caracteristici sau funcții suplimentare, cum ar fi meniul sau execuția programului la distanță.

Programele de aplicații pot implementa, de asemenea, o interfață de linie de comandă. De exemplu, în sistemele de tip Unix, programul telnet are o serie de comenzi pentru controlul unei legături către un sistem computerizat la distanță. Deoarece comenzile către program sunt realizate din aceleași apăsări de taste ca datele trimise către un computer la distanță, sunt necesare unele mijloace de distincție a celor două. Se poate defini o secvență de evadare , folosind fie o tastă locală specială care nu este transmisă niciodată, dar interpretată întotdeauna de sistemul local. Programul devine modal, comutând între interpretarea comenzilor de la tastatură sau trecerea apăsării tastelor ca date care urmează să fie procesate.

O caracteristică a multor shell-uri din linia de comandă este capacitatea de a salva secvențe de comenzi pentru reutilizare. Un fișier de date poate conține secvențe de comenzi pe care CLI le poate face să le urmeze ca și când ar fi introduse de un utilizator. Caracteristicile speciale din CLI se pot aplica atunci când îndeplinește aceste instrucțiuni stocate. Astfel de fișiere batch ( fișiere script) pot fi utilizate în mod repetat pentru automatizarea operațiunilor de rutină, cum ar fi inițializarea unui set de programe atunci când un sistem este repornit. Utilizarea în mod batch a shell-urilor implică de obicei structuri, condiționalități, variabile și alte elemente ale limbajelor de programare; unii au esențialul necesar pentru un astfel de scop, alții sunt limbaje de programare foarte sofisticate în sine. În schimb, unele limbaje de programare pot fi utilizate interactiv dintr-un shell de sistem de operare sau într-un program special creat.

Shell-ul liniei de comandă poate oferi caracteristici precum completarea liniei de comandă , în care interpretul extinde comenzile pe baza câtorva caractere introduse de utilizator. Un interpret de linie de comandă poate oferi o funcție de istoric, astfel încât utilizatorul să poată aminti comenzile anterioare emise sistemului și să le repete, eventual cu o anumită editare. Deoarece toate comenzile către sistemul de operare trebuiau să fie tastate de utilizator, numele de comenzi scurte și sistemele compacte pentru reprezentarea opțiunilor programului erau comune. Numele scurte erau uneori greu de reținut pentru un utilizator, iar sistemele timpurii nu aveau resurse de stocare pentru a oferi un ghid detaliat de instrucțiuni de utilizare on-line.

Cochilii grafice

O interfață grafică de utilizator (GUI) oferă mijloace pentru manipularea grafică a programelor, permițând operațiuni precum deschiderea, închiderea, mișcarea și redimensionarea ferestrelor , precum și comutarea focalizării între ferestre. Shell-urile grafice pot fi incluse în mediile desktop sau pot veni separat, chiar și ca set de utilități cuplate slab.

Majoritatea interfețelor grafice ale utilizatorului dezvoltă metafora unui „desktop electronic” , unde fișierele de date sunt reprezentate ca și cum ar fi documente pe hârtie pe un birou, iar programele de aplicații au în mod similar reprezentări grafice în loc să fie invocate de nume de comenzi.

Sisteme de tip Unix

Operațiunea de glisare și fixare efectuată pe un grup de fișiere între KDesktop și Konqueror în KDE

Învelișurile grafice se construiesc de obicei deasupra unui sistem de ferestre . În cazul X Window System sau Wayland , shell-ul este format dintr-un manager de ferestre X sau un compozitor Wayland , respectiv, din unul sau mai multe programe care oferă funcționalitatea pentru a porni aplicațiile instalate, pentru a gestiona ferestrele deschise și desktopurile virtuale și adesea pentru a sprijini un motor widget.

În cazul macOS , Quartz ar putea fi considerat sistemul de ferestre, iar shell-ul este format din Finder , Dock , SystemUIServer și Mission Control .

Microsoft Windows

Versiunile moderne ale sistemului de operare Microsoft Windows folosesc shell-ul Windows ca shell-ul lor. Windows Shell oferă mediul desktop , meniul de pornire și bara de activități , precum și o interfață grafică pentru utilizator pentru accesarea funcțiilor de gestionare a fișierelor din sistemul de operare. Versiunile mai vechi includ, de asemenea, Program Manager , care a fost shell-ul pentru seria 3.x de Microsoft Windows și care, de fapt, a fost livrat cu versiunile ulterioare de Windows, atât de tip 95, cât și de tip NT, cel puțin prin Windows XP. Interfețele versiunilor Windows 1 și 2 au fost semnificativ diferite.

Aplicațiile desktop sunt, de asemenea, considerate shell-uri, atâta timp cât utilizează un motor terță parte. De asemenea, mulți indivizi și dezvoltatori nemulțumiți de interfața Windows Explorer au dezvoltat software care fie modifică funcționarea și aspectul shell-ului, fie îl înlocuiește în întregime. WindowBlinds de StarDock este un bun exemplu al fostului tip de aplicație. LiteStep și Emerge Desktop sunt exemple bune ale acestuia.

Programele de interoperabilitate și software-ul proiectat special le permit utilizatorilor Windows să utilizeze echivalenți ai multor dintre diferitele GUI bazate pe Unix discutate mai jos, precum și Macintosh. Un echivalent al Managerului de prezentare OS / 2 pentru versiunea 3.0 poate rula unele programe OS / 2 în anumite condiții utilizând subsistemul de mediu OS / 2 în versiunile de Windows NT.

Alte utilizări

„Shell” este, de asemenea, utilizat în mod vag pentru a descrie software-ul aplicației care este „construit în jurul” unei anumite componente, cum ar fi browserele web și clienții de e-mail, în analogie cu shell-urile găsite în natură. Într-adevăr, shell-ul (din linia de comandă) încapsulează nucleul sistemului de operare . Acestea sunt denumite uneori „ambalaje”.

În sistemele expert , un shell este un software care este un sistem expert „gol”, fără baza de cunoștințe pentru o anumită aplicație.

Vezi si

Referințe