Shell (computing)
From Wikipedia, the free encyclopedia
This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (December 2008) |
A shell is a piece of software that provides an interface for users to an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. The name shell originates from shells being an outer layer of interface between the user and the innards of the operating system (the kernel).
Operating system shells generally 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). In either category the primary purpose of the shell is to invoke or "launch" another program; however, shells frequently have additional capabilities such as viewing the contents of directories.
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, 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 be more appropriate for a computer to be used for image or video editing and the development of the above data.
In expert systems, a shell is a piece of software that is an "empty" expert system without the knowledge base for any particular application.[1]
Contents |
[edit] History
The first Unix shell, Ken Thompson's sh,[2] was modeled after the Multics shell.[3] The Bourne shell is a descendant of the first Unix shell.[2]
[edit] Text (CLI) shells
[edit] Unix shells
Notable historic or popular Unix shells include:
- Bourne shell (sh) /*'man sh'*/
- Almquist shell (ash) /*'man ash'*/
- Debian Almquist shell (dash) /*'man dash'*/
- Bourne-Again shell (bash) /*'man bash'*/
- Korn shell (ksh) /*'man ksh'*/
- Z shell (zsh) /*'man zsh'*/
- Almquist shell (ash) /*'man ash'*/
- C shell (csh) /*'man csh'*/
- TENEX C shell (tcsh) /*'man tcsh'*/
- EMACS shell (eshell)
- Es shell (es)
- esh (Unix) – Easy Shell
- friendly interactive shell (fish) /*'man fish'*/
- rc shell (rc) – shell for Plan 9 from Bell Labs and Unix
- scsh (Scheme Shell)
- Stand-alone Shell (sash)
- BeanShell (bsh) (bsh.Interpreter , bsh.Console) /*'man bsh'*/
- Rhino JavaScript Shell (org.mozilla.javascript.tools.shell.Main) /*'man rhino'*/
see also: '/etc/shells' on a linux systemes
[edit] Non-Unix shells
- 4DOS, 4OS2, 4NT – shells for DOS, OS/2, and Windows NT written and sold by JP Software. The Take Command programs were compatible shells requiring and enjoying a GUI.
- Amiga CLI/Amiga Shell which functioned as alternative to the AmigaOS GUI called Workbench
- BASIC-PLUS – RSTS/E
- Beemos (BEEMos) – A small project that provides settings, appliations, and feels like a separate OS that runs over Windows XP.
- CANDE MCS– command line shell and text editor on the MCP operating system
- CCP – console command processor of CP/M
- cmd.exe – shell for OS/2, Windows CE and Windows NT-based operating systems
- COMMAND.COM – shell for DOS
- Commodore DOS Wedge – an extension to the Commodore 64's BASIC 2.0 that included shorthand for common disk operations
- DCL – the standard shell for OpenVMS, deriving from versions created for earlier DEC operating systems
- DDT – PDP-10 debugger from DEC used as a command shell for the MIT Incompatible Timesharing System
- DROS – Java ME platform based DOS like shell for smart phones.
- EFI-SHELL – an open source Extensible Firmware Interface command shell
- Google Shell – Browser based front end for Google Search
- iSeries QSHELL – 'UNIX style shell' on the IBM OS/400
- Macintosh Programmer's Workshop – old command line environment used for software development on the classic Mac OS
- Microsoft BASIC – the primary operating environment for a number of older 8-bit computer systems
- Rexx – IBM's scripting languages
- Singularity shell – the standard shell for Singularity
- Windows PowerShell – the object-oriented successor of cmd.exe (formerly known as Monad or the Microsoft Shell (MSH))
- Windows Recovery Console – feature of the Windows 2000, Windows XP and Windows 2003 operating systems
- YouShell – JavaScript based command processor of YouOS
[edit] Shells for programming languages
Noteworthy interactive versions of programming languages include:
- The Read-eval-print loop commonly associated with Lisp, but used in other programming languages as well. An example is SLIME for Common Lisp.
- BeanShell – Shell for Java
- Firebug – JavaScript shell and debugging environment as Firefox plugin
- GMLCMD – GML Shell
- Interactive Ruby Shell – interactive version of Ruby
- JavaScript shell – Several programs by this name allow interactive JavaScript
- PHPsh – Shell for PHP
- Python's standard interpreter can be invoked in a shell mode
[edit] Graphical (GUI) shells
[edit] On Microsoft Windows
Modern versions of the Microsoft Windows operating system use Windows Shell as their shell. Explorer provides the familiar desktop environment, start menu, and task bar, as well as the file management functions of the operating system. Older versions also include Program Manager which was the shell for the 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 replaces it entirely. WindowBlinds by StarDock is a good example of the former sort of application. LiteStep, SharpE and Emerge Desktop are good examples of the latter.
[edit] On the X Window System
Graphical (GUI) shells typically build on top of a windowing system. In case of the X Window System, there are both independent X window managers, and complete desktop environments which depend on a window manager.
X Window System environments (primarily for Unix-like operating systems):
- independent X window managers, such as Blackbox and Fluxbox
- desktop shells, such as Enlightenment DR17
- full desktop environments, such as:
[edit] On other platforms
- DOS Shell
- Finder (for Mac OS X)
- MirageOS, Ion, DoorsCS and CruncyOS (for TI-83 and TI-84 series graphing calculators)
- OS/2 environments:
- Presentation Manager (for OS/2 1.1 and greater and eComStation)
- Workplace Shell (for OS/2 2.0 and greater and eComStation)
[edit] References
- ^ British Computer Society: The BCS glossary of ICT and computing terms, Pearson Education, 2005, ISBN 0131479571, 9780131479579, page 135
- ^ a b http://v6shell.org/history/
- ^ http://www.multicians.org/unix.html
[edit] See also
- Batch file
- Comparison of computer shells
- DOS Shell
- Internet Explorer shell
- Shell account
- Shell builtin
- Shell script
- Unix shell
|