Capítulo 4: Elementos y estructura del sistema operativo. Procesos

Publicado por P. Ruiz en

Utilización del sistema operativo: modo orden, modo gráfico

Interacción con el sistema operativo

Las forma más habitual de relacionarnos con los sistemas operativos es a través de su interfaz gráfica, también llamada GUI, del inglés Graphical User Interface. En realidad, no se trata más que de un programa que facilita la comunicación entre el ordenador y el usuario mediante la manipulación de elementos gráficos utilizando una serie de acciones predefinidas realizadas a través del ratón y, en menor medida, con el teclado.

TáctilEn la actualidad, está creciendo, de forma considerable, el uso de pantallas táctiles, que pueden complementar, o incluso sustituir, el empleo del ratón y del teclado.

Antes de la llegada de las interfaces gráficas, los sistemas informáticos se utilizaban a través de una interfaz de texto que consistía, básicamente, en una pantalla que ofrecía sólo un color (sobre fondo negro) y donde sólo se mostraban caracteres. En esa época, el único modo que tenían los usuarios para relacionarse con el sistema informático consistía en conocer la sintaxis de un conjunto, considerablemente amplio, de órdenes escritas.

Como cabe imaginar, el entorno visual que ofrecen las GUIs resulta una forma mucho más sencilla, y más intuitiva, de aprender a manejar un ordenador. De ahí su éxito.

Origen de las interfaces gráficas de usuario

El primer ratónLa primera interfaz gráfica de usuario fue desarrollada por los investigadores del Xerox PARC e incluida en el ordenador Xerox Star 8010 en el año 1981. Sin embargo, el diseño se apoyaba en los estudios del científico Douglas Engelbart y en el primer ratón, diseñado también por él.

En este ordenador se sustituían los caracteres de texto por mapas de bits, iconos, ventanas, etc.

El siguiente paso lo dieron en Apple que, tras una visita de algunos de sus directivos a Xerox en 1979, comenzaron el desarrollo de su Apple Lisa, el primer ordenador para escritorio que incluía una interfaz gráfica y que comenzó a venderse en 1983. Sin embargo, fue el Apple Macintosh de 1984 el que estableció un antes y un después.

Al año siguiente, en 1985 Microsoft comienza la comercialización de Windows 1.0, una interfaz gráfica que se ejecutaba sobre MS-DOS, el sistema operativo que, hasta ese momento, funcionaba sólo con una interfaz en modo texto.

Uso del ratón en las interfaces gráficas

El ratón es un elemento fundamental en todos los entornos gráficos de usuario, porque permite realizar la mayoría de las acciones necesarias para trabajar sobre el sistema. Con él, podemos actuar de las siguientes formas:

  • Haciendo un clic con su botón izquierdo: suele usarse para seleccionar elementos o desplegar menús.

  • Haciendo doble clic con el botón izquierdo: permite ejecutar programas o abrir archivos y carpetas.

  • Haciendo clic con el botón derecho: suele mostrar un menú de contexto con las acciones que podemos aplicar al elemento sobre el que lo hemos hecho.

  • Haciendo clic con el botón izquierdo sobre un elemento y, manteniendo el botón pulsado, desplazar el puntero hasta otra ubicación: Esta acción suele llamarse arrastrar (o arrastrar y colocar) y suele usarse para mover (o copiar) archivos o carpetas a un lugar distinto. También es útil para cambiar la posición de alguna ventana o icono en el escritorio.

  • La rueda de desplazamiento permite desplazarnos arriba o abajo por el documento.

Las funciones de los botones pueden intercambiarse cuando utilizamos un ratón configurado para personas zurdas.

Además, combinándolo con el teclado, podemos realizar las siguientes acciones:

  • Si, en una ventana con múltiples elementos, hacemos clic sobre varios de ellos manteniendo pulsada la tecla Ctrl, realizaremos una selección múltiple de los elementos elegidos.
  • Si, en una ventana con múltiples elementos, hacemos clic en uno de ellos y a continuación en otro, pero manteniendo pulsada la tecla de mayúsculas (Shift), se seleccionarán todos los elementos comprendidos entre el primero y el segundo (ambos incluidos).

Por otro lado, el puntero del ratón (el elemento que indica sobre qué lugar de la pantalla nos encontramos) podrá cambiar de forma según las condiciones: si se encuentra sobre un elemento seleccionable, si está sobre un cuadro de texto, etc.

Interfaces gráficas de usuario actuales

