Powłoka (przetwarzanie)

Graficzny interfejs z późnych lat 80., który zawiera okno TUI dla strony podręcznika , okno w kształcie (oclock) oraz kilka okien z ikonami . W prawym dolnym rogu widzimy emulator terminala z powłoką Unix , w którym użytkownik może wpisywać polecenia tak, jakby siedział przy terminalu .

W informatyce powłoka to program komputerowy, który udostępnia usługi systemu operacyjnego użytkownikowi lub innym programom. Ogólnie rzecz biorąc, powłoki systemu operacyjnego używają interfejsu wiersza poleceń (CLI) lub graficznego interfejsu użytkownika (GUI), w zależności od roli komputera i konkretnej operacji. Nazywa się to powłoką, ponieważ jest najbardziej zewnętrzną warstwą wokół systemu operacyjnego.

Powłoki wiersza poleceń wymagają od użytkownika znajomości poleceń i składni ich wywoływania oraz zrozumienia pojęć dotyczących języka skryptowego specyficznego dla powłoki (na przykład bash ), podczas gdy powłoki graficzne stanowią niewielkie obciążenie dla początkujących użytkowników komputerów i charakteryzują się jest łatwy w użyciu, ale większość systemów operacyjnych obsługujących graficzny interfejs użytkownika zapewnia również powłoki CLI, zwykle do wykonywania zaawansowanych zadań.

Przegląd

Systemy operacyjne zapewniają swoim użytkownikom różne usługi, w tym zarządzanie plikami , zarządzanie procesami (uruchamianie i kończenie aplikacji ), przetwarzanie wsadowe oraz monitorowanie i konfigurowanie systemu operacyjnego.

Większość powłok systemu operacyjnego nie jest bezpośrednim interfejsem do bazowego jądra, nawet jeśli powłoka komunikuje się z użytkownikiem za pośrednictwem urządzeń peryferyjnych podłączonych bezpośrednio do komputera. Powłoki są w rzeczywistości specjalnymi aplikacjami, które używają API jądra w taki sam sposób, w jaki jest używany przez inne aplikacje. Powłoka zarządza interakcją użytkownika z systemem, prosząc użytkowników o wprowadzenie danych, interpretując ich dane wejściowe, a następnie obsługując dane wyjściowe z podstawowego systemu operacyjnego (podobnie jak pętla odczyt – ewaluacja – wydruk, REPL ). Ponieważ powłoka systemu operacyjnego jest w rzeczywistości aplikacją, można ją łatwo zastąpić inną podobną aplikacją dla większości systemów operacyjnych.

Oprócz powłok działających w systemach lokalnych istnieją różne sposoby udostępniania systemów zdalnych lokalnym użytkownikom; takie podejścia są zwykle określane jako zdalny dostęp lub zdalna administracja. Początkowo dostępny na komputerach mainframe obsługujących wielu użytkowników , które zapewniały tekstowe interfejsy użytkownika dla każdego aktywnego użytkownika jednocześnie za pomocą terminala tekstowego podłączonego do komputera głównego za pośrednictwem linii szeregowej lub modemu , dostęp zdalny został rozszerzony na system podobny do systemu Unix systemów i Microsoft Windows. W systemach typu Unix protokół Secure Shell jest zwykle używany do powłok tekstowych, podczas gdy tunelowanie SSH może być używane do graficznych interfejsów użytkownika (GUI) opartych na systemie X Window . W systemie Microsoft Windows protokół Remote Desktop Protocol może być używany do zapewniania zdalnego dostępu GUI, a od systemu Windows Vista PowerShell Remote może być używany do zdalnego dostępu tekstowego za pośrednictwem usług WMI, RPC i WS-Management.

Większość powłok systemu operacyjnego należy do jednej z dwóch kategorii — wiersza poleceń i grafiki. Powłoki wiersza poleceń zapewniają systemowi operacyjnemu interfejs wiersza poleceń (CLI), podczas gdy powłoki graficzne zapewniają graficzny interfejs użytkownika (GUI). Inne możliwości, choć nie tak powszechne, obejmują głosowy interfejs użytkownika i różne implementacje tekstowego interfejsu użytkownika (TUI), które nie są CLI, takie jak tekstowe systemy menu. Względne zalety powłok opartych na CLI i GUI są często przedmiotem dyskusji. Wielu użytkowników komputerów używa obu w zależności od zadania do wykonania.

Historia

Wczesne systemy interaktywne zapewniały prosty interpreter wiersza poleceń jako część monitora rezydentnego . Ten interpreter może mieć różne nazwy, na przykład COMCON w systemach DEC TOPS-10 . Interpreter wykonałby jedno z wielu predefiniowanych poleceń, z których jednym byłoby uruchomienie programu użytkownika. Typowe polecenia logują i wylogowują użytkownika z systemu, przydzielają, zwalniają i manipulują urządzeniami i plikami oraz wysyłają zapytania o różne informacje o systemie lub procesie użytkownika.

