Als Shell wird in der Informatik allgemein eine Systemsoftware bezeichnet, die die Fähigkeiten eines Betriebssystems sowohl einem menschlichen Benutzer als auch anderen Programmen zugänglich macht. Während „Kernel“ den Kern eines Betriebssystems bezeichnet, steht „Shell“ (englischshell‚Schale‘, ‚Hülle‘ oder ‚Außenhaut‘) anschaulich für dessen äußerste Schicht: die Benutzerschnittstelle (englischuser interface, UI). Ein Mensch kann darüber mit dem Betriebssystem interagieren.[1]
Üblicherweise starten Betriebssysteme am Ende des Hochfahrens eine primäre Shell-Instanz und -Sitzung, die im Normalbetrieb erst beim Ausschalten/Herunterfahren/Abmelden beendet wird und typischerweise eine Anmeldung erfordert. Die Shell-Instanz erzeugt zur Laufzeit (englischruntime) eine Arbeitsumgebung (englischenvironment).[2] Innerhalb dieser Umgebung können Programme gestartet werden und laufen (vgl. Laufzeitumgebung). Freilich können dies auch weitere, sekundäre (Sub-)Shells sein – sowohl zusätzliche Instanzen derselben oder einer anderen Software.
Je nach Zweck und Leistung eines Computers und seines Betriebssystems werden unterschiedliche Typen von Shells eingesetzt. Eine Shell hat typischerweise entweder …[1][2][3]
Im allgemeinen Sprachgebrauch ist „grafische Shell“ noch nicht sehr etabliert und findet sich eher in neuerer Lektüre.[4][5] Oft wird fälschlich von „GUI“ oder „Desktop-Umgebung“ gesprochen.
„Klassische“ Shell, mit CLI
Beispiel für eine Shell, die in einer Terminalemulation unter macOS läuft: die Kommandos werden per Kommandozeile (CLI) eingegeben, die ihre Ergebnisse als Text ausgeben.
Eine zeilenweise Text verarbeitende Shell – nachfolgend Textshell genannt – stellt dem Benutzer eine Arbeitsumgebung zur Text-Eingabe und -Ausgabe mit einer sogenannten Befehlszeile (englischcommand line) bereit, in die eingegebene Befehle bzw. Kommandos (englischcommands) von einem Interpreter umgesetzt und ausgeführt werden. Außer den ganz frühen Shells stellen Textshells ihre eigene, für sie typische, oder teilweise normierte Skriptsprache bereit; da die Befehle und die Syntax bekannt sein müssen, wird diese Skriptsprache vornehmlich von erfahrenen Benutzern verwendet.
Der Ursprung von Textshells als Skriptsprache für Betriebssysteme findet sich bei Multics, wo das Wort „Shell“ um 1965 auftaucht (siehe Shellskript#Ursprung). Derlei Textshells finden sich primär in Form von Unix-Shells (Bash, TENEX-C-Shell, Z shell etc.) als elementarer Bestandteil von Unix- und ähnlichen Systemen und als Kommandozeileninterpreter von u. a. Disk-Operating-Systemen (kurz: „DOS“). Auch grafische Betriebssysteme haben meist eine Shell, etwa Windows und macOS. Diese ermöglichen in einem Fenster die Text-basierte Ein- und Ausgabe, als Teil einer grafischen Benutzeroberfläche (Terminalemulation) allerdings auch z. B. Cut & Paste und Drag & Drop. In Windows gibt es neben der klassischen Eingabeaufforderung aus dem MS-DOS-Erbe auch die neuere und funktionsreichere PowerShell, andere Shells (etwa Bash) können vom Benutzer installiert werden. Bei macOS sind aufgrund des BSD-Unix-Kerns (siehe Darwin) ebenfalls Unix-Shells enthalten.
Grafische Shell, mit GUI
Grafische Shell des Betriebssystems UbuntuLinux 20.04.
Eine grafische Shell stellt eine Umgebung mit einer grafischen Schnittstelle zur Benutzung bereit, die als Benutzeroberfläche bezeichnet wird. „Auf“ dieser zweidimensionalen Oberfläche sind Bedienungs- bzw. Steuerelemente mit Symbolen oder Textbeschriftungen zu finden, die bevorzugt eine dreidimensionale Tiefe anhand visueller Effekte suggeriert – beispielsweise scheinen Fenster übereinander zu liegen oder eine Schaltfläche wirkt erhaben, und beim Auslösen wird sie augenscheinlich eingedrückt. So ist ein Betriebssystem einfacher zugänglich, da Funktionen, Routinen oder Unterprogramme mittels Mausklick oder Fingertipp auf ein Element aufgerufen werden können. Desktop-Umgebungen bei Personalcomputern sowie die Umgebungen von Smartphones und modernen Fernsehern beispielsweise bilden grafische Shells. Oft kann eine Terminalemulation benutzt werden, die eine Textshell bereitstellt (z. B. Bash, PowerShell etc.).
Jörg R. Mühlbacher: Betriebssysteme. Grundlagen. Univ.-Verl. Trauner, Linz 2009, ISBN 978-3-85499-591-3.
Einzelnachweise
↑ abHartmut Ernst, Jochen Schmidt, Gerd Beneken: Grundkurs Informatik. Grundlagen und Konzepte für die erfolgreiche IT-Praxis – Eine umfassende, praxisorientierte Einführung. 5. Auflage. Springer, 2015, ISBN 978-3-658-01627-2, 8 Betriebssysteme, S.322, 8.4 Benutzerschnittstelle: Shell und GUI (eingeschränkte Vorschau in der Google-Buchsuche): „Eine Shell ist die Schnittstelle des Betriebssystems zum Benutzer.“
↑ abUte Hertzog: Linux. Kompakt, komplett, kompetent. Markt+Technik, 2006, ISBN 978-3-8272-6810-5, 1.5 Linux-Komponenten, S.42, 1.5.2 Die Shell (eingeschränkte Vorschau in der Google-Buchsuche): „Ein Linux-System kann auch ohne grafische Oberfläche – nur mit der Shell – betrieben werden.“
↑Arnold Klingert: Einführung in Graphische Fenstersysteme. Konzepte und reale Systeme. Springer, 1996, ISBN 978-3-540-58818-4, 4 Architektur, S.94, Direktmanipulation (eingeschränkte Vorschau in der Google-Buchsuche): „Man unterscheidet Systeme, die eine Metapher unterstützen, zum Beispiel die Desktop-Metapher, und solche, die einen Kommandointerpreter (Shell) benutzen, um das Betriebssystem anzusprechen.“
↑Eriq Neale: Small Business Server 2008. Das Praxisbuch für kleine und mittlere Unternehmen. Addison-Wesley, 2009, ISBN 978-3-8273-2359-0, 20 PowerShell, S.814 (eingeschränkte Vorschau in der Google-Buchsuche): „(Über Windows Server 2008, Anm.:) So erhielten der Server-Core, ein grundlegendes Betriebssystem ohne grafische Shell …, Priorität.“
↑Gerd Goldammer: Informatik für Wirtschaft und Verwaltung. Einführung in die Grundlagen. 1. Auflage. Gabler / Springer Fachmedien, 1994, ISBN 978-3-409-13539-9, 4 Betriebssysteme; 4.3.2 UNIX und weitere Betriebssysteme, S.192, UNIX-Shell (eingeschränkte Vorschau in der Google-Buchsuche): „Von den Herstellern der Betriebssysteme werden zunehmend auch menüorientierte grafische Shells angeboten.“