Operating system shell: Difference between revisions
Appearance
Content deleted Content added
m Dating maintenance tags: {{Merge to}} |
Thumperward (talk | contribs) merge to parent article |
||
Line 1: | Line 1: | ||
#REDIRECT [[shell (computing)]] |
|||
{{Merge to|Shell (computing)|discuss=Talk:Shell (computing)#Merger proposal|date=April 2014}} |
|||
[[Image:System 1 File Edit.png|thumb|234px<!-- it is 1:1 scale, please, do not change -->|Two [[menu (computing)|menus]] of Apple's [[Finder (software)|Finder]], dropping down from the menu bar (montaged)]] |
|||
[[Image:MIUI-Free-screenshot.jpg|thumb|240px|The [[MIUI]] environment for [[Android (operating system)|Android]] operating system]] |
|||
An '''operating system shell''' is a [[software]] component that presents a [[user interface]] to various [[operating system]] functions and services. Thus, it is nearly synonymous with "'''operating system user interface'''".<ref name="AIX">{{cite web | url=http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.baseadmn%2Fdoc%2Fbaseadmndita%2Fshells.htm | title=Operating system shells | publisher=[[IBM]] Corp | work=AIX 6.1 Information Center | accessdate=September 16, 2012}}</ref> The shell is so called because it is an outer layer of interface between the user and the innards of the operating system (the [[kernel (computing)|kernel]]).<ref name="Jargon File">{{cite web | url=http://www.retrologic.com/jargon/S/shell.html | title=Shell | work=The [[Jargon File]] | accessdate=September 16, 2012 | author=Raymond, Eric S. | authorlink=Eric S. Raymond}}</ref> |
|||
== Purpose == |
|||
{{expand section|date=September 2012}} |
|||
The services that an operating system provides to its user(s) include, but are not limited to, the following: |
|||
* [[File manager|File management]] |
|||
* [[process (computing)|Process]] management – running and terminating [[application program|applications]] |
|||
* [[Batch processing]] |
|||
* [[Operating system monitoring]] |
|||
* Operating system [[software setup|setup]] |
|||
== Functioning == |
|||
Most OS shells are not ''direct'' interfaces to kernel, even if communicate with user via [[peripheral device]]s attached to the computer directly. Shells are actually special [[application program|applications]] which use the kernel [[application programming interface|API]] in just the same way as it is used by other application programs. A shell manages the user–system interaction by prompting user(s) for input, interpreting their input, and then handling an output from the operating system.<ref name="AIX"/> |
|||
Since the OS shell is actually an application, it may easily be replaced with other similar program, for most OSes. |
|||
=== Remote shell ===<!-- there are internal links to here from other parts of the article --> |
|||
{{unreferenced section|date=September 2012}} |
|||
<br clear="right" style="line-height:0.0625;"/> |
|||
{| align=right style="margin-left:1em" cellpadding=8px |
|||
|- align=center style="font-size:large" |
|||
| colspan=5 bgcolor=#FFFF66 |[[Image:User.svg]]<br/>User |
|||
|- align=center |
|||
| colspan=5 | [[I/O]] '''↕''' devices |
|||
|- align=center |
|||
| colspan=5 bgcolor=#FF66FF |[[device driver|Kernel I/O functions]] |
|||
|- align=center |
|||
| ||'''↕''' |
|||
| colspan=2 align=right |kernel API '''↕''' |
|||
| rowspan=4 bgcolor=#FF66FF | |
|||
|- align=center |
|||
| colspan=3 bgcolor=#66FFFF style="font-size:large" |[[Image:User-krusader.svg|50px]]<br/>Shell [[process (computing)|process]] |
|||
| |
|||
|- align=center |
|||
| rowspan=2 align=right |kernel |
|||
| rowspan=2 style="font-size:200%; line-height:0.875" |↑<br/>↓ |
|||
| rowspan=2 align=left | API |
|||
| bgcolor=#66FFFF style="font-size:80%" |Subpro-<br/>cesses<br/>(possibly) |
|||
|- align=center |
|||
|'''↕''' |
|||
|- align=center |
|||
| colspan=5 bgcolor=#FF66FF style="font-size:large" |[[Image:Emblem-system.svg|96px]]<br/>The kernel |
|||
|- |
|||
| colspan=5 style="font-size:80%; width:18em" |An OS shell, as it usually functions. A direct user–kernel dialogue is very uncommon, and only on most primitive devices is a shell program able to communicate with the user without the kernel API |
|||
|} |
|||
There are different approaches to [[remote desktop software|remote access]] to an operation system, which sometimes also referred to as [[remote administration]]. The classical approach of [[multi-user]] [[mainframe computer|mainframes]] is to provide text-based UI for each active user ''simultaneously'' by means of a [[text terminal]] connected to the mainframe via [[serial port|serial line]] or [[modem]]. This approach is now associated with [[Unix-like]] systems. Now, the [[Secure Shell]] protocol is used for a text-based UI, and for also GUI, if required, through [[SSH tunelling]] and [[X Window System]] networking capabilities. |
|||
Likewise, a remote GUI is possible for [[Microsoft Windows]] with [[Remote Desktop Protocol]]. |
|||
Alternative approach, for [[#Graphical (GUI) shells|GUI shells]], is a desktop environment controlled ''both'' locally and remotely, such as [[Radmin]] and [[Windows Desktop Sharing]]. |
|||
In any case, a shell-level remote access provides much more essential access to the computer than [[client–server]] protocols usually do. This implies additional [[computer security|security]] threats. |
|||
== Design == |
|||
{{see also|User interface#User interfaces in computing{{!}}User interfaces in computing}} |
|||
Most operating system shells fall into one of two categories: command-line and graphical. Command line shells provide a [[command-line interface]] (CLI) to the operating system, while graphical shells provide a [[graphical user interface]] (GUI). Other possibilities, although not so common, include [[voice user interface|voice UI]] and various implementations of a [[text-based user interface]] (TUI) which are not CLI. |
|||
The relative merits of CLI- and GUI-based shells are often debated. CLI proponents claim that certain operations can be performed much faster under CLI shells than under GUI shells (such as moving files{{fact|date=September 2012}}, for example). However, GUI proponents advocate the comparative usability and simplicity of GUI shells. The best choice is often determined by the way in which a computer will be used. On a server mainly used for data transfers and processing with expert administration, a CLI is likely to be the best choice. On the other hand, a GUI would probably be more appropriate for a computer to be used for secretarial work. |
|||
== Command-line OS shells ==<!-- there are internal links to here from other parts of the article --> |
|||
{| align=right style="margin-left:1em" cellpadding=4px |
|||
| bgcolor=#000000 style="font-family:monospace; font-size:250%; color:#999999" |user@host:~$ |
|||
|- |
|||
| style="font-size:small" |A [[Command-line interface #Command prompt|command prompt]] of the [[bash (Unix shell)|bash]] shell |
|||
|} |
|||
[[Image:DirectoryListing1.svg|thumb|right|400px|The [[Command Prompt]], a DOS-style user interface in Windows]] |
|||
{{expand section|date=September 2012}} |
|||
{{main|Command-line interface}} |
|||
{{see also|List of command-line interpreters #Operating systems}} |
|||
Command-line OS interfaces were dominant when resources, such as [[primary memory]] and [[CPU performance]], were scarce. In such systems as [[Unix]] and [[DOS]] command shells were centered on [[file system]] operations, although the classical Unix shell had also considerable process management capabilities. |
|||
Many OS command-line shells actually became [[command language]] [[interpreter (computing)|interpreters]]. This is the case, most notably, of numerous [[Unix shell]] variants. |
|||
As for other command-line interpreters, the use of an OS CLI does not imply actual [[text mode]] display. The use of command-line within a text window controlled by a GUI [[window manager]] is, {{as of|2012|lc=yes}}, quite common, if not dominant; see [[text-based user interface]] for details. Also shells, especially text-based ones, are often used remotely, as explained [[#Remote shell|above]]. |
|||
=== Graphical (GUI) shells ===<!-- there are internal links to here from other parts of the article --> |
|||
[[Image:Taskbar-SharpEnviro-v8.png|thumb|right|800px|The [[taskbar]] of [[SharpEnviro]], a shell replacement for Windows]] |
|||
{{expand section|date=September 2012}} |
|||
[[Image:Drag-and-drop-en.svg|thumb|320px|[[Drag-and-drop]]ping a file between [[Kdesktop]] and [[Konqueror]]. The [[KDE]] environment is popular on Unix-like systems]] |
|||
[[Image:X-Window-System.png|thumb|245px|This graphical interface from 1990s features a [[text-based user interface|TUI]] window for a [[man page]]. Another text window for [[#Command-line OS shells|a Unix shell]] is partially visible]] |
|||
A graphical user interface is possible as an extension of an operating system which traditionally uses CLI. In this case the GUI is referred to as a graphical interface or "[[desktop environment]]". But certain OSes use a GUI shell as a primary user interface.<ref name="ComputerHope">{{cite web | url=http://www.computerhope.com/jargon/g/gui.htm | title=What is Graphical User Interface (GUI)? | publisher=[[Computerhope]] | work=Computer dictionary and glossary | date=2012-05-01 | accessdate=September 15, 2012}}</ref> {{As of|2012}}, it is common and perfectly normal that a [[desktop computer|desktop]] OS has ''both'' command-line and GUI shells (GUI environment). Also, GUI shells usually incorporate some features of the command-line interpreter, especially its command language. |
|||
Modern versions of Microsoft's Windows operating system utilize and only officially support [[Windows shell|Windows Explorer]] as their GUI shell.<ref name="Windows Shell">{{cite web | url=http://msdn.microsoft.com/en-us/library/windows/desktop/bb773177%28v=vs.85%29.aspx | title=Windows Shell | publisher=[[MSDN]] | work=Windows Development Reference | accessdate=September 10, 2012}}</ref> Explorer provides the familiar [[desktop environment]], [[start menu]], and [[task bar]], as well as the [[file manager|file management functions]] of the operating system. Older versions also include [[Program Manager]] which was the shell for the [[Windows 3|3.x series]] of Microsoft Windows. |
|||
Many individuals and developers dissatisfied with the interface of Windows Explorer have developed software that either alters the functioning and appearance of the shell or [[Windows shell replacement|replaces it entirely]]. WindowBlinds by StarDock is a good example of the former sort of application. [[LiteStep]], [[GeoShell]] and [[FlyakiteOSX]] are good examples of the latter. This does not affect GUI applications (except for some possible changes in [[window manager]] behaviour), but provides a redesign of the interface to OS. |
|||
Proponents of Unix-like systems often argue that the GUI under UNIX is separate from the OS itself, unlike Microsoft Windows or MacOS.<ref name="StructBio">{{cite web | url=http://structbio.vanderbilt.edu/comp/unix/part03.php | title=Part 3: The GUI | publisher=[[Vanderbilt University]] Center for Structural Biology | work=Introduction to UNIX | date=2009-01-30 | accessdate=September 15, 2012}}</ref> |
|||
==== List of GUI shells ==== |
|||
* [[Microsoft Windows]] environments: |
|||
** [[Windows shell]] (a.k.a. Explorer.exe) |
|||
** [[Litestep]] |
|||
** [[GeoShell]] |
|||
** [[BB4Win]] |
|||
** [[Emerge Desktop]] |
|||
** [[SharpEnviro]] |
|||
* Macintosh [[Finder (software)|Finder]] |
|||
* [[X Window System]]-based environments (primarily for [[Unix]]): |
|||
** [[Xfce]] |
|||
** [[LXDE]] |
|||
** [[MATE (desktop environment)|MATE]] |
|||
** [[KDE]] |
|||
** [[GNOME]] |
|||
** [[Blackbox]] |
|||
** [[Common Desktop Environment]] |
|||
* [[DOS Shell]] |
|||
* [[AmigaOS]] environments. |
|||
**[[Workbench]] (GUI-Shell capabilities added since AmigaOS 2.0) |
|||
**[[Ambient (desktop environment)|Ambient]] (for [[MorphOS]]) |
|||
**[[Directory Opus]] |
|||
**[[ScalOS]] |
|||
**[[Wanderer (AROS)|Wanderer]] (for [[AROS]]) |
|||
== Terminology == |
|||
[[Eric S. Raymond]] acknowledges a considerable confusion about etymology and different [[shell (disambiguation)#Computing|modern usages of the word "shell"]].<ref name="Jargon File"/> Although it is usually associated with [[command-line interface|command lines]] in the [[information technology|IT]] world, its usage for graphical environments is not uncommon too, especially for OS platforms where GUI historically was a primary user interface.<ref name="Windows Shell"/><ref name="Landau">{{cite web | url=http://books.google.ru/books?id=Vf4U4UkDANsC&pg=PA923&lpg=PA923&dq=Mac+OS+graphical+shell&source=bl&ots=s6Hmfvcnp4&sig=NuxsmdkZNmJAN6rAca5UA659q6s | title=Mac OS X Help Line | publisher=[[Peachpit Press]] | date=2006 | accessdate=September 15, 2012 | author=Landau, Ted |authorlink=Ted Landau |coauthor=Frakes, Dan | page=923 | isbn=0321334299}}</ref><ref name="Pikimal">{{cite web | url=http://pikimal.com/text-editor/top/10/with-graphical-shell-integration/mac-os-x-2 | title=Top 10 Mac OS X Text Editors With Graphical Shell Integration | publisher=[[Pikimal]] | work=Explore Text Editors | accessdate=September 15, 2012}}</ref> These systems may refer to its CLI shell, if present, as to ''command''(''-line'')'' shell''.<ref name="cmd.mspx">{{cite web | url=http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx?mfr=true| title=Command shell overview | publisher=[[Microsoft]] Corp | work=Microsoft Windows XP | accessdate=September 15, 2012}}</ref> Some sources<ref name="ComputerHope"/> distinguish between "GUI operating systems" (those which support a GUI [[native (computing)|natively]]) and GUI ''interfaces'' for operating systems. |
|||
Denotation of the term "shell" is usually restricted to few programs, including the main shell process,<ref name="Windows Shell"/><ref name="cmd.mspx"/> which forms the core of the operating system's UI. The term "operating system user interface" may have a broader meaning, including some specialized components such as [[control panel (computer)|control panel]]. |
|||
== See also == |
|||
* [[Human–computer interaction]] |
|||
* [[Window manager]] – provides a rudimentary process management interface |
|||
== References == |
|||
{{reflist}} |
|||
== External links == |
|||
* {{cite web | url=http://computer.howstuffworks.com/operating-system10.htm | title=User Interface | publisher=HowStuffWorks.com | work=How Operating Systems Work | date=2011 |author= Curt Franklin; Dave Coustan | accessdate=September 15, 2012}} |
|||
{{Operating System}} |
|||
[[Category:Operating system technology|Shell]] |
|||
[[Category:User interfaces]] |
Revision as of 10:21, 21 April 2014
Redirect to: