De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
Una interfaz gráfica de finales de la década de 1980, que presenta una ventana TUI para una página de manual , una ventana con forma (en punto) y varias ventanas iconificadas . En la parte inferior derecha podemos ver un emulador de terminal que ejecuta un shell de Unix , en el que el usuario puede escribir comandos como si estuviera sentado en un terminal .

En informática , un shell es un programa informático que expone los servicios de un sistema operativo a un usuario humano u otro programa. En general, los shells del sistema operativo utilizan una interfaz de línea de comandos (CLI) o una interfaz gráfica de usuario (GUI), según la función y la operación particular de la computadora. Se llama shell porque es la capa más externa del sistema operativo. [1] [2]

Los shells de línea de comandos requieren que el usuario esté familiarizado con los comandos y su sintaxis de llamada , y que comprenda conceptos sobre el lenguaje de programación específico del shell (por ejemplo, bash ).

Los shells gráficos suponen una carga mínima para los usuarios principiantes de computadoras y se caracterizan por ser fáciles de usar. Dado que también tienen ciertas desventajas, la mayoría de los sistemas operativos habilitados para GUI también proporcionan shells CLI.

Resumen [ editar ]

Los sistemas operativos brindan varios servicios a sus usuarios, incluida la administración de archivos , la administración de procesos (ejecución y finalización de aplicaciones ), el procesamiento por lotes y la supervisión y configuración del sistema operativo.

La mayoría de los shells del sistema operativo no son interfaces directas al kernel subyacente, incluso si un shell se comunica con el usuario a través de dispositivos periféricos conectados directamente a la computadora. Los shells son en realidad aplicaciones especiales que usan la API del kernel de la misma manera que lo usan otros programas de aplicación. Un shell administra la interacción usuario-sistema solicitando a los usuarios que ingresen, interpretando su entrada y luego manejando una salida del sistema operativo subyacente (muy parecido a un ciclo de lectura-evaluación-impresión, REPL ). [3] Dado que el shell del sistema operativo es en realidad una aplicación, se puede reemplazar fácilmente con otra aplicación similar, para la mayoría de los sistemas operativos.

Además de los shells que se ejecutan en sistemas locales, existen diferentes formas de hacer que los sistemas remotos estén disponibles para los usuarios locales; estos enfoques suelen denominarse acceso remoto o administración remota. Inicialmente disponible en mainframes multiusuario , que proporcionaban IU basadas en texto para cada usuario activo simultáneamente por medio de un terminal de texto conectado al mainframe a través de una línea serie o módem , el acceso remoto se ha extendido a sistemas similares a Unix y Microsoft Windows. En sistemas similares a Unix, el protocolo Secure Shell se usa generalmente para shells basados ​​en texto, mientras que la tunelización SSHse puede utilizar para interfaces gráficas de usuario (GUI) basadas en el sistema X Window. En Microsoft Windows, el Protocolo de escritorio remoto se puede usar para proporcionar acceso remoto GUI y, desde Windows Vista , PowerShell Remote se puede usar para acceso remoto basado en texto a través de WMI, RPC y WS-Management. [4]

La mayoría de los shells del sistema operativo se dividen en una de dos categorías: línea de comandos y gráficos. Los shells de línea de comandos proporcionan una interfaz de línea de comandos (CLI) para el sistema operativo, mientras que los shells gráficos brindan una interfaz de usuario gráfica (GUI). Otras posibilidades, aunque no tan comunes, incluyen la interfaz de usuario de voz y varias implementaciones de una interfaz de usuario basada en texto (TUI) que no son CLI. Los méritos relativos de los shells basados ​​en CLI y GUI a menudo se debaten.

Conchas de línea de comandos [ editar ]

Símbolo del sistema , un shell CLI en Windows
Bash , un shell de Unix ampliamente adoptado

