Software de un Sistema Informático.

Caso práctico

Foto de Ada, la jefa de la empresa BK Programación.

Ya conoces la empresa BK Programación, en la que nuestros protagonistas desarrollan su trabajo como profesionales del sector de la informática. Recordemos el perfil de cada uno.

Ada es la fundadora de la empresa y tiene una gran experiencia en programación. Junto a ella han empezado a trabajar en BK Programación dos técnicos superiores informáticos: María, dedicada a la implantación de servidores y manteniendo páginas web, y Juan, cuyo trabajo principal consiste en desarrollar aplicaciones web e instalar servicios de Internet.

Por otro lado, tenemos a Ana y Carlos, dos jóvenes que quieren mejorar su formación profesional en la rama de informática. Ana, a quien le apasiona el diseño gráfico, parece decantarse por estudiar el ciclo de Desarrollo de Aplicaciones Informáticas Multiplataforma, puesto que le vendría muy bien para mejorar a nivel profesional. Carlos está pensando estudiar el ciclo de Desarrollo de Aplicaciones Web, ya que se ajusta mejor a su perfil y tiene curiosidad por aprender a programar en entornos web.

Ana ha colaborado profesionalmente en varias ocasiones con BK Programación. Ha realizado retoque gráfico para algunos de los recursos que aparecen en los sitios web que ha creado y mantiene la empresa. Ana le ha comentado a Carlos que le gustaría realizar las prácticas de empresa en BK Programación, ya que podría aprender bastante y meterse más de lleno en el desarrollo de aplicaciones web. A Carlos le parece una buena idea y decide acompañar a Ana para ir a hablar con la responsable de la empresa, Ada.

En esta unidad nos vamos a centrar en el software de un sistema informático. Éste está formado por programas, estructuras de datos y documentación asociada. Así, el software está distribuido en el ordenador, los periféricos y el subsistema de comunicaciones. Ejemplos de software son los sistemas operativos, paquetes ofimáticos, compresores, editores de imágenes y un sinfín de programas más o menos específicos según el conocimiento y ámbito profesional del usuario.

1.- Sistemas informáticos. Introducción.

Los Sistemas informáticos realizan tareas de tratamiento de la información. Estas tareas consisten fundamentalmente en almacenamiento, elaboración y presentación de datos.
La definición formal de Sistemas informáticos es la siguiente: “Una o más computadoras, el software asociado, los periféricos, los terminales, los operadores humanos, los procesos físicos, los medios de transmisión de la información, etc., que constituyen un todo autónomo capaz de realizar un tratamiento de la información”
Elementos de un sistema informático
A partir de la anterior definición, un sistema informático se descompone en los siguientes elementos:

  • Elementos físicos o hardware
  • Elementos lógicos o software
  • El usuario humano
Ilustración de un esquema de un sistema informático, donde se relaciona el ser humano y los elementos físicos y lógicos.
Miguel Ángel García Lara (CC BY-NC-ND)

En un principio sorprende que el usuario humano se considere elemento de un sistema informático, pero sin el no tiene sentido, pues es quien lo crea, lo desarrolla y lo utiliza.
El hardware, se considera elementos físicos, en el sentido de que es algo físico que existe (un procesador, una memoria, una tarjeta gráfica...)
El software, se considera elementos lógicos, pues no existe físicamente. Un software realiza operaciones aritméticas o lógicas, según se haya programado.
En este módulo, nos vamos a centrar principalmente en el software, y más concretamente en Sistemas operativos y Redes.
Se dedicará al hardware, la unidad de trabajo 2 (hardware de los PC) y parte del tema 8 (hardware de las redes)

2.- Software de un sistema informático.

Caso práctico

Foto de Carlos, un estudiante de un ciclo de informática.

Ana y Carlos acaban de llegar a BK Programación y preguntan por Ada, ella los recibe en su oficina y se alegra de saludar de nuevo a Ana, colaboradora ocasional de BK Programación. Ana y Carlos le comentan su intención de estudiar ciclos formativos de informática y su interés por realizar, si fuera posible, las prácticas en la empresa. Ada encuentra interesante la posibilidad de incorporar personal con nuevas ideas, ilusión y con conocimientos actualizados. Cree que puede ser una buena experiencia en la que ambas partes, estudiantes y empresa, se beneficien.

—Entonces, BK Programación se centra en la parte software de los sistemas informáticos, ¿o también realizáis tareas relacionadas con hardware? —pregunta Carlos, tras escuchar atentamente a Ada.

—En BK programación desarrollamos y mantenemos aplicaciones y servicios web. Sin embargo, en ocasiones, a petición de nuestros clientes y contando con trabajadores cualificados para ello, también instalamos y configuramos físicamente servidores, impartimos formación sobre las aplicaciones desarrolladas, actuamos como soporte técnico y asesoramos en la compra de equipos informáticos —comenta Ada.

2.1.- Requisitos e instalación.

Caso práctico

Captura de pantalla de una aplicación de propósito general (Adobe Reader).

En BK Programación el software que utilizan es el que los clientes demandan, aunque también hay empresas que piden asesoramiento sobre ello. Por ello, nuestros protagonistas tienen que conocer a fondo todos los productos software que el mercado ofrece en cuanto al área de las tecnologías web, sistemas operativos y demás aplicaciones de usuario relacionadas; ya que antes de poner en marcha una aplicación web, con frecuencia, hay que instalar y configurar los servidores que alojarán la aplicación y atenderán las peticiones.

María, encargada en muchas ocasiones de implantar los servicios web de los clientes, siempre se preocupa de conocer a fondo los requisitos y peculiaridades de instalación y configuración de las aplicaciones con las que trabaja, documentándose para ello.

El software está formado por programas, estructura de datos y documentación. Ejemplos de software son los sistemas operativos, paquetes ofimáticos, compresores, editores de imágenes y un sinfín de programas más o menos específicos según el conocimiento y ámbito profesional del usuario.

Para la instalación de una aplicación o software debemos seguir los pasos siguientes:

  1. Determinación del equipo necesario.
  2. Ejecución del programa de instalación.
  3. Configuración de la aplicación.

Determinación del equipo necesario

Una aplicación creada para una plataforma no podrá ser instalada en otra distinta. Por ejemplo, si queremos instalar la suite ofimática LibreOffice, tendremos que instalar un programa (paquete) distinto si es para Windows o es para Linux.
Tampoco podrá ser instalada la aplicación si nuestro sistema informático no cumple los requisitos mínimos. Los requisitos mínimos se suelen referir a hardware necesario. También se pueden referir a software previo. Si no se cumplen estos requisitos mínimos, no se podrá instalar la aplicación.

Por ejemplo, para instalar Windows 10 en un PC, se necesitan los siguientes requísitos mínimos, obtenidos de la página de Microsoft en el siguiente enlace.

Procesador: Un procesador a 1 GHz o más rápido o SoC
RAM: 1 gigabyte (GB) para 32 bits o 2 GB para 64 bits
Espacio en disco duro: 16 GB para un SO de 32 bits o 20 GB para un SO de 64 bits
Tarjeta gráfica: DirectX 9 o posterior con un controlador WDDM 1.0
Pantalla: 800x600

A veces se habla de requisitos opcionales o recomendables; estos requisitos son superiores a los mínimos. Son los que los desarrolladores de la aplicación, consideran necesarios para un funcionamiento óptimo del sistema.


Ejecución del programa de instalación


La mayoría de las aplicaciones presentan dos niveles de instalación en función de los conocimientos del usuario:

  • Instalación básica
  • Instalación personalizada o avanzada

Instalación básica: Este nivel está diseñado para usuarios con pocos conocimientos informáticos. El programa realizará una instalación en función de los elementos que detecte en el equipo y según unos parámetros básicos establecidos por defecto por el fabricante.

Instalación personalizada o avanzada: Permite al usuario experto incluir o eliminar elementos de la aplicación con el fin de optimizar los recursos sistema informático, instalando sólo aquellos elementos de la aplicación que se van a utilizar. Por ejemplo, la instalación personalizada del paquete Microsoft Office permite elegir los programas a instalar (Microsoft Word, Excel, PowerPoint, Frontpage, etc.).
En la actualidad, la mayoría de los fabricantes distribuyen sus aplicaciones en formato DVD, CD o con posibilidad de descarga de los archivos de instalación o en imágenes ISO (por ejemplo: muchas distribuciones de Linux pueden descargarse en este formato).


En los sistemas Windows, el nombre del programa de instalación suele ser setup, install, instalar... y es el encargado de extraer los bloques de la aplicación de los discos, descomprimiéndolos si es necesario; crear la estructura de directorios necesaria, ubicar los archivos de la aplicación donde corresponda, y, si fuera necesario, modificar el registro del sistema.


Configuración de la aplicación


Una vez instalada la aplicación, el administrador o el usuario debe configurar el entorno de trabajo. Consiste en definir una serie de parámetros de funcionamiento que adecuen el funcionamiento de la aplicación. Entre estos parámetros aparecen:

  • Ajuste y distribución de la pantalla (tamaños de las ventanas, colores, tipos de letras, cambio de resolución, etc.).
  • Definición de directorios de trabajo (directorios para guardar los archivos, proyectos, plantillas, etc.).

Por ejemplo, en Microsoft Word, en el menú Herramientas/Opciones se pueden configurar carpeta por defecto donde se guardan los documentos, carpetas de plantillas, diccionarios de idiomas a utilizar.

LibreOffice es un Software Libre de ofimática el cual incluye procesador de texto, planilla de cálculo y editor de presentaciones entre otras.

Es un archivo donde se almacena una copia o imagen exacta de un sistema de ficheros, normalmente un disco óptico. Se rige por el estándar ISO 9660 que le da nombre. Algunos de los usos más comunes incluyen la distribución de sistemas operativos, tales como sistemas Linux, BSD o Live CD.

Autoevaluación

Pregunta

¿Qué nivel de requisitos en la instalación de una aplicación recomienda el fabricante del software para conseguir un rendimiento óptimo de la misma?

Respuestas

Requisitos del equipo opcional.

Requisitos del equipo en red.

Requisitos de instalación.

Requisitos del equipo básico.

Retroalimentación

2.2.- Tipos de aplicaciones informáticas.

Caso práctico

Grupo de personas con sus portátiles.

Ana y Carlos acaban de terminar su reunión con Ada. De camino a casa, a Carlos le surgen algunas dudas sobre el tipo de software con el que trabajan en BK Programación. Ana, que tiene algunos conocimientos más sobre informática que Carlos, le comenta que existen varias clasificaciones de aplicaciones o programas informáticos. Una de las que conoce responde al ámbito en el que se utilizan esas aplicaciones.

El software se suele clasificar en dos tipos, en función del ámbito o la naturaleza de uso:

  • Aplicaciones de propósito general.
  • Aplicaciones de propósito específico.

Aplicaciones de propósito general:

Se entiende por aplicaciones de propósito general, las que utilizamos casi todos los usuarios de ordenadores. Se pueden comercializar en paquetes integrados denominados suites, tales como: Microsoft Office, LibreOffice.

  • Editores de texto plano: (El editor Notepad o bloc de notas que viene incluido en Windows. Se llama texto plano, porque no se puede dar formato a este texto)
  • Procesadores de texto (Microsoft Word, Writer de LibreOffice. Se llaman procesadores, pues se puede procesar formato; negrita, tipos de letras...)
  • Hoja de cálculo (Microsoft Excel, Calc de LibreOffice).
  • Comunicación (agenda electrónica, correo, calendario, mensajería).
  • Generador de presentaciones (Microsoft PowerPoint, Impress de LibreOffice).
  • Herramientas de acceso y gestión de bases de datos (Microsoft Access, Base de LibreOffice).
  • Editores de XML y HTML (Microsoft FrontPage).
  • Otras utilidades y herramientas como antivirus, navegadores web, gestores de archivos, compresores de archivos, calculadoras, visores pdf.

Aplicaciones de propósito específico:

