Tabla de Contenidos
Software de un Sistema Informático
En la unidad anterior definimos el concepto de sistema informático como un conjunto de elementos que hacen posible el tratamiento automatizado de la información. En esta unidad nos vamos a centrar en el software de un sistema informático.
Clasificación del Software
Software de Aplicación
El software de aplicación, es aquel que utilizamos día a día. Cada uno de los programas, aplicaciones o utilidades que manejamos dentro de nuestro pc, entran dentro de esta clasificación de software.
Este software está creado para los usuarios, permitiendo realizar tareas específicas, y como se conoce hay infinidad de aplicaciones:
- Navegadores web
- Reproductores multimedia
- Aplicaciones ofimáticas
- VideoJuegos
- Visores de documentos/imágenes
- Gestores de correo
- Aplicaciones de mensajería instantanea
- Edición multimedia
- Grabación de datos
- Software de seguridad
- Shopping online
- etc …
Software de Desarrollo
Es el software creado para desarrollar más software:
- Editores de texto
- Compiladores
- Intérpretes
- Enlazadores
- Depuradores
- Entornos de Desarrollo Integrados (IDE)
- Entornos de ejecución
Software de Sistema
Es el software diseñado para gestionar un sistema informático:
- Sistemas Operativos
- Drivers
- Herramientas/utilidades
Licencias de Software
En primer lugar, las licencias software nos sirven para establecer un contrato entre el autor de una aplicación software (sometido a propiedad intelectual y a derechos de autor) y el usuario. En el contrato se definen con precisión los derechos y deberes de ambas partes, es decir, los “actos de explotación legales”.
Por otra parte, entendemos por derecho de autor o copyright la forma de protección proporcionada por las leyes vigentes en la mayoría de los países para los autores de obras originales, incluyendo obras literarias, dramáticas, musicales, artísticas e intelectuales, tanto publicadas como pendientes de publicar.
Pueden existir tantas licencias como acuerdos concretos se den entre el autor y el usuario. Distinguimos varios tipos de software o licencias en función de lo limitadas que estén las acciones del usuario sobre el mismo:
- Software propietario.
- Software libre.
- Software semilibre.
- Software de dominio público.
- Software con copyleft.
Software Libre
Proporciona al usuario las cuatro libertades siguientes, es decir, autoriza para:
- Utilizar el programa, para cualquier propósito.
- Estudiar cómo funciona el programa y adaptarlo a tus necesidades, debe proporcionarse las fuentes, directa o indirectamente, pero siempre de forma fácil y asequible.
- Distribuir copias.
- Mejorar el programa y hacer públicas las mejoras a los demás.
Todo programa que no incorpore alguna de estas libertades se considera no libre o semilibre. La mayor parte de las licencias de software libre surgen de la FSF (free software fundation).
El software libre suele estar disponible gratuitamente, o al precio de costo de la distribución a través de otros medios; sin embargo no es obligatorio que sea así, por lo tanto no hay que asociar software libre a “software gratuito” (denominado usualmente freeware), ya que, conservando su carácter de libre, puede ser distribuido comercialmente.
Ejemplo:
- Sistemas Operativos: Debían GNU/Linux, Linex
- Entornos de escritorio: GNOME, KDE, etc.
- Aplicaciones de oficina: OpenOffice, KOffice, LATEX, etc.
- Navegación web: FireFox, Konqueror, etc.
- Aplicaciones de servidor: Apache, PostgreSQL, MariaDB, MongoDB
Fundamentos de Sistemas Operativos
El Sistema Operativo está formado por un conjunto de programas que administran los recursos del ordenador y controlan su funcionamiento. Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario, Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de Soporte.
- Suministro de interfaz al usuario: Permite al usuario comunicarse con el ordenador por medio de interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.
- Administración de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
- Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de programas.
- Administración de tareas: Administra la información sobre los programas y procesos que se están ejecutando en el ordenador. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como iniciar y terminar programas.
- Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de software.
Núcleo del sistema operativo
El “Kernel” o núcleo, es un programa que reside permanentemente en memoria. Es la parte esencial de un sistema operativo que provee los servicios más básicos del sistema. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware del ordenador.
Gestión del Procesador
Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución (o subproceso), en ocasiones, un proceso puede dividirse en varios subprocesos. Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea. Por lo que los hilos de ejecución permiten a un programa realizar varias tareas a la vez.
En los sistemas operativos los procesos pueden tener diferentes estados:
- Ejecución: Los procesos en estado de ejecución son los que se están ejecutando en el procesador en un momento dado.
- Preparado: Los procesos en estado preparado son los que pueden pasar a estado de ejecución si el planificador del sistema operativo los selecciona, esto es, cuando llegue su turno (según el orden de llegada o prioridad).
- Bloqueado: Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución, por ejemplo una operación de entrada/salida.
El sistema operativo sigue la pista de en qué estado se encuentran los procesos, decide qué procesos pasan a ejecución, cuáles quedan bloqueados, en definitiva, gestiona los cambios de estado de los procesos.
Planificador del procesador
En la planificación del procesador se decide cuánto tiempo de ejecución se le asigna a cada proceso del sistema y en qué momento.
- Todos los procesos en algún momento obtienen su turno de ejecución o intervalos de tiempo de ejecución hasta su terminación con éxito.
- El sistema debe finalizar el mayor número de procesos por unidad tiempo.
- El usuario no percibirá tiempos de espera demasiado largos.
- Evitar el aplazamiento indefinido, los procesos deben terminar en un plazo finito de tiempo. Esto es, el usuario no debe percibir que su programa se ha parado o “colgado”.
Gestión de la Memoria
Para que un proceso se pueda ejecutar no sólo requiere tiempo de procesamiento sino también estar cargado en memoria principal. Esto es así, porque ningún proceso se puede activar antes de que se le asigne el espacio de memoria que requiere. Así, la memoria se convierte en otro recurso clave que tendrá que gestionar el sistema operativo y la parte encargada de ello se denomina gestor de memoria.
La función principal del gestor de memoria es la de asignar memoria principal a los procesos que la soliciten. Otras funciones serían:
- Controlar las zonas de memoria que están asignadas y cuáles no.
- Asignar memoria a los procesos cuando la necesiten y retirársela cuando terminen.
- Evitar que un proceso acceda a la zona de memoria asignada a otro proceso.
- Gestionar el intercambio entre memoria principal y memoria secundaria en los casos en que la memoria principal está completamente ocupada, etc.
Gestión de la entrada/salida
El sistema operativo hace que los dispositivos se conecten al sistema y realicen sus funciones de forma adecuada y eficiente.
¿Cómo pueden entenderse los programas de aplicación con los dispositivos periféricos? Hay multitud de tipos y fabricantes de periféricos, esto conlleva que tanto el sistema operativo como los fabricantes de periféricos deben estandarizar el acceso a los dispositivos utilizando lo que se denominan controladores de dispositivos (device drivers).
Un periférico siempre tiene dos partes: un controlador, se encarga de la comunicación con la CPU y un dispositivo mecánico, electromecánico o electromagnético. El controlador es un software, generalmente, suministrado por el fabricante del dispositivo o bien por el desarrollador del sistema operativo. De esta manera, estos controladores actúan como interfaz entre los programas y el hardware.
Instalación de Sistemas Operativos
Cuando instalamos desde cero sistemas operativos, trabajamos a un nivel por debajo del sistema operativo, con los discos duros y sus particiones. A la hora de aprender a realizar estas tareas siempre se cometen errores, por lo que no utilizaremos nuestros sistemas reales, sino sistemas virtualizados.
Máquinas Virtuales de Sistema
Las máquinas virtuales de sistema también conocidas como máquinas virtuales de hardware son programas de software que permiten simular un sistema informático completo, con todos sus componentes hardware: procesador, memoria, disco duro, tarjetas de red, sonido, video, etc. De este modo engañamos a un sistema operativo permitiendo instalarse en una máquina simulada que se hace pasar por un ordenador real.
En su burbuja, la máquina virtual no puede acceder al resto de datos de la máquina anfitrión a pesar de estar físicamente funcionando en la misma, están aisladas. No obstante, las principales aplicaciones de máquinas virtuales como VirtualBox o VMWare disponen de atajos y herramientas para facilitar la tarea de pasar archivos de una máquina a otra.
Las aplicaciones de nivel usuario más famosas para virtualizar sistemas son:
- Oracle VirtualBox
- VMware
Virtualizacion de Windows 7 con VBox en un sistema con Windows 10
Desventajas de las máquinas virtuales
Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo “anfitrión” (host) o directamente sobre la plataforma de hardware.
Cada máquina virtual (máquina invitada o guest) es un programa que se está ejecutando sobre una máquina real (máquina anfitrión). Todo el estado interno de esta máquina virtual solo es un archivo más dentro del disco duro de mi sistema anfitrión, y toda la capacidad que pueda tener la máquina virtual siempre será inferior a la máquina real sobre la que se está ejecutando.
Es decir, si mi ordenador real tiene una memoria RAM de 8gb, mi máquina virtual nunca podrá tener más de esa cantidad, y ni siquiera será recomendable que tenga 8, ya que mi sistema real aparte de ejecutar mi máquina virtual, también debe realizar sus propias tareas.
Medios de Instalación de un Sistemas Operativo
Debemos pensar que aunque utilicemos máquinas virtuales para realizar nuestro aprendizaje, cada ordenador, sea real o virtual, parte de cero; está vacío, como si estuviera recien comprada, con un disco duro vacío.
Para que podamos instalar un sistema operativo que nos permita utilizar dicho ordenador, debemos indicarle por donde debe empezar. Esto se realiza con un sistema que viene en la placa base de todos los ordenadores: la BIOS. Las máquinas virtuales también simulan este componente, que nos servirá de punto de partida para comunicarnos con el ordenador cuando aun no tiene ningún programa instalado.
Desde la BIOS (o los sistemas UEFI modernos) le indicamos desde que queremos que lea cierta información para comenzar la instalación. Esta información puede estar en un DVD en el lector, en un pendrive, en otro disco duro, en un dispositivo en red, etc.
Habitualmente se usan pendrives o discos ópticos (cd's o dvd's). En el caso de las máquinas virtuales, usamos su lector de disco virtualizado en el que podemos cargar algun archivo de nuestro sistema anfitrión que contenga un ssoo.
Secuencia de arranque de la BIOS
Secuencia de arranque con una UEFI-BIOS
Imágenes ISO
Una imagen ISO es un archivo informático donde se almacena una copia o imagen exacta de un sistema de archivos. Se rige por el estándar ISO 9660, que le da nombre. Pueden incluir un sistema operativo, pero tambien otro tipo de programas o juegos.
Los sistemas operativos se suelen distribuir mediante archivos de imagen ISO.
Mediante los archivos de imagen, grabándolos en un DVD o en una memoria USB, podemos crear dispositivos booteables con los que arrancar nuestro ordenador en caso de no tener un sistema operativo ya preinstalado.
Dispositivos Booteables
La palabra boot en términos informáticos significa arranque. Un dispositivo booteable es un dispositivo que contiene un sector de arranque con el que iniciar un sistema. Cuando nosotros encendemos un sistema informático, su BIOS o UEFI permite leer desde distintos dispositivos en busca de alguno que sea booteable.
Para que una unidad de almacenamiento sea booteable debe contener un sector de arranque, el cual contiene las instrucciones necesarias para indicarle al hardware como ejecutar y levantar un sistema operativo completo, hasta que finalmente se inicia y podemos trabajar con él.
Discos o Dvd's
La mayoría de los programas de grabación de discos, incluso los propios sistemas operativos, permiten grabar en un disco (cd o dvd) una imagen ISO. Cuando grabamos una imagen en un disco obtenemos una copia idéntica al disco desde el que se obtuvo. Por lo tanto ya incluyen un sistema de arranque.
Desde estos mismo programas de grabación, también podemos crear archivos de imágenes ISO a partir de un disco o dvd de un sistema operativo.
Memorias USB
Para crear una memoria usb booteable, necesitamos algun programa que sea capaz de grabar y restablecer la imagen ISO, del mismo modo que si fuera un disco, manteniendo una copia exacta, pero en un pendrive en lugar de un DVD.
Por lo tanto necesitamos 3 cosas: una memoria USB de tamaño suficiente para contener el archivo ISO, un programa para crear unidades booteables, y la propia imagen ISO del sistema operativo que necesitemos.
Algunos de estos programas son:
- Rufus
- Etcher
- UNetBootin
- Universal USB Installer
Algunos programas permiten crear unidades booteables de sistemas Microsoft, otras de sistemas Linux, y otras de cualquier tipo de sistema operativo.
Uso de Virtual Box
VirtualBox es un software de virtualización para arquitecturas x86/amd64. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno dentro de su propia máquina virtual.
En el siguiente video, se explica cómo crear máquinas virtuales con VBox y cómo configurarlas para poder instalar sistemas operativos en ellas.
Gestión de máquinas virtuales con VBox
Instalación de Windows
Si queremos instalar Windows en una máquina virtual, necesitamos cargar una imagen ISO del sistema Windows deseado en el lector de CD virtualizado de mi máquina, como hemos visto en el video anterior:
Vamos al menú de configuración de una máquina virtual apagada:
Seleccionaremos un archivo ISO de Windows y arrancaremos la máquina. Al arrancarla, leerá el CDROM y arrancará el gestor de instalación de Windows. Desde él, puedo indicarle en qué disco duro quiero instalarlo, así como crear las particiones pertinentes para isntalarlo, en caso de que no quiero ocupar todo el disco con Windows.
Este proceso se detalla en el siguiente video.
Gestor de instalación de Windows
Una vez que tengo el sistema Windows instalado, puedo acceder a la aplicación de Administración de discos, en caso de que quiero eliminar o crear particiones, o no quedará conforme con las particiones creadas desde el instalador. Este proceso se detalla en el siguiente video:
Administrador de discos de Windows
Instalación de Linux
Para instalar un sistema operativo Linux, cargamos la imagen ISO del sistema operativo deseado, del mismo modod que lo hacemos para Windows. Es indiferente el sistema operativo que queramos instalar.
El aspecto que debemos tener ahora en cuenta si lo que queremos es tener ambos sistemas operativos en la misma máquina, es que debo respetar las particiones que ya estén en uso por otros sistemas operativos.
Desde el gestor de instalación de Linux veré todos los discos duros y particiones de mi máquina virtual, y también puedo eliminar y crear particiones. Por lo que debo tener especial cuidado a la hora de eliminar particiones, ya que si están siendo usadas por otro sistema operativo y las elimino, me quedaré sin ese sistema operativo.
En el siguiente video se explica el funcionamiento del gestor de instalación de un sistema operativo Linux (Debian en este caso), sobre una máquina que ya tiene Windows previamente instalado.
Gestor de instalación de Linux
Instalación de "Guest Additions"
Cuando tenemos instalado un sistema operativo en una máquina virtual de VBox, podemos completar su funcionalidad instalando unas utilidades que mejorarán las integración con el sistema anfitrión (sistema real). En VBox estas utilidades se conocen como Guest Additions, y para instalarlas tendremos que introducir su cd en nuestro lector de cd's virtualizado.
Esto se lleva a cabo introduciendo una imagen iso de las Guest Additions, en nuestra unidad de cd virtualizada. Para ello pulsamos sobre el menu Dispositivos y después sobre Insertar cd de las Guest Additions:
Posteriormente nuestro sistema operativo arrancará el software desde el cd-rom:
Y al darle a ejecutar, iniciaremos la instalación de dicho software:
Nos pedirá permisos para instalar algunos componentes:
Y finalmente nos pedirá que reiniciemos la máquina virtual:
Después de este momento podremos utilizar la máquina virtual a pantalla completa o utilizar carpetas compartidas, entre otras funcionalidades.
Prácticas
- Instalación dual de Sistemas Operativos. (Presentaciones en video)
© 2024 Fernando Valdeón