Una interfaz de línea de comandos (CLI) es un shell del sistema operativo que utiliza caracteres alfanuméricos escritos en un teclado para proporcionar instrucciones y datos al sistema operativo, de forma interactiva. Por ejemplo, un teletipo puede enviar códigos que representan las pulsaciones de teclas a un programa de interpretación de comandos que se ejecuta en la computadora; el intérprete de comandos analiza la secuencia de pulsaciones de teclas y responde con un mensaje de error si no puede reconocer la secuencia de caracteres, o puede llevar a cabo alguna otra acción del programa, como cargar un programa de aplicación, enumerar archivos, iniciar sesión en un usuario y muchas otras. Los sistemas operativos como UNIX tienen una gran variedad de programas de shell con diferentes comandos, sintaxis y capacidades, con laEl shell POSIX es una línea de base. Algunos sistemas operativos tenían un solo estilo de interfaz de comando; Los sistemas operativos básicos, como MS-DOS, venían con una interfaz de comando estándar ( COMMAND.COM ), pero las interfaces de terceros también estaban disponibles a menudo, proporcionando características o funciones adicionales como menús o ejecución remota de programas.

Los programas de aplicación también pueden implementar una interfaz de línea de comandos. Por ejemplo, en sistemas similares a Unix, el programa telnet tiene varios comandos para controlar un enlace a un sistema informático remoto. Dado que los comandos del programa se hacen con las mismas pulsaciones de teclas que los datos que se envían a una computadora remota, se requieren algunos medios para distinguirlos. Se puede definir una secuencia de escape , utilizando una pulsación de tecla local especial que nunca se transmite pero que siempre es interpretada por el sistema local. El programa se vuelve modal, alternando entre interpretar comandos desde el teclado o pasar las pulsaciones de teclas como datos a procesar.

Una característica de muchos shells de línea de comandos es la capacidad de guardar secuencias de comandos para su reutilización. Un archivo de datos puede contener secuencias de comandos que la CLI puede seguir como si los hubiera escrito un usuario. Es posible que se apliquen características especiales en la CLI cuando se llevan a cabo estas instrucciones almacenadas. Tales archivos por lotes(archivos de script) se pueden usar repetidamente para automatizar operaciones de rutina, como inicializar un conjunto de programas cuando se reinicia un sistema. El uso de shells en modo por lotes generalmente involucra estructuras, condicionales, variables y otros elementos de los lenguajes de programación; algunos tienen lo esencial necesario para tal propósito, otros son lenguajes de programación muy sofisticados en sí mismos. Por el contrario, algunos lenguajes de programación se pueden utilizar de forma interactiva desde un shell de sistema operativo o en un programa diseñado específicamente.

El shell de la línea de comandos puede ofrecer características como la finalización de la línea de comandos , donde el intérprete expande los comandos basándose en unos pocos caracteres introducidos por el usuario. Un intérprete de línea de comandos puede ofrecer una función de historial, de modo que el usuario pueda recuperar comandos anteriores emitidos al sistema y repetirlos, posiblemente con alguna edición. Dado que el usuario tenía que escribir todos los comandos del sistema operativo, eran comunes los nombres cortos de los comandos y los sistemas compactos para representar las opciones del programa. A veces, los nombres cortos eran difíciles de recordar para un usuario, y los primeros sistemas carecían de los recursos de almacenamiento para proporcionar una guía detallada de instrucciones para el usuario en línea.

Conchas gráficas [ editar ]

Una interfaz gráfica de usuario (GUI) proporciona un medio para manipular programas gráficamente, al permitir operaciones como abrir, cerrar, mover y cambiar el tamaño de las ventanas , así como cambiar el enfoque entre las ventanas. Las carcasas gráficas pueden incluirse con los entornos de escritorio o venir por separado, incluso como un conjunto de utilidades poco acopladas.

La mayoría de las interfaces gráficas de usuario desarrollan la metáfora de un "escritorio electrónico" , donde los archivos de datos se representan como si fueran documentos en papel en un escritorio, y los programas de aplicación de manera similar tienen representaciones gráficas en lugar de ser invocados por nombres de comandos.

Sistemas similares a Unix [ editar ]

Operación de arrastrar y soltar realizada en un grupo de archivos entre KDesktop y Konqueror en KDE

Los shells gráficos normalmente se construyen sobre un sistema de ventanas . En el caso de X Window System o Wayland , el shell consta de un administrador de ventanas X o un compositor Wayland , respectivamente, así como de uno o varios programas que brindan la funcionalidad para iniciar aplicaciones instaladas, administrar ventanas abiertas y escritorios virtuales, y a menudo para admitir un motor de widgets.