Se entiende por aplicaciones de propósito específico, las que se utilizan para el desempeño de funciones específicas, científicas, técnicas o de gestión, tales como:

  • Administración, contabilidad, facturación, gestión de almacén, RRHH: por ejemplo ContaPlus, FacturaPlus, etc.
  • Entorno de desarrollo: C, Java, Visual Studio, Borland Builder C++, etc.
  • Herramientas de administración de bases de datos: Oracle, phpMyAdmin, etc.
  • Herramientas “ad-hoc” especializadas: OCR/OMR, monitores bursátiles, gestión empresarial ERP, etc.
  • Herramientas de diseño gráfico y maquetación: Adobe PhotoShop, Gimp, PaintShop Pro, Corel Draw, Microsoft Visio,etc.
  • Herramientas de ingeniería y científicas utilizadas en ámbitos de investigación, en universidades, etc.

Autoevaluación

Pregunta

Un antivirus y un entorno de desarrollo para programación son ejemplos de:

Respuestas

Aplicaciones de propósito específico.

Aplicaciones de propósito general.

Aplicaciones de propósito específico y general, respectivamente.

Aplicaciones de propósito general y específico, respectivamente.

Retroalimentación

Para saber más

Conoce las posibilidades que te ofrecen las aplicaciones portables. Puedes llevarlas en tu memoria USB y utilizarlas donde y cuando quieras, sin necesidad de instalación. Para ello, visita este enlace:

Portable Apps (Aplicaciones portables)

2.3.- Licencias del software.

Caso práctico

María instalando un programa.

María, como asesora en la implantación de aplicaciones software, prefiere la opción de software libre, siempre que sea posible y el cliente esté de acuerdo. Sin embargo, Juan parece decantarse por la alternativa de software propietario que, según su criterio, garantiza un soporte técnico más profesional y fiable. ¡Así que, como os podéis imaginar, el debate está a la orden del día!

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”.

Desde el punto de vista de licencia, el software es privativo o libre.

Software propietario o privativo

La empresa que desarrolla el software, lo vende con limites sobre uso, modificación o redistribución del software.
Los tipos de licencias privativas mas utilizadas son:

  • Licencia CLUF (Contrato de licencia para el usuario final): se compra el producto en un CD o descargado de Internet, limitándonos el uso del producto a un número de ordenadores o número de instalaciones.
    Por ejemplo, podemos comprar Microsoft Office en distintas versiones, con distintos derechos. Las versiones Hogar y estudiantes, suelen permitir la instalación en 3 o 5 ordenadores, pero nunca en una empresa.
  • Licencia OEM. Software preinstalado en un equipo nuevo (como suele venir instalado el Sistema Operativo Windows en la mayoría de ordenadores de marcas) La licencia OEM de Microsoft, obliga a que solo se pueda utilizar en ese equipo donde ya está instalado. Incluso, si el equipo se rompe, no hay permiso para instalarlo en otro PC.
    Mas información sobre licencia OEM de Microsoft. Leer apartado Transferencia de licencias en el siguiente enlace.
  • Licencia por volumen. Las empresas grandes adquieren un producto para una gran cantidad de ordenadores, también se conocen como licencias corporativas.

Casos particulares de software propietario: freeware y shareware

  • Software freeware
    Suele usarse para el software que puede distribuirse libremente pero no modificarse. Tampoco suelen facilitan el código fuente. Ejemplo: Versiones de antivirus gratuitas para casa, pero comerciales para las empresas.
  • Software shareware
    Es un software que tiene límites de uso o funcionalidades. Se permite su redistribución, pero no su código como software privativo que es.
    El objetivo, es probar un software, y si nos gusta comprarlo.
    El ejemplo típico, es el compresor winrar. Se instala y funciona durante 1 mes, con licencia legal. Al mes, se debe comprar la licencia o desinstalar el programa. Si se sigue usando, sin comprar la licencia, aunque funcione, se está cometiendo una ilegalidad.

Software libre. Licencia GNU

Un software puede ser gratis y libre, pero gratis no implica libre
El concepto de software libre, es mucho más importante que gratis. En 1985, Richard Stallman crea el movimiento de software libre, creándose la Free Software Foundation.

El 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.

En el momento que no se cumpla una de las cuatro libertades, el software no es libre, por lo que es privativo.

Debido a estas libertades en el software libre, hay tantas versiones de Linux, pues cualquier empresa o programador, puede hacer su distribución, realizando unos cambios en cualquier distribución. De ahí, que la colaboración entre distintos desarrolladores de software, hace que el software libre sea tan potente.
Ha sido habitual ver a la venta CD de distribuciones Linux. Es legal, por el coste de la distribución. Pero incluso, un software libre se puede distribuir comercialmente. Pues en el concepto “software libre” no se habla nada de "gratuidad"
Un tipo de licencia libre, muy utilizado hoy día es la licencia GNU-GPL que trata de proteger al autor. ¿De qué forma? cualquier modificación se debe distribuir de nuevo con una licencia GNU-GPL y citando la fuente original. Así, se evita que otros autores se apropien de un trabajo libre.

Protección jurídica del software. Copyright

El hardware, como los inventos industriales están protegidos por patentes.
Pero el software no está protegido por patentes, pues se considera algo inmaterial o intangible (no se puede tocar), al mismo nivel que los libros o los discos.
En España, el software está protegido por la Ley de Propiedad Intelectlual modificada. LPI (Año 2006).
La Ley de propiedad intelectual, protege los libros, la música y el software.
En el artículo 101 de la LPI, se dice: “Los derechos sobre los programas de ordenador, así como sus sucesivas versiones y los programas derivados, podrán ser objeto de inscripción en el Registro” de la Propiedad Intelectual.
El Registro es público. Una vez, que la empresa inscriba su obra en el registro, podrá anteponer en la obra el símbolo del copyright ©, precisando lugar y año de divulgación.

Copyleft frente a copyright

El mundo libre, también ha creado sus propios derechos copyleft
Frente al software privativo, que se registra en la Ley de Propiedad Intelectual y se establece el copyright, en el software libre se estable el copyleft.
El objetivo de Copyleft es asegurar las licencias GPL, que son software libre, pero que al distribuirlo o modificarlo, se obliga a difundir quien fué el autor del software.
En internet, es muy fácil encontrar manuales de informática con licencia copyleft.
La letra C normal refleja que hay copyright, y la obra es privada y no se puede copiar.
La letra C invertida, refleja que hay copyleft y la obra es libre, se puede copiar, reutilizar pero nombrando siempre al autor, y volviendo a difundir la obra modificada de forma libre.

Autoevaluación

Pregunta

La libertad de usar una aplicación de software libre cualquiera que sea su propósito es una de las libertades de este tipo de software, además de:

Respuestas

Redistribuir copias.

Conocer como está construida la aplicación.

Las dos anteriores son ciertas.

Ninguna de las anteriores es cierta.

Retroalimentación

3.- Introducción a Sistemas Operativos.

Caso práctico

Foto de Juan, trabajador de BK Programación.

En BK Programación, los protagonistas de nuestra historia deben conocer a fondo todos los productos que el mercado ofrece en cuanto a software de sistema, y así aconsejar con garantías cuál se adecua mejor a las necesidades y situaciones que su clientela le pueda plantear.

Juan dice que deben conocer a fondo la teoría en la que están basados los desarrollos de los sistemas operativos. Conociendo como funcionan los sistemas “por dentro” podrán llegar a ser unos buenos profesionales con criterio propio, capaces de valorar las características de cada sistema. Y lo que es más importante, conociendo los entresijos de las máquinas y el software que van a utilizar podrán sacarles el máximo partido.

En BK Programación existen diferentes posturas como vinos en un apartado anterior. Esa es la razón de que no se cierren a ninguna opción, por ello, la empresa cuenta con personal especializado en sistemas Linux y para los sistemas Windows de Microsoft y Mac de Apple.

En BK Programación conocen la importancia de estar al día de los productos software del mercado y los nuevos que aparecerán. Para comprender y valorar lo particular de estos productos deben conocer antes lo general. Por lo que tanto Juan como María están al día de estos conocimientos técnicos para saber comparar las posibilidades que un sistema ofrece frente a otro.

En este apartado introduciremos gran parte de la teoría en la que están basados los sistemas operativos actuales. El sistema operativo es un conjunto de programas que se encarga de gestionar los recursos hardware y software del ordenador, por lo que actúa como una interfaz entre los programas de aplicación del usuario y el hardware puro.

3.1.- Definición, objetivos, kernel y subsistemas de los sistemas operativos.

El sistema operativo es un conjunto de programas que se encarga de gestionar los recursos hardware y software del ordenador, por lo que actúa como una interfaz entre los programas de aplicación del usuario y el hardware puro.

Los principales objetivos de los sistemas operativos son:

  • Abstraer al usuario de la complejidad del hardware
  • Eficiencia: Permite que los recursos del ordenador se utilicen de la forma más eficiente posible. Por ejemplo, se deben optimizar los accesos a disco para acelerar las operaciones de entrada y salida.
  • Permitir la ejecución de programas: Cuando un usuario quiere ejecutar un programa, el sistema operativo realiza todas las tareas necesarias para ello, tales como cargar las instrucciones y datos del programa en memoria, iniciar dispositivos de entrada/salida y preparar otros recursos.
  • Acceder a los dispositivos entrada/salida: El sistema operativo suministra una interfaz homogénea para los dispositivos de entrada/salida para que el usuario pueda utilizar de forma más sencilla los mismos.
  • Proporcionar una estructura y conjunto de operaciones para el sistema de archivos.
  • Detección y respuesta ante errores: El sistema operativo debe prever todas las posibles situaciones críticas y resolverlas, si es que se producen.
  • Gestionar las comunicaciones en red y permitir a los usuarios compartir recursos y datos
Ilustración de Un sistema informático se estructura por capas, comenzando desde el hardware, después sistema operativo, luego aplicación y en nivel superior usuario.
Golftheman. Graph of typical Operating System on computer usage (CC BY-NC-ND)

El kernel o núcleo del sistema operativo

Para realizar todos estas funciones, existe una parte muy importante del sistema operativo, el kernel o núcleo. El núcleo normalmente representa sólo una pequeña parte de todo lo que es el sistema operativo, pero es una de las partes que más se utiliza. Por esta razón, el núcleo reside por lo general en la memoria principal (en la memoria RAM) mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan.

Resumiendo, el núcleo se encarga de controlar y administrar los servicios y peticiones de los subsistemas o funciones:

  • Gestión de procesos (epígrafe D del tema actual)
  • Gestión de memoria (epígrafe E del tema actual)
  • Gestión de archivos (brevemente en epígrafe G de este tema, y con profundidad en posteriores temas)
  • Gestión de entrada y salida (epígrafe F del tema actual)
Ilustración del Núcleo del sistema operativo: Gestión de procesos, memoria, archivos y entrada y salida.
Imagen original de FP Distancia, propiedad del Ministerio de Educación y Ciencia (CC BY-NC-ND)

3.2.- Tipos de sistemas operativos

La mayoría de los usuarios piensan que solo hay 2 o 3 sistemas operativos: Windows, Mac OS y Linux, pero no es así, hay un montón de sistemas operativos. Vamos a clasificar los distintos sistemas por distintos criterios.


Clasificación de los sistemas operativos según su estructura:

  • Monolíticos: Es la estructura de los primeros sistemas operativos, consistía en un solo programa desarrollado con rutinas entrelazadas que podían llamarse entre sí. Por lo general, eran sistemas operativos hechos a medida, pero difíciles de mantener
Ilustración de Se muestra estructura monolítica de sistema operativo, con el núcleo y la relación entre el software y el hardware.

