Shell (computing)
Im Computer, a Hülse ist ein Computerprogramm, das eine enthüllt BetriebssystemDienste für einen menschlichen Benutzer oder andere Programme. Im Allgemeinen verwenden Betriebssystemschalen entweder a Befehlszeilenschnittstelle (Cli) oder grafische Benutzeroberfläche (GUI) abhängig von der Rolle eines Computers und dem besonderen Betrieb. Es wird als Shell bezeichnet, weil es die äußerste Schicht um das Betriebssystem ist.[1][2]
Befehlszeilen-Shells erfordern, dass der Benutzer mit Befehlen und deren Anruf vertraut ist Syntaxund um Konzepte über die Shell-spezifische Skriptsprache zu verstehen (zum Beispiel, verprügeln).
Grafische Muscheln belasten den Beginn von Computerbenutzern eine geringe Belastung und sind als einfach zu bedienen charakterisiert. Da sie auch bestimmte Nachteile haben, bieten die meisten GUI-fähigen Betriebssysteme auch CLI-Shells an.
Überblick
Betriebssysteme bieten ihren Benutzern verschiedene Dienste, einschließlich Dokumentenverwaltung, Prozess Management (Laufen und Kündigung Anwendungen), Stapelverarbeitungund Betriebssystemüberwachung und -konfiguration.
Die meisten Betriebssystemschalen sind nicht Direkte Schnittstellen zum zugrunde liegenden Kernel, auch wenn eine Shell mit dem Benutzer über kommuniziert Peripheriegeräte direkt an den Computer angeschlossen. Shells sind tatsächlich spezielle Anwendungen, die den Kernel verwenden API genauso wie es von anderen Anwendungsprogrammen verwendet wird. Eine Shell verwaltet die Interaktion zwischen Benutzer und System, indem sie Benutzer zur Eingabe auffordern, ihre Eingaben interpretieren und dann die Ausgabe aus dem zugrunde liegenden Betriebssystem bearbeiten (ähnlich wie a Read -ee -druck -Schleife, Reply).[3] Da die Betriebssystem -Shell tatsächlich eine Anwendung ist, kann sie für die meisten Betriebssysteme problemlos durch eine andere ähnliche Anwendung ersetzt werden.
Zusätzlich zu Shells, die auf lokalen Systemen ausgeführt werden, gibt es verschiedene Möglichkeiten, um lokalen Benutzern Remote -Systeme zur Verfügung zu stellen. Solche Ansätze werden normalerweise als Fernzugriff oder Fernverwaltung bezeichnet. Anfänglich verfügbar auf Multi-User Mainframes, die für jeden aktiven Benutzer eine textbasierte Benutzeroberfläche bereitgestellt haben gleichzeitig mittels a Text Terminal über eine Serienneile mit dem Mainframe verbunden oder Modem, Remote -Zugriff hat sich auf die Ausdehnung des Zugangs auf Unix-artig Systeme und Microsoft Windows. Auf Unix-ähnlichen Systemen wird das sichere Shell-Protokoll normalerweise für textbasierte Shells verwendet SSH -Tunneling Kann für X -Fenstersysteme basierend grafische Benutzeroberflächen (GUIs) verwendet werden. Unter Microsoft Windows kann das Remote -Desktop -Protokoll verwendet werden, um GUI -Remote -Zugriff und seitdem zu bieten Windows Vista, Powershell Remote Kann über WMI, RPC und WS-Management für den textbasierten Remotezugriff verwendet werden.[4]
Die meisten Betriebssystem-Shells fallen in eine von zwei Kategorien-Befehlszeile und grafisch. Befehlszeilenschalen bieten eine Befehlszeilenschnittstelle (CLI) für das Betriebssystem, während grafische Shells eine grafische Benutzeroberfläche (GUI) bieten. Andere Möglichkeiten, obwohl nicht so häufig, enthalten eine Sprachbenutzeroberfläche und verschiedene Implementierungen einer textbasierten Benutzeroberfläche (TUI), die nicht CLI sind. Die relativen Vorzüge von Cli- und GUI-basierten Muscheln werden häufig diskutiert.
Geschichte
Frühe interaktive Systeme lieferten einen einfachen Befehlszeilen-Interpreter als Teil der Resident Monitor. Dieser Dolmetscher kann unter verschiedenen Namen aufgerufen werden, wie z. Comcon im Dezember Tops-10 Systeme.[5] Der Interpreter würde eine von mehreren vordefinierten Befehlen ausführen, von denen eine ein Benutzerprogramm ausführen würde. Gemeinsame Befehle würden den Benutzer auf und aus dem System protokollieren, Geräte und Dateien zuweisen, kostenlos und manipulieren und verschiedene Informationen zum System oder einen Benutzerprozess abfragen.[6]
Im Jahr 1964 für die Mehrheit Betriebssystem, Louis Pouzin konzipierte die Idee, "Befehle irgendwie wie eine Programmiersprache zu verwenden" und prägte den Begriff Hülse es beschreiben.[7] In einem Dokument von 1965 wird die Shell als "eine gemeinsame Prozedur, die vom Supervisor automatisch aufgerufen wird, wenn ein Benutzer in einer Nachricht an seiner Konsole einsetzt Eine Schnittstelle zwischen Konsolennachrichten und Unterprogramm [im Supervisor]. "[8]
Multics stellte auch die vor Aktive Funktion, ein Schlüsselkonzept in allen späteren Shells. Dies ist definiert als
Eine Zeichenfolge…, die vor der Befehlszeile, die sie ausgeführt wird, durch einen Zeichen für Zeichenzeichenfolge ersetzt wird. Aktive Funktionen werden häufig verwendet, um Befehlssprachen-Makros zu implementieren. [9]
1971,, Ken Thompson entwickelte die Thompson Shell In der ersten Version von Unix. Obwohl sie einfacher als die Multics -Shell enthielt, enthielt sie einige innovative Merkmale, die in modernen Muscheln vorgebracht wurden, einschließlich der Verwendung von <und> für Eingabe und Ausgabe Umleitung.
Befehlszeilenschalen
A Befehlszeilenschnittstelle (CLI) ist eine Betriebssystemhülle, die verwendet alphanumerisch Die auf einer Tastatur eingegebenen Zeichen, um das Betriebssystem interaktiv Anweisungen und Daten bereitzustellen. Zum Beispiel a Teletypewriter kann Codes senden, die Tastenanschläge an ein auf dem Computer ausgeführter Befehlsinterpreter -Programm darstellen. Der Befehlsinterpreter analysiert die Abfolge von Tastenanschlägen und antwortet mit einer Fehlermeldung, wenn sie die Abfolge von Zeichen nicht erkennen kann, oder möglicherweise andere Programmaktionen wie das Laden eines Anwendungsprogramms, das Auflisten von Dateien, die Anmeldung in einem Benutzer und viele andere durchführen. Betriebssysteme wie Unix haben eine große Auswahl an Hülse Programme mit unterschiedlichen Befehlen, Syntax und Funktionen mit dem POSIX Shell eine Grundlinie sein. Einige Betriebssysteme hatten nur einen einzelnen Stil der Befehlsschnittstelle. Warenbetriebssysteme wie MS-DOS kam mit einer Standard -Befehlsschnittstelle (Command.com) Oft waren jedoch auch Schnittstellen von Drittanbietern verfügbar, was zusätzliche Funktionen oder Funktionen wie Menuing oder Remote-Programmausführung bereitstellte.
Anwendungsprogramme können auch eine Befehlszeilenschnittstelle implementieren. Zum Beispiel in Unix-ähnlichen Systemen die Telnet Das Programm verfügt über eine Reihe von Befehlen für die Steuerung eines Links zu einem Remote -Computersystem. Da die Befehle an das Programm aus den gleichen Tastenanschlägen wie die Daten an einen Remote -Computer hergestellt werden, sind einige Mittel zur Unterscheidung der beiden erforderlich. Ein Fluchtabfolge Kann definiert werden, indem Sie entweder einen speziellen lokalen Tastenanschlag verwenden, der nie vom lokalen System weitergegeben, aber immer interpretiert wird. Das Programm wird modal und wechselt zwischen den Interpretationsbefehlen von der Tastatur oder dem Übergeben von Tastenanschlägen auf die zu verarbeitenden Daten.
Ein Merkmal vieler Befehlszeilenschalen ist die Fähigkeit, Sequenzen von Befehlen für die Wiederverwendung zu speichern. Eine Datendatei kann Sequenzen von Befehlen enthalten, die die CLI wie von einem Benutzer eingebracht werden kann. Besondere Merkmale in der CLI können bei dieser gespeicherten Anweisungen gelten. Eine solche Stapeldateien (Skriptdateien) können wiederholt verwendet werden, um Routinemperaturen zu automatisieren, z. B. die Initialisierung einer Reihe von Programmen, wenn ein System neu gestartet wird. Die Verwendung von Shells mit dem Stapelmodus umfasst normalerweise Strukturen, Bedingungen, Variablen und andere Elemente von Programmiersprachen. Einige haben das für einen solchen Zweck benötigte Nötigste, andere sind sehr raffinierte Programmiersprachen an und für sich. Umgekehrt können einige Programmiersprachen interaktiv aus einer Betriebssystemschale oder in einem speziell gebauten Programm verwendet werden.
Die Befehlszeilenschale bietet möglicherweise Funktionen wie z. Befehlszeilenabschluss, wobei der Interpreter Befehle basierend auf den Eingaben einiger Zeichen des Benutzers erweitert. Ein Befehlszeilen-Dolmetscher kann eine Verlaufsfunktion anbieten, damit der Benutzer frühere Befehle an das System abrufen und möglicherweise mit einigen Bearbeitungen wiederholen kann. Da alle Befehle an das Betriebssystem vom Benutzer eingegeben werden mussten, waren kurze Befehlsnamen und kompakte Systeme zur Darstellung von Programmoptionen üblich. Kurznamen waren für einen Benutzer manchmal schwierig, und es fehlten frühe Systeme in den Speicherressourcen, um ein detailliertes Online-Benutzeranweisungshandbuch bereitzustellen.
Grafische Muscheln
Eine grafische Benutzeroberfläche (GUI) bietet Mittel zur Bearbeitung von Programmen grafisch, indem Operationen wie Öffnen, Schließen, Verschieben und Größenbereiche ermöglicht werden Fenstersowie wechseln Fokus zwischen Fenstern. Grafische Schalen können mit enthalten sein Desktop -Umgebungen Oder kommen Sie separat, selbst als eine Reihe lose gekoppelter Versorgungsunternehmen.
Die meisten grafischen Benutzeroberflächen entwickeln die Metapher eines "elektronischen Desktops", wobei Datendateien so dargestellt werden, als wären sie Papierdokumente auf einem Schreibtisch, und Anwendungsprogramme haben ebenfalls grafische Darstellungen, anstatt von Befehlsnamen aufgerufen zu werden.
Unix-ähnliche Systeme
Grafische Schalen bauen typischerweise auf a Fenstersystem. Im Falle des X Fenstersystem oder Wayland, die Hülle besteht aus einem X Fenstermanager oder ein Wayland Compositorsowie ein oder mehrere Programme, die die Funktionen für die Start von installierten Anwendungen, die Verwaltung offener Windows und virtuellen Desktops und häufig zur Unterstützung einer Widget -Engine anbieten.
Im Falle des Mac OS, Quarzkompositor fungiert als Fenstersystem, und die Schale besteht aus dem Finder,[10] das Dock,[10] Systemuiserver,[10] und Missions Kontrolle.[11]
Microsoft Windows
Moderne Versionen der Microsoft Windows Betriebssystem verwenden Sie die Windows Shell als ihre Hülle. Windows Shell bietet Desktop -Umgebung, Startmenü, und Taskleistesowie ein grafische Benutzeroberfläche Für den Zugriff auf die Dateiverwaltungsfunktionen des Betriebssystems. Ältere Versionen umfassen auch Progamm ManagerDas war die Shell für die 3.x -Serie von Microsoft Windows und die tatsächlich mit späteren Versionen von Fenstern der 95- und NT -Typen zumindest über Windows XP geliefert wurde. Die Schnittstellen der Windows -Versionen 1 und 2 waren deutlich unterschiedlich.
Desktop-Anwendungen gelten auch als Muscheln, solange sie einen Drittanbieter-Motor verwenden. Ebenso haben viele Personen und Entwickler, die mit der Schnittstelle von Windows Explorer unzufrieden waren, Software entwickelt, die entweder die Funktionsweise und das Aussehen der Schale verändert oder sie vollständig ersetzt. Fensterrollos durch Stardock ist ein gutes Beispiel für die frühere Art von Anwendung. Beleuchtet und Emerge Desktop sind gute Beispiele für letztere.
Interoperabilitätsprogramme und für die Zwecke gestaltete Software können Windows-Benutzer Äquivalente vieler der verschiedenen unten diskutierten UNIX-basierten GUI sowie Macintosh verwenden. Ein Äquivalent des Betriebssystems/2 -Präsentationsmanagers für Version 3.0 kann einige Betriebssystemprogramme unter bestimmten Bedingungen unter Verwendung des Betriebssystems/2 ausführen Umweltsubsystem In Versionen von Windows NT.
Andere Verwendungen
"Shell" wird auch lose verwendet, um Anwendungssoftware zu beschreiben, die sich in einer bestimmten Komponente wie Webbrowsern und E -Mail -Clients in Analogie zu den in der Natur gefundenen Shells "integrieren". In der Tat umfasst die (Befehlszeilen-) Shell das Betriebssystem Kernel. Diese werden manchmal auch als "Wrapper" bezeichnet.[2]
Im ExpertensystemeEine Shell ist eine Software, die ein "leeres" Expertensystem ohne Wissensbasis für eine bestimmte Anwendung ist.[12]
Siehe auch
- Vergleich von Befehlsschalen
- Menschliche interaktion mit dem Computer
- Internet Explorer Shell
- Shell -Konto
- Muschel gebaut
- Superuser
- Unix Shell
- Fenstermanager- Bietet eine rudimentäre Prozessverwaltungsschnittstelle
- Read-Eval-Print-Schleife auch genannt Sprachschale, a Cli für eine interpretierte Programmiersprache
Verweise
- ^ "Der fünfte Mann des Internets", Gehirn Scan, Der Ökonom, London: Ökonomgruppe, 13. Dezember 2013,
Herr Pouzin erstellte ein Programm namens Runcom, das den Benutzern mühsame und sich wiederholende Befehle automatisiert hat. Dieses Programm, das er als „Shell“ rund um die surrenden Innereien des Computers bezeichnete, inspirierte-und einen Namen-für eine ganze Klasse von Softwaretools, die als Befehlszeilenschalen bezeichnet wurden und die immer noch unter der Oberfläche moderner Betriebssysteme lauern.
- ^ a b Raymond, Eric S. (Hrsg.). "Hülse". Die Jargon -Datei.
- ^ "Betriebssystem -Shells". AIX 6.1 Informationszentrum. IBM Leiche. Abgerufen 16. September, 2012.
- ^ Wheeler, Sean (14. Oktober 2018). "Remote -Befehle ausführen". Microsoft Docs. Microsoft. Abgerufen 30. Juni 2019.
Sie können Befehle auf einem oder Hunderten von Computern mit einem einzigen PowerShell -Befehl ausführen. Windows PowerShell unterstützt das Remote-Computing mithilfe verschiedener Technologien, einschließlich WMI, RPC und WS-Management.
- ^ Digital Equipment Corporation (November 1980). TOPS-10 Monitor Interna (PDF). S. cmnd-1-cmnd-16. Abgerufen 29. März, 2022.
- ^ Digital Equipment Corporation (August 1977). Decsystem 10 Betriebssystembefehle Handbuch (PDF). Abgerufen 29. März, 2022.
- ^ Pouzin, Louis. "Der Ursprung der Hülle". Multiders.org. Abgerufen 29. März, 2022.
- ^ Pouzin, Louis. "Die Shell: Ein globales Instrument zum Aufrufen und Verkettungsverfahren im System" (PDF). Mit.edi. Abgerufen 29. März, 2022.
- ^ Honeywell, Inc. (Februar 1983). Mehrfach gemeinsame Befehle (PDF). S. 1-1–1-2. Abgerufen 29. März, 2022.
- ^ a b c "Der Lebenszyklus eines Daemons". Apple Inc.
- ^ "Starten Sie die Missionskontrolle in OS X Lion neu". Osxdaily. 23. November 2011.
- ^ British Computer Society: Das BCS -Glossar der IKT- und Rechenbegriffe. Pearson Ausbildung. 2005. p. 135. ISBN 978-0-13-147957-9.