En el caso de macOS , Quartz podría considerarse como el sistema de ventanas, y el shell consta del Finder , [5] el Dock , [5] SystemUIServer, [5] y Mission Control . [6]

Microsoft Windows [ editar ]

Las versiones modernas del sistema operativo Microsoft Windows utilizan el shell de Windows como su shell. Windows Shell proporciona un entorno de escritorio , un menú de inicio y una barra de tareas , así como una interfaz gráfica de usuario para acceder a las funciones de administración de archivos del sistema operativo. Las versiones anteriores también incluyen el Administrador de programas , que era el shell de la serie 3.x de Microsoft Windows, y que de hecho se incluía con versiones posteriores de Windows de los tipos 95 y NT al menos a través de Windows XP. Las interfaces de las versiones 1 y 2 de Windows eran notablemente diferentes.

Las aplicaciones de escritorio también se consideran shells, siempre que utilicen un motor de terceros. Asimismo, muchas personas y desarrolladores insatisfechos con la interfaz del Explorador de Windows han desarrollado software que altera el funcionamiento y la apariencia del shell o lo reemplaza por completo. WindowBlinds de StarDock es un buen ejemplo del primer tipo de aplicación. LiteStep y Emerge Desktop son buenos ejemplos de esto último.

Los programas de interoperabilidad y el software diseñado específicamente permiten a los usuarios de Windows utilizar equivalentes de muchas de las diversas GUI basadas en Unix que se describen a continuación, así como Macintosh. Un equivalente de OS / 2 Presentation Manager para la versión 3.0 puede ejecutar algunos programas de OS / 2 en algunas condiciones utilizando el subsistema de entorno OS / 2 en las versiones de Windows NT.

Otros usos [ editar ]

"Shell" también se usa de manera vaga para describir el software de aplicación que está "construido alrededor" de un componente en particular, como navegadores web y clientes de correo electrónico, en analogía con los shells que se encuentran en la naturaleza. Estos también se denominan a veces "envoltorios". [2]

En los sistemas expertos , un shell es una pieza de software que es un sistema experto "vacío" sin la base de conocimientos para ninguna aplicación en particular. [7]

Ver también [ editar ]

  • Comparación de proyectiles de comando
  • La interacción persona-ordenador
  • Shell de Internet Explorer
  • Cuenta Shell
  • Concha incorporada
  • Superusuario
  • Shell de Unix
  • Administrador de ventanas  : proporciona una interfaz de gestión de procesos rudimentaria

Referencias [ editar ]

  1. ^ "El quinto hombre de Internet" , Análisis del cerebro, The Economist , Londres: Economist Group , 13 de diciembre de 2013, el Sr. Pouzin creó un programa llamado RUNCOM que ayudó a los usuarios a automatizar comandos tediosos y repetitivos. Ese programa, que describió como un "caparazón" alrededor de las entrañas zumbantes de la computadora, dio inspiración, y un nombre, a toda una clase de herramientas de software, llamadas caparazones de línea de comandos, que aún acechan bajo la superficie de los sistemas operativos modernos.
  2. ↑ a b Raymond, Eric S. (ed.). "concha" . El archivo de jerga .
  3. ^ "Cáscaras del sistema operativo" . Centro de información de AIX 6.1 . IBM Corp . Consultado el 16 de septiembre de 2012 .
  4. ^ Wheeler, Sean (14 de octubre de 2018). "Ejecución de comandos remotos" . Microsoft Docs . Microsoft . Consultado el 30 de junio de 2019 . Puede ejecutar comandos en una o cientos de computadoras con un solo comando de PowerShell. Windows PowerShell admite la informática remota mediante el uso de diversas tecnologías, incluidas WMI, RPC y WS-Management.
  5. ^ a b c "El ciclo de vida de un demonio" . Apple Inc.
  6. ^ "Reiniciar Mission Control en OS X Lion" . OSXDaily. 23 de noviembre de 2011.
  7. ^ British Computer Society: el glosario BCS de términos informáticos y de las TIC . Educación Pearson. 2005. p. 135. ISBN 978-0-13-147957-9.