W 1964 roku, w przypadku systemu operacyjnego Multics , Louis Pouzin wpadł na pomysł „używania poleceń w jakiś sposób przypominających język programowania” i ukuł termin powłoka , aby go opisać. W dokumencie z 1965 roku powłoka jest zdefiniowana jako „powszechna procedura wywoływana automatycznie przez przełożonego za każdym razem, gdy użytkownik wpisze jakąś wiadomość na swojej konsoli, w czasie, gdy nie ma on aktywnego wykonywania innego procesu pod kontrolą konsoli. Ta procedura działa jak interfejs między komunikatami konsoli a podprogramem [w przełożonym]”.

Multics wprowadził także funkcję active , kluczową koncepcję we wszystkich późniejszych powłokach. Jest to określone jako

łańcuch… który jest zastępowany wartością zwracaną przez ciąg znaków przed wykonaniem wiersza poleceń, który go zawiera. Aktywne funkcje są często używane… do implementacji makr w języku poleceń.

W 1971 roku Ken Thompson opracował powłokę Thompson w pierwszej wersji Uniksa. Choć prostszy niż powłoka Multics, zawierał pewne innowacyjne funkcje, które zostały przeniesione do nowoczesnych powłok, w tym użycie < i > do przekierowania wejścia i wyjścia .

Powłoka graficzna pojawiła się po raz pierwszy w systemie NLS Douglasa Engelbarta , zademonstrowanym w grudniu 1968 roku na konferencji Fall Joint Computer Conference w San Francisco, w tak zwanej The Mother of All Demos . Koledzy Engelbarta z Instytutu Badawczego Stanforda przenieśli tę koncepcję do Xerox Palo Alto Research Center (PARC), gdzie pojawiła się ona w Alto , wprowadzonym w 1973 roku. Stamtąd pomysł rozprzestrzenił się na Lilith Niklausa Wirtha w 1980 roku, a Apple Lisa w 1983 roku, potem stała się wszechobecna.

Powłoki wiersza poleceń

Wiersz polecenia , powłoka CLI w systemie Windows
Bash , powszechnie stosowana powłoka systemu Unix

Interfejs wiersza poleceń (CLI) to powłoka systemu operacyjnego, która wykorzystuje znaki alfanumeryczne wpisywane na klawiaturze w celu interaktywnego udostępniania instrukcji i danych systemowi operacyjnemu. Na przykład dalekopis może wysyłać kody reprezentujące naciśnięcia klawiszy do programu interpretującego polecenia działającego na komputerze; interpreter poleceń analizuje sekwencję naciśnięć klawiszy i odpowiada komunikatem o błędzie, jeśli nie może rozpoznać sekwencji znaków lub może wykonać inną akcję programu, taką jak ładowanie aplikacji, wyświetlanie plików, logowanie użytkownika i wiele innych. Systemy operacyjne, takie jak UNIX, mają dużą różnorodność powłoki z różnymi poleceniami, składnią i możliwościami, przy czym powłoka POSIX jest linią bazową. Niektóre systemy operacyjne miały tylko jeden styl interfejsu poleceń; popularne systemy operacyjne, takie jak MS-DOS, były dostarczane ze standardowym interfejsem poleceń ( COMMAND.COM ), ale często dostępne były również interfejsy innych firm, zapewniające dodatkowe funkcje lub funkcje, takie jak menu lub zdalne wykonywanie programów.

Programy użytkowe mogą również implementować interfejs wiersza poleceń. Na przykład w systemach typu Unix telnet ma wiele poleceń do kontrolowania łącza do zdalnego systemu komputerowego. Ponieważ polecenia do programu składają się z tych samych naciśnięć klawiszy, co dane wysyłane do zdalnego komputera, wymagane są pewne sposoby rozróżnienia tych dwóch. Sekwencję specjalną można zdefiniować za pomocą specjalnego lokalnego naciśnięcia klawisza, które nigdy nie jest przekazywane, ale zawsze interpretowane przez system lokalny. Program staje się modalny, przełączając się między interpretacją poleceń z klawiatury lub przekazując naciśnięcia klawiszy jako dane do przetworzenia.

Cechą wielu powłok wiersza poleceń jest możliwość zapisywania sekwencji poleceń do ponownego użycia. Plik danych może zawierać sekwencje poleceń, które CLI może wykonywać tak, jakby były wpisane przez użytkownika. Podczas wykonywania tych przechowywanych instrukcji mogą mieć zastosowanie specjalne funkcje interfejsu CLI. Takie pliki wsadowe (pliki skryptów) mogą być używane wielokrotnie do automatyzacji rutynowych operacji, takich jak inicjowanie zestawu programów po ponownym uruchomieniu systemu. Użycie powłok w trybie wsadowym zwykle obejmuje struktury, instrukcje warunkowe, zmienne i inne elementy języków programowania; niektóre mają podstawowe elementy potrzebne do tego celu, inne same w sobie są bardzo wyrafinowanymi językami programowania. I odwrotnie, niektóre języki programowania mogą być używane interaktywnie z powłoki systemu operacyjnego lub w specjalnie zaprojektowanym programie.