En la actualidad, todos los sistemas operativos de escritorio disponen de una interfaz gráfica:

  • En Windows 10, después del cambio de paradigma que supuso Windows 8 y 8.1, con una orientación clara a los entornos táctiles, se ha producido una conciliación con los entornos orientados al uso del ratón.

    Para lograrlo, se ha desarrollado la interfaz Fluent Design, que realiza una transición entre ambos tipos de interfaz (táctil / ratón) de modo dinámico y se adapta a diferentes tipos de dispositivos (ordenadores, tabletas, consolas de videojuegos, smartphones, sistemas embebidos, realidad aumentada, etc.).

    Además, se ha actualizado el menú Inicio, que ahora combina una funcionalidad equivalente a Windows XP y a la pantalla Inicio de Windows 8.1 además de otras funciones complementarias.

    A diferencia de GNU/Linux, en Windows la interfaz gráfica está integrada en el sistema operativo.

  • En GNU/Linux existen multitud de entornos gráficos que ofrecen un gran abanico de posibilidades para los usuarios. El motivo es que en los sistemas operativos de la familia Unix, la interfaz gráfica se ejecuta como una capa por encima de la interfaz de texto.

    Esta capa recibe el nombre de X Windows System y es la encargada de dibujar las ventanas, botones, cuadros de texto, etc., además de gestionar los eventos que los afecte (clic de ratón, combinaciones de teclas, etc).

    Sobre X Windows se ejecutan los gestores de ventanas, que se encargan de especificar cómo debe dibujarse cada elemento. Del gestor de ventanas depende el aspecto, la capacidad de personalización, etc.

    Algunos ejemplos son: Kwin, Fluxbox, Openbox, Metacity o Icewm entre otros. Para facilitar el uso de los gestores de ventanas se han creado librerías, llamadas toolkits. Las más usadas son:

    • GTK (Gimp toolkit)
    • QT (Cute)

    La última capa de esta estructura son los entornos de escritorio, que se apoyan en los toolkits para ofrecer el aspecto final que obtiene el usuario. De ellos depende la integración entre aplicaciones y el comportamiento general de la interfaz.

    Como entornos de escritorio tenemos: KDE, Gnome, Xfce, Lxde, E17 o Cinnamon.

  • En Apple macOS, la interfaz gráfica se llama Aqua. Su arquitectura es similar a la de GNU/Linux, aunque utiliza el gestor de ventanas Quartz Compositor.

Interfaz de texto

Como hemos dicho antes, la interfaz de texto era el método que utilizaban los primeros ordenadores para comunicarse con el usuario. Permitía escribir órdenes que el ordenador ejecutaba al pulsar la tecla Intro.

Es frecuente que se haga referencia a la interfaz de texto como Consola, Terminal, Shell, Intérprete de comandos o Interfaz de línea de comandos (incluso CLI, del inglés command-line interface).

En la actualidad, los sistemas operativos facilitan el uso de la interfaz de texto mediante una ventana, aunque en algunos casos, como las versiones de servidor de Ubuntu y Windows, se puede prescindir por completo de la interfaz gráfica. Sin embargo, es frecuente que su uso se centre en entornos profesionales y cuando se trata de usuarios avanzados.

En versiones anteriores de Ubuntu podíamos prescindir de la interfaz gráfica usando la combinación de teclas Alt + Ctrl + F1 e identificándonos con una cuenta de usuario.

En realidad, podíamos usar las teclas F1 a F6 para usar hasta seis cuentas de usuario simultáneamente. Y para volver a la interfaz gráfica, usábamos Alt + Ctrl + F7.

Con la llegada de GNOME, este comportamiento ha cambiado. Ahora la sesión gráfica predeterminada se encuentra en Alt + Ctrl + F2.

Usando Alt + Ctrl + F3F6 disponemos de diferentes consolas de texto y, con Alt + Ctrl + F1, disponemos de una segunda consola gráfica.

Una de las ventajas de la interfaz de texto es que permite automatizar la ejecución de varias órdenes agrupándolas en un archivo de texto llamado script (en ocasiones también reciben el nombre de archivos batch o procesos por lotes).

El gran inconveniente que ofrece la interfaz de texto es la dificultad de su aprendizaje para usuarios noveles. Sin embargo, permite automatizar fácilmente las tareas más repetitivas.

Por otro lado, las interfaces gráficas también suponen algunos inconvenientes, sobre todo cuando están instaladas en ordenadores que actúan como servidores:

  • Cuando el ordenador no está atendiendo a un usuario local, la interfaz gráfica consume recursos aunque no se utilice.

  • Las actualizaciones emplearán más tiempo, porque hay que actualizar más programas.

  • El sistema es más complejo, por lo que hay más posibilidades de que ofrezca vulnerabilidades frente a posibles ataques de seguridad.

Además, es frecuente que el usuario disponga de más opciones cuando utiliza la interfaz de texto que usando la interfaz gráfica.

El carácter, o conjunto de caracteres, que se muestran en la interfaz de texto para indicar que se encuentra a la espera de una nueva orden recibe el nombre de prompt y su contenido dependerá del sistema operativo y de la configuración que realice el propio usuario.

