Operating system shell: Difference between revisions
Appearance
Content deleted Content added
m minor fixes, mostly disambig links using AWB |
Page turned into a redirect to Shell (computing), as part of the merger with Operating system shell article, see Talk:Shell (computing)#Merger proposal for the discussion |
||
Line 1: | Line 1: | ||
#REDIRECT [[Shell (computing)]] {{R from merge}} |
|||
[[File: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)]] |
|||
[[File: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 |[[File: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" |[[File: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" |[[File: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{{citation needed|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 |
|||
|} |
|||
[[File: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 --> |
|||
[[File:Taskbar-SharpEnviro-v8.png|thumb|right|800px|The [[taskbar]] of [[SharpEnviro]], a shell replacement for Windows]] |
|||
{{expand section|date=September 2012}} |
|||
[[File: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]] |
|||
[[File: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 book | 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]] | year=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 | year=2011 |author= Curt Franklin; Dave Coustan | accessdate=September 15, 2012}} |
|||
{{Operating System}} |
|||
[[Category:Operating system technology|Shell]] |
|||
[[Category:User interfaces]] |
Revision as of 07:38, 31 May 2014
Redirect to:
- From a merge: This is a redirect from a page that was merged into another page. This redirect was kept in order to preserve the edit history of this page after its content was merged into the content of the target page. Please do not remove the tag that generates this text (unless the need to recreate content on this page has been demonstrated) or delete this page.
- For redirects with substantive page histories that did not result from page merges use {{R with history}} instead.