Powłoka wiersza poleceń może oferować takie funkcje, jak uzupełnianie wiersza poleceń , w którym interpreter rozszerza polecenia na podstawie kilku znaków wprowadzonych przez użytkownika. Interpreter wiersza poleceń może oferować funkcję historii, dzięki której użytkownik może przywołać wcześniejsze polecenia wydane systemowi i powtórzyć je, być może z pewną edycją. Ponieważ wszystkie polecenia do systemu operacyjnego musiały być wpisywane przez użytkownika, powszechne były krótkie nazwy poleceń i zwarte systemy reprezentacji opcji programu. Krótkie nazwy były czasami trudne do zapamiętania przez użytkownika, a we wczesnych systemach brakowało zasobów pamięci masowej, aby zapewnić szczegółową instrukcję obsługi online.

Powłoki graficzne

Graficzny interfejs użytkownika (GUI) zapewnia środki do graficznego manipulowania programami, umożliwiając takie operacje, jak otwieranie, zamykanie, przenoszenie i zmiana rozmiaru okien , a także przełączanie fokusu między oknami. Powłoki graficzne mogą być dołączone do środowisk graficznych lub dostarczane oddzielnie, nawet jako zestaw luźno powiązanych narzędzi.

Większość graficznych interfejsów użytkownika rozwija metaforę „elektronicznego pulpitu” , na którym pliki danych są reprezentowane tak, jakby były dokumentami papierowymi na biurku, a programy użytkowe podobnie mają reprezentacje graficzne zamiast wywoływania ich za pomocą nazw poleceń.

Systemy typu Unix

przeciągania i upuszczania wykonywana na grupie plików między KDesktop a Konquerorem w KDE

Powłoki graficzne są zwykle zbudowane na systemie okienkowym . W przypadku X Window System lub Wayland powłoka składa się odpowiednio z menedżera okien X lub kompozytora Wayland , a także z jednego lub wielu programów zapewniających funkcjonalność uruchamiania zainstalowanych aplikacji, zarządzania otwartymi oknami i wirtualnymi pulpitami oraz często do obsługi silnika widżetów.

W przypadku macOS Quartz Compositor działa jako system okienkowy, a powłoka składa się z Findera , Docka , SystemUIServer i Mission Control .

Microsoft Windows

Nowoczesne wersje systemu operacyjnego Microsoft Windows używają powłoki systemu Windows jako powłoki. Powłoka systemu Windows zapewnia środowisko pulpitu , menu startowe i pasek zadań , a także graficzny interfejs użytkownika umożliwiający dostęp do funkcji zarządzania plikami systemu operacyjnego. Starsze wersje zawierają również Menedżera programów , który był powłoką dla serii 3.x systemu Microsoft Windows i który w rzeczywistości był dostarczany z późniejszymi wersjami systemu Windows, zarówno typu 95, jak i NT, przynajmniej przez system Windows XP. Interfejsy wersji Windows 1 i 2 znacznie się różniły.

Aplikacje komputerowe są również uważane za powłoki, o ile korzystają z silnika innej firmy. Podobnie wiele osób i programistów niezadowolonych z interfejsu Eksploratora Windows opracowało oprogramowanie, które albo zmienia działanie i wygląd powłoki, albo całkowicie ją zastępuje. WindowBlinds firmy StarDock to dobry przykład pierwszego rodzaju aplikacji. LiteStep i Emerge Desktop są dobrymi przykładami tego drugiego.

Programy interoperacyjności i specjalnie zaprojektowane oprogramowanie pozwalają użytkownikom systemu Windows używać odpowiedników wielu różnych GUI opartych na Uniksie, omówionych poniżej, a także Macintosh. Odpowiednik OS/2 Presentation Manager dla wersji 3.0 może uruchamiać niektóre programy OS/2 w pewnych warunkach przy użyciu podsystemu środowiskowego OS/2 w wersjach Windows NT.

Inne zastosowania

„Powłoka” jest również używana luźno do opisania aplikacji, które są „zbudowane wokół” określonego komponentu, takiego jak przeglądarki internetowe i klienci poczty e-mail, analogicznie do powłok występujących w naturze. Rzeczywiście, powłoka (wiersza poleceń) hermetyzuje jądro systemu operacyjnego . Są one również czasami określane jako „opakowania”.

W systemach eksperckich powłoka jest oprogramowaniem, które jest „pustym” systemem eksperckim bez bazy wiedzy dla konkretnej aplikacji.

Zobacz też