De forma predeterminada, la línea de comandos de Windows muestra la ruta actual del disco.

Línea de comandos de Windows

En Ubuntu, se muestra el nombre de usuario, el nombre del ordenador y la ruta actual. Además, si acaba en un signo de dolar ($), indica que actuamos con un usuario normal y si termina el almohadilla (#), trabajamos con un usuario privilegiado (un administrador).

interfaz de texto en Ubuntu

Por último, indicar que el carácter virgulilla (~) es una abreviatura que utiliza Ubuntu para representar la carpeta predeterminada del usuario.

PowerShell, la interfaz de texto avanzada para Windows

PowerShell logoDesde 2006, Microsoft ofrece una interfaz de texto avanzada que recibe el nombre de PowerShell. En un principio se ofrecía como un complemento gratuito que podía obtenerse libremente para Windows XP o Windows Server 2003 y sistemas posteriores. Sin embargo, a partir de Windows 7 y Windows Server 2008 R2 se integró de fábrica en los sistemas operativos.

Su objetivo es la automatización de tareas administrativas y de configuración, por lo que está muy orientado a la creación de scripts. Incluso soporta la administración de dispositivos de red y sistemas remotos, tanto Windows como GNU/Linux. Además, dispone de un API que permite embeberlo dentro de otras aplicaciones.

.net framework logoPara su funcionamiento depende de .NET Framework, aunque lo normal es que éste ya se encuentre instalado en la mayoría de los sistemas modernos.

En PowerShell, los comandos reciben el nombre de cmdlets (del inglés, command-lets). Además, permite el uso de alias, de modo que un mismo cmdlet puede recibir varios nombres que, incluso, pueden ser definidos por parte de los propios usuarios.

Como veremos más abajo, PowerShell no ha sido la primera interfaz de texto de Windows pero, una ventaja de estos alias es que, la mayoría de los comandos de las antiguas interfaces de texto, tienen su alias en PowerShell, que los relaciona con los cmdlets actuales. De este modo, los usuarios más veteranos que hayan trabajado en aquellas interfaces de texto, podrán seguir usando los antiguos comandos sin darse cuenta de que, en realidad, están utilizando cmdlets nativos de PowerShell..

Esta misma idea también facilita el trabajo a usuarios que provienen de otros sistemas operativos.

Para acceder a la línea de comandos de PowerShell en Windows 11 basta con hacer clic, con el botón derecho del ratón, sobre el botón Inicio.

1

Después, en el menú de contexto que aparece, elegimos Terminal Windows.

Observa que también tenemos la opción Terminal Windows (Administrador), para cuando necesitemos realizar tareas administrativas.

Lo encontramos justo debajo de la opción anterior…

Al primer golpe de vista,la única diferencia es que recibimos un aviso del Control de cuentas de usuario informando de que el programa que estamos abriendo podrá hacer cambios en la configuración del sistema.

Para continuar, deberemos hacer clic sobre el botón .

Un momento después, estaremos listos para comenzar a escribir cmdlets.

2

Si has utilizado PowerShell en Windows 10 o anteriores, la diferencia más evidente es que el fondo de la ventana ha dejado de ser azul (aunque esta característica es configurable)

Además, a partir de la versión 2.0, para facilitar el desarrollo de scripts, se incluye una interfaz gráfica integrada que ofrece un depurador, coloreado y completado de sintaxis e, incluso, la posibilidad de ejecutar sólo una parte del script. Esta interfaz recibe el nombre de Windows PowerShell ISE (de Integrated Scripting Environment).

Si quieres comprobar su funcionamiento, sólo tienes que hacer clic, sobre el botón Inicio de la Barra de tareas.

… Y en su interior, elegimos Todas las aplicaciones.

A continuación, en la ventana Todas las aplicaciones ,nos desplazamos hacia abajo hasta encontrar la categoría Herramientas de Windows.

Y hacemos doble clic sobre ella.

Después de esto, en la ventana Herramientas de Windows, volvemos a bajar hasta encontrar Windows PowerShell ISE.

Y hacemos doble clic sobre ella.

Un instante después, estaremos listos para utilizar la interfaz integrada de PowerShell.

En la siguiente tabla puedes consultar algunos de los cmdlets de uso más frecuente en PowerShell y sus alias correspondientes:

Comandos frecuentes en PowerShell

Si necesitas más detalles, puedes recurrir a la documentación oficial de Microsoft (https://docs.microsoft.com/es-es/powershell/), donde puedes encontrar una referencia completa.

La antigua interfaz de texto de Windows

La interfaz de texto que utilizaban originalmente los sistemas operativos de Microsoft se llamaba COMMAND.COM y era el intérprete de comandos que incorporaba el sistema operativo MS-DOS. Esto cambió en los sistemas profesionales de Microsoft a partir de Windows NT y en los sistemas de escritorio a partir de Windows XP (que, como sabemos, estaba basado en el núcleo de Windows 2000).

A partir de estas versiones, se incorporó un nuevo intérprete de comandos llamado CMD.EXE, que incluía comandos para satisfacer las nuevas necesidades (administrar usuarios y grupos, conexiones de red, etc.) y que añadía la posibilidad de utilizar nombres largos para los archivos y carpetas.

Si, por algún motivo, aún quieres seguir usando la interfaz de texto tradicional en Windows 11, solo tienes que hacer clic, con el botón derecho del ratón, sobre el botón Inicio.

… Y en el menú de contexto que aparece, elegir a opción Ejecutar.

Cuando aparezca la ventana Ejecutar, en el cuadro de texto escribimos la siguiente orden:

cmd.exe

Al terminar, pulsamos la tecla Intro o hacemos clic sobre el botón Aceptar.

Un momento más tarde, obtendremos una nueva ventana donde comenzar a escribir comandos.

Ventana del intérprete de comandos.

Si lo prefieres, puedes seguir las indicaciones que dábamos más arriba para abrir PowerShell ISE, pero eligiendo la aplicación Símbolo del sistema, en la ventana Herramientas de Windows.

En la siguiente tabla puedes consultar algunos de los comandos de uso más frecuente en CMD:

Comandos frecuentes en CMD

Si necesitas más detalles, puedes recurrir a la documentación oficial de Microsoft (https://docs.microsoft.com/es-es/windows-server/administration/windows-commands/windows-commands), donde puedes encontrar una referencia completa de cada comando.

Actividad 9: Windows PowerShell

En tu máquina de prácticas de Windows, ejecuta la interfaz de texto PowerShell, y realiza las siguientes operaciones:

  1. Ejecuta el cmdlet Get-ChildItem y comprueba el resultado.

  2. A continuación ejecuta el mismo cmdlet, pero usando alguno de sus alias. El objetivo es comprobar que la salida es completamente equivalente.

Actividad 10: interfaz de texto clásica de Windows

Siguiendo en tu máquina de prácticas de Windows, ejecuta la antigua línea de comandos, averigua qué comando era equivalente a Get-ChildItem y comprueba su funcionamiento..

La interfaz de texto de GNU/Linux

Aunque existen muchos intérpretes de comandos para los sistemas GNU/Linux, el más extendido es Bash (del inglés, Bourne again shell). La escribió Brian Fox para el proyecto GNU en 1987. Se basaba en Bourne, la interfaz de texto más común de los sistemas Unix. De ahí su nombre, que proviene de un juego de palabras, ya que born-again significa renacimiento.

Como ya mencionamos, esta fue la shell elegida por Linus Torvalds para incluirla junto a su núcleo, lo que ha hecho que la encontremos en la práctica totalidad de las distribuciones. Además, se incluye en otros muchos sistemas, como Apple macOS, Solaris, IBM AIX, HP UX, FreeBSD, etc. En el momento de escribir este documento, la última versión publicada es la 4.3.

Otros intérpretes de comandos para GNU/Linux son: Korn shell (ksh), zsh y C shell (csh).

Para acceder al intérprete de comandos en Ubuntu 22.04 LTS basta con hacer clic sobre el icono Mostrar aplicaciones del escritorio y comenzar a escribir la palabra Terminal.

Cuando aparezca el icono, podemos hacer clic sobre él.

1

Y si aparece en la primera posición, basta con pulsar la tecla Intro.

2

Al hacerlo, aparece la ventana del intérprete de comandos.

Otra alternativa para abrir la ventana de terminal consiste en pulsar la combinación de teclas Alt + Control + T.

En la siguiente tabla puedes consultar algunos de los comandos de uso más frecuente en Bash Shell:

Comandos frecuentes en Bash

Si necesitas más detalles, puedes recurrir a la documentación oficial del proyecto GNU (http://www.gnu.org/software/bash/manual/), donde puedes encontrar una referencia completa de cada comando y mucha información complementaria.

Actividad 11: Ubuntu en modo texto

En tu máquina de prácticas de Ubuntu, realiza las siguientes actividades:

  1. Utiliza la combinación de teclas adecuada para prescindir de la interfaz gráfica del sistema (debes indicar cuál es la combinación correcta en tu sistema)

  2. Una vez en modo texto, averigua qué comando nos muestra los archivos y directorios de la ruta actual y prueba su funcionamiento.

  3. A continuación, vuelve a la interfaz gráfica y usa la combinación de teclas necesarias para abrir una nueva ventana de Terminal (también debes indicar la combinación usada).

  4. Vuelve a usar el comando anterior para comprobar su funcionamiento dentro de la ventana de Terminal.