Imagen Adaptación de apuntes "Historia de los sistemas operativos" de Gustavo Romero. Universidad de Granada, licencia copyleft (CC BY-NC-ND)


    • Jerárquicos: Conforme las necesidades de los usuarios aumentaron, los sistemas operativos fueron creciendo en complejidad y funciones. Esto llevó a que se hiciera necesaria una mayor organización del software del sistema operativo, dividiéndose en partes más pequeñas, diferenciadas por funciones y con una interfaz clara para interoperar con los demás elementos. Un ejemplo de este tipo de sistemas operativos fue MULTICS.
    • Capas: El sistema operativo se organiza por capas, las capas superiores utilizan las inferiores. De esta forma, cada capa solo se fija en los detalles suyos. Un sistema de capas es THE
    Ilustración de un sistema operativo estructurado por capas.
    Gustavo Romero
    • Microkernel: los ordenadores son muy rápidos y se realizan muchos cálculos. Hay muchos fallos  (pocos para la cantidad de operaciones que realiza un PC). Para incrementar la tolerancia a fallos, se dividen en pequeños núcleos: operaciones de entrada/salida, gestión de memoria, del sistema de archivos, etc. Un sistema microkernel es MINIX
    • Cliente-servidor: basándose en la estructura microkernel, se crea esta estructura, donde el cliente solicita una petición de un servicio en la red, y el servidor responde.
    • Máquina virtual: integran distintos sistemas operativos en una sola máquina, dando la sensación de máquinas diferentes. En cada una de ellas, se puede ejecutar un sistema operativo distinto. Las máquinas virtuales las vamos a utilizar todo el curso, las más conocidas son VMware y VirtualBox. En el último epígrafe de este tema vamos a estudiarlas e instalaremos Windows en VirtualBox.

    Clasificación de los sistemas operativos por los servicios que ofrecen

    Por números de usuarios:
    • Monousuario: solo un usuario utiliza el Sistema Operativo al mismo tiempo. Ejemplos: Ms-Dos
    • Multiusuario: Pueden trabajar varios usuarios al mismo tiempo, bien en el mismo ordenador, bien desde otro ordenador a través de consolas. Ejemplos: Unix, GNU-Linux, Windows Server, Windows 7, Windows 8 y Windows 10.
    Por números de procesos o tareas:
    • Monoproceso o monotarea: Solo se puede ejecutar un proceso a la vez en cada núcleo. Ejemplo : MS-DOS
    • Multiproceso o multitarea: Se pueden ejecutar varios procesos a la vez. Todos los Windows actuales, también Unix/Linux, Mac OS

    Observación: la multitarea real no existe, solo se puede ejecutar un proceso por núcleo. Lo que se hace, es repartir el tiempo de forma que parezca que se ejecutan varios procesos a la vez.

    Por el número de procesadores:
    • Monoprocesador: El sistema operativo solo se puede utilizar en ordenadores con 1 procesador. Ejemplo: MS-Dos
    • Multiprocesador: El sistema se puede utilizar en ordenadores con varios procesadores. Ejemplo: Todos los Windows actuales desde el XP, también Unix/Linux.

    Clasificación de los sistemas operativos por su forma

    • Sistemas operativos en red: Estos sistemas tienen la capacidad de interactuar con los sistemas operativos de otras máquinas a través de la red, con el objeto de intercambiar información, transferir archivos, etc. Son sistemas operativos en red Windows Server, Linux, etc.
    • Sistemas operativos distribuidos: Las funciones se distribuyen entre diferentes ordenadores, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, etc.) en una sola máquina virtual que es a la que el usuario accede de forma transparente. En este caso, el usuario no necesita saber la ubicación de los recursos, sino que los referencia por su nombre y los utiliza como si fueran locales a su lugar de trabajo habitual. MOSIX es un ejemplo de estos sistemas operativos.

      Multics (Multiplexed Information and Computing Service) fue uno de los primeros sistemas operativos de tiempo compartido y tuvo una gran influencia en el desarrollo de los posteriores sistemas operativos.

      MINIX es un clon del sistema operativo Unix distribuido junto con su código fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987. ... Terminado en 1987 pudo usarlo para enseñar a sus alumnos el diseño de sistemas operativos en la Vrije Universiteit de Ámsterdam.

      Autoevaluación

      Pregunta

      Los sistemas operativos según su estructura se dividen en:

      Respuestas

      Monolíticos, Jerárquicos, Monotarea y Multitarea.

      Monolíticos, Jerárquicos, Microkernel y en red.

      Monolíticos, Jerárquicos, Microkernel y Máquina virtual.

      Monolíticos, Jerárquicos, Máquina virtual, Microkernel y Distribuidos.

      Retroalimentación

      4.- Gestión de procesos.

      Caso práctico

      María y Juan explicando la gestión de procesos.

      Ana y Carlos tienen dudas sobre lo que afecta a la eficiencia de un ordenador. María y Juan les explican que el rendimiento efectivo de un ordenador no sólo se basa en sus prestaciones hardware, sino también en el software que se ejecute y en el tipo de carga de trabajo que procese. La ejecución de los distintos programas que se lanzan en un equipo se traduce en multitud de procesos que requieren recursos. Uno de los principales recursos del ordenador es el procesador.

      María y Juan le comentan a Ana y Carlos con más de detalle en qué consiste la gestión de procesos y que opciones existen.

      4.1.- Estados de los procesos. Bloque de control de procesos.

      Definición de proceso

      Cada vez que se abre un programa informático, se genera un proceso principal. Un programa tiene varias instrucciones, y se ejecuta de forma secuencial, es decir, una instrucción detrás de otra.

      Cuando se inicia el programa principal, se inicia el proceso principal que controla el programa hasta que finalice el programa. Para ejecutar cada instrucción se inicia un subproceso, de forma que lo habitual es que un programa tenga varios procesos, también llamados subprocesos o hilos de ejecución.

      El proceso se ejecutará y finalizará de forma correcta o por error. Estas ideas nos dejan entrever lo que se llama “estados de los procesos”


      Estados de los procesos

      Los diferentes estados de un proceso son:

      • En ejecución o activo: Proceso activo es el que se ejecuta. En cada núcleo de un procesador, solo puede haber un proceso activo.
      • Preparado o espera: Procesos preparados para su ejecución, pero que están a la espera de un procesador libre. (Hay otro proceso en ejecución)
      • Bloqueado o suspendido: Las tareas que no pueden ejecutarse, porque necesitan un recurso que está ocupado. Por ejemplo: si hay 2 impresiones, la segunda está bloqueada, hasta que la primera acabe.
      • Muerto: Un proceso está muerto cuando su ejecución ha terminado o el sistema operativo ha detectado un error fatal y lo ha transferido a dicho estado. Si se apaga el equipo por falta de alimentación eléctrica, todos los procesos pasan a muertos.

      Transición entre estados de los procesos.

      Los procesos pasan de unos estados a otros, el encargado de esta función se llama “planificador de procesos”

      El planificador de procesos, tiene listas independientes para cada estado, pues se gestiona de forma distinta la lista de procesos preparados de la lista de procesos bloqueados.

      Ilustración de planificación de procesos: Ejecución, bloqueado, preparado.
      Miguel Ángel García Lara (CC BY-NC-SA)


      Cuando un proceso se crea, y se comprueba si se puede ejecutar, pasa a la lista de procesos preparados, y cuando lo decida el planificador, pasa a estar en ejecución (activo). (Flecha 3 de la figura)


      Una vez en ejecución, puede pasar a cualquiera de los otros estados.

      De ejecución puede pasar a listo (preparado), porque el planificador decida ejecutar otro proceso. (Flecha 2 de la figura)

      De ejecución puede pasar a bloqueado, porque necesita algún dato o está en conflicto con otro proceso. (Flecha 1 de la figura)

      Los procesos bloqueados pueden pasar a preparados cuando se ha resuelto el problema. (Flecha 4 de la figura)

      Por último, desde todos los estados, el proceso puede pasar a estar muerto. (No aparece en la figura, para no dificultar su comprensión) Cuando se acaba de ejecutar el proceso, se muere. Pero estando bloqueado o preparado, también se puede matar el proceso, debido a errores del Sistema Operativo o bloqueo infinito.


      Bloque de control de procesos

      El sistema mantiene toda la información sobre un proceso en una tabla llamada bloque de control de procesos. Para cada proceso contiene:

      • Identificador único de proceso (pid)
      • Estado del proceso (en ejecución, preparado, bloqueado)
      • Prioridad
      • Dirección de la memoria donde está guardada la información relativa al proceso.
      • Información contable: La información necesaria para que el planificador realice su trabajo. Ejemplos de esta información son la hora de inicio del proceso, tiempo de espera, tiempo de ejecución que resta…

      En Windows, vemos los procesos con el administrador de tareas, (pulsar Ctrl+Alt+Sup) en la solapa procesos.

      En Linux, vemos información de todos los procesos con el comando ps –efl

      4.2.- Planificador de procesos. Algoritmos.

      Hemos comentado previamente que solo puede haber 1 proceso en ejecución por núcleo, es decir: la multitarea real no existe

      Sin embargo, somos capaces de oír música, a la vez, navegamos por internet, e incluso se puede estar grabando un CD o copiando una carpeta. Por todo esto, decimos que el sistema operativo es multiproceso o multitarea, se ejecutan muchos procesos o tareas a la vez. Pero si la multitarea real no existe, ¿por qué es multitarea y lo parece?

      El ordenador es muy rápido, un PC a 3GHz, significa que en 1 segundo realiza la cantidad increíble de 3.000.000.000 millones de operaciones elementales.
      El ordenador en ese segundo, tiene tiempo de cambiar muchísimas veces de tarea, de forma que nosotros no notemos ese cambio de tarea, nos parece que se ejecuta todo a la vez, cuando no es así.


      Algoritmos de planificación de procesos

      El planificador de procesos del sistema operativo, decide qué proceso de la cola de preparados pasa a estar en ejecución en cada momento. Después, puede decidir dejar el tiempo que necesite el proceso, o que ese proceso pase a preparado, pasando otro de la cola de listos a en ejecución. Estas transiciones continuas, entre procesos listos y en ejecución, es lo que da lugar a la multiprogramación, pues aunque se ejecuta un solo proceso en cada núcleo, da la sensación de que se ejecutan varios procesos a la vez o en paralelo.

      Los algoritmos de planificación de procesos, sirven para decidir qué proceso pasa a estar activo. El objetivo de los algoritmos, es acabar la ejecución de los procesos cuanto antes.

      Hay varios algoritmos. Los primeros son los que menos se usan actualmente (FIFO, SJF), pero aclaran para que sirven estos algoritmos. Los más utilizados en la actualidad, son los últimos (SRT, Round Robin y prioridades)

      • Algoritmo FIFO. Primero en llegar, primero en salir (First Input, First Output). Es el algoritmo más sencillo, los procesos pasan al estado activo en el orden que llegaron al estado preparado. (La cola que hacemos en las tiendas siempre) En este algoritmo, cuando un proceso pasa al estado en ejecución, se ejecuta hasta el final.
      • Algoritmo SJF. Primero el trabajo más corto. (Shortest Job First). De los procesos que están en estado preparado, se selecciona el que tiene menor tiempo de ejecución. Una vez que el trabajo se inicia, se ejecuta hasta el final.
      • Algoritmo SRT. Tiempo restante más corto. (Shortest Remaining Time). En FIFO y SJF el proceso activo se ejecuta hasta el final. En SRT, ya no es así. El planificador utiliza el criterio SJF, pero tiene en cuenta los nuevos procesos que puedan llegar al estado preparado. Por ejemplo, si se está ejecutando un proceso A que le quedan 3 instantes, pero llega un nuevo proceso B al estado preparado que solo necesita 1 instante, el proceso A pasa al estado preparado, mientras que B pasa a ejecución por necesitar menos tiempo. Es el primer algoritmo que utiliza la multiprogramación.(Un proceso activo, se deja de ejecutar, para que se ejecute otro). También se dice que son algoritmos expropiativos (se quita el procesador al proceso activo).

      Observaciones:

      FIFO puede bloquear procesos muy cortos, por estar ejecutando uno muy largo.
      SJF y SRT puede bloquear procesos muy largos, por ejecutarse siempre los más cortos.

      FIFO y SJF dan malos resultados, pero son muy fáciles de implantar. El sistema operativo realiza pocos cálculos, por lo que no se pierde tiempo. Son los únicos algoritmos monoproceso, monotarea, no multiprogramados o no expropiativos.

      SRT se utiliza bastante en los sistemas operativos actuales, pues se ha comprobado que da un tiempo medio de espera muy bueno.

      Veamos 2 algoritmos más, ambos multiprogramados o expropiativos: Round Robin y prioridades.

      • Algoritmo RR, Round Robin: prioridad circular. Se establece un cuanto, este cuanto es el tiempo de ejecución que se va a ejecutar cada proceso. ¿Cómo funciona? El planificador asigna el procesador al primer proceso, pasado ese tiempo cuanto, se asigna el procesador al siguiente proceso preparado. Y así sucesivamente. El proceso que estaba en ejecución pasa a la cola de preparados. De ahí, el nombre de circular, se parece cuando jugamos a las cartas y por ejemplo, todos los jugadores echan 2 cartas. Su ventaja, es que garantiza un tiempo de respuesta razonable a todos los procesos. Su desventaja, es que el tiempo que se pierde cada cuanto en cambiar de proceso, ralentiza el algoritmo. De forma, que teóricamente debería dar mejores resultados que RST, pero en la práctica tienen un rendimiento similar.
      • Prioridades. Cada proceso tiene asignada una prioridad y el de mayor prioridad en el estado listo es el que pasa a estar en ejecución. El valor de prioridad puede ser asignado por el usuario o el sistema. Asimismo, el usuario puede cambiar en cualquier momento la prioridad de un proceso. Las prioridades son buenas, pero por si solas tienen el problema de que un proceso con poca prioridad no se ejecutaría nunca. Para solucionar este problema, se mejora el algoritmo utilizando prioridad por envejecimiento. Trata, de que si un proceso lleva mucho tiempo en estado preparado, se sube su prioridad, de esa forma, tiene más posibilidades de pasar a activo.

      Observaciones finales:

      Los algoritmos SRT, Round Robin y prioridades dan buenos resultados.

      Aun así, lo habitual es utilizar varios algoritmos mezclados. De esa forma, se intenta obtener lo mejor de cada uno.

      En sistemas actuales, se suelen utilizar “prioridad con SRT” y “prioridad con Round Robin”. FIFO y SJF, se utilizan como criterios de desempate final.

      Autoevaluación

      Pregunta

      En el algoritmo "Primero en llegar, primero en ejecutarse":

      Respuestas

      Su tiempo de respuesta puede ser alto, especialmente si varían mucho los tiempos de ejecución.

      La sobrecarga del sistema es mínima.

      Penaliza los procesos cortos y los procesos con operaciones de Entrada/Salida.

      Todas son ciertas.

      Retroalimentación


      Pregunta

      Dentro de la gestión del procesador, la planificación no apropiativa de procesos supone:

      Respuestas

      Que una vez se asigna la CPU a un proceso éste no puede ser suspendido hasta que el proceso no lo determina.

      Existe un reloj que lanza interrupciones periódicas en las que el planificador toma el control y se decide a que proceso se le asigna el uso de la CPU.

      El algoritmo "Round Robin" corresponde a este tipo de planificación.

      Las respuestas primera y tercera con ciertas.

      Retroalimentación

      5.- Gestión de memoria.

      Caso práctico

      Juan explicando la gestión de la memoria.

      Ana y Carlos tras entender la importancia de una adecuada gestión de procesos, preguntan: —¿Qué ocurre con la memoria principal? ¿Cómo la utiliza el sistema operativo para poder ejecutar los procesos de manera equilibrada? —Juan les explica que existen diferentes posibilidades en la gestión de la memoria que hace el sistema operativo. Pero lo primero es tener claro ciertos conceptos sobre el uso de la memoria. Juan comienza su explicación...

      Hemos visto en la gestión de procesos que el recurso compartido es el procesador. Sin embargo, 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.

      5.1.- Particiones fijas, variables y paginación.

      Lo primero aclarar que, cuando hablamos de memoria, o memoria principal, o memoria física estamos hablando de la memoria RAM del PC.

      Asimismo, cuando hablamos de memoria secundaria, nos referimos al disco duro.

      Hemos visto en la gestión de procesos que el recurso compartido es el procesador. Sin embargo, para que un proceso se pueda ejecutar no sólo requiere tiempo de procesamiento sino también estar cargado en memoria principal. Ningún proceso se puede ejecutar 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.

      Actualmente la mayoría de los sistemas operativos son sistemas multitarea, en los que va a haber varios procesos simultáneamente en ejecución. Por tanto, deberá haber mecanismos de gestión para distribuir la memoria principal entre todos estos procesos que quieren ejecutarse.

      Ilustración de Memoria principal con una lista de procesos.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-ND)



      La forma de hacerlo ha cambiado desde los primeros Sistemas Operativos a los actuales, pues igual que en la gestión de procesos, han mejorado los algoritmos. Los primeros algoritmos, tienen una gestión fácil (primeros PC más lentos, necesitan operaciones sencillas) pero desperdician mucha memoria. Los algoritmos actuales, tienen una gestión más complicada (PC más potentes, que pueden realizar operaciones más complejas) a cambio de ser más eficientes (desperdician poca memoria).

      Primer Sistema: Gestión de la memoria con particiones fijas

      Consiste en dividir la memoria física disponible en varias particiones de tamaño fijo y asignar cada una de las partes a un proceso.

      Ejemplo: Supongamos un equipo antiguo con MS-DOS y una memoria RAM de 4 Mb, los primeros 512 Kb estaban reservados para los programas de MS-Dos. Los 3,5 MB restantes, es donde se cargaban los programas de usuario (procesador de texto, hoja de cálculo,...), se dividen en 3 particiones de distinto tamaño, por ejemplo, 512 KB, 1 MB y 2 MB. Cada tarea o proceso se asigna a una partición. En cada partición, solo puede haber 1 proceso.

      En este sistema, se desaprovecha espacio dentro de cada partición. Se produce fragmentación interna (se desperdicia espacio en la memoria, que no puede utilizar otro proceso. Ese espacio desaprovechado está dentro de cada partición).

      Ilustración del funcionamiento de una cola de trabajos.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-SA)


      Segundo sistema: Gestión de la memoria con particiones variables

      No había particiones, a cada proceso se le asigna el tamaño que hace falta. Cuando termina el proceso se libera ese trozo, y se junta con el espacio libre que haya al lado.

      Cada proceso nuevo, se carga donde haya espacio, y lo que no se utilice queda libre para otro proceso.

      Ilustración de la memoria con particiones variables.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-SA)


      En este sistema, no se pierde espacio dentro de las particiones, pero si pueden desperdiciarse huecos libres que van quedando, pero que no se pueden aprovechar porque son pequeños. Se produce fragmentación externa (se desperdicia espacio en la memoria, pero de forma general, no dentro de una partición)

      En la figura, podría estar esperando un proceso 5, porque es más grande que los huecos libres, aunque sí que podría coger si estuvieran esos huecos juntos.

      Por estos motivos, aunque particiones variables mejora el sistema con respecto a las particiones fijas, sigue sin ser un esquema idóneo; por lo que en los sistemas operativos actuales se utiliza la paginación que vemos a continuación.

      Tercer sistema: Paginación

      La memoria se divide en páginas de igual tamaño. Los procesos utilizan las páginas necesarias, no siendo obligatorio que sean contiguas (continuas).

      Ejemplo, el tamaño de las páginas suele ser 4KB, si el proceso necesita 31 KB, utilizará 8 páginas libres, independientemente si están juntas o no.

      El esquema, es más difícil de gestionar, se necesitan computadoras más potentes; pero, se aprovecha muy bien la memoria. La fragmentación es casi ceroCasi no hay fragmentación (no se desperdicia casi espacio en la memoria)

      Por este motivo, la paginación es la técnica que se utiliza en la actualidad.

      Problema de la paginación: Poco a poco, las páginas libres quedan muy desorganizadas. El Sistema Operativo puede perder tiempo en asignar muchas páginas no contiguas (no continuas) a los procesos.

      Para resolver este problema, el Sistema Operativo cada poco tiempo, realiza una compactación. El proceso consiste en organizar todas las páginas, de forma que tanto las páginas libres como las de los procesos estén juntas.

      Autoevaluación

      Pregunta

      La gestión de la memoria con asignación de particiones estáticas consiste en:

      Respuestas

      La división de la memoria principal en partes fijas de igual tamaño.

      La división de la memoria principal en partes variables de igual tamaño.

      La división de la memoria principal en partes fijas de diferente tamaño.

      La primera y tercera respuestas son ciertas.

      Retroalimentación

      5.2.- Memoria virtual (Windows) y memoria swap (Linux).

      Memoria virtual en Windows

      La memoria principal, es decir, la memoria RAM es cara y limitada, de ahí, que nació este esquema para ayudar a la RAM. Este esquema, se utiliza en los sistemas Windows.

      Consiste en sobrepasar el límite de memoria RAM, guardando la información en el disco duro como si fuera RAM.

      La memoria virtual suele tener entre 1 y 2 veces el tamaño de la RAM. Su funcionamiento es el siguiente: cada vez que se carga un proceso en la memoria RAM, también se escribe en la memoria virtual. Cuando la RAM se está llenando, se puede borrar las que sobran e introducir las nuevas. Si hacen falta las antiguas, se provocará un fallo de página, y el gestor de memoria traerá dicha parte del proceso de disco a memoria.

      Ilustración del funcionamiento de la memoria virtual.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-ND)


      De esta forma, aunque la memoria virtual es más lenta que la RAM (pues el disco duro es mucho más lento que la RAM), si tenemos una RAM de 2 GB, podríamos simular una RAM de 6 GB con la ayuda de la memoria virtual en disco duro)

      El archivo pagefile.sys oculto en la partición donde está instalado Windows, es el archivo de la memoria virtual, también llamado archivo de paginación (pues también utiliza paginación dentro del archivo). Aun así, no hay que confundir la memoria virtual con la paginación a secas.

      Memoria swap o área de intercambio en GNU-Linux

      El concepto es el mismo que memoria virtual. La diferencia, es que tradicionalmente en Linux, al instalar el Sistema Operativo, se crea una partición expresa para este fin. Lo habitual es utilizar entre 1 y 2 veces el tamaño de la RAM. Para diferencias de memoria virtual y swap y discusión del tamaño, visitar el siguiente enlace.

      Ventajas de memoria swap sobre memoria virtual

      No depende de que la partición de datos, esté muy llena.
      Si se pone la swap en la primera partición del disco duro, gana en velocidad, pues esa zona del disco duro es más rápida.

      En Linux, con el comando free, se ve cuanta memoria principal y cuánta swap tiene el equipo y su consumo. En un PC se ha realizado la captura siguiente. Es un PC con memoria RAM 2053MB (utilizados 1014MB) y swap 2670MB (utilizados 0MB)

      Ilustración de intercambio de la memoria virtual en linux.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-ND)

      Tendencia actual en la memoria swap o memoria virtual

      Hoy por primera vez en el mundo del PC tenemos memoria RAM muy grande, normalmente por encima de los recursos necesarios.
      Eso hace, que hoy se discuta, si es necesario poner memoria virtual o swap o no configurarla.
      En cualquier caso, con PC con RAM muy grande, se suele poner como tamaño de la virtual o swap, la misma cantidad que tiene de RAM. Si la cantidad de RAM es justa, pondremos el doble. Una razón para seguirla poniendo en Linux, es que la partición swap se utiliza también cuando se hiberna el sistema.

      De todas formas, recordar que estas son las recomendaciones, pero que tanto en Windows como en Linux se pueden configurar sin memoria virtual o swap.

      Autoevaluación

      Pregunta

      La memoria virtual hace uso de las técnicas de …

      Respuestas

      Asignación de particiones fijas en memoria real.

      Asignación de particiones variables en memoria real.

      Paginación pura y Segmentación puras.

      Todas son ciertas.

      Retroalimentación

      6.- Gestión de entrada y salida.

      Caso práctico

      Juan explica la gestión de E/S a Ana y Carlos

      Nuestros protagonistas utilizan a diario una gran variedad de periféricos (impresora, escáner, teclado, ratón, módem, monitor, dispositivos de almacenamiento externo, etc.). Hoy en día, estos dispositivos están preparados en su mayoría para enchufar y empezar a funcionar, algunos requieren la instalación de software específico para que el ordenador pueda trabajar con ellos adecuadamente. Carlos, que es un gran aficionado a la edición de música y video digitales, no se había planteado hasta este momento cómo interactúan su tarjeta capturadora de vídeo o los altavoces, por ejemplo. Al hilo de este tema mantiene una interesante conversación con Juan, que le recuerda que existen diferentes tipos de periféricos, le explica para qué sirven los controladores, qué estructuras de datos utilizan los dispositivos para la transferencia y recepción de información, etc. En definitiva, Juan le descubre a Carlos otra tarea fundamental del sistema operativo, la gestión de la E/S (entrada/salida).

      Anteriormente, vimos que una de las funciones del ordenador era procesar la información, dicha información la obtiene y muestra a través de los periféricos. La parte del sistema operativo que se encarga de este proceso es la gestión de la E/S (entrada/salida).

      6.1.- Estructura y transferencia de datos.

      Controladores de dispositivo.

      ¿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 (drivers). El controlador o driver es un software, 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.

      Estructura de datos de la E/S.

      Otro punto importante es la estructura de datos que utilizan los dispositivos periféricos para manejar la información y comunicación entre dispositivos o entre estos y la CPU. Las más utilizadas son los spools y los buffers.

      • Spool: Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (spool), hasta que el dispositivo periférico requerido se encuentre libre. De este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool. Se utiliza en dispositivos que no admiten intercalación, como ocurre en la impresora, ya que no puede empezar una impresión hasta que no haya terminado la anterior.
      • Buffers: Es para dispositivos que pueden atender peticiones de distintos orígenes. En este caso. los datos no tienen que enviarse completos, pueden enviarse porciones que el buffer retiene de forma temporal. También se utilizan para acoplar velocidades de distintos dispositivos. Así, si un dispositivo lento va a recibir información más rápido de lo que puede atenderla se emplea un buffer para retener temporalmente la información hasta que el dispositivo pueda asimilarla. Esto ocurre entre una grabadora de DVD y el disco duro, ya que la primera funciona a una menor velocidad que el segundo.

      Transferencia de los datos de la E/S.

      Existen distintas formas de transferir los datos de E/S en los sistemas operativos según la intervención de la CPU.  Ordenadas de menos eficientes a más eficientes son las siguientes:

      • E/S programada: la CPU tiene todo el protagonismo ya que inicia y lleva a cabo la transferencia. Esta técnica repercute en la velocidad de proceso del ordenador,  porque la CPU debe dejar todo lo que está haciendo para ocuparse del proceso de entrada/salida.
      • E/S por interrupciones: la CPU ejecuta la transferencia pero el inicio es pedido por el periférico que indica así su disponibilidad. La CPU no pregunta a los dispositivos sino que son estos los que la avisan cuando es necesario.
      • Acceso directo a memoria (DMA): la transferencia es realizada por un controlador especializado. Esta técnica acelera enormemente el proceso de la E/S y libera a la CPU de trabajo. Lo habitual es que los datos que se quieren escribir en el dispositivo o que son leídos del dispositivo provengan o vayan a la memoria del ordenador, pues bien en este caso. la CPU inicia el proceso, pero luego el dispositivo continúa sin necesitar a la CPU, con lo que se acelera mucho el proceso de entrada/salida y se libera a la CPU del proceso.

      Autoevaluación

      Pregunta

      Dentro de la gestión de E/S se distinguen los periféricos por las estructuras que utilizan para manejar la información. La impresora funciona con …

      Respuestas

      Spool.

      Buffer.

      Ambas.

      Ninguna es cierta.

      Retroalimentación

      7.- Gestión de archivos.

      Caso práctico

      María explica la gestión del sistema de archivos a Ana y Carlos.

      Carlos y Ana están aprendiendo de la mano de María y Juan las principales funciones de los sistemas operativos. Pero ahora se preguntan, ¿qué ocurre con los archivos y directorios? ¿qué información almacena el sistema operativo de estos? ¿qué operaciones pueden realizarse sobre los mismos? ¿existen distintas formas de referenciar un archivo o directorio? Estas y otras cuestiones encuentran respuesta con las explicaciones de Juan y María.

      7.1.- Organización lógica: directorios y ficheros.

      Cada sistema operativo utilizará su propio sistema de archivos, no obstante las operaciones que se pueden realizar sobre el sistema de archivos son bastante similares. Así, todos los sistemas de archivos actuales utilizan los directorios o carpetas para organizar a los archivos.

      Los objetivos más importantes en la implementación de un sistema de archivos son:

      • Optimizar el rendimiento mediante un acceso rápido para recuperar la información contenida en archivos.
      • Fácil actualización: Los cambios (añadir, borrar y modificar) no deben suponer una tarea complicada para el usuario y las aplicaciones.
      • Economía de almacenamiento: Intentar que los archivos desperdicien la menor cantidad de espacio en disco posible. Es muy importante evitar la fragmentación de los discos.
      • Mantenimiento sencillo: Evitar las operaciones complicadas a usuarios y programas, ocultando los detalles.
      • Fiabilidad para asegurar la confianza en los datos escritos o leídos (entradas/salidas) sean correctos y fiables.
      • Incorporar mecanismos de seguridad y permisos: Se debe poder proteger los archivos de un usuario del acceso de los demás usuarios. Por ejemplo estableciendo permisos de escritura, lectura o ejecución.
      • Control de concurrencia: Se debe controlar y asegurar el acceso correcto a los archivos por parte de varios usuarios a un tiempo, posiblemente bloqueando el archivo en uso hasta que termine la operación de modificación en curso.

      Organización lógica del sistema de archivos

      Los sistemas de archivos deben permitir utilizar el medio de almacenamiento (disco) de una forma intuitiva y cómoda, sin conocer los detalles físicos o hardware.

      A esto se le llama organización del sistema de archivos y suele coincidir en todos los sistemas de archivos actuales, utilizando el esquema de almacenamiento en archivos y la organización en carpetas o directorios.

      Un directorio o carpeta, solo es un contenedor, no es información.

      En los archivos es donde están todos los datos o información.

      Cada archivo de un sistema tendrá unas características, o atributos, que lo identifican:

      • Nombre: Cada sistema operativo establece las reglas para nombrar a los archivos, en cuanto a longitud y caracteres permitidos.
      • Extensión: La extensión de un archivo son los caracteres que se colocan al final del nombre de un archivo para especificar su tipo de contenido. Por ejemplo, la extensión “.TXT” indica que el archivo es de texto o la extensión “.EXE” indica que el archivo es un programa ejecutable.
      • Permisos: El sistema de archivos debe controlar qué usuarios están autorizados a utilizar cada archivo y que operaciones pueden realizar. Por ejemplo un archivo puede tener permiso de lectura y escritura para un usuario y en cambio otro usuario solo podrá utilizar el archivo en modo de lectura.
      • Propietario: Identificador del usuario que es el propietario actual del archivo, por defecto quien creó el archivo.
      • Fecha de creación: Fecha y hora de la creación del archivo.
      • Fecha del último acceso: Fecha y hora del último acceso al archivo.
      • Fecha de la última modificación: Fecha y hora de la última modificación al archivo.
      • Tamaño actual: Número de bytes que ocupa el archivo en el disco duro del ordenador.
      Ilustración de las propiedades de un archivo de texto de word.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-NC)

      Las operaciones básicas sobre archivos o carpetas que la mayoría de los sistemas de archivos soportan son: crear, borrar, abrir, cerrar, leer, renombrar y crear enlaces (accesos directos)

      Jerarquía de directorios. Árboles

      Todos los sistemas operativos tienen una estructura jerárquica de almacenamiento de la información en forma de árbol.

      Esta información se ubica en forma de árbol, y se encuentra guardada en las unidades de almacenamiento.

      Distinguir unidades físicas de unidades lógicas

      En general, se habla de unidad de disco duro, de disquete, de CD-ROM, etc. Estas unidades son hardware, es decir, constituyen unidades físicas.
      Sin embargo el Sistema Operativo utiliza las unidades lógicas, que son la representación que el sistema hace de las unidades físicas.
      Supongamos un disco duro, con 3 particiones. Tenemos una unidad física y 3 unidades lógicas. Para ello, recordar que:

      Física: es equivalente a real (el disco duro es un dispositivo físico)

      Lógica: se ha realizado con software (parece que hay 3 discos en el ejemplo, pero realmente hay un disco con 3 particiones realizadas con un software; no son particiones físicas. Se pueden deshacer con el software nuevamente)

      En este ejemplo de un disco con 3 particiones, en Windows tendremos C, D y E representando a esas 3 unidades lógicas. Tenemos 3 árboles de información.

      En el sistema Linux, seguiremos teniendo 3 unidades lógicas, pero estarán montadas en un único árbol y no se denominarán por letras.

      Profundizaremos en la jerarquía de archivos y directorios en los temas concretos de Windows y GNU-Linux.

      Ilustración con los archivos y directorios de una carpeta personal de Linux.
      Materiales FP a Distanci a de la Junta de Andalucía (CC BY-NC)



      Autoevaluación

      Pregunta

      Son objetivos de los sistemas de archivos…

      Respuestas

      Optimizar el rendimiento mediante un acceso rápido cuando se recupera información.

      Mantenimiento sencillo.

      Fiabilidad para asegurar la confianza en los datos.

      Todas son ciertas.

      Retroalimentación

      8.- Virtualización. Software y configuración de máquinas virtuales.

      Caso práctico

      Foto de Juan, trabajador de BK Programación.

      En BK Programación, los protagonistas de nuestra historia deben conocer a fondo todas las opciones que existen para virtualización.

      Juan dice que deben conocer a fondo cuales son las ventajas sobre el uso de máquinas vituales.

      En BK Programación existen diferentes opciones para virtualizar, tanto con software de pago como software gratuito, habrá que estudiarlas en profundidad.

      En BK Programación conocen la importancia de estar al día de los productos software del mercado y los nuevos que aparecerán. Para comprender y valorar lo particular de estos productos deben conocer antes lo general. Por lo que tanto Juan como María están al día de estos conocimientos técnicos para saber comparar las posibilidades que un método ofrece frente a otro.

      8.1.- Motivación y ventajas de las máquinas virtuales.

      Hoy día, con el aumento de la potencia y capacidad de los ordenadores, se infrautilizan los recursos hardware de un equipo. De ahí nace la virtualización o máquinas virtuales, en un ordenador encendido puede haber varias máquinas distintas ejecutándose.

      Las máquinas virtuales se pueden comunicar en una red, siendo vistas como computadores distintas. Supongamos un aula con 15 PC, con 2 máquinas virtuales cada una y todas encendidas. Hay 45 máquinas en el aula, donde se pueden comunicar todas en red y se ven como máquinas independientes.

      Una máquina virtual, se instala y ejecuta bajo un software, de forma que al final es una carpeta con algunos archivos.
      El disco duro es un archivo (por ejemplo, en VirtualBox, es un archivo .vdi) El resto de archivos es la configuración de la máquina. De esta forma resulta muy fácil el traslado de una máquina virtual de un ordenador a otro ordenador.

      Son ideales para realizar pruebas: se puede probar distintos sistemas operativos, distintos programas de software, instalación de servicios de redes, sin afectar a la máquina principal. Por ejemplo, si queremos probar un software para edición de vídeo, instalaríamos en una máquina virtual los distintos programas para ese fin, y una vez que decidiéramos cual nos gusta, podríamos instalarlo en la máquina principal sin “haber ensuciado” el sistema principal.

      Podemos tener instalado en nuestro equipo un Windows 10, y sin embargo, algún software que utilizamos necesita ejecutarse en Windows XP. Podemos tener una máquina virtual con Windows XP para hacer funcionar ese software.

      Tanto Intel y AMD han añadido en sus microprocesadores soporte para la virtualización, si buscamos en sus páginas web, veremos procesadores más optimizados para ello.


      Máquina real y máquina virtual. Términos.

      • Máquina anfitrión, host o servidor: la máquina real donde se instala la aplicación de virtualización
      • Máquina invitada, huésped o guest: la máquina virtual que se ejecuta dentro de la aplicación
      • La máquina virtual tiene su hardware: BIOS, memoria, discos duros, cd-dvd,... Incluso se pueden añadir varios discos duros virtuales.


      Software de virtualización

      Software de varias empresas: Vmware, Oracle, Microsoft, Parallels

      Vmware es software propietario. Tiene muchas versiones, algunas de pago y otras gratuitas:

      • Vmware Server
      • Vmware Workstation
      • Vmware Player, versión gratuita, que sirve para ejecutar máquinas virtuales ya instaladas, pero no para instalar una máquina desde cero.

      Página oficial de Vmware en el siguiente enlace.

      Oracle VirtualBox

      Software original de Sun Microsystems. La empresa Oracle, compra la empresa Sun Microsystems en 2010. Sus versiones principales:

      • Oracle VirtualBox: gratuita para uso personal y académico
      • Oracle VirtualBox OSE (Open Source Edition), versión libre.

      Página oficial de VirtualBox en el siguiente enlace.

      HiperV de Microsoft

      Software propietario. Solo puede instalarse en máquinas anfitrión Windows. Hay 2 programas:

      • Virtual PC: VirtualPC solo puede virtualizar máquinas Windows
      • Hiper V: Hiper V sustituye a Virtual PC, mejorándolo en muchos aspectos. Ahora es posible virtualizar tanto Windows como Linux. Además, integra soporte de virtualización para redes.

      Página oficial de HiperV en el siguiente enlace.

      Parallels

      Es software propietario para los ordenadores MAC. Se puede virtualizar tanto Windows como Linux.

      Página oficial de Parallels en el siguiente enlace.


      Si un usuario de Linux o MAC quiere tener Windows, lo podrá hacer gracias a estas aplicaciones. Es importante entender que el instalar una máquina virtual, no exime de la obligación de licencia de dicha máquina. Es decir, cada máquina virtual tiene que tener su licencia.

      El software de virtualización que vamos a utilizar en nuestro curso, es VirtualBox por ser software libre.

      8.2.- Instalación y configuración de una máquina virtual nueva.

      Para crear una máquina nueva, se ponen los siguientes parámetros:

      • Se le pone un nombre
      • Se dice que Sistema Operativo se va a instalar (sirve para que el programa configure los valores recomendados en procesador, RAM y disco duro)
      • Se le asigna memoria RAM
      • Se asigna disco duro: bien uno nuevo o uno existente (de una máquina anterior)


      Diferencia de tamaño fijo y tamaño dinámico al crear un disco duro:

      Al crear un disco duro, se puede crear de tamaño dinámico (el archivo crece según metemos información en la máquina virtual) o tamaño fijo (el archivo ocupa siempre el tamaño total del disco duro). En nuestro caso, será más cómodo seleccionar siempre dinámico (facilita la copia entre dispositivos por ser el archivo más pequeño). Además, podemos tener varias máquinas virtuales para las distintas asignaturas del Ciclo, sin llenar el disco duro real.
      Por ejemplo, creamos una máquina para instalar Windows 10, y le hemos puesto un disco de 200GB dinámico. Cuando tengamos instalado Windows, supongamos que hay ocupados 10 GB, pues el archivo .vdi ocupará 10GB y no 200GB.


      Configuración de la máquina virtual

      Una vez creada una máquina virtual, se puede modificar el hardware, por ejemplo:

      • Se pueden añadir o eliminar medios de almacenamiento: discos duros, CD. Una ventaja, es que podemos utilizar como CD-DVD, una imagen (archivo iso) en lugar del CD físico.
      • Se pueden habilitar los USB de la máquina host
      • Se puede configurar la red: NAT, puente, red interna. (La opción por defecto suele ser NAT. Esta opción es la ideal para navegar por Internet, si la máquina real navega, la virtual lo hace. Pero es una mala opción para las prácticas de Redes.)
      • Se pueden compartir carpetas entre la máquina host y la invitada.


      Herramientas de optimización de drivers

      Para que las máquinas invitadas funcionen con mejores características y mejor gráfico, hay que instalar las herramientas que adaptan el hardware de la máquina real a la invitada. Es decir, instalan u optimizan los drivers.

      Cada programa tiene su propia herramienta, por ejemplo en Virtual Box se llaman Guest Adittions, en VmWare se llaman Vmware Tools y en Hiper V, se llama Hiper V Integration Services.

      Ventajas de instalar las herramientas Guest Adittions:

      • Mejor resolución gráfica. Cuando tengamos instalado el sistema operativo, la pantalla ocupa una pequeña parte de la máquina anfitrión. Ello, dificulta moverse por la máquina, pues tenemos que utilizar las barras de desplazamiento para acceder al escritorio completo. Al instalar las Guest Adittions, y reiniciemos, al maximizar la pantalla, se redimensiona ocupando el mismo tamaño que la pantalla real.
      • Integración del ratón. Por defecto, según sistemas operativos instalados, al arrastrar el ratón de una máquina a otra, hay que pulsar la tecla Ctrl derecha. Cuando se instala las Guest Adittions, ya no es necesario.
      • Acceso a carpetas compartidas. Se puede utilizar una carpeta de la máquina anfitrión, para compartir archivos entre host y anfitrión de forma fácil. Esta opción es independiente de tener red o no.
      • Se puede compartir el portapapeles. (es decir, se puede copiar texto de máquina anfitrión a huésped y viceversa)


      Para instalar Guest Adittions, con la máquina invitada arrancada, ir a Dispositivos / Instalar Guest Adittions. En la instalación se nos monta una iso de un CD, que son las propias herramientas, seguir la instalación.

      En algunas versiones, el CD iso de las Guest Adittions, hay que bajarlo desde Internet.

      A continuación, vamos a crear una máquina virtual e instalar en ella Windows 10.

      8.3.- Configuración de VirtualBox.

      Instantáneas o snapshot


      Si vamos a instalar algún programa, o queremos hacer pruebas al sistema, y pensamos que pueden fallar esas pruebas, podemos realizar instantáneas al sistema. De esa forma, una vez acabada las nuevas instalaciones o pruebas, podemos decidir, si nos quedamos con la versión más actualizada del Sistema Operativo (Eliminar instantánea) o la versión antigua (Restaurar instantánea)

      Cada instantánea va generando archivo .vdi nuevos con las diferencias.
      Extensiones de discos virtuales. Compatibilidad de programas.

      Extensiones de los discos duros, según programas:

      • VirtualBox → vdi
      • Vmware → vmdk
      • Virtual PC → vhd


      Aun así, no hay problema de compatibilidad entre VMware y VirtualBox, pues se pueden exportar e importar las máquinas. Si necesitas este proceso, puedes seguir el manual en en el siguiente enlace.


      Trasladar una máquina virtual en otro PC: archivo .vdi y archivo .ova


      1. Disco duro. Archivo vdi

      El disco duro de una máquina virtual, es un único archivo .vdi
      La ruta por defecto es $HOME/VirtualBox Vms/nombre_maquina
      (Donde $HOME significa carpeta del usuario)

      Este archivo .vdi, lo podríamos copiar en cualquier otro ordenador, y tener una máquina instalada en un momento. Tendríamos que crear la máquina nueva y en el momento de poner disco duro, decimos que utilizamos disco existente con su ruta.


      2. Máquina completa. Archivo ova

      Otra opción, exportar la máquina entera. Para ello, en menú Archivo/Exportar servicio virtualizado, se obtiene un archivo con extensión .ova
      Este archivo .ova, servirá para importar la máquina en ese PC o en otro. La diferencia, es que el archivo .ova es toda la máquina. Es decir, no hay que crear una máquina nueva, sino simplemente pulsar Archivo/Importar servicio virtualizado.
      Con esta opción, la máquina se creará con el mismo hardware y configuración que la máquina original: procesador, RAM, tarjetas de red, gráfica...


      Administrador de Discos de VirtualBox. ¡Problema: Disco repetido!

      Un tema a tener en cuenta, es que al igual que un disco duro físico, no puede estar en 2 sitios a la vez, no podemos tener duplicado el disco duro en 2 máquinas virtuales, aunque se llamen de forma distinta y tengan cosas distintas.
      Cada disco tiene un número de serie y no puede haber 2 archivos .vdi con igual número de serie (cada disco tiene un UUID que significa identificador único de usuario)

      En Windows, también existe el concepto de UUID, de forma que si en un aula, hay 15 equipos iguales, con el mismo Windows y licencia instaladas, tenemos que cada equipo debe tener un UUID distinto, identificador de usuario único. De hecho, no hay ningún equipo en el mundo que pueda tener el mismo UUID


      Ejemplo que generaría el error

      Tenemos una máquina virtual instalada en el instituto. Copio el archivo .vdi al pendrive, y en casa, la utilizo. Incluso, en casa, puedo instalar en ese archivo vdi otro Sistema Operativo. Si vuelvo a trasladar ese archivo .vdi al instituto e intentar montarlo, provocará error de que ese disco ya está registrado.


      Soluciones: Herramientas clonar máquina, exportar/importar servicio y copiar disco

      Hay hasta 3 soluciones gráficas distintas, incorporadas en las últimas versiones de VirtuarBox que copiarían ese disco, cambiando VirtualBox de forma automática el UUID del disco.

      1. Desde Archivo / Administrador de medios virtuales, seleccionar el disco y pulsar copiar. Nos crea una copia con UUID distinto.

      2. Clonar la máquina en su menú contextual. Observar que clonar máquina, no solo copia el disco, sino que crea otra máquina con sus archivos de configuración.

      3. En Archivo / Exportar el servicio virtualizado (obtener el archivo .ova y a continuación importarlo)


      Configuración de Red en VirtualBox

      Algunas ideas de este apartado, se entenderán mejor cuando veamos los temas de red.
      La máquina virtual tiene tarjeta de red virtual. De hecho se le pueden poner varias tarjetas de red virtuales.
      Esta tarjeta de red virtual, se conectará con la máquina anfitrión según la configuración que se seleccione. Las configuraciones posibles son:

      • No conectado
        Sencillo. La máquina invitada no tiene red.
      • NAT: Network Address Translation
        Opción por defecto en VirtualBox (y la que utilizaremos, salvo en los 2 últimos temas)
        El modo más simple, pues sin ninguna configuración adicional, la máquina virtual navega por Internet.
        Sin embargo, la máquina virtual no se puede conectar, ni con la anfitrión ni con otras máquinas virtuales. No puede conectarse a otras máquinas, y por tanto no puede compartir archivos.
        La dirección IP en la máquina invitada la asigna dinámicamente Virtualbox, pero lo hace un Firewall, que lleva incluido. Este modo es perfecto para realizar todo tipo de pruebas de software, sabiendo que la red no puede infectar a la máquina y al contrario.
      • Bridged / Adaptador Puente
        Se forma un puente entre la tarjeta virtual de la máquina invitada y la tarjeta real de la máquina anfitrión. Es como si fueran la misma tarjeta. A todos los efectos la máquina invitada es como si estuviera conectada a la red como una máquina real.
      • Red Interna (team en Vmware)
        Sirve para crear una red interna visible entre las máquinas invitadas, pero no con la anfitrión ni con la Red general.
        Esta será la opción a utilizar cuando queramos tener una red entre las máquinas virtuales. La utilizaremos en los últimos temas, cuando configuremos máquinas en red.
      • Host-only networking / Adaptador sólo-anfitrión
        En este modo cada máquina invitada solo puede comunicarse con la máquina anfitrión, sin que se puedan comunicar entre las invitadas. El direccionamiento de las mismas es dinámico y lo asigna VirtualBox.

      9.- Ejercicio completo. Instalación de Windows 10 en una máquina virtual.


      Vamos a instalar Windows 10, en una máquina virtual. En el curso utilizaremos las máquinas virtuales, para hacer todas las prácticas, y no depender del sistema operativo que tengáis en vuestra máquina anfitrión.

      9.1.- PASO 1. Instalar VirtualBox y su Pack Extension.

      Instalación de VirtualBox

      El software de virtualización que vamos a utilizar en nuestro curso, es VirtualBox por ser software libre.

      Para descargar el programa, ir a: VirtualBox

      Descargaremos versión para Windows, Linux u OS, según sistema operativo que tengamos instalado en nuestra máquina anfitrión.
      La versión actual de VirtualBox es la 5.2.18
      Una vez descargado, instalamos el software.

      Se muestra captura de paquete a escoger, según máquina anfitrión.

      Iustración de escoger paquete de VirtualBox 5.2.18.
      Miguel Ángel García Lara (CC BY-NC-SA)

      Instalación Extension Pack

      Después de tener instalado el propio software de virtualización, hay que instalar el Extension Pack. Este paquete de software adicional, mejora la interacción de los USB de la máquina host hacia las máquinas cliente.
      Cada VirtualBox, tiene un Extension Pack distinto. Es decir, es distinto el Extension Pack para la versión 5.2.18 que el de la 5.2.16. Sin embargo, no depende de si el sistema anfitrión es Windows o Linux.

      9.2.- PASO 2. Descarga de Windows 10 desde la página de Microsoft.

      Antes de descargar, debemos decidir que versión vamos a instalar. Pues no hay un único Windows 10, (estudiaremos con más detalle las diferencias entre versiones en posteriores temas).
      Por defecto, vamos a descargar versión de 64 bits, pero para ello tenemos que tener suficiente memoria, pues durante el curso, vamos a arrancar varias máquinas a la vez, y para ello necesitamos suficiente memoria RAM.

      • Si en tu ordenador, tienes 8GB o más de RAM, descarga versión de 64 bits.
      • Si no es así, es decir, si como mucho tienes 6GB de RAM, descarga versión de 32 bits.

      Además, la versión que descarguemos, sirve para instalar tanto Windows Home como Windows Pro. Nosotros instalaremos siempre la versión Pro. (Pro, equivale a profesional, con varias ventajas sobre la versión Home, mas pensada para entorno de usuarios domésticos).
      El archivo a descargar es un archivo con extensión .iso.
      Los archivos iso, son imágenes de un CD o DVD, es decir, ese archivo iso, podríamos pasarlo a DVD con cualquier programa de grabación, como el propio grabador de Windows, Nero o Brasero.
      Por tanto, ir al siguiente enlace y descargar la versión de 32 o 64 bits según lo comentado.

      Observación: este enlace funciona de forma distinta si la máquina anfitrión es Windows o Linux.

      • En Linux: Nos aparece enlace para descargar directamente, solo hay que seleccionar idioma y versión de 32 o 64 bits.
      • En Windows hay que descargar herramienta y ejecutarla. Para ello, en la página que aparece en el navegador pulsamos "Descargar herramienta" y "Guardar archivo".
      Ilustración de la página que aparece en el navegador pulsamos "Descargar herramienta" y "Guardar archivo"
      Miguel Ángel García Lara (CC BY-NC-SA)



      Ejecutamos el archivo descargado MediaCreationTool18.03 (lo habitual, es que se encuentre en la carpeta Descargas). El número 18.03 significa que es de marzo del 2018. Por tanto, cuando ejecutes este programa podría ser una versión posterior. Al ejecutar aparece la siguiente captura:

      Ilustración donde se indica donde Aceptar licencia en la herramienta para descarga.
      Miguel Ángel García Lara (CC BY-NC-SA)

      En la siguiente ventana, seleccionamos "Crear medio de instalación" y "Siguiente".

      Ilustración donde se indica pulsar siguiente.
      Miguel Ángel García Lara (CC BY-NC-SA)


      En la ventana siguiente, primero desmarcamos "Usa las opciones recomendadas..." para poder cambiar el resto de opciones. Recomiendo seleccionar idioma español y arquitectura "Ambos" que sirve para que la versión descargada sirva para 32 y 64 bits, o 64 bits, si todos tus ordenadores son de 64 bits.

      Ilustración donde se configura idioma español, edición windows 10, arquitectura ambos y desmarcar usar las opciones.
      Miguel Ángel García Lara (CC BY-NC-SA)

      Una vez descargada la iso, no es necesario grabar en DVD, ni en pendrive, porque otra ventaja de las máquinas virtuales, es poder arrancar la máquina con el archivo .iso como si fuera un DVD.

      9.3.- PASO 3. Crear la máquina virtual.

      Abrimos VirtualBox, en mi caso ya tengo un montón de máquinas virtuales, que se ven reflejadas a la izquierda de la captura:

      Ilustración de máquinas virtuales en VirtualBox.
      Miguel Ángel García Lara (CC BY-NC-ND)


      La primera vez que se abre el programa, esta parte izquierda estará vacía, pues no se habrá creado ninguna máquina todavía.
      Vamos a crear la primera máquina, para instalar Windows 10. Este paso, es como comprar el ordenador, y decir que procesador, memoria y disco duro compramos.

      Para ello ejecutamos el menú Máquina / Nueva. Aparece la siguiente ventana. Pulsamos “modo experto” para seleccionar todo el hardware en una única pantalla.

      Ilustración de configurar máquina nueva en modo experto
      Miguel Ángel García Lara (CC BY-NC-ND)


      Rellenamos los datos de la siguiente captura:

      Ilustración de Configurar memoria y disco duro
      Miguel Ángel García Lara (CC BY-NC-ND)


      El nombre, es el que aparecerá en nuestro menú de VirtualBox. En versión, seleccionamos el sistema operativo que vamos a instalar. En nuestro caso Windows 10 de 64 bits.
      Cuando compramos un ordenador, no es obligatorio informar que vamos a instalar, pero este paso, le sirve a VirtualBox, para configurar el procesador adecuado. Por ejemplo, si le decimos Windows 10 de 32 bits, y luego nos ponemos a instalar un Windows de 64 bits, nos dará error, pues Virtualbox puso un procesador de 32 bits. De la misma forma, ha decidido de forma automática poner 2048 MB de memoria RAM. (1024MB = 1GB, por lo que 2048MB = 2GB). Esta cantidad es la correcta para que se pueda ejecutar Windows 10 de 64 bits.
      En disco duro, dejamos seleccionado, crear un disco ahora, cuando pulsemos crear, nos pedirá el tamaño del disco duro (que disco duro compramos). En esa nueva ventana, cambiamos el tamaño del disco predeterminado que aparece, le ponemos 100 GB. Es importante dejar seleccionado tamaño dinámico, pues si le pusiéramos tamaño fijo, nuestro archivo .vdi pasaría a ocupar directamente 100GB. Y no queremos eso, para más detalles, mirar el apartado anterior de configuración de VirtualBox.

      Ilustración de Seleccionar archivo .vdi para el disco duro
      Miguel Ángel García Lara (CC BY-NC-ND)

      Pulsamos Crear, y ya tenemos la máquina creada. Ya aparece en nuestro menú de VirtualBox.

      Ilustración de menú de máquinas virtuales.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Si pulsamos doble clic en el nombre de la máquina, o en iniciar, encendemos la máquina. Evidentemente, no puede arrancar ningún sistema operativo, pues lo que hemos hecho, es comprar el ordenador, pero no hemos instalado ningún sistema operativo.

      9.4.- PASO 4. Poner el archivo iso en la máquina virtual.

      Esto equivale, a poner en una máquina real el DVD de Windows en la unidad lectora. Tenemos que configurar y poner la iso descargada en el paso 1, en nuestra unidad de DVD. Para ello, pulsar menú contextual en el nombre de la máquina e ir a Almacenamiento. Vemos que aparece nuestro disco duro, es decir, nuestro archivo Windows10Sistemas.vdi y la unidad de DVD vacía. Desplegamos en dibujo del CD, para seleccionar nuestro archivo iso descargado en el paso 2.

      Ilustración de Introducir la iso de instalación de Windows dentro de la máquina.
      Miguel Ángel García Lara (CC BY-NC-SA)


      Pulsamos en botón Aceptar. Debe aparecer el nombre del archivo iso, tal como en la imagen.

      Ilustración de Cd de Windows introducido en la máquina virtual.
      Miguel Ángel García Lara (CC BY-NC-SA)



      9.5.- PASO 5. Instalación de Windows.

      Este es el paso principal de la instalación. Ahora sería idéntico en una máquina real. Si hubiera sido una máquina real, habríamos puesto el DVD de Windows e iniciaríamos el ordenador.
      Durante la instalación se realizarán los siguientes pasos, que vamos a ilustrar con sus correspondientes capturas de pantalla:
      Este método es válido tanto para instalar Windows 10 en un disco duro nuevo, pero también podría aplicarse sobre un disco con un sistema operativo preexistente.

      Arrancamos la máquina virtual, con doble clic en el nombre o pulsando en Iniciar (en la barra de menú). Cuando empiece a leer la iso, se verá en pantalla el logo de Windows. A continuación, aparece la siguiente pantalla para seleccionar idioma de instalación. Pulsamos en siguiente.

      Ilustración de Seleccionar español al instalar Windows.
      Miguel Ángel García Lara (CC BY-NC-ND)

      Nos aparece pantalla, para preguntarnos si queremos instalar o reparar. La opción de reparar, sería para reparar el arranque de un sistema Windows que no arranque bien. Ahora, queremos instalar Windows, por lo que seleccionamos “Instalar ahora”

      Ilustración de Seleccionar instalar Windows.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Aparece la ventana pidiendo la clave del producto. Si tenemos un número válido de licencia, lo ponemos. Sino es así, instalamos la versión de evaluación, para ello seleccionamos “No tengo clave del producto”

      Ilustración donde  seleccionamos “No tengo clave del producto”.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Nos aparece la ventana para preguntar que versión de Windows instalamos.
      Seleccionamos Windows 10 Pro

      Ilustración de seleccionar el sistema operativo Windows 10 Pro.
      Miguel Ángel García Lara (CC BY-NC-ND)


      En la siguiente ventana, pulsamos “Acepto los términos de licencia” y “Siguiente”

      Ilustración de Aceptar términos de la licencia
      Miguel Ángel García Lara (CC BY-NC-ND)

      Nos aparece la ventana de la figura siguiente, donde nos pregunta "Actualización" o "Instalación personalizada"
      La opción “Actualización” se utilizaría para actualizar de un sistema operativo antiguo de Windows a Windows 10. En esta opción, no se borran los archivos del usuario. En cualquier caso, en general, es recomendable si vamos a poner un sistema operativo nuevo, realizar una instalación de cero, borrando el disco duro. Para ello, utilizaríamos instalación Personalizada. La instalación personalizada, puede ser utilizada para:

      • Reemplazar completamente un sistema anterior.
      • Instalación única en un disco Limpio.
      • Instalación en otra partición con arranque múltiple.
      • Gestionar particiones de los discos del sistema.
      • Crear, ampliar, eliminar, o formatear particiones.


      Por tanto, en nuestro caso seleccionamos “Personalizada”.

      Ilustración de seleccionar personalizada.
      Miguel Ángel García Lara (CC BY-NC-ND)


      La siguiente ventana, nos pregunta dónde queremos instalar Windows.
      De momento nos aparece que el disco está vacío, es decir, “Espacio sin asignar“. Nos pregunta que en que partición queremos instalar Windows. Para ello, tenemos que crear primero partición, pulsando en “Nuevo”

      Ilustración de instalar windows en una nueva partición.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Vamos a instalar Windows en una partición de 50GB, para ello, ponemos tamaño 50000MB. De forma que en el disco, tendremos 50 GB libres para particiones futuras. En general, es buena idea tener 2 particiones en el disco duro: una partición con el sistema operativo, y otra partición con todos los datos. De esta forma, si en un futuro, se quiere reinstalar sistema operativo, podríamos hacerlo sin tocar la partición de datos.

      Ilustración de Crear partición de 50GB para la instalación de Windows.
      Miguel Ángel García Lara (CC BY-NC-ND)

      El sistema nos pregunta que si queremos crear una partición pequeña de forma automática. En esta partición, Windows instala los archivos de arranque. Pulsamos que si.

      Ilustración de Se crea otra partición de forma automática.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Aparece una ventana con las particiones a crear:

      • Partición de 500 MB, creada automáticamente para archivos de sistema.
      • Partición creada de 48,82GB (no es de 50GB, porque 1GB = 1024 MB)
      • El espacio restante del disco, es espacio sin utilizar 51,2GB
      Ilustración de Seleccionar la partición de 50GB para instalar el sistema.
      Miguel Ángel García Lara (CC BY-NC-ND)

      Antes de pulsar siguiente, pulsaríamos formatear si el disco estuviera utilizado previamente, para borrar los datos anteriores.
      Es importante, tener seleccionada la partición de 48GB, antes de pulsar siguiente. Pues con eso decimos que en ella es donde vamos a instalar Windows 10. Una vez decido donde se va a instalar el nuevo sistema operativo, se empieza la instalación propiamente dicha...

      Se pasa por varias fases en la instalación.

      Ilustración de Realizando instalación.
      Miguel Ángel García Lara (CC BY-NC-ND)
      Ilustración de Sigue la instalación de Windows.
      Miguel Ángel García Lara (CC BY-NC-ND)
      Ilustración de Terminando instalación.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Una vez instalado, aparece el asistente Cortana. Podemos quitar la voz, pulsando icono abajo a la derecha. Nos queda configurar los datos de localización, teclado y usuario del sistema.

      Ilustración de Configurar idioma español.
      Miguel Ángel García Lara (CC BY-NC-ND)


      En la conexión de red, configuramos omitir. La máquina virtual va a salir por defecto a Internet, utilizando la conexión de la máquina anfitrión.

      Ilustración de omitir configuración de red.
      Miguel Ángel García Lara (CC BY-NC-ND)


      La siguiente pantalla, pregunta el nombre del usuario que va a utilizar la máquina. En esta pantalla, pon tu apellido primero. Pon una clave (sino te quieres liar, aunque en entorno profesional no se debe hacer, pon clave igual que el usuario, pero no dejes los usuarios sin clave)

      Ilustración de Rellenar usuario tu_apellido.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Después, aparece una pantalla con preguntas de seguridad, para en caso que se nos olvide la clave el sistema pueda ayudarnos. Responde lo que quieras en estas preguntas.
      Después, Windows pregunta, si queremos que Cortana sea nuestro asistente. Igualmente, pregunta si queremos informar de nuestra ubicación. Responde lo que quieras en estas preguntas y las siguientes que aparecen.

      Ya tenemos Windows 10 instalado. De momento, la resolución gráfica no está adaptada a nuestra tarjeta, por lo que es posible que tengamos que usar barras de desplazamiento para ver toda la pantalla.

      Ilustración de Windows totalmente instalado con la pantalla de escritorio.
      Miguel Ángel García Lara (CC BY-NC-ND)

      Extraer el CD


      Apagamos la máquina de Windows 10 recién instalada. Si iniciamos de nuevo, resulta que seguimos teniendo la iso del DVD de Windows dentro. Es decir, en una máquina real, abriríamos la bandeja del DVD para extraerlo. En la máquina virtual, lo conseguimos según la siguiente captura.

      Ilustración de Extraer iso de Windows, pulsar desplegable y seleccionar unidad anfitrión.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Una vez extraído, en almacenamiento, sigue apareciendo la unidad de DVD, pero vacío, sin ningún disco.

      Ilustración de apareciendo la unidad de DVD, pero vacío, sin ningún disco.
      Miguel Ángel García Lara (CC BY-NC-ND)



      9.6.- PASO 6. Instalar las Guest Adittions.

      En una máquina real, al instalar Windows 10, se habrían instalado bastantes drivers que Windows habría reconocido automáticamente. Pero algunos drivers, los tendríamos que instalar con el driver que facilita el fabricante del hardware (tarjeta gráfica, tarjeta de red, impresora…)

      En nuestro caso, instalamos las Guest Adittions, que sirven para compatibilizar el hardware de la máquina anfitrión en la máquina huésped.

      Para ello, con la máquina Windows 10 arrancada e iniciada sesión, ir a Almacenamiento / Instalar Guest Adittions. Esto introduce un CD de VirtualBox con estas herramientas.

      Ilustración de Instalar Guest Adittions donde se muestra en menú de guest aditions.
      Miguel Ángel García Lara (CC BY-NC-ND)
      Ilustración de En equipo, abrid CD e instalar Guest Adittions, donde se muestra la unidad de cd con la guest additions.
      Miguel Ángel García Lara (CC BY-NC-ND)

      Si vamos a Equipo, aparece el CD introducido. Hacemos doble clic, y permitimos cambios para ejecutar la instalación.

      Ilustración de Instalando Guest Adittions, donde da la bienvenida al proceso de instalación.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Una vez finalizada la instalación, reiniciamos la máquina.
      Al reiniciar la máquina, pulsamos 2 veces el botón maximizar de la máquina. Ahora veremos, que la máquina virtual utiliza la pantalla completa (se ha instalado el driver de la gráfica correcto) y ya no nos hacen falta las barras de desplazamiento.
      Por tanto, siempre que instalemos una máquina virtual, lo primero que haremos es instalar las Guest Adittions.


      Cómo utilizar un pendrive o un Cd en la máquina huésped

      Con la máquina virtual arrancada, podemos escribir o leer información de nuestro pendrive. Para ello, solo tenemos que montarlo. La forma es ir al menú Dispositivos / USB o Dispositivos / unidades ópticas.
      De esa forma, podemos trasladar fácilmente nuestros archivos entre distintas máquinas, utilizando los medios de almacenamiento externos.

      Aun así, VirtualBox, facilita la opción de configurar una carpeta compartida, entre máquinas anfitrión y huésped.

      Configurar carpeta compartida entre máquina anfitrión y huesped

      Con la máquina virtual apagada, y en configuración, añadimos la carpeta compartida. Como en el curso, vais a utilizar varias máquinas virtuales (en casi todas las asignaturas), os recomiendo crear una carpeta “Compartir” en el escritorio de vuestra máquina anfitrión y compartirla en todas las máquinas huésped. Recordar, que esta opción solo funciona con las Guest Adittions instaladas.

      Ilustración de Crear una carpeta compartida con la ventana de agregar una carpeta compartida.
      Miguel Ángel García Lara (CC BY-NC-ND)


      Montar la carpeta, como en la captura. Es importante marcar la opción automontar.
      Una vez arrancada la máquina huésped, ¿cómo se acede a la carpeta?, hay que ir a Equipo, y aparece con una letra nueva, como una unidad de la red. Ver captura.

      Ilustración de La carpeta compartida aparece como si estuviera en la red, donde aparece la carpeta compartida.
      Miguel Ángel García Lara (CC BY-NC-ND)



      Anexo.- Licencias de recursos.

      Licencias de recursos utilizados en la Unidad de Trabajo.
      Recurso (1) Datos del recurso (1) Recurso (2) Datos del recurso (2)
      Partes internas de un disco duro.

      Autoría: Carlos Emilio Joaqui

      Licencia: Dominio Público

      Procedencia: http://es.wikipedia.org/wiki/Archivo:Cilindro_Cabeza_Sector.svg

       Imagen de un cd-rom en su caja protectora.

      Autoría: gracevi_3

      Licencia: CC -by-sa

      Procedencia: http://www.flickr.com/photos/40542772@N05/4015112971/in/photostream/

       Esquema del láser utilizado en los cd-roms.

      Autoría: Elguardiandepikamierda

      Licencia: CC-by-sa

      Procedencia: Montaje sobre http://es.wikipedia.org/wiki/Archivo:LectoraCD.PNG

      Blu-Ray

      Autoría: masatsu

      Licencia: CC BY-SA

      Procedencia: http://www.flickr.com/photos/masatsu/4271831332/sizes/l/in/photostream/

      Grafico comparativo de láser.

      Autoría: Imageshack

      Licencia: Copyright (cita)

      Procedencia: http://imageshack.us/photo/my-images/471/quemado1yu.jpg/

      varias memorias flash

      Autoría: Zxb

      Licencia: CC-by

      Procedencia: http://upload.wikimedia.org/wikipedia/commons/a/a4/Flash_memory_cards_size.jpg

      SI01_AUXR48_R22_Flash_memory_cards_size.jpg

      Autoría: Iván PC

      Licencia: CC-by-sa

      Procedencia: http://www.flickr.com/photos/ivi/2628120653/

      Componentes de la arquitectura de un ordenador según el diseño de Von Neumann.

      Autoría: David Strigoi

      Licencia: dominio público

      Procedencia: http://es.wikipedia.org/wiki/Archivo:Arquitecturaneumann.jpg

      Ordenador de pequeñas dimensiones.

      Autoría: Wyglif

      Licencia: Dominio público.

      Procedencia: http://es.wikipedia.org/wiki/Archivo:Shuttle_SN41G2.jpg

      Palanca de juegos con botones para el control de movimientos y acciones .

      Autoría: martitoy

      Licencia: CC-by-nc

      Procedencia: http://www.flickr.com/photos/martix/2960731006/

      Tableta digitalizadora y lápiz apuntador.

      Autoría: CosmoCAX

      Licencia: CC-by-nc-sa

      Procedencia: http://www.flickr.com/photos/11390952@N05/1710757242/

      Muestra un plotter imprimiendo un cartel gráfico de gran tamaño.

      Autoría: zusjes weblog

      Licencia: CC-by-nc-nd

      Procedencia: http://www.flickr.com/photos/zusje/261629830/sizes/z/in/photostream/

      Deep Blue. Famoso superodenador por conseguir ganar un torneo de ajedrez enfrentándose al  campeón Garry Kasparow

      Autoría: James the photographer

      Licencia: CC-BY

      Procedencia: http://www.flickr.com/photos/22453761@N00/592436598/

      Imagen del superodenador español llamado  Caléndula  instalado en  Universidad de León, gestionado por la Fundación del Centro de Supercomputación de Castilla y León.

      Autoría: lumunozf

      Licencia: CC-by-sa

      Procedencia: http://es.wikipedia.org/wiki/Archivo:Calendula_g.jpg#filelinks

      Imagen del modelo de mainframe  de IBM System z9.

      Autoría: Ing. Richard Hilber

      Licencia: Dominio público

      Procedencia: http://commons.wikimedia.org/wiki/File:Inside_Z9_2094.jpg

      Imagen del miniordenador modelo NORD-1.

      Autoría: Thomas Skogestad

      Licencia: CC-by-sa

      Procedencia: http://upload.wikimedia.org/wikipedia/commons/5/5e/ND_NORD-1.TS.jpg

      Puesto de trabajo gráfico con tres monitores

      Autoría: JonathanLamb

      Licencia: dominio publico

      Procedencia: http://commons.wikimedia.org/wiki/File:AWIPS-3-head-workstation.jpg

      Esquema que muestra el tipo de conexión de los terminales clientes a la maquina servidora.

      Autoría: Alancaio

      Licencia: CC-by-sa

      Procedencia: http://es.wikipedia.org/wiki/Archivo:Cliente-servidor.jpeg

      Un usuario utiliza una pantalla gráfica, señalando con un puntero.

      Autoría: sukiweb

      Licencia: CC-by-sa

      Procedencia: http://www.flickr.com/photos/sukiweb/2178016562/sizes/z/in/photostream/

      Portátil que adapta su pantalla para su uso como tablero gráfico

      Autoría: umpcportal.com

      Licencia: CC-by-sa-nd

      Procedencia: http://www.flickr.com/photos/umpcportal/3488934712/sizes/l/in/photostream/

      Un usuario sujeta con su mano un pequeño tablet  PC.

      Autoría: umpcportal.com

      Licencia: CC-by-nc-nd

      Procedencia: http://www.flickr.com/photos/umpcportal/5456354523/sizes/z/in/photostream/

      Un usuario sujeta en su mano un PDA.

      Autoría: jnxyz

      Licencia: CC-by-nc

      Procedencia: http://www.flickr.com/photos/jnxyz/212388666/sizes/m/in/photostream/

      Se muestran sobre una mesa tres modelos de smartfones.

      Autoría: sparktography

      Licencia: CC-by-nc

      Procedencia: http://www.flickr.com/photos/sparktography/166881383/sizes/z/in/photostream/

      En este esquema gráfico de un chip set genérico se puede apreciar como se interconectan los distintos elementos y que parte del chipset se encarga de su control

      Autoría: José Carlos Gallego Cano

      Licencia: CC-by-sa

      Procedencia: http://commons.wikimedia.org/wiki/File:Esquema_chipset.jpg