Shell (Betriebssystem)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

In der Informatik wird als Shell die Software bezeichnet, mittels derer ein Benutzer mit einem Betriebssystem interagiert[1] – eine Mensch-Maschine-Schnittstelle. Während Kernel den Kern eines Betriebssystems bezeichnet, ist die Shell (englisch für „Schale“, „Hülle“ oder „Außenhaut“) anschaulich dessen Außenschicht und damit Schnittstelle (englisch Interface) zum Benutzer.

Unterteilung[Bearbeiten | Quelltext bearbeiten]

Shells arbeiten in der Regel entweder

abhängig von Art und Zweck des Betriebssystems.

Eine zusätzliche Unterteilung betrifft die Arbeitsweise der Shell selbst. Bei vielen Betriebssystemen gibt es eine primäre Shell (englisch primary shell), die im Normalfall so lange ausgeführt wird, bis das Betriebssystem selbst heruntergefahren wird. Weitere Shells können jedoch wie reguläre Programme ausgeführt werden, um z. B. Shellskripte bzw. Stapelverarbeitungsdateien ablaufen zu lassen, oder um eine von der Primärshell unabhängige (eventuell vererbte) Arbeitsumgebung (englisch environment) bereitzustellen. Somit gibt es auch eine Unterteilung in:

  • primäre Shell, und
  • sekundäre Shell.

Unter MS-DOS und kompatiblem DOS kann die primäre Shell in der CONFIG.SYS mit der Zeile SHELL=Pfad und Dateiname der Shell /Parameter... festgelegt und konfiguriert werden, z. B. mit SHELL=C:\COMMAND.COM /P /E:512. Auch unter OS/2 ist dies in gleicher Weise vorhanden und ermöglicht zudem den Austausch der grafischen Shell (GUI) durch einen zeilenweise arbeitenden Befehlszeileninterpreter (CLI).[2] Die Sekundärshell lässt sich unter beiden Betriebssystemen über die Variable COMSPEC festlegen.

Im allgemeinen Sprachgebrauch werden Shells fast immer mit einer textbasierten Kommandozeilenschnittstelle, die zur Interaktion mit dem Betriebssystem dient (Kommandozeileninterpreter, Unix-Shells), gleichgesetzt. Somit wird in einem Betriebssystem die Shell (als CLI) normalerweise der grafischen Benutzeroberfläche (als GUI) gegenübergestellt.[1][3][4] Andererseits wird auch oft von einer grafischen Shell gesprochen,[5][6] um ein Betriebssystem mit einer grafischen Benutzeroberfläche (GUI) zu beschreiben.

Zeilenweise arbeitende Shells[Bearbeiten | Quelltext bearbeiten]

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 – hier Textshell genannt – stellt dem Benutzer eine Arbeitsumgebung zur Text-Eingabe und -Ausgabe mit einer sogenannten Befehlszeile (englisch command line) bereit, in die eingegebene Befehle (englisch commands) 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 Shells[Bearbeiten | Quelltext bearbeiten]

Mauszeiger „pointer“ und „hand“
Grafische Shell des Betriebssystems Ubuntu Linux 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.).

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Jörg R. Mühlbacher: Betriebssysteme. Grundlagen. Univ.-Verl. Trauner, Linz 2009. ISBN 3-85499-591-1

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. a b Hartmut Ernst, Jochen Schmidt, Gerd Beneken: Grundkurs Informatik: Grundlagen und Konzepte für die erfolgreiche IT-Praxis – Eine umfassende, praxisorientierte Einführung. 5. Auflage. Springer-Verlag, 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.“
  2. Joe Salemi: Demystifying CONFIG.SYS in OS/2 2.0, Part 1. In: PC Magazine. Band 12, Nr. 4. Ziff Davis, 23. Februar 1993, S. 330 ff. (englisch, eingeschränkte Vorschau in der Google-Buchsuche): PROTSHELL= This statement tells OS/2 which primary user interface shell to use. The default is PMSHELL.EXE, which is the graphical WorkPlace Shell. As an alternative, you can tell OS/2 to use the OS/2 command line processor, CMD.EXE, as its main shell.”
  3. Arnold Klingert: Einführung in Graphische Fenstersysteme: Konzepte und reale Systeme. Springer-Verlag, 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.“
  4. Ute Hertzog: Linux: kompakt, komplett, kompetent. Markt+Technik Verlag, 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.“
  5. 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.“
  6. 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.“