Está en la página 1de 76

TECNOLOGÍAS DE LA INFORMACIÓN

EN LINEA

Fundamentos de tecnología de información y comunicación


3 créditos

Docente Autor:

Ing. Yohanna Daza Alava Mg.

Titulaciones Semestre

• Fundamentos de tecnología de información Primero


y comunicación

Tutorías: El profesor asignado se publicará en el entorno virtual de aprendizaje


online.utm.edu.ec), y sus horarios de conferencias se indicarán en la sección
CAFETERÍA VIRTUAL.

Período mayo/septiembre 2023

1
Índice

Contenido

2.1 Fundamentos del Software ......................................................................................................... 4


2.1.1 Definiciones básicas del software .............................................................................................. 5
2.1.2 Clasificación del Software .......................................................................................................... 6
2.1.3 Fases del proceso de desarrollo de software ............................................................................ 9
2.1.4 Sistemas de Información.......................................................................................................... 12
2.1.5 Lenguajes de Programación ..................................................................................................... 14
2.1.6 Sistemas embebidos para telecomunicaciones ....................................................................... 27
2.2 Sistema operativo ........................................................................................................................... 29
2.2.1 Introducción a los sistemas operativos.................................................................................... 29
2.2.2 Funciones básicas del sistema operativo ................................................................................. 31
2.2.3 Clasificación de sistemas operativos........................................................................................ 36
2.2.4 Sistemas operativos propietarios y libres ................................................................................ 42
2.3 Máquinas virtuales ................................................................................................................... 54
2.3.1 Introducción a las máquinas virtuales .............................................................................. 54
2.3.2 Clasificación de las máquinas virtuales ............................................................................. 55
2.3.3 Instalación de máquinas virtuales..................................................................................... 57
Bibliografía ............................................................................................................................................ 74

2
Introducción a la Unidad II

El Software es la parte lógica de un ordenador, se considera intangible y permite el


manejo de recursos de hardware y la realización de tareas específicas, es lo que
permite la interacción humano máquina, puesto que los computadores solo entienden
códigos binarios, altas y bajas tensiones de voltaje.

Podemos encontrar el software en variedades de instrumentos en la actualidad, en


computadores, teléfonos celulares, Smart-wachts, dispositivos electrónicos,
dispositivos de reproducción de audio, etc.

El término software nació en 1953, fue popularizado por Paul Niguette quien es
considerado el creador del término, se puede leer “Cuando dije por primera vez
software en voz alta, la gente de mí alrededor dijo, '¿Eh?'. Desde el principio me
pareció la palabra demasiado informal para escribirla y demasiado embarazosa para
decirla. Sin embargo, de vez en cuando iba soltando la palabra ‘software’ en
discursos, conferencias y entrevistas con los medios a lo largo de los años cincuenta”,
siendo así como esta palabra sería aceptada en la industria de todo el mundo.

En la Unidad se analiza el Sistema Operativo (Operating System, OS) que


corresponde a un programa en ejecución que se encarga de actuar como
intermediario entre el usuario y la máquina. Los principales objetivos corresponden a
la administración del hardware y ser una interfaz para el usuario, de tal forma que este
pueda interactuar con la máquina.

El sistema operativo deberá proveer de un ambiente para ejecutar los programas del
usuario, siendo este el único con privilegios de acceso directo al hardware y los
procesos deberán mediante el sistema operativo acceder a los recursos disponibles.

También el estudiante estará en capacidad de usar máquinas virtuales en la cuál de


instalaran sistemas operativos libres y propietarios, posteriormente aprenderá a
utilizar herramientas de ofimática en línea, gestores bibliográficos y estrategias de
búsqueda de información.

El saber conocer y realizar todos estos procesos contribuirá a construir los pilares
fundamentales para la formación del estudiante en toda su carrera.

3
Resultado de Aprendizaje

Describir las características del software y sistemas operativos y analizar su


funcionamiento para su aplicación en el proceso de enseñanza de aprendizaje.

Indicadores y logros de la unidad

• Conocer los fundamentos básicos de los sistemas operativos y el software para


su aplicación

Ilustraciones graficas

Sabías que. - La presente imagen dentro del manual mostrara información


interesante y novedosas que no conocías.

Recuerde que. - La presente imagen dentro del manual permite recordar


información que es relevante y que vas necesitar en tu vida profesional.

Tips de cuestionario. - Un cuestionario es un conjunto de preguntas que se


confecciona para obtener información con algún objetivo en concreto. Por cada tema
de la unidad se tendrá cuestionario que el estudiante debe resolver.

Videos. - Para complementar contenidos de la unidad dentro del manual se


tiene videos que permitirá al estudiante revisar y explorar conocimientos auditivos y
visuales.

2.1 Fundamentos del Software

4
2.1.1 Definiciones básicas del software

La definición más formal de software es la atribuida a la IEEE (Instituto de Ingenieros


Eléctricos y Electrónicos), en su estándar 729: la suma total de los programas de
cómputo, procedimientos, reglas, documentación y datos asociados que forman parte
de las operaciones de un sistema de cómputo.

Software es la parte lógica de un ordenador, lo que se puede considerar como


intangible, que permite el manejo de los recursos y la realización de tareas
específicas, también es denominado en su conjunto "programas de ordenador".

El software posibilita que las personas puedan interaccionar con los ordenadores,
como se explica en otro capítulo de esta documentación, el hardware de un ordenador
electrónico trabaja con la electrónica binaria, es decir con tan sólo ceros y unos,
mientras que los humanos gozamos de un lenguaje mucho más complejo.

Lo que conocemos como software no surgió con el primer ordenador electrónico, sino
que ha evolucionado paulatinamente a lo largo del desarrollo de la electrónica, los
ordenadores primitivos se programaban modificando el cableado de los circuitos
electrónicos. En 1945, el matemático John Von Neumann (1903-1957), que trabajó
con los creadores del ordenador ENIAC, J. Presper Eckert (1919-1995) y John
Mauchly (1907-1980), escribió un informe en el que sugería que las instrucciones de
un programa podrían almacenarse en la memoria junto con los datos. A partir de
entonces los ordenadores se diseñaron con el concepto de programa almacenado,
que dio lugar a la industria del software. Hasta el momento se han definido unos 2500
lenguajes de programación, siendo muy pocos los que han logrado una amplia
difusión. El más reciente es Go, diseñado por la famosa empresa del buscador
Google.

Los programas son un conjunto de instrucciones informáticas, diseñadas para


resolver problemas, que le indican al ordenador los pasos a seguir. Estos programas,
habitualmente se llevan al disco duro u otro dispositivo de almacenamiento y en el
momento que se han de ejecutar se vuelcan a la memoria RAM del ordenador

Por ejemplo, si tenemos un ordenador tipo PC y queremos imprimir un documento, se


efectuará el siguiente proceso: una vez arrancado el ordenador, el sistema operativo

5
(por ejemplo, Linux) se carga en la memoria RAM desde el disco duro, seguidamente
se carga en memoria el programa editor de textos (por ejemplo, Writer) para a
continuación escribir el texto que deseemos o recuperarlo también de un soporte de
almacenamiento si lo habíamos escrito previamente. Por último el documento se
envía a la impresora (Barzanallana, s.f.).

Recuerde que. – “Cada vez que usted usa una computadora, un teléfono inteligente, una
consola de videojuegos o muchos otros dispositivos electrónicos, usted está usando algo que se
ejecuta con un software”

2.1.2 Clasificación del Software

El software es la parte inmaterial del ordenador que permite que los diferentes
componentes de hardware funcionen. Se trata de un conjunto de instrucciones, datos
o `programas que ejecutan tareas concretas dentro del sistema informático (Lázaro,
2019).

El software se clasifica en tres grupos:

• Software de sistema,
• Software de aplicación, y;
• Software de programación.

Software de Sistemas: Es la plataforma sobre la que se asienta el hardware y las


aplicaciones informáticas. Este tipo de programa informático está escrito con un
lenguaje de programación de características de bajo nivel o de primera generación;
esto es, un lenguaje cuyas instrucciones controlan sin intermediarios el hardware
como es el caso en el lenguaje de máquina y los lenguajes ensambladores. Por
Ejemplo: El sistema Operativo de un equipo informático (Lázaro, 2019).

6
Figura 1. Software de Sistemas. (Barzanallana R. , 2017)

Dentro del Software de Sistemas también se encuentran:

- Antivirus
- Utilidades de control de disco duro (herramientas de formateo y similares)
- Controladores de hardware o drivers
- Traductores de lenguajes informáticos
- Cargadores de programas
- Algunos BIOS y UEFI
- Gestores de arranque o bootloaders
- Hipervisores

Software de Aplicación, Contiene todos y cada uno de esos programas y utilidades


que derivan de una programación de software y, que cumplen una tarea específica,
en casi cualquier área de la vida diaria, que se usan a través de dispositivos móviles
y computadores. Las aplicaciones son el producto final que se ofrece al consumidor
(Redator, 2019).

Figura 2. Software de Aplicaciones. (Barzanallana R. , 2017)

7
- Aplicaciones de ofimática: son todas aquellas utilidades informáticas que
están diseñadas para tareas de oficina con el objetivo de optimizar,
automatizar y mejorar las tareas en esta actividad;
- Bases de datos: colección de información digital de manera organizada
para que un especialista pueda acceder a fragmentos en cualquier
momento.
- videojuegos: juegos electrónicos donde una o más personas interactúan
con imágenes de video a través de controles físicos o movimientos
corporales.
- Software empresarial: puede decirse que es toda aquella aplicación que
está creada para optimizar, automatizar o medir la productividad de alguna
industria o empresa.
- Software educativo: todos aquellos productos digitales que tienen como
objetivo enseñar algún tema en específico al usuario de cualquier nivel y
facilitar el proceso de aprendizaje.
- Software de gestión: sistema integrado por varias herramientas para ser
utilizado en tareas relacionadas con la administración o el cálculo numérico.

Software de programación: Permite al usuario desarrollar sus propias herramientas


a través de un lenguaje de programación, compiladores, herramientas de debugging
o depurado y similares. Dado que existen numerosas aplicaciones posibles para
el software, es difícil establecer una clasificación robusta y libre de interpretaciones
según su utilidad. La taxonomía de los programas informáticos es un problema
suficientemente complejo como para que en 2007 Microsoft se pusiese manos a la
obra para crear un listado organizado de los mismos (Lázaro, 2019).

Desde entonces se ha sucedido una taxonomía detrás de otra; a continuación,


presentamos de forma resumida (sin definiciones) la empleada por la International
Data Corporation (IDC) en 2018, redactada por Rasmus Andsberg y Dan Vesset:

Aplicaciones de mercado

- Aplicaciones colaborativas
- Aplicaciones de planificación y gestión de trabajos
- Aplicaciones de gestión de recursos empresariales

8
- Aplicaciones de gestión de la cadena de aprovisionamiento
- Aplicaciones de producción y operaciones
- Aplicaciones de ingeniería
- Aplicaciones de gestión de relaciones clientelares

Aplicaciones para desarrollo y presentación en mercado

- Software de análisis e inteligencia artificial


- Software de gestión de información
- Software de orquestación e integración
- Software de desarrollo de aplicaciones

Software de infraestructura de sistemas

- Software de gestión de sistema y servicios


- Software de red
- Software de seguridad
- Software de almacenamiento

2.1.3 Fases del proceso de desarrollo de software

Cada nueva idea de un programa debe pasar por una serie de etapas de desarrollo.
A nivel general y para el estudio de esta asignatura se consideran seis (6):

• Análisis de Requisitos
• Diseño y Arquitectura
• Desarrollo o Programación
• Pruebas
• Producción
• Mantenimiento

Cada empresa o incluso cada desarrollador pueden tener una serie de sub-etapas y
así mismo modificar las etapas generales para acomodarse a su estilo. Algunos
desarrollos son denominados así porque necesita de algunos objetos nuevos, pero
pueden ser mejoras o correcciones sobre otros proyectos.

9
Figura 3. Fases del proceso de desarrollo de software. (Puebla, 2008)

Sabías que “El ciclo de vida de un programa o software no es más que el modelo pragmático
que un equipo de desarrolladores sigue para crear un producto digital. Este modelo no es único, y se
utiliza el término de una manera más que todo general, ya que cada equipo puede seguir su propio
camino para desarrollar un software”.

1. Análisis de requisitos

Es la primera de las etapas de desarrollo, corresponde a escuchar las peticiones para


el sistema. Se planifica la forma de llevar las ideas a un software, acá no debe ser un
impedimento el lenguaje de programación ni la infraestructura (Ortiz, 2016).

Es decir, es el proceso de investigar un problema que se quiere resolver. Definir


claramente el Problema que se desea resolver o el sistema que se desea crear.
Identificar los componentes principales que integrarán el producto (Anónimo, s.f.)

2. Diseño y arquitectura

Es el proceso de utilizar la información recolectada en la etapa de análisis al diseño


del producto. La principal tarea de la etapa de diseño es desarrollar un modelo o las
especificaciones para el producto o Componentes del Sistema. (Anónimo, s.f.)

3. Programación

Reducir un diseño a código puede ser la parte más obvia del trabajo de ingeniería de
software, pero no es necesariamente la porción más larga. La complejidad y la

10
duración de esta etapa está íntimamente ligada al o a los lenguajes de programación
utilizados (Puebla, 2008).

4. Pruebas

Consiste en comprobar que el software realice correctamente las tareas indicadas en


la especificación. Una técnica de prueba es probar por separado cada módulo del
software, y luego probarlo de forma integral, para así llegar al objetivo. Se considera
una buena práctica el que las pruebas sean efectuadas por alguien distinto al
desarrollador que la programó, idealmente un área de pruebas; sin perjuicio de lo
anterior el programador debe hacer sus propias pruebas. En general hay dos grandes
formas de organizar un área de pruebas, la primera es que esté compuesta por
personal inexperto y que desconozca el tema de pruebas, de esta forma se evalúa
que la documentación entregada sea de calidad, que los procesos descritos son tan
claros que cualquiera puede entenderlos y el software hace las cosas tal y como están
descritas. El segundo enfoque es tener un área de pruebas conformada por
programadores con experiencia, personas que saben sin mayores indicaciones en
qué condiciones puede fallar una aplicación y que pueden poner atención en detalles
que personal inexperto no consideraría (Puebla, 2008).

5. Documentación

Todo lo concerniente a la documentación del propio desarrollo del software y de la


gestión del proyecto, pasando por modelaciones (UML), diagramas, pruebas,
manuales de usuario, manuales técnicos, etc; todo con el propósito de eventuales
correcciones, usabilidad, mantenimiento futuro y ampliaciones al sistema (Puebla,
2008).

6. Mantenimiento

Consiste en corregir problemas del producto y re-liberar el producto como una nueva
versión o revisión (producto mejorado) (Anónimo, s.f.).

Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor
de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento. Una
pequeña parte de este trabajo consiste en arreglar errores, o bugs. La mayor parte

11
consiste en extender el sistema para hacer nuevas cosas. De manera similar,
alrededor de 2/3 de toda la ingeniería civil, arquitectura y trabajo de construcción es
dar mantenimiento (Puebla, 2008).

Enlace de video ciclo de vida del software.-


https://www.youtube.com/watch?v=QHOu7CEJR88

2.1.4 Sistemas de Información

Un sistema de información es un conjunto de datos que interactúan entre sí con un


fin común. En informática, los sistemas de información ayudan a administrar,
recolectar, recuperar, procesar, almacenar y distribuir información relevante para los
procesos fundamentales y las particularidades de cada organización (Chen, 2019).

La importancia de un sistema de información radica en la eficiencia en la correlación


de una gran cantidad de datos ingresados a través de procesos diseñados para cada
área con el objetivo de producir información válida para la posterior toma de
decisiones (Chen, 2019)

Características de un sistema de información

Un sistema de información se caracteriza principalmente por la eficiencia que procesa


los datos en relación al área de acción. Los sistemas de información se alimentan de
los procesos y herramientas de estadística, probabilidad, inteligencia de negocio,
producción, marketing, entre otros para llegar a la mejor solución.

Un sistema de información se destaca por su diseño, facilidad de uso, flexibilidad,


mantenimiento automático de los registros, apoyo en toma de decisiones críticas y
mantener el anonimato en informaciones no relevantes (Chen, 2019).

Componentes de un sistema de información

Los componentes que forman un sistema de comunicación son:

- La entrada: Por donde se alimentan los datos.

12
- El proceso: El uso de las herramientas de las áreas contempladas para
relacionar, resumir o concluir.
- La salida: Refleja la producción de la información, y
- La retroalimentación: Los resultados obtenidos son ingresados y procesados
nuevamente.

Los elementos que constituyen un sistema de información se agrupan en las tres


dimensiones que abarca el sistema:

- Dimensión Organización: Forma parte de la estructura de la organización,


por ejemplo, las bases de modelos de negocios o el gerente de diálogo.
- Dimensión Personas: Fabrican y producen la sinergia necesaria para que el
sistema funcione, por ejemplo, la introducción y utilización de las bases de
datos.
- Dimensión Tecnología: Constituye la implementación para la formación de la
estructura, por ejemplo, sala de servidores y sistemas de reserva de energía.

Tipos de sistemas de información

En la cultura organizacional, existen varios tipos de sistemas de información según el


nivel operacional en que se utilicen. Algunos de los sistemas más comunes se
encuentran a continuación:

Para procesamiento de datos: (TPS: Traditional processing system): nivel


operativo, destinado a procesar grandes volúmenes de información alimentando
grandes bases de datos.

Sistema de expertos o basados en el conocimiento: (KWS: Knowledge working


systems): nivel operativo, selecciona la mejor solución para el problema presentado
(Chen, 2019).

Para la administración y gerenciales: (MIS: Management information systems):


nivel administrativo, gestiona y elabora informes periódicos (Chen, 2019).

Para la toma de decisiones: (DSS: Decision support systems): nivel estratégico, se


destaca por su diseño e inteligencia que permite una adecuada selección e
implementación de proyectos (Chen, 2019).

13
Para ejecutivos: (EIS: Executive information systems): nivel estratégico, sistema
personalizado para cada ejecutivo para que pueda ver y analizar datos críticos.

Sistemas funcionales relacionados con los procesos internos de la


organización: forman la base de los sistemas de información para ejecutivos.
Algunas de las más conocidas implementadas para las necesidades de cada área
son:

- Sistema de información de marketing (SIM)


- Sistema de información de producción (SIP)
- Sistema de información financiera (SIF)
- Sistema de información de recursos humanos (SIRH)
- Sistema de información para directivos (SDD)
- Sistema de información geográfica (SIG)
- Sistema de información legislativa (SIL)

2.1.5 Lenguajes de Programación

En informática, un lenguaje de programación es un lenguaje artificial que se utiliza


para expresar programas de computador. Cada computador, según su diseño,
“entiende” un cierto conjunto de instrucciones elementales (lenguaje de máquina). No
obstante, para facilitar la tarea del programador, se dispone también de lenguajes de
alto nivel más fáciles de manejar y que no dependen del diseño específico de cada
computador. Los programas escritos en un lenguaje de alto nivel no podrán ser
ejecutados por un ordenador mientras no sean traducidos al lenguaje propio de éste.

Figura 4. Lenguajes de Programación. (Puebla, 2008)

14
Para definir un lenguaje de programación es necesario especificar:

• Conjunto de símbolos y palabras claves utilizables.


• Reglas gramaticales para construir sentencias (instrucciones, ordenes)
sintáctica y semánticamente correctas.
a) Sintaxis: Conjunto de normas que determinan cómo escribir las
sentencias del lenguaje.
b) Semántica: Interpretación de las sentencias. Indica el significado de las
mismas.

Paradigma de la Programación
Un paradigma de programación es una colección de patrones conceptuales que
moldean la forma de razonar sobre problemas, de formular soluciones y de estructurar
programas. Los paradigmas de programación son:
- Programación imperativa
- Programación funcional
- Programación lógica
- Programación orientada a objetos
Programación imperativa:
En este paradigma, un programa es una secuencia finita de instrucciones, que se
ejecutan una tras otra. Los datos utilizados se almacenan en memoria principal y se
referencia utilizando variables (Rodríguez, 2003).

Ejemplos de lenguajes que utilizan este paradigma: Pascal, Ada, Cobol, C, Modula-
2 y Fortran.

Programación Funcional:

Es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado


de resultado y recibe como entrada el resultado de otras funciones. Cuando una
función se invoca a sí misma, hablamos de recursividad (Rodríguez, 2003).

15
La misión del ordenador será evaluar funciones.

Ejemplo de lenguaje LISP, Haskell, Miranda, Clojure, Scala, SAP, Standard ML

Programación Lógica

En este paradigma un programa consiste en declarar una serie de hechos (elementos


conocidos, relación de objetos concretos) y reglas (relación general entre objetos que
cumplen unas propiedades) y luego preguntar por un resultado (Rodríguez, 2003).

Ejemplo: Prolog, Mercury, Lisp, Curry, Ace, PALs, SequenceL

Programación Funcional

Es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado


de resultado y recibe como entrada el resultado de otras funciones. Cuando una
función se invoca a sí misma, hablamos de recursividad.

Ejemplos: Haskell, Miranda, Clojure, Scala, SAP, Standard ML

Programación Orientada a Objetos (POO)

El paradigma orientado a objetos (OO) se refiere a un estilo de programación. Un


lenguaje de programación orientado a objetos (LOO) puede ser tanto imperativo como
funcional o lógico. Lo que caracteriza un LOO es la forma de manejar la información
que está basada en tres conceptos:

16
• Clase: Tipo de dato con unas determinadas propiedades y una determinada
funcionalidad (ejemplo: clase “persona”).
• Objeto: Entidad de una determinada clase con un determinado estado (valores
del conjunto de sus propiedades) capaz de interactuar con otros objetos
(ejemplos: “Pedro”, “Sonia”, …).
• Herencia: Propiedad por la que es posible construir nuevas clases a partir de
clases ya existentes (ejemplo: la clase “persona” podría construirse a partir de
la clase “ser vivo”).

Ejemplos de LOO: Smalltalk, C++, Java, Python

Python

Python es un lenguaje de programación interpretado de tipado


dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un
código legible. Se trata de un lenguaje de programación multiparadigma y disponible
en varias plataformas (Asociación Programo Erco Sur, s.f.)

Dicho de otro modo, Python es:

- Interpretado: Se ejecuta sin necesidad de ser procesado por el compilador y


se detectan los errores en tiempo de ejecución.
- Multiparadigma: Soporta programación funcional, programación
imperativa y programación orientada a objetos.
- Tipado dinámico: Las variables se comprueban en tiempo de ejecución.
- Multiplataforma: disponible para plataformas de Windows, Linux o MAC.
- Gratuito: No dispone de licencia para programar.

Al hacer uso de una sintaxis legible, la curva de aprendizaje es muy rápida, siendo de
este modo, uno de los mejores lenguajes para iniciarse en la programación en modo
texto. Por ejemplo, si comparamos un código escrito en lenguaje de programación por
bloques como Blockly y el mismo código lo escribimos utilizando Python, vemos las
similitudes en las instrucciones.

17
Sabías que “Grandes empresas como Google, Facebook, Instagram y Spotify utilizan #Python”.

Java

Java es un lenguaje de programación de propósito general orientado a


objetos desarrollado por Sun Microsystems. También se puede decir que
Java es una tecnología que no sólo se reduce al lenguaje, sino que además
provee de una máquina virtual Java que permite ejecutar código compilado Java, sea
cual sea la plataforma que exista por debajo; plataforma tanto hardware, como
software (el sistema operativo que soporte ese hardware). El apoyo a esta tecnología
viene dado por la gran cantidad de fabricantes que apoyan esta especificación de
máquina virtual.

Aprender el lenguaje de programación Java requiere tiempo y esfuerzo, pero en este


curso trataremos de sentar las bases para el conocimiento general del lenguaje. El
lenguaje se inspira en otros lenguajes:

- sentencias comunes de C y C++ (sintaxis parecida a dichos lenguajes)


- concurrencia parecida a la de Mesa (un lenguaje de investigación de Xerox)
- interrupciones parecidas a las de Modula-3
- tratamiento de enlace dinámico de código nuevo parecido al de Lisp
- definiciones de interfaces parecidas a las de Objective C
- gestión de almacenamiento automático parecida a la de Lisp

18
Características.

Se describe al lenguaje Java de la siguiente manera:

- Simple
- Orientado a Objetos
- Tipado estáticamente
- Distribuido
- Interpretado
- Robusto
- Seguro
- de Arquitectura Neutral
- Multihilo
- con Recolector de basura (Garbage Collector)
- Portable
- de Alto Rendimiento: sobre todo con la aparición de hardware especializado y
mejor software
- Dinámico

Todas estas características describen el lenguaje y son importantes, sin embargo,


cabe destacar tres, que son las que han proporcionado tanto interés por el lenguaje:
la portabilidad, el hecho de que sea de arquitectura neutral y su simplicidad. Java
ofrece toda la funcionalidad de los lenguajes potentes, pero sin las características
menos usadas y más confusas de éstos.

Java elimina muchas de las características de otros lenguajes como C++, para
mantener reducidas especificaciones del lenguaje y añadir características muy útiles
como el recolector de basura. No es necesario preocuparse de liberar memoria, el
recolector se encarga de eliminar la memoria asignada. Gracias al recolector, sólo te
tienes que preocupar de crear los objetos relevantes de tu sistema ya que él se
encarga de destruirlos en caso de no ser reutilizados.

Java reduce en un 50% los errores más comunes de programación con lenguajes
como C y C++. Entre las características más "indeseables" de C++ que se han evitado
en el diseño de Java destacan: ficheros de cabecera, aritmética de punteros,

19
sobrecarga de operadores, estructuras, uniones, conversión implícita de tipos, clases
base virtuales, pre-procesador, etc.

Características más interesantes:

• Java es interpretado.

Estrictamente hablando, Java es interpretado, aunque en realidad Java es tanto


interpretado como compilado. De hecho, sólo cerca del 20% del código Java es
interpretado por la JVM (Java Virtual Machine), pero es un 20% muy importante. Tanto
la seguridad de Java como su habilidad para ser ejecutado en múltiples plataformas
se deben a que los pasos finales de la compilación se manejan localmente.

Existen ciertos entornos que para mejorar el rendimiento usan un pequeño compilador
para la última fase de compilación, de forma que una vez que se tenga el bytecode,
en vez de interpretarlo se compila generando código nativo para esa plataforma y se
ejecuta, pero esta compilación se realiza cada vez que se quiera ejecutar el programa.
El único código realmente independiente es el bytecode. Este tipo de compiladores
se conocen como 'Just In Time' o JIT. Sin embargo, el bytecode no se completa hasta
que se junta con un entorno de ejecución, que en este caso será la máquina virtual
Java de la plataforma en la que estemos. Un browser puede proveer dicha plataforma
desde el punto de vista del sistema operativo.

Inconvenientes.

El browser tiene que interpretar los ficheros de clases antes de que se ejecuten.
Utilizando un lenguaje de programación tradicional como puede ser el C++, el
ordenador puede ejecutar directamente el código generado. Sin embargo, debido a la
interpretación que el browser tiene que hacer de los ficheros, los programas escritos
en Java tienden a ejecutarse bastante más lentos que con otros lenguajes de
programación (p.e. C++).

¿Por qué se considera un rasgo positivo el hecho de combinar la compilación y la


interpretación?

• Facilita la seguridad y la estabilidad.

20
• Reduce los problemas de versiones.

El hecho de que la última fase de la compilación se lleve a cabo por un dispositivo de


una determinada plataforma, releva al programador de la responsabilidad del
mantenimiento de varias fuentes en varias plataformas. La interpretación también
admite que los datos se incorporen en tiempo de ejecución, de ahí el comportamiento
dinámico que también caracteriza a Java.

La máquina virtual Java.

Para establecer Java como parte integral de la red, el compilador Java compila su
código a un fichero objeto de formato independiente de la arquitectura de la máquina
en que se ejecutará. Cualquier máquina que tenga el sistema de ejecución (runtime)
puede ejecutar ese código objeto, sin importar en modo alguno la máquina en que ha
sido generado.

El código fuente Java se "compila" a un código de bytes de alto nivel independiente


de la máquina. Este código (bytecode) está diseñado para ejecutarse en una máquina
hipotética que es implementada por un sistema runtime, que sí es dependiente de la
máquina. Por lo tanto, lo que verdaderamente es dependiente del sistema es la
Máquina Virtual Java (JVM) y las librerías fundamentales, que también nos permitirían
acceder directamente al hardware de la máquina. El compilador Java genera
bytecode que serán ejecutables dondequiera que exista una JVM.

Orientación a objetos.

Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas
cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus
datos como objetos y con interfaces a esos objetos. Soporta las tres características
propias del paradigma de la orientación a objetos: encapsulación, enlace dinámico y
polimorfismo. Los modelos de objetos son llamados, como en C++, clases y sus
copias, instancias. Estas instancias, como en C++, necesitan ser construidas y
destruidas en espacios de memoria.

Java incorpora funcionalidades inexistentes en C++ como, por ejemplo, la resolución


dinámica de métodos. Esta característica deriva del lenguaje ObjectiveC. En C++ se

21
suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la aplicación
cuando se retocan las funciones que se encuentran en su interior. Java resuelve este
inconveniente mediante una interfaz específica llamada RTTI (Run Time Type
Identification) que define la interacción entre objetos excluyendo variables de
instancias o implementación de métodos. Las clases en Java tienen una
representación en el runtime que permite a los programadores interrogar por el tipo
de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.

En Java casi todo son objetos. La mayoría de los lenguajes orientados a objetos
permiten la herencia múltiple, lo que puede llevar a confusiones y/o complicaciones
innecesarias. Java no permite herencia múltiple, sólo soporta "Herencia simple" en
una estructura cósmica (todas las clases Java derivan jerárquicamente de la clase
"Object"). La herencia simple significa que en cada momento cada clase sólo hereda
de otra clase. Este tipo de herencia evita problemas del tipo de herencias múltiples
contradictorias o exclusivas entre sí.

Java también permite la creación de clases totalmente abstractas, a las que llama
interfaces con características similares a los interfaces IDL de CORBA. Las interfaces
permiten definir métodos que pueden compartir con varias clases, sin tener en cuenta
cómo las otras manejan los métodos.

Seguridad en JAVA.

El código Java pasa muchos tests antes de ejecutarse en una máquina. El código se
pasa a través de un verificador de bytecodes que comprueba el formato de los
fragmentos de código y aplica un probador de teoremas para detectar fragmentos de
código ilegal -código que falsea punteros, violas derechos de acceso sobre objetos o
intenta cambiar el tipo o clase de un objeto.

Si los bytecode pasan la verificación sin generar ningún mensaje de error, entonces
sabemos que:

- El código no produce desbordamiento de operando en la pila


- El tipo de los parámetros de todos los códigos de operación son conocidos y
correctos

22
- No ha ocurrido ninguna conversión ilegal de datos, tal como convertir enteros
en puntero
- El acceso a los campos de un objeto se sabe que es legal: public, private,
protected
- No hay ningún intento de violar las reglas de acceso y seguridad establecidas
- Evitamos saltos a mitad de una instrucción, o direccionamientos de memoria
de un objeto fuera de los límites del mismo.

El cargador de clases también ayuda a Java a mantener su seguridad, separando el


espacio de nombres del sistema de ficheros local, del de los recursos procedentes de
la red. Esto limita cualquier aplicación del tipo Caballo de Troya, ya que las clases se
buscan primero entre las locales y luego entre las procedentes del exterior.

Java Script

JavaScript es un lenguaje de secuencias de comandos del lado del cliente muy


poderoso, introducido para "dar vida a las páginas web". Esto nos permite crear
contenido dinámico para la web. JavaScript es un lenguaje ligero que es de código
abierto y permite multiplataforma. No requiere compilación y se interpreta con
capacidades orientadas a objetos. Además, funciona con varios otros lenguajes de
programación. Y esta es la razón de su gran uso en todo el mundo. Muchos sitios web
populares y aplicaciones web como Google, Amazon, PayPal, etc. utilizan este
idioma. La extensión de archivo de un archivo JavaScript es .js.

JavaScript es uno de los 3 idiomas que todos los desarrolladores


web deben aprender:

1. HTML para definir el contenido de las páginas web

2. CSS para especificar el diseño de las páginas web

3. JavaScript para programar el comportamiento de las páginas web

Las páginas web no son el único lugar donde se usa JavaScript. Muchos programas
de escritorio y servidor usan JavaScript. Node.js es el más conocido. Algunas bases
de datos, como MongoDB y CouchDB, también usan JavaScript como lenguaje de
programación.

23
¿Por qué necesitamos JavaScript?

La mayoría de las aplicaciones funcionan debido a una interacción entre un cliente


(dispositivo del usuario) y un servidor remoto. El cliente solicita datos del servidor. El
servidor recibe la solicitud, la procesa y luego responde en consecuencia. La
respuesta enviada está en un formato legible por el usuario y, por lo tanto, es
aceptable para el cliente. Pero este proceso requiere tiempo y recursos. Aunque
generalmente necesitamos esta conexión, en algunos proyectos, JavaScript a
menudo ayuda a evitarla.

JavaScript permite la validación de formularios sin la entrada del servidor, lo que


reduce el tráfico. Proporciona herramientas maravillosas para un sitio web más
interactivo y fácil de usar. Algunas de las funciones básicas de JavaScript son:

- Autocompletar: el cuadro de búsqueda ofrece sugerencias, basadas en lo


que el usuario ya ha escrito.
- Validación del formulario: si los usuarios cometen un error al completar un
formulario, JavaScript les informa inmediatamente del error, evitando rellenarlo
nuevamente.
- Soluciona problemas de diseño para evitar la superposición de elementos
en la página.
- Agrega animación a la página para que sea más atractiva.

Sabías que. “JavaScript es el lenguaje de programación que funciona en el frontend y en el


backend”.

JavaScript Frameworks

JavaScript Framework es un esqueleto de aplicación, una estructura completa que


proporciona al programador las herramientas básicas para crear un sitio web o una
aplicación web. Consisten en una gran colección de varias bibliotecas de JavaScript

24
que proporciona a los programadores un código preescrito y, por lo tanto, permite
incluso a aquellos que no tienen muchos conocimientos de programación.

Figura 5. Frameworks, (Quality-Dev., 2019)

Es importante recordar que, aunque puede ampliar la funcionalidad del marco


agregando su código, no debe modificar el código del marco. Estos proporcionan una
forma flexible para que los programadores creen sitios web y la posibilidad de agregar
su código cuando sea necesario. Pero no puede controlar toda la estructura del sitio
web.

Al igual que las bibliotecas, estos marcos también tienen documentación disponible
en sus sitios oficiales.

Ahora veamos los marcos de JavaScript más importantes disponibles que se analizan
a continuación:

Angular

Es un framework opensource desarrollado por Google para facilitar la creación


y programación de aplicaciones web de una sola página, las webs SPA (Single
Page Application).

Figura 6. Angular, (Quality-Dev., 2019)

25
Angular separa completamente el frontend y el backend en la aplicación, evita
escribir código repetitivo y mantiene todo más ordenado gracias a su patrón
MVC (Modelo-Vista-Controlador) asegurando los desarrollos con rapidez, a la
vez que posibilita modificaciones y actualizaciones.

En una web SPA aunque la velocidad de carga puede resultar un poco lenta la
primera vez que se abre, navegar después es totalmente instantáneo, ya que
se ha cargado toda la página de golpe (Quality-Dev., 2019)

Solamente es una ruta la que se tiene que enviar el servidor, y Angular lo que
hace ‘por debajo’ es cambiar la vista al navegar para que dé la apariencia de
una web normal, pero de forma más dinámica.

El lenguaje principal de programación de Angular es Typescript, y así toda la


sintaxis y el modo de hacer las cosas en el código es el mismo, lo que añade
coherencia y consistencia a la información, permitiendo, por ejemplo, la
incorporación de nuevos programadores, en caso de ser necesarios, ya que
pueden continuar su trabajo sin excesiva dificultad.

Como ya se ha indicado, las plantillas de Angular almacenan por separado el


código de la interfaz del usuario (front-end) y el de la lógica de negocio (back-
end), que entre otros beneficios permite utilizar mejor otras herramientas
anteriormente existentes.

Los principales editores y entornos de desarrollo integrado (IDEs) ofrecen ya


extensiones para poder trabajar con este framework con mayor comodidad.

Por su programación reactiva, la vista se actualiza automáticamente tras


realizar los cambios. Además, Angular dispone de asistente por línea de
comandos para poder crear proyectos base y también se integra bien con
herramientas de testing y con Ionic, lo que facilita la creación de web-
responsive, es decir, adaptadas a móviles. Este aspecto cada día adquiere
mayor importancia tanto por el creciente uso de estos dispositivos para acceder
a internet como por la penalización que Google realiza de aquellas páginas que
no facilitan su visita en cualquier dispositivo.

26
React Native

El marco React Native JavaScript hereda todas las características principales de la


biblioteca ReactJS, como la reutilización de código. Muchas aplicaciones populares
como Facebook, Instagram, Pinterest, Skype, etc. utilizan React Native para el
desarrollo.

Los beneficios de usar React Native son:

• Es un proyecto de código abierto, lo que aumenta su apoyo comunitario a diario.

• Proporciona varios componentes listos para desarrollar, por lo que tiene un


tiempo de desarrollo más corto.

• Las aplicaciones multiplataforma son posibles hasta cierto punto, ya que es


compatible con iOS y Android.

• Crea aplicaciones rápidas, estables y confiables con mucha facilidad.

• Ahorra a los desarrolladores tiempo y dinero con solo un código mínimo.

Tips de cuestionario “Una vez terminado el tema de Fundamentos del Software de la unidad
dos, comprueba tu aprendizaje, al final del documento se encuentran varias preguntas que debes
resolver”

2.1.6 Sistemas embebidos para telecomunicaciones

Un sistema embebido o también llamado sistema empotrado por contener la mayoría


de sus componentes en la placa base, es un sistema diseñado para realizar una o
pocas funciones específicas, muy frecuentemente realiza acciones de tiempo real, en
ese sentido los sistemas embebidos están diseñados para cubrir necesidades
específicas (García, 2019).

Los sistemas embebidos o empotrados son herramientas de computación utilizadas


para ejecutar tareas de control. En este sentido, cada sistema embebido se encarga
de llevar a cabo una o varias funciones dedicadas. De este modo, esta tecnología
tiene la finalidad de cubrir necesidades concretas. En los sistemas embebidos, casi
todos los componentes están integrados en la placa base. Así, se reduce el tamaño

27
de la solución tecnológica, dándole utilidades tan variopintas como la de controlar
máquinas expendedoras u otorgar conexión a Internet.

Sistemas embebidos en comunicaciones de red ethernet.

Desde el año 2000 se ha impulsado el desarrollo de dispositivos de bajo consumo de


energía, que suplen distintas facetas del ser humano. Una de ellas es sin lugar a
dudas la de las comunicaciones. En este sentido, las mismas, han pasado de la
convencional línea telefónica (PSTN) a la voz sobre Internet conocida como VoIP. En
la actualidad, en el mercado se ofrecen soluciones de dispositivos que lo han
dominado durante años pero que restringen las aplicaciones debido a que su
arquitectura es total-mente cerrada, y más aún, porque han sido diseñados con un
único pro-pósito, sin dejar espacio para otros elementos que el diseñador requiera o
desee incluir (Álvarez, 2009).

Es por ello que hacia el año 2004 Microchip ofreció una de las soluciones que permite
conectar sistemas embebidos a la red y cuya característica fundamental es el dejar
innovar de múltiples maneras al diseñador del sistema para que coloque múltiples
periféricos a su diseño. Se trata de un chip conocido como EN-C28j60 y cuyo
propósito es el de dar una interfaz con la red conocida como (PHY) o Physical
Layer. Sin embargo, esta solución requería que el diseñador agregara componentes
discretos ya que el costo del dispositivo podía verse afectado por este factor. Tal
vez este fue uno de los motores que impulsó el desarrollo del IC 18j97j60 que
integra en una única pastilla un módulo de comunicaciones ethernet y múltiples
periféricos tales como módulo ADC de 10 bits, SPI, USART entre otros y cuyo costo
puede oscilar entre los U$5 y U$8 dependiendo del total de me-moria flash o de
programa del dispositivo. Gracias a este dispositivo resulta fácil comunicarse con la
red, y el diseño del proyecto queda reducido entonces, a la creatividad que el
diseñador coloque en éste. En general los dispositivos de voz IP utilizan esta interfaz
para “empaquetar” frames que van hacia la red de modo que estos ya vengan listos
de algún sistema para ser transmitidos.

Modos de comunicación del protocolo de transmisión TCP/IP

28
Pretendiendo que un sistema que sea robusto, pero a la vez sencillo, Microchip ofrece
un stack optimizado en C, cuyo propósito es brindar soporte para los módulos TCP/IP
como los que se muestran en la figura

Figura 7. Protocolos y soporte del Stack TCP/IP. Consultado de (Álvarez, 2009)

Sin lugar a duda se trata de un apilado TCP/IP muy completo y fácil de utilizar.
Simplemente se necesita disponer del software MPLAB v8.0 o mayor y el compilador
C18 ofrecidos de manera gratuita en la página de Microchip URL
(www.microchip.com) y basta sola-mente con compilar el programa desarrollado para
tener múltiples aplicaciones de interconectividad a la red. Gracias a este software el
encapsulado de paquetes se hace realmente sencillo dando al diseñador gran
confiabilidad de configurar un dispositivo económico y robusto para aplicaciones que
no sobrepasen los 10Mbits/s con un máximo de 256 “sockets” interconectados.

2.2 Sistema operativo

2.2.1 Introducción a los sistemas operativos

Un sistema operativo puede ser definido como un conjunto de programas


especialmente hechos para la ejecución de varias tareas, en las que sirve de
intermediario entre el usuario y la computadora. Este conjunto de programas que
manejan el hardware de una computadora u otro dispositivo electrónico. Provee de
rutinas básicas para controlar los distintos dispositivos del equipo y permite
administrar, escalar y realizar interacción de tareas.

El Sistema Operativo (Operating System, OS) corresponde a un programa en


ejecución que se encarga de actuar como intermediario entre el usuario y la máquina.
Sus dos principales objetivos corresponden a la administración del hardware y ser

29
una interfaz para el usuario, de tal forma que este pueda interactuar con la máquina.
(De La Fuente Rubio, 2015)

El sistema operativo deberá proveer de un ambiente para ejecutar los programas del
usuario, siendo este el único con privilegios de acceso directo al hardware y los
procesos deberán mediante el sistema operativo acceder a los recursos disponibles.
(De La Fuente Rubio, 2015)

Cuando el sistema operativo comienza a funcionar, inicia los procesos que luego
va a necesitar para funcionar correctamente. Esos procesos pueden ser archivos
que necesitan ser frecuentemente actualizados, o archivos que procesan datos útiles
para el sistema. Es posible tener acceso a distintos procesos del sistema operativo,
a través del administrador de tareas, donde se encuentran todos los procesos que
están en funcionamiento desde la inicialización del sistema operativo hasta su uso
actual. (Venturini, 2018)

Una de las atribuciones del sistema operativo es cargar en la memoria y facilitar la


ejecución de los programas que el usuario utiliza. Cuando un programa está en
ejecución, el sistema operativo continúa trabajando. Por ejemplo, muchos programas
necesitan realizar acceso al teclado, vídeo e impresora, así como accesos al disco
para leer y grabar archivos. Todos esos accesos son realizados por el sistema
operativo, que se encuentra todo el tiempo activo, prestando servicios a los
programas que están siendo ejecutados. (Venturini, 2018)

Una característica importante del sistema operativo, como ya se mencionó antes, es


que es el único proceso que debe estar siempre cargado en memoria principal. Lo
anterior implicara que todo el código del sistema operativo, incluyendo sus drivers
deberán estar cargados siempre en RAM. Imagine que desea tener soporte para
todos los tipos de impresoras disponibles, esto implicaría tener cargado todos los
drivers en la memoria principal por si en algún momento usted la conecta. Son parte
de la estructura del sistema operativo y su diseño la consideración de diferentes
métodos de construcción del núcleo del sistema operativo, lo que permita cargar por
partes el mismo, sin tener que tener cargado todo el código que eventualmente se
pueda requerir en la memoria. Una de estas alternativas es lo que se utiliza en Linux,

30
correspondiente al uso de módulos donde el núcleo los levanta a medida que los
requiere. (De La Fuente Rubio, 2015)

El sistema operativo también hace una administración de los recursos de la


computadora, para evitar que los programas entren en conflicto. Por ejemplo, el
sistema operativo evita que dos programas accedan simultáneamente al mismo
sector de la memoria, lo que podría causar grandes problemas. El sistema operativo
funciona como un «maestro», procurando que todos los programas y todos los
componentes de la computadora funcionen de forma armónica.

Figura 8: Sistemas operativos. Consultado de. (devmagazine, 2018)

Objetivos del sistema operativo

Desde el punto de vista del sistema la principal preocupación es realizar una


administración eficiente y justa de los recursos de la máquina. Esto significa que todos
sean atendidos en algún momento de tal forma que se les permita realizar sus
operaciones de forma satisfactoria.

El sistema operativo será el encargado de determinar cuándo y quien utilizará cierto


recurso del sistema, tal como el procesador, la memoria principal, disco duro, etc. Y
será el encargado de interrumpir al proceso que haga uso del recurso de tal manera
de entregárselo a otro que también lo quiera utilizar. (De La Fuente Rubio, 2015)

2.2.2 Funciones básicas del sistema operativo

El sistema operativo es un conjunto de programas que:

• Inicializa el hardware del ordenador


• Suministra rutinas básicas para controlar dispositivos
• Permite administrar, escalonar e interactuar tareas
• Mantiene la integridad de sistema

31
El sistema operativo provee utilidades para:

• Administración de archivos y documentos creados por usuarios


• Ejecución controlada de Programas
• Comunicación entre usuarios y con otras computadoras
• Administración de pedidos de usuarios para usar programas y espacio de
almacenamiento.

Adicionalmente, el Sistema Operativo necesitaría presentar a cada usuario una


interfaz que acepte, interprete, y ejecute comandos o programas del usuario. Esta
interfaz es normalmente llamada SHELL o intérprete de línea de comando (CLI). En
algunos sistemas podría ser una simple línea de texto que utilicen palabras claves;
en otros sistemas podrían ser gráficas, usando ventanas y un dispositivo señalador
como un mouse.

Las partes de un sistema operativo

El sistema operativo de una computadora que es usado por muchas personas al


mismo tiempo, es un sistema complejo. Contiene millones de líneas de instrucciones
escritas por programadores. Para hacer los sistemas operativos más fáciles se ser
escritos, son construidos como un conjunto de módulos, siendo cada módulo
responsable de realizar una función. Los módulos típicos en un gran Sistema
Operativo multiusuario generalmente son:

• Núcleo (Kernel en inglés)


• Administrador de procesos
• Gestión de memoria principal
• Gestión de memoria secundaria

Gestión de procesos

Un proceso corresponde a un programa en ejecución, el cual posee diferentes


estados a lo largo de su vida como proceso. Principalmente interesan los estados
listos y ejecución, que corresponden a la espera antes de ser planificado para entrar
a la CPU y el de ejecución de código dentro de la CPU.

32
Todo proceso requerirá hacer uso de, al menos, memoria principal y CPU para su
ejecución, por lo cual el sistema operativo deberá ser capaz de asignar estos recursos
de una forma eficiente y justa, de tal forma que todos los procesos sean servidos
según los vaya requiriendo. (De La Fuente Rubio, 2015)

Gestión de memoria principal

Todo proceso requerirá del uso de memoria principal para su ejecución, en este
espacio de memoria se encontrará no solo el código del programa, sino también sus
datos y su contexto. El sistema operativo deberá asignar, de algún modo, espacios
de memoria para que el proceso los utilice, y si eventualmente el proceso requiere
más espacio poder cumplir con su requerimiento. ¿Qué sucede si no disponemos de
más memoria principal? La primera idea, será decir que no podemos iniciar más
procesos, lo cual será cierto, sin embargo, se tiene el método de memoria virtual el
cual permite utilizar un dispositivo de memoria secundaria para obtener memoria"
para los procesos. (De La Fuente Rubio, 2015).

Gestión de memoria secundaria

El sistema operativo debe ser capaz de almacenar datos en medios de memoria


secundaria, la cual es permanente, a diferencia de la memoria principal que es volátil.
Se deberá preocupar de la mantención de una estructura de archivos y de poder
realizar operaciones sobre esta estructura de tal forma que las aplicaciones no se
preocupen de escribir físicamente el archivo que desean guardar en el disco. (De La
Fuente Rubio, 2015)

¿Qué tiene que hacer un sistema operativo?

Un sistema operativo (SO) tiene que lograr que el equipo (y los periféricos) puedan
ser utilizados sin problemas por alguien que no conozca los detalles del hardware.
Tiene que posibilitar que el usuario cree y acceda a los archivos, use los programas,
ingrese a internet, juegue y todas las cosas que pueden ser hechas con las
computadoras y/o dispositivos móviles. Además de eso, el sistema operativo tiene
que ejecutar los programas y ayudarlos a acceder a los recursos del sistema de una
forma simple y organizada.

33
Creando unidad de arranque

Esta parte es sumamente importante y puede que en esta etapa se lleven a cabo los
errores más recurrentes a la hora de instalar sistemas operativos. Cuando creemos
la unidad o medio de arranque debemos de tener en cuenta dos cosas: El tipo de
firmware que tenemos (BIOS o UEFI) y la tabla de particiones ya creada o por ser
creada en nuestra unidad de almacenamiento (GPT o MBR). (RioHam, 2018)

Tipos de firmware

Una de las cuestiones a tener en cuenta para crear la unidad de instalación, es la de


saber si tu equipo soporta UEFI o solo BIOS. Pero… ¿qué es el UEFI y la BIOS?

BIOS

El BIOS, creado en 1975, y sus siglas significan Basic Input Output System o sistema
básico de entrada y salida. Su función principal es la de iniciar los componentes de
hardware y lanzar el sistema operativo de un ordenador cuando este es encendido.
También carga las funciones de gestión de energía y temperatura del ordenador.

Cuando prendes tu equipo lo primero que se carga en él es el BIOS. Este firmware


entonces se encarga de iniciar, configurar y comprobar que se encuentre en buen
estado el hardware, incluyendo la memoria RAM, los discos duros, la placa base o la
tarjeta gráfica. Cuando termina selecciona el dispositivo de arranque (disco duro, CD,
USB etcétera) y procede a iniciar el sistema operativo, y le cede a él el control.
(RioHam, 2018)

Figura 9: Interfaz de la Bios Consultado de. (RioHam, 2018)

34
UEFI

La Interfaz de Firmware Extensible Unificada o UEFI (Unified Extensible Firmware


Interface) es el firmware sucesor del BIOS. A mediados de la década pasada las
empresas tecnológicas se dieron cuenta de que el BIOS estaba quedándose obsoleto,
y 140 de ellas se unieron en la fundación UEFI para renovarla y reemplazarla por un
sistema más moderno.

En esencia, todo lo que hemos dicho antes que hace el BIOS lo hace también la UEFI.
Pero también tiene otras funciones adicionales y mejoras sustanciales, como una
interfaz gráfica mucho más moderna, un sistema de inicio seguro, una mayor
velocidad de arranque o el soporte para discos duros de más de 2 TB.

Figura 10: Interfaz de UEFI Consultado de. (RioHam, 2018)

Diferencias entre BIOS y UEFI

Los sistemas con BIOS utilizan el esquema de particiones MBR, estos sólo soportan
hasta cuatro particiones primarias y unidades de almacenamiento de una capacidad
máxima de 2,2 TB.

Los firmwares UEFI, por su parte, utiliza el esquema de particiones MBR y GPT. Este
último es más moderno poniendo el límite teórico de capacidades de discos duros
soportadas en 9,4 zettabytes, aunque de momento no se fabrica ninguno tan grande.
Pero la característica que si podría interesarnos es la de soportar hasta 128
particiones primarias. (RioHam, 2018)

35
Tablas de particiones

Es importante entender que podemos disponer de dos tablas de particiones, una MBR
(Master Boot Record) y la otra GPT (GUID Partition Table). Mientras que el MBR
comienza con el código de arranque maestro, que contienen un binario ejecutable
que identifica la partición activa e inicia el proceso de arranque, la GPT se basa en
las capacidades extendidas del EFI para estos procesos.

Tabla MBR

Acrónimo de Master Boot Record, es el estándar que empezó a funcionar en 1983 y


que a día de hoy sigue siendo totalmente funcional, sin embargo, los años empiezan
a pesar en él tal como avanza la tecnología. Una de las principales limitaciones de
este estilo de particiones es el tamaño máximo con el que puede trabajar: 2 TB
(aunque por software sí es posible superarlo, aunque no recomendable). Otra
limitación, aunque no muy importante, es que MBR solo puede trabajar con 4
particiones primarias, por lo que para crear más de 4 debemos recurrir a las
particiones extendidas. (RioHam, 2018)

Tabla GPT

Acrónimo de GUID Partition Table, es el nuevo estándar que está sustituyendo a MBR
y que está asociado con los nuevos sistemas UEFI. Su nombre viene de que a cada
partición se le asocia un único identificador global (GUID), un identificador aleatorio
tan largo que cada partición en el mundo podría tener su ID único. A día de hoy, GPT
no tiene ningún límite más allá que los que establezcan los propios sistemas
operativos, tanto en tamaño como en número de particiones. (RioHam, 2018)

2.2.3 Clasificación de sistemas operativos

Los sistemas operativos se pueden clasificar atendiendo a:

Administración de tareas:

- Monotarea: los que permiten sólo ejecutar un programa a la vez


- Multitarea: los que permiten ejecutar varias tareas o programas al mismo
tiempo

36
Administración de usuarios

- Monousuario: aquellos que sólo permiten trabajar a un usuario, como es el


caso de los ordenadores personales
- Multiusuario: los que permiten que varios usuarios ejecuten sus programas
a la vez.

Organización interna o estructura

- Monolítico
- Jerárquico
- Cliente-servidor

Manejo de recursos o acceso a servicios

- Centralizados: si permite utilizar los recursos de un solo ordenador


- Distribuidos: si permite utilizar los recursos (CPU, memoria, periféricos...) de
más de un ordenador al mismo tiempo (Pinto, 2019)

Algunos sistemas operativos son:

• DOS: Familia de sistemas operativos para PC. Sus siglas significan Disk
Operating System. Fue creado para ordenadores IBM y fue muy popular.
Carece de interfaz gráfica y no es multiusuario ni multitarea. Con la aparición
del sistema operativo Windows fue rápidamente sustituido.
• WINDOWS: Familia de sistemas operativos no libres desarrollados por la
empresa Microsoft Corporation, que se basan en una interfaz gráfica que se
caracteriza por la utilización de ventanas. La última versión es Windows XP en
la que convergen las dos líneas de desarrollo que hasta entonces se
mantenían de forma separada en otras versiones: versiones basadas en MS-
DOS y versiones basadas en NT (Network Technology) (Pinto, 2019)
- Windows 98
- Windows ME
- Windows XP
- Windows Vista
- Windows 7

37
- Windows 8
- Windows 10
• UNÍX: Familia de sistemas operativos que comparten unos criterios de diseño
e interoperabilidad en común, que descienden de una primera implementación
original de AT&T. Se trata de un sistema operativo portable, multitarea y
multiusuario.
• GNU/LINUX: GNU es un sistema operativo compatible con Unix y desarrollado
por Richard Stallman con la idea de crear un sistema de software libre y Linux
es el núcleo o Kernel desarrollado por Linus Torvalds, ambos forman el
Sistema operativo GNU/Linux. Un sistema operativo libre quiere decir que los
códigos completos del sistema estarán disponibles para todo el mundo, sin
tener que pagar por un programa. Como resultado, un usuario que necesita
cambios en el sistema será siempre libre para hacerlos por sí mismo, o de
contratar a cualquier programador o empresa disponible para hacerlos por él.
Los usuarios no estarán ya a merced de un programador o una empresa que
sea dueña de los códigos fuente y sea la única en posición de hacer cambios.

Un software es libre si cumple estas condiciones:

- Cualquiera tiene libertad para ejecutar el programa, con cualquier


propósito
- Cualquiera tiene libertad para modificar el programa para adaptarlo a sus
necesidades. Y para ello, se debe tener acceso al código fuente, porque
modificar un programa sin disponer del código fuente es
extraordinariamente dificultoso.
- Se tiene la libertad para redistribuir copias, tanto gratis como por un cánon
- Se tiene la libertad para distribuir versiones modificadas del programa, de
tal manera que la comunidad pueda beneficiarse con sus mejoras. (Pinto,
2019)
• Mac OS: La «competencia directa» de Windows, Apple, creo este sistema
operativo exclusivo para sus productos cuyas versiones han sido y son:
- System 7
- Mac OS 7.6
- Mac OS 8

38
- Mac OS 9
- Mac OS X

Tipos de sistemas operativos para móviles

Al igual que ocurre con los ordenadores, el mercado de los teléfonos móviles, también
cuenta con sistemas operativos, los cuales, podrás ver a continuación.

Figura 11: Sistemas operativos móviles. Consultado de. (MÓVIL, 2020)

Android

Es un sistema operativo basado en Linux creado por Android Inc., que posteriormente
fue comprada por Google. Está diseñado para smartphones, pero también podemos
encontrarlo en otros dispositivos como tabletas, televisores y relojes inteligentes.

Fue presentado en 2007, y actualmente va por la versión 8. Actualmente es el sistema


operativo móvil más usado del mundo. (Cabeza Díaz, 2017)

Ventajas:

- Permite una gran personalización, es algo menos sencillo que iOS pero por el
contrario tenemos muchas más opciones en este ámbito.
- Es un sistema muy abierto, permitiendo que haya más aplicaciones
desarrolladas para esta plataforma y podamos instalarlas desde fuera de la
tienda de aplicaciones.
- Su IDE oficial lo encontramos para cualquier plataforma de escritorio.
- Podemos encontrar muchas más opciones a la hora de elegir un dispositivo,
pues al ser código abierto, un sinfín de fabricantes pueden incorporarlo a sus
dispositivos. Podemos encontrar dispositivos Android desde menos de cien
euros, hasta más de mil.

Desventajas:

39
- Al existir tantos fabricantes distintos, con un hardware muy heterogéneo, no
hay tanta integración software-hardware como en los dispositivos de Apple.
- Google desarrolla el sistema operativo, pero depende de cada uno de los
fabricantes el hacer llegar las últimas actualizaciones hasta los usuarios,
cosaque no siempre se cumple y, cuando lo hace, con algo de retraso.
- Al ser la plataforma más utilizada en el mundo encontramos mayor cantidad de
malware, tanto fuera de la tienda de aplicaciones como en la propia tienda, a
causa de unas políticas por parte de Google demasiado permisivas a la hora
de filtrar el software que se sube a la tienda.

IOS

Este sistema operativo pertenece a Apple, ha sido desarrollado para el iPhone,


aunque también se utiliza actualmente en el iPad, que es una tableta basada en el
iPhone que podríamos considerar como un intermediario entre el iPhone y el Mac.

Su primera versión fue presentada en 2007 y actualmente se encuentra en la versión


número 11. Actualmente se encuentra en segundo lugar, por detrás de Android, con
respecto a la cuota de mercado mundial. (Cabeza Díaz, 2017)

Ventajas:

- La principal ventaja de este sistema operativo es que está diseñado


íntegramente para el iPhone, llevando la compatibilidad software-hardware a
un nivel que no encontramos en otras plataformas. Esto también se ve en la
sincronización del iPhone con el Mac.
- Su interfaz está diseñada para conseguir una máxima simplicidad y hacerle la
vida fácil al usuario.
- Las nuevas actualizaciones del sistema operativo se filtran rápidamente hasta
los
- usuarios.
- Al ser un sistema más cerrado, se ejerce un mayor control sobre las
aplicaciones que pueden instalar los usuarios, mejorando la seguridad.

Desventajas:

40
- Su interfaz es sencilla y fácil de utilizar, pero por el contra no permite mucha
personalización.
- El IDE oficial para el desarrollo de aplicaciones iOS sólo está disponible para
Mac.
- Apple sólo diseña dispositivos de gama alta, en consecuencia, hay menos
usuarios que puedan permitírselos.

Windows Phone

Se trata de un sistema operativo desarrollado por Microsoft y basado en Windows,


sucesor de Windows Mobile. Como los dos anteriores, está orientado a los
dispositivos móviles.

Fue presentado en 2010 y, actualmente, va por la versión 10. Este sistema operativo
es el que menos cuota de mercado tiene de los tres. (Cabeza Díaz, 2017)

Ventajas:

- Tiene una interfaz muy sencilla.


- Cuenta con sincronización total con los PCs Windows.
- Podemos encontrar dispositivos en diferentes gamas de precios, al igual que
en
- Android.

Desventajas:

- El número de aplicaciones que encontramos en su tienda es muy inferior al de


iOS o Android.
- Baja posibilidad de personalización.
- Microsoft ha anunciado que no va a seguir desarrollando nuevas
funcionalidades para esta plataforma.

41
2.2.4 Sistemas operativos propietarios y libres

Los sistemas operativos más conocidos

Sin dudas, el sistema operativo más conocido es Windows, desarrollado por la


empresa Microsoft, pero además de ellos existen los sistemas operativos de software
libres y los sistemas operativos de dispositivo móviles.

Los sistemas operativos se tienen de diferentes arquitecturas de 32 bits y 64 bits tanto


en los sistemas operativos Windows como Linux en el momento de descargar la
versión debemos tomar en cuenta este aspecto.

¿Cómo sé que arquitectura de procesador tengo?


Si quieres saber cuál es la arquitectura de tu procesador, tanto Windows como en
GNU/Linux disponemos de herramientas o métodos para extraer esta información,
veamos. (RioHam, 2018)
En GNU/Linux: En GNU/Linux es muy simple, ya que cuentas con algunas opciones
de comandos: puedes usar el comando uname, que bajo el parámetro -m nos
imprimirá directamente la arquitectura del procesador.
uname –m

Figura 12: Arquitectura del procesador GNU/Linux Consultado de. (RioHam, 2018)

En Windows: En los sistemas operativos de la ventana, también podemos acudir a


la consola para obtener la arquitectura de procesador, los pasos serían los siguientes:
(RioHam, 2018)

1. Abrir la consola (Entrar al menú de Ejecutar, escribir “cmd” sin las comillas y
darle enter)
2. Escribir “echo %PROCESSOR_ARCHITECTURE%” (o copiarlo sin las
comillas) y darle enter
3. La consola te indicará el tipo de arquitectura de tu PC

42
Figura 13: Arquitectura del procesador Windows Consultado de. (RioHam, 2018)

¿Qué es Software Libre?


Hablando de software libre, empecemos por el principio y veamos que es. El software
libre es, principalmente, una modalidad de desarrollo y distribución de programas de
computadoras. Aunque, si hacemos un análisis un poco más minucioso del concepto,
nos encontramos con que se trata de algo mucho más amplio, mucho más
trascendental. (Benchimol, 2012).
Se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar,
cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de
los usuarios del software y están licenciadas bajo la GPL (Licencia Pública General).
(Benchimol, 2012)

• La libertad de usar el programa, con cualquier propósito


• La libertad de estudiar cómo funciona el programa, y adaptarlo a tus
necesidades. El acceso al código fuente es una condición previa para esto.
• La libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
• La libertad de mejorar el programa y hacer públicas las mejoras a los demás,
de modo que toda la comunidad se beneficie. El acceso al código fuente es un
requisito previo para esto.

Recuerda que “Richard Stallman es el padre de la filosofía libre y creador de la licencia GPL”

'Software libre’ No significa 'no comercial'. Un programa libre debe estar disponible
para uso comercial, desarrollo comercial y distribución comercial. El desarrollo
comercial del software libre ha dejado de ser inusual; el software comercial libre es
muy importante.
Los aportes al sistema operativo comenzaron a ser cada día más numerosos, un
programador desarrollaba una aplicación basada en GNU/Linux y, entonces, lo
enviaba a los servidores de la fundación software libre para que otros usuarios

43
pudieran tener libre acceso a él. Así las aplicaciones se empezaron a contar por
decenas y centenas. (Benchimol, 2012)

Recuerda que “Linux Torvalds es la persona detrás del núcleo Linux que permite la creación de
las distribuciones de el”

Ventajas del Software Libre


A continuación, se mostrará algunas de las ventajas del Software Libre:

- Existen aplicaciones para todas las plataformas (Linux, Windows, Mac Os)
- El precio de las aplicaciones es mucho menor, la mayoría de las veces son
gratuitas.
- Libertad de copia.
- Libertad de modificación y mejora.
- Libertad de uso con cualquier fin.
- Libertad de redistribución.
- Facilidad a la hora de traducir una aplicación en varios idiomas.
- Mayor seguridad y fiabilidad.
- El usuario no depende del autor del software

Desventajas del Software Libre

- Carece de una estructura ampliada mercadeo (marketing).


- Algunas aplicaciones específicas no están en el mercado.
- Requiere profesionales debidamente calificados para la administración del
sistema (es un sistema administrado).
- Dificultad en el intercambio de archivos.
- Algunas aplicaciones (bajo Linux) pueden llegar a ser algo complicadas de
instalar.
- Interfaces gráficas menos amigables.
- Poca estabilidad y flexibilidad en el campo de multimedia y juegos.
- Menor compatibilidad con el hardware

A mediados de los noventa las distribuciones de Linux se podían contar con los dedos
de la mano. Se cree que las primeras distribuciones de Linux fueron SUSE y

44
Slackware, Hoy las distribuciones de Linux son miles y hay para todos los gustos,
distribuciones para servidores, para estaciones de trabajo, para el hogar, la oficina,
para aplicaciones multimedia etc. (Benchimol, 2012)

Ubuntu Linux
Es una distribución que durante los últimos años gano popularidad y prestigio. Gracias
a una campaña de distribución gratuita de CDs en todo el mundo. (Benchimol, 2012)
Cualquiera que quería tener esta distribución solo tiene que acceder al sitio oficial del
proyecto https://ubuntu.com/ y descargar la versión de Ubuntu que desee escritorio,
servidor, nube sin ningún costo. Ubuntu se caracteriza por ser una distribución simple
en todo sentido fácil instalación, descargar las aplicaciones que deseas.
Otras de las características de Ubuntu es que está basada en una distribución llamada
Debian, que es la distribución oficial de la Fundación Software Libre. Debian es
popular porque goza del mejor sistema de administración de paquetes del mundo de
Linux, por lo cual Ubuntu también se beneficia con él (Benchimol, 2012).

Sabías que “En 1998 nació un movimiento llamado Open Source (código abierto) con algunos
miembros originales de la fundación software libre que no compartían algunas ideas de Richard
Stallman”. Su sitio web es https://opensource.com/

Es una distribución de origen africano, apadrinada por la fundación canonical y su


mayor representante y fundador es Mark Shuttleword recorre el planeta difundiendo
su proyecto y ofrece charlas y seminarios acerca de Ubuntu y software libre.
(Benchimol, 2012)

Linux Mint
Linux Mint es un sistema operativo de computadora diseñado para trabajar en la
mayoría de los sistemas modernos, incluyendo PC x86 y x64 típicas.
Se puede decir que Linux Mint cumple el mismo papel que los sistemas operativos
Microsoft Windows, Apple Mac OS y el gratuito BSD OS. Linux Mint también está
diseñado para trabajar en conjunto con otros sistemas operativos (incluyendo
aquellos enlistados arriba), y puede configurar automáticamente un ambiente de
arranque dual o de arrangue múltiple (en el que se le pide al usuario que elija qué

45
sistema operativo iniciar en cada arranque) durante su instalación. Linux Mint es un
gran sistema operativo para individuos y compañías. (Linux, 2016)
Historia
Linux Mint es un sistema operativo muy moderno; su desarrollo inició en 2006. Sin
embargo, está basado en capas de software muy maduras y aprobadas, incluyendo
el kernel (núcleo) Linux, las herramientas GNU y el escritorio Cinnamon. También
depende de los proyectos Ubuntu y Debian y usa sus sistemas como base.
El proyecto de Linux Mint se enfoca en hacer el escritorio más usable y más eficiente
para las tareas diarias realizadas por usuarios regulares. Debajo del escritorio el
sistema operativo también provee una enorme colección de software disponible y un
conjunto bien integrado de servicios. Linux Mint vio un rápido aumento de popularidad
y cada vez más personas lo usan todos los días. (Linux, 2016)

El escritorio Cinnamon
El “escritorio” es el componente del sistema operativo responsable de los elementos
que aparecen en elescritorio: el panel, el fondo de escritorio, el centro de control, los
menús... etc. La Edición Cinnamon de Linux Mint usa el escritorio “Cinnamon”, el cual
es intuitivo y poderoso. (Linux, 2016)

Gestión de paquetes en Linux Mint


La gestión de paquetes en Linux Mint, y en los sistemas operativos GNU/Linux en
general, ha estado establecida desde hace algún tiempo y es el método preferido para
gestionar el software ya que evita todos estos problemas. Hemos estado instalando
nuestro software de modo seguro y automático desde inicios de la década de 1990.
El software es primero escrito por el desarrollador, como podrías esperarte, y el final
de la cadena de producción se conoce como “upstream” (corriente arriba). Como
usuario de una distribución Linux, eres conocido como el punto más lejano del
“downstream” (corriente abajo) (a menos que seas un administrador, en cuyo caso
tus usuarios son el punto más lejano del downstream, pero ya sabías eso porque eres
un administrador). Una vez que el desarrollador está contento con el programa o la
actualización al programa que ha escrito, liberará su código fuente. También
informará en su documentación qué bibliotecas de datos u otros programas fueron
aprovechados cuando se escribió el programa. Esto se ha estado haciendo desde

46
hace algún tiempo y hay modos estandarizados y venerables de hacer esto. (Linux,
2016).
Memoria RAM: Sin duda, uno de los primeros requisitos en los cuales debemos poner
nuestra atención es la memoria RAM. Disfrutar de una experiencia básica con Linux
Mint es de 2GB.
Procesador: El procesador que necesitatrmos para Linux Mint debe poseer una
velocidad de 1 GHZ para 32 bits y 2 GHZ para 64 bits.
Disco Duro: Los requisitos de espacio en disco duro deben ser de 20 GB para las dos
versiones tanto de 32 bits como de 64 bits.

Manjaro Linux
Es una distribución Linux creada por Philip Müller, basada en la robusta base de Arch
Linux, con XFCE como escritorio principal por defecto. Posee un instalador gráfico
diseñado por los ingenieros de Manjaro, llamado Calamares. Como gestor de
paquetes gráficos usa pamac en XFCE y octopi en KDE y un detector de hardware
propio llamado MHWD. (Royano Gómez, 2016)
Principalmente tiene dos escritorios soportados oficialmente; XFCE y KDE. Pero cabe
destacar que la comunidad realiza un estupendo trabajo portando otros escritorios
como GNOME, LXDE, LXQT, CINNAMON, MATE…y muchos otros más. (Royano
Gómez, 2016)
Manjaro propone un sistema orientado incluso a los recién llegados al mundo de
Linux. Desarrollado en Austria, Francia y Alemania, y aprovechando todo el poder que
ofrece Arch Linux como ingrediente base, esta distro ofrece bastantes cosas buenas.
Dentro de lo que es el mercado de los sistemas operativos, Manjaro ocupa un
importante puesto, ya que ha logrado en poco tiempo ser un SO popular y muy
descargado y conocido por todos los entendidos del mundo Linux, los cuales sentían
que necesitaban algo como Manjaro. La razón por la cual se creó el sistema operativo
Manjaro fue debido a que Arch Linux era demasiado complicado para los usuarios
estándar, ya que, pese a que es uno de los más adaptables, requiere tener un gran
conocimiento en todo lo que concierne a entornos Linux. Entonces se vio la necesidad
de crear un sistema operativo con todas las bondades de Arch Linux, pero mucho
más sencillo que el mismo. (ReDIGIT, 2018)

47
Figura 14: Sistema Operativo Manjaro Consultado de. (Royano Gómez, 2016)

Lo bueno es que Linux Manjaro, al igual que su "padre" Arch Linux, es totalmente
personalizable, es decir, que vamos a poder cambiar el escritorio por el que
queramos, el cual se va a adaptar muy bien a nuestro Manjaro. Para hacerlo, lo vamos
a hacer con la famosa consola de comandos, escribiendo sudo pacman -S y luego el
nombre del escritorio que vamos a usar. Por ejemplo, si ejecutamos sudo pacman –
S Gnome, vamos a instalar el escritorio Gnome. Una vez que hayamos instalado el
escritorio, vamos a poder escoger la opción que queramos en el gestor de arranque
GRUB, el cual desglosará Manjaro en todas las versiones de escritorio en el cual lo
hayamos instalado. (ReDIGIT, 2018)
Manjaro no empezó como un sistema operativo base, sino que es un sistema
operativo basado en Arch Linux, muy famoso por su posibilidad de personalización.
Arch Linux es un sistema para expertos en el mundo Linux, ya que es requisito
imprescindible tener nociones de particiones, gestión de kernel y consola de
comandos de Linux para poder sacarle el máximo partido. (ReDIGIT, 2018)

Instalación de Sistemas operativos libres


El proceso de instalación del sistema operativo GNU/Linux difiere bastante del de
Microsoft Windows. Aunque por suerte esto no quiere decir que sea más difícil. De
hecho, es más fácil que instalar la última versión de Windows. El proceso requiere
que prestemos atención a algunos puntos importantes para no cometer errores y que
todo funcione correctamente. En primer lugar, estamos instalando un sistema
operativo nuevo, en un equipo que seguramente ya tiene un sistema instalado, esto

48
significa que tendremos que modificar la estructura de nuestro disco rígido realizando
particiones para que ambos estén instalados. (Benchimol, 2012)

Olvido la clave de administrador

Hay dos soluciones posibles en este documento vamos a explicar una de ellas, lo
primero es ingresar en sistema en modo monousuario.

- Para esto, cuando tenemos el menú de booteo del sistema (aquel que nos
permite seleccionar entre Windows y Linux) debemos presionar la tecla ESC
para que nos parezca la línea de comandos personalizados y tipear Linux
single.
- Así podemos ingresar al sistema como usuario root sin escribir contraseña.
Luego, utilizamos el comando password para definir una nueva clave de
acceso.

Linux no botea luego de instalar Windows


No es recomendable instalar Windows después de Linux. Siempre debemos instalar
primero Windows y luego Linux. Esto es porque Windows escribe la MBR (el sector
de botteo del disco rigido) sin importarle lo que había antes. Por lo tanto, si teníamos
instalado Linux y luego instalamos Windows borrara el menú de inicio para instalar su
propio gestor de arranque.

Recuerda que “Una vez finalizada la instalación debemos el sistema operativo que teníamos
instalado primero asegurándonos que este funcione correctamente. Si encontramos problemas
debemos resolverlos.

¿Qué es Software Propietario?

Se refiere a cualquier programa informático en el que los usuarios tienen limitadas las
posibilidades de usarlo, modificarlo o redistribuirlo (con o sin modificaciones), o cuyo
código fuente no está disponible o el acceso a éste se encuentra restringido. En el
software propietario una persona física o jurídica (compañía, corporación, fundación,
etc.) posee los derechos de autor sobre un software negando o no otorgando, al
mismo tiempo, los derechos de usar el programa con cualquier propósito; de estudiar

49
cómo funciona el programa y adaptarlo a las propias necesidades (donde el acceso
al código fuente es una condición previa); de distribución.

Ventajas del Software Propietario

A continuación, se mostrarán algunas Ventajas, que nos proporciona el Software


Propietario.

• Soporte para todo tipo de hardware.


• Mejor acabado de la mayoría de aplicaciones.
• Mejor protección de las obras con copyright.
• Facilidad de adquisición (puede venir preinstalado con la compra del PC, o
encontrarlo fácilmente en las tiendas).
• Existencia de programas diseñados específicamente para desarrollar una
tarea.
• Las empresas que desarrollan este tipo de software son por lo general grandes
y pueden dedicar muchos recursos, sobretodo económico, en el desarrollo e
investigación.
• Interfaces gráficas mejor diseñadas.
• Más compatibilidad en el terreno de multimedia y juegos.
• Mayor compatibilidad con el hardware

Desventajas del Software Propietario

• Se mostrará algunas Desventajas, el Software Propietario puede mostrar:


• No existen aplicaciones para todas las plataformas (Windows y Mac OS).
• Imposibilidad de copia.
• Imposibilidad de mediación.
• Restricciones en el uso (marcadas por la licencia).
• Imposibilidad de redistribución.
• Por lo general suelen ser menos seguras.
• El coste de las aplicaciones es mayor.
• El soporte de la aplicación es exclusivo del propietario
• El usuario que adquiere software propietario depende al 100% de la empresa
propietaria

50
Sistema operativos Windows 10

Windows 10 es el nombre de la nueva versión del sistema operativo (SO) de Microsoft,


que viene con diversas novedades. Se trata del sucesor directo de Windows 8 y 8.1
y pretende fidelizar a los usuarios de estas versiones y recuperar a aquellos que aun
añoran Windows 7. (Peña Millahuall, 2015)

Aunque Windows 10 se presenta como un sistema que unifica lo mejor de los


lanzamientos inmediatamente anteriores, no se ofrecerá en una única versión. Esto
obedece al afán de Microsoft por ofrecer un SO previamente adaptado a cada tipo de
usuario

Figura 15: Segmentación de versiones en la presentación de Windows 10. Consultado de. (Peña
Millahuall, 2015)

Sabías que “El precio de Windows 10 Pro es de $289ºº con todas las características de
Windows 10 Home, además de funcionalidades para empresas que permiten el cifrado, el inicio de
sesión remoto, la creación de máquinas virtuales y mucho más”.

Mejoras y novedades

Las características de esta versión no solo apuntan al mercado de las computadoras


de escritorio, sino que también encontraremos interesantes opciones pensadas para
dispositivos móviles. Así estamos frente a un sistema operativo complejo, moderno y
eficiente, ente sus características está de vuelta el menú de inicio, escritorio unificado,
nuevo navegador. (Peña Millahuall, 2015)

51
Cortana

Una de las nuevas características y mejoras introducidas en Windows 10


proporcionando una experiencia de usuario completa, Una de estas novedades es
Cortana que es un asistente virtual que nos ayudara en las funciones de búsqueda y
en la ejecución de una gran variedad de tareas. Entre estas, se encuentran la
reproducción de música o el ajuste de volumen. (Peña Millahuall, 2015)

Podemos interactuar con Cortana mediante texto y comando de voz. Así


encontraremos que el sistema nos permite realizarle preguntas o entregarle ordenes
que este asistente responderá en un tiempo bastante reducido. Cortana supone un
gran avance en el uso de la tecnología aplicada a las operaciones básicas que
podemos efectuar con el sistema operativo. (Peña Millahuall, 2015)

Sabías que “El asistente virtual Cortana atenderá a nuestras consultas escritas o de voz”

Requisitos mínimos para la instalación sistema operativos Windows 10

• Memoria RAM: Sin duda, uno de los primeros requisitos en los cuales debemos
poner nuestra atención es la memoria RAM. Disfrutar de una experiencia
básica con Windows 10 solo exigirá un mínimo de 1GB de RAM para la versión
de 32 bits y 2GB para instalar Windows 10 de 64 bits. (Peña Millahuall, 2015)
• Procesador: El procesador que necesitatrmos para Windoes 10 debe poseer
una velocidad de 1 GHZ para 32 bits y 2 GHZ para 64 bits y es importante en
ambos casos, que cuente con soporte para instruciones PAE, NX y SSE2.
Ademas Windows 10 soporta nuevas generaciones de procesadores actuales.
• Disco Duro: Los requisitos de espacio en disco son bastante modestos. Se
necesita un mínimo de 16 GB para instalar Windows 10 de 32 bits y 20 GB
para la versión de 64 bits. Sin duda, este requerimiento se encuentra
complementa mente cubierto con la capacidad, que exhiben los discos duros
actuales, que nos ofrecen un mínimo de 250 GB de espacio. Sin embargo, es
necesario tener muy en cuenta las exigencias de espacio si deseamos instalar
Windows 10 en un sistema de arranque dual, pues en este caso será necesario

52
crear una partición de no menos de 16 y 20 GB para las versiones de 32 y 64
bits, respectivamente. (Peña Millahuall, 2015)
• Tarjeta grafica: La tarjeta grafica que necesitamos para instalar Windows 10
debe poseer soporte para DirectX 9 y controladores WDDM (Windows Display
Driver Model). Esto no se ha modificado desde Windows 7. Es importante
mencionar que una mejor tarjeta de videio o chip grafico nos proporcionara un
rendimiento superior para la ejecucion de juegos y aplicaciones exigentes que
instalemos con posterioridad. (Peña Millahuall, 2015)

Requisitos recomendados

Los requisitos que mencionamos hasta este momento son los minimos exigidos para
instalar y ejecutar Windows 10,una buena idea es mencionar los requisitos
recomendados para tener un rendimiento optimo del sistema operativo.

• Memoria Ram: 4GB


• Procesador: 2GHZ o superior, con soporte para PAE, NX y SSE2.
• Disco duro 50 GB de espacio para realizar la instalación de aplicaciones
adicionales
• Tarjeta grafica compatible con controlador WDDM

Tambien existen otros componentes que, si bien se clasifican como opcionales, se


encuentra en la mayoria de las computadoras actuales y nos ayudan a mejorar la
experiencia de usuario.

Figura 16: Componentes opcionales importantes de Windows 10. Consultado de. (Peña Millahuall,
2015)

53
Recuerda que “Si comparamos los requisitos minimos necesarios para instalar Windows 10 con
los de las versiones anteriores del sistema operativo, nos daremos cuenta de que las exigencias son
similares a Windows 8 y Windows 7, e incluso, a Windows Vista. Esto puede deberse a la gran
diversidadde equipo a los cuales deberna adaptarse Windows 10”.

En el apartado de máquinas virtuales se realizará la instalación de los sistemas


operativos Windows 10 y Linux Mint paso a paso con sus particiones

Video de sistemas operativos computadores


https://www.youtube.com/watch?v=7P74DCJjFY8

“Una vez terminado el tema de Sistemas Operativos de la unidad dos, comprueba tu aprendizaje,
al final del documento se encuentran varias preguntas que debes resolver”.

2.3 Máquinas virtuales

Una máquina virtual es un software que permite emular a un ordenador y ejecutar


programas como si fuera uno real, uno de los usos más comunes es emular sistemas
operativos tanto para probarlos o para ejecutar aplicaciones propias de cada sistema
operativo (Iván Ramírez, s.f.).

2.3.1 Introducción a las máquinas virtuales

Una máquina virtual entrega una abstracción del hardware de la máquina hacia el
sistema operativo, proporcionando una interfaz de hardware virtual similar a la de la
máquina real. Los discos duros son emulados, por ejemplo, mediante imágenes de
discos. El sistema operativo que corre sobre la máquina virtual desconoce tal
condición, o sea, no sabe que funciona sobre una máquina virtual y no una real. Este
tipo de sistemas permite correr múltiples sistemas operativos sobre una misma
máquina. Ejemplos de sistemas de virtualización son KVM (Kernel-based Virtual
Machine), VMware y VirtualBox. (De La Fuente Rubio, 2015)

El sistema operativo que corre sobre la máquina virtual también posee un modo de
ejecución usuario y de sistema, sin embargo, estos son modos virtuales que corren
sobre un modo usuario real. Esto significa que si en el sistema operativo virtual hay
una solicitud a una llamada del sistema a través de un programa que corre en modo

54
usuario virtual, esta será procesada por el sistema operativo en modo sistema virtual
y se entregará a la máquina virtual, la cual, en modo usuario real, atenderá la
interrupción mediante el hardware virtualizado y entregará la respuesta al sistema
operativo. En caso que se requiera acceso al hardware real, la máquina virtual deberá
hacer uso de la API del sistema operativo real para acceder al recurso solicitado. (De
La Fuente Rubio, 2015)

2.3.2 Clasificación de las máquinas virtuales

• Máquinas virtuales de sistema

Las máquinas virtuales de sistema permiten a una maquina física dividirse en varias
máquinas virtuales, cada una ejecutando su propio sistema operativo. También puede
simular hardware proporcionando una arquitectura de instrucciones. Disminuye
enormemente los costos, debido a que las máquinas de hoy en día poseen gran
capacidad de disco, memoria RAM, rápidos procesadores los cuales permiten emular
varias máquinas ahorrando espacio, mantenimiento, energía y equipos.

• Máquinas virtuales de proceso

Las máquinas virtuales de proceso se ejecutan como un proceso normal dentro de un


sistema operativo y soporta solo un proceso. La máquina se inicia automáticamente
cuando se lanza el proceso que se desea ejecutar y se para cuando éste finaliza. Su
objetivo es permitir que un programa se ejecute de la misma forma sobre cualquier
plataforma.

¿Para qué se usan las máquinas virtuales?

Todo esto está muy bien, pero ¿para qué querría alguien crear un PC virtual dentro
de su PC? Aunque así de entrada pudiera parecer una idea algo trivial, la verdad es
que las máquinas virtuales tienen una gran variedad de utilidades tanto en el entorno
profesional como en el del consumidor final. Estos son los principales usos:

• Para poder probar otros sistemas operativos. Instalar un sistema operativo en


tu PC es un proceso largo, aburrido y difícil de revertir si no estás satisfecho
con los resultados. Así, cuando hay una nueva versión de Windows es más
fácil y seguro probarla instalándola en una máquina virtual que en tu disco duro.

55
Si algo va mal, la borras y se acabó, sin arriesgarte a perder mucho tiempo o
tus datos.
• Para ejecutar programas antiguos. ¿Qué pasa cuando tu negocio depende de
un software que no se actualiza desde hace 20 años? Si no puedes modernizar
el software no te queda otra que seguir cargándolo en un sistema operativo de
su época. Con una máquina virtual este sistema antiguo puede funcionar en
un hardware actual en vez de en una PC vetusta. Lo mismo se puede aplicar
a juegos antiguos que han dejado de funcionar en hardware o software
moderno.
• Para usar aplicaciones disponibles para otros sistemas. También es posible
que necesites una máquina virtual para ejecutar aplicaciones que han sido
desarrolladas para otro sistema operativo distinto al que estás usando. Por
ejemplo, para usar una aplicación para Linux desde Windows, o viceversa.
• Como seguridad adicional. Al estar aislada del resto, una máquina virtual te
proporciona una seguridad adicional en tareas precisas en las que quieres
estar seguro de que una aplicación no tendrá acceso al resto de tus datos. Es
por eso que se suelen usar para hacer cosas tan peligrosas como instalar virus
y malware para estudiarlos.
• Para aprovechar su gran dinamismo. Por su naturaleza las máquinas virtuales
son muy útiles en ocasiones donde necesitas un extremo dinamismo en el
sistema. Puedes guardar estados (copias exactas de sus datos), ampliarlas,
moverlas a un hardware totalmente distinto y seguirán funcionando sin
problemas. Por esto son imprescindibles por ejemplo en empresas con
servidores web que hospedan multitud de máquinas con las páginas web de
sus clientes.

Las principales ventajas de esta solución es que permite realizar una protección por
aislamiento de los recursos del sistema, ya que el sistema virtualizado solo vera
dispositivos virtuales y en caso de cualquier problema solo podrá afectar a la máquina
virtual quedando la máquina real protegida. Adicionalmente son un medio ideal para
la realización de pruebas de sistemas operativos, como la prueba de módulos en
desarrollo o la prueba de servicios que se desean implementar en una máquina real.
También permiten aprovechar mejor el hardware disponible, entregando servicio en

56
un mismo equipo a diferentes sistemas operativos que en conjunto comparten de
forma eficiente el hardware disponible. (De La Fuente Rubio, 2015)

2.3.3 Instalación de máquinas virtuales

VirtualBox Es un software para instalar máquinas virtuales lo primero que debemos


realizar es su descarga en el siguiente sitio web
https://www.virtualbox.org/wiki/Downloads el programa tendrá el siguiente icono

Una vez descargado procedemos a la instalación para ella se nos desplegara la


siguiente ventana como se muestra en la siguiente figura.

Figura 17. Instalación de la máquina virtual. Captura de pantalla autor

Presionamos Next nos indica lo que se va instalar dentro de nuestro computador

Figura 18. Instalación de la máquina virtual. Captura de pantalla autor

57
Figura 19. Instalación de la máquina virtual. Captura de pantalla autor

Luego de ello se les da clic en instalar, lo que nos indica es que se van a crear accesos
directos

Figura 20. Instalación de la máquina virtual. Captura de pantalla autor

Se procede con la instalación y luego de ello visualiza la ventana finalizar para


proceder con la ejecución del programa.

Figura 21. Terminación de la instalación de la máquina virtual. Captura de pantalla autor

58
Una vez terminado la instalación podemos configurar la maquinas virtual para instalar
sistemas operativos libres y propietarios

Figura 22. Interfaz de la máquina virtual. Captura de pantalla autor

Si cuenta con un sistema operativo ya configurado en otro computador puedes


importar el servicio virtualizado o si quieres exporta su máquina virtual a otro
computador se realiza el proceso respectivo.

Creando una máquina virtual con Windows 10

Para crear una máquina virtual, es importante que considere algunos requisitos
mínimos de hardware: Windows 10.

• 1 – 2 GB de RAM

• Disco duro entre 16 y 20 GB de almacenamiento en disco dependiendo si


eliges instalar la versión de 32 o 64 bits.

Ahora, al momento de crear la máquina virtual lo ideal sería asignar mínimo 2 GB de


RAM y 32 GB de espacio para el disco duro virtual. Con esto en mente ten en cuenta
que tu ordenador debe tener al menos el doble de esos recursos disponibles, o
el rendimiento de todo se te irá a los mil demonios. (González, 2017)

Para crear la máquina virtual puedes usar VMWare Workstation, o una alternativa
gratuita y sumamente fácil de usar como Virtual Box. Esta última es la que hemos
elegido para explicar los pasos.

59
Figura 23. Creación de máquina virtual. (González, 2017)

Por supuesto, necesitará una imagen de Windows 10. Puede descargar una desde
la web oficial de Microsoft. Solo haciendo clic en "Descargar ahora la herramienta"
para bajar el programa que descargará el ISO a tu ordenador.

Figura 24. Crear Imagen de Windows 10. (González, 2017)

A continuación, ejecute la MediaCreationTool y elija la opción "Crear medios de


instalación (unidad flash USB, DVD o archivo ISO) para otro PC" y presiona
"Siguiente".

Figura 25. Creación de archivo imagen de Windows 10. (González, 2017)

60
Cuando llegue el momento de elegir el medio a usar, marca la opción "Archivo ISO".
Luego Selecciona Idioma, Arquitectura y le edición. Más adelante se te pedirá elegir
una carpeta para guardar la imagen de Windows 10. Selecciona la que prefieras y
luego solo espera que la herramienta haga su trabajo.

Figura 26. Creación de archivo imagen de Windows 10. (González, 2017)

Instalación de Windows 10 en la máquina virtual

Haga clic en el botón "Nueva" para comenzar a crear la máquina virtual y se le da un


nombre a su máquina virtual y elige el tipo y versión del sistema operativo.
Asegúrate de marcar específicamente la versión de 64 o 32 bits que concuerde con
el archivo ISO que bajaste desde la web de Microsoft. Luego haz click en "Next".

Figura 27. Creación de archivo imagen de Windows 10. Elaborado por autor

Lo siguiente es elegir la cantidad de memoria RAM que tendrá disponible la


máquina virtual. Para Windows 10 de 64 bits lo recomendado son 2 GB o 2.048 MB,

61
como es una máquina de prueba se le asignara 1024. En el gráfico puedes ver toda
la disponible en tu PC, y cuando te acercas al rojo, quiere decir que está asignando
demasiado.

Figura 28. Asignación de memoria RAM. Elaborado por autor

Ahora deberás crear un disco duro virtual. El tamaño recomendado son 32 GB,
pero como es de prueba le vamos asignar 15GB. Si tuvieses un archivo de disco duro
virtual ya existente, podrías usarlo. Si no creas un disco duro virtual, no podrás instalar
Windows.

Figura 29. Asignación de espacio en el disco duro. Elaborado por autor

Lo siguiente es decidir si quiere que el disco duro tenga un tamaño fijo o que esté
reservado dinámicamente. Lo que elija aquí dependerá de cuanto espacio te sobre
en tu disco duro, básicamente si eliges el tamaño fijo, perderás todo ese espacio de
una sola vez, si eliges dinámico, solo se ocupará lo que vaya llenando el sistema.

62
Figura 30. Asignación de espacio en el disco duro. Elaborado por autor

Figura 31. Asignación de espacio en el disco duro. Elaborado por autor

Ahora que la máquina virtual está lista, se debe indicar la dirección donde está el
disco de instalación de Windows 10 para poder instalar el sistema operativo.
Seleccione la máquina virtual de la lista en la izquierda y haz clic en Configuración.

Luego, navegue hasta la opción Almacenamiento y busca a la derecha, bajo las


opciones de Atributos la *Unidad óptica**. Ahí haz click en el icono en forma de CD
para seleccionar una unidad de disco. Navega hasta la carpeta donde tienes el
archivo ISO de Windows 10, y selecciónalo

63
Figura 32. Asignación de imagen ISO del sistema operativo. Elaborado por autor

Ahora puedes guardar y cerrar la configuración y hacer click en Iniciar para arrancar
tu máquina virtual. Una vez que inicie el programa de instalación de Windows, solo
sigue las instrucciones del asistente de voz y espera que finalice el proceso.

Figura 33. Instalación del sistema operativo Windows 10. Elaborado por autor

Figura 34. Instalación del sistema operativo Windows 10. Elaborado por autor

Figura 35. Instalación del sistema operativo Windows 10. Elaborado por autor

64
En el siguiente paso nos pide que coloque la clave le damos clic en omitir para a
continuación seguir con la instalación.

Figura 36. Instalación del sistema operativo Windows 10. Elaborado por autor

En el siguiente paso nos da la opción de actualizar o personalizada damos clic en la


opción personalizada para crear la partición y formatear el disco duro.

Figura 37. Tipo de instalación de Windows 10. Elaborado por autor

Seleccionamos el disco duro presionamos nuevo y damos clic en aplicar y luego en


formatear una vez realizado el proceso damos clic en siguiente.

65
Figura 38. Partición del disco duro. Elaborado por autor

Figura 39. Instalación del sistema operativo Windows 10. Elaborado por autor

Estamos ya a punto de terminar la instalación para ello damos clic en la opción de


usar la configuración rápida.

Figura 40. Elegimos la configuración rápida. Elaborado por autor

66
Figura 41. Terminación de la instalación de Windows 10. Elaborado por autor

Instalación de Linux Mint en la máquina virtual

Vamos a realizar la misma configuración para la creación de la máquina virtual para


proceder a la instalación de Linux Mint.

Figura 42. Configuración de la máquina virtual para Linux mint. Elaborado por autor

Se realizan los mismos pasos que en la creación de la otra máquina virtual y con 1024
GB en RAM y 15GB en disco duro, una vez terminada la creación del espacio virtual
se agrega la imagen ISO para la instalación.

67
Figura 43. Imagen ISO de Linux Mint. Elaborado por autor

Figura 44. Inicio de instalación de Linux Mint. Elaborado por autor

Cuando se arranca el equipo desde una memoria USB (o DVD), Linux Mint inicia una
sesión en vivo. Se inicia sesión automáticamente con el usuario Mint y en el escritorio
se muestra un acceso directo al instalador con el nombre Install Linux Mint.

Figura 45. Inicio de instalación de Linux Mint. Elaborado por autor

68
Figura 46. Idioma de instalación de Linux Mint. Elaborado por autor

Figura 47. Idioma de instalación de Linux Mint. Elaborado por autor

Figura 48. Preparando la instalación de Linux Mint. Elaborado por autor

Por defecto el instalador de Linux Mint creará para tí una partición raíz ( / -root-) y una
partición de intercambio swap partition durante la instalación. Si deseas tener un
conjunto distinto de particiones, por ejemplo, una partición home (/home) separada o
si deseas especificar el tipo de sistema de archivos File System, el tamaño o la
ubicación de las particiones; entonces deberás hacer un particionado manualmente.

69
En algunos casos este particionado puede volverse complejo, especialmente cuando
tienes otros sistemas operativos instalados.

Figura 49. Tipos de instalación de Linux Mint. Elaborado por autor

Figura 50. Zona horaria de Linux Mint. Elaborado por autor

Figura 51. Creación del usuario de Linux Mint. Elaborado por autor

70
Figura 52. Instalación de de Linux Mint. Elaborado por autor

Figura 53. Terminación de la instalación de Linux Mint. Elaborado por autor

Hemos terminado la instalación de Linux Mint puedes aprovechar todas sus


funcionalidades.

Los cimientos de la nube se apoyan en código libre

La nube surgió como evolución de los proyectos de virtualización desarrollados


internamente por las empresas y Amazon fue el creador de esta industria al ofrecer
sus capacidades sobrantes a terceros.

Los proyectos de virtualización tenían un claro líder por aquel entonces: nadie podía
pensar que hubiese techo para el negocio de VMware de virtualización de servidores.
La opción de la nube todavía parecía lejana e insegura. Por ello, varios proyectos,
como los que comentaré a continuación, buscaban crear una alternativa de código
abierto al líder del momento. (Fuenmayor, 2020)

Es posible, por tanto, hablar de la nube como la evolución de una amplia comunidad
que respalda el código abierto porque esa capa de virtualización sobre la que corren

71
la mayoría de los servicios cloud está desarrollada con software libre, como Xen o
KVM.

El proyecto Xen, de la Universidad de Cambridge, tiene la misión de desarrollar


diferentes servicios de virtualización de fuentes abiertas para aplicaciones
comerciales: virtualización de servidores, servicios de infraestructura (IaaS),
virtualización del escritorio, aplicaciones de seguridad e incluso aplicaciones
embebidas para la automoción. Al fin y al cabo, el coche del futuro será una especie
de data center sobre ruedas.

Por su parte, KVM ( Kernel-based Virtual Machine), que es la base de la capa de


virtualización de muchos proveedores de servicios cloud, es un proyecto open source
que forma parte del kernel de Linux desde la versión 2.6.20 y, como tal, está
desarrollado y mantenido por esta comunidad en sus diferentes ramificaciones. El
proyecto original fue desarrollado por Qumranet, que posteriormente adquirió Red
Hat.

Pero la comunidad Linux no se quedó solo en la capa de virtualización y creó todo el


stack tecnológico necesario para implementar una solución cloud. Los principales
impulsores del proyecto fueron la NASA y el proveedor de hosting Rackspace.
Actualmente, el proyecto sigue adelante bajo el auspicio de la Apache Foundation,
con la aportación de múltiples fabricantes y proveedores tecnológicos. (Fuenmayor,
2020)

“Una vez terminado el tema de Máquinas Virtuales de la unidad dos, comprueba tu aprendizaje,
al final del documento se encuentran varias preguntas que debes resolver

72
Comprueba tu aprendizaje de la Unidad 2

Comprueba tu aprendizaje de Fundamentos de Software


1) Describa cada una de las clasificaciones del software.
2) Cuáles son las fases del proceso de desarrollo del software y hable de una de
ellas.
3) Detalle cuáles son los sistemas de información más comunes en la cultura
organizacional.
4) Describa que son los lenguajes de programación y realice una tabla
comparativa de los lenguajes de programación para entorno web, móvil y
escritorio (debe citar de donde obtuvo la investigación).
5) Indique que beneficio tiene el utilizar Framework y realice un diagrama de Venn
sobre Angular y React (debe citar de donde obtuvo la investigación).
Comprueba tu aprendizaje en Sistemas Operativos

1) Cuál es la función principal del sistema operativo y describa las partes que
este tiene.
2) Realice una tabla comparativa sobre los tipos de firmware BIOS y UEFI (debe
citar de donde obtuvo la investigación).
3) Describa las ventajas y desventajas de los sistemas operativos propietario vs
sistemas operativos libres.
4) Cuáles son los requerimientos recomendados para instalar Windows 10 en el
computador.
5) Se olvidó la clave de administrador del sistema operativo que proceso debe
realizar para resetearla
Comprueba tu aprendizaje en Máquinas Virtuales

1) Qué son las máquinas virtuales, cómo funcionan y cómo utilizarlas.


2) Investigue acerca de las herramientas que permiten emular máquinas
virtuales y seleccione cuál de ellas recomendaría utilizar y porqué.

73
Bibliografía
Álvarez, J. (2009). Sistemas embebidos en comunicaciones de red ethernet.
Tecnología en electrónica, 16-19. Obtenido de
https://revistas.uniminuto.edu/index.php/Inventum/article/view/39/38
Anónimo. (s.f.). Ingeniería en Software. Obtenido de
https://sites.google.com/site/ingenierialeosw/unidad-1-fundamentos-de-
ingenieria-de-software/1-3-etapas-del-desarrollo-del-software
Asociación Programo Erco Sur. (s.f.). Obtenido de
https://www.programoergosum.com/cursos-online/raspberry-pi/244-iniciacion-
a-python-en-raspberry-pi/que-es-python
Barzanallana. (s.f.). www.barzanallana.es. Obtenido de
http://www.barzanallana.es/docencia/barzana/iaccss/Fundamentos-
software.html
Barzanallana, R. (2017). Informática aplicada a las Ciencias Sociales. Obtenido de
Informática aplicada a las Ciencias Sociales: https://guides.co/g/informatica-
aplicada-a-las-ciencias-sociales/21907
Benchimol, D. (2012). Ubuntu. Argentina: RedUsers. Recuperado el 15 de 06 de
2020
Cabeza Díaz, J. (2017). SISTEMA WEB-MÓVIL PARA LA GESTIÓN Y EL
CONTROL DE COMUNICACIÓN ENTRE USUARIOS. ESPAÑA:
UNIVERSIDAD DE JAÉN. Recuperado el 10 de 06 de 2020, de
http://tauja.ujaen.es/handle/10953.1/6689
Chen, C. (21 de 05 de 2019). Significados de Sistemas de Información. Obtenido de
Significados.com: Chen, Caterina (21/05/2019). "Sistema de información". En:
Significados.com. Disponible en: https://www.significados.com/sistema-de-
informacion/ Consultado: 29 de junio de 2020, 10:55 am.
De La Fuente Rubio, E. (28 de 04 de 2015). Recuperado el 05 de 06 de 2020, de
http://cursos.delaf.cl/archivos/cursos/sistemas-
operativos/apunte/Apunte%20de%20Sistemas%20Operativos%20(delaf).pdf
devmagazine. (05 de 08 de 2018). sistemas operativos de computadora.
Recuperado el 11 de 06 de 2020, de https://devmagazine.co/estos-son-los-5-
mejores-sistemas-operativos-para-tu-computador/2235/
Fuenmayor, A. (03 de 03 de 2020). Recuperado el 20 de 11 de 2020, de
https://empresas.blogthinkbig.com/software-libre-hace-avanzar-sociedad/

74
García, P. (2019). Desarrollo de prototipos de sistemas embebidos multicapa para
sistemas de telecomunicaciones. Obtenido de
http://132.248.9.195/ptd2019/octubre/0796314/0796314.pdf
González, G. (12 de 06 de 2017). Genbeta. Obtenido de
https://www.genbeta.com/paso-a-paso/como-crear-una-maquina-virtual-con-
windows-10-para-probar-las-beta-de-insider
Iván Ramírez. (s.f.). xataka. Obtenido de xataka:
https://www.xataka.com/especiales/maquinas-virtuales-que-son-como-
funcionan-y-como-utilizarlas
Lázaro, A. (2019). Hardware y Software: definiciones y conceptos. Obtenido de
Hardware y Software: definiciones y conceptos:
https://www.profesionalreview.com/2019/11/10/hardware-software-
definiciones/
Linux, M. (2016). Guía Oficial del Usuario. Recuperado el 14 de 06 de 2020, de
https://linuxmint.com/documentation/user-
guide/Cinnamon/spanish_mexico_17.0.pdf
MÓVIL, T. (18 de 05 de 2020). sistemas operativos para teléfonos móviles.
Recuperado el 05 de 06 de 2020, de https://miracomosehace.com/mejores-
sistemas-operativos-telefonos-moviles-mas-usados/
Ortiz, A. (10 de 10 de 2016). Etapas de desarrollo de un Software. Obtenido de
https://ortizvivas.com/blog/etapas-de-desarrollo-de-un-software/
Peña Millahuall, C. (2015). Windows 10 (1 ed.). Argentina: RedUsers. Recuperado el
15 de 06 de 2020
Pinto, M. (2019). Sistemas operativos. Recuperado el 05 de 06 de 2020, de
http://www.mariapinto.es/alfineees/sistemas/que.htm
Puebla, U. A. (5 de 7 de 2008). Fases del proceso de desarrollo de software.
Obtenido de https://sistemasvd.wordpress.com/category/ingenieria-de-
software/
Quality-Dev. (16 de 09 de 2019). www.qualitydevs.com. Obtenido de
https://www.qualitydevs.com/2019/09/16/que-es-angular-y-para-que-
sirve/#:~:text=Angular%20es%20un%20framework%20opensource,SPA%20(
Single%20Page%20Application).&text=Por%20su%20programaci%C3%B3n
%20reactiva%2C%20la,autom%C3%A1ticamente%20tras%20realizar%20l

75
Redator, R. (23 de 05 de 2019). Como crear una app. Obtenido de
https://rockcontent.com/es/blog/como-crear-una-app/
ReDIGIT. (13 de 08 de 2018). SISTEMA OPERATIVO MANJARO. Recuperado el
16 de 06 de 2020, de https://blog.redigit.es/que-es-manjaro-y-como-instalarlo/
RioHam. (08 de 06 de 2018). Guía de instalación Archilinux. Recuperado el 16 de 06
de 2020, de https://denovatoanovato.net/instalar-arch-linux/#creando-unidad-
de-arranque
Rodríguez, J. (2003). Introducción a la programación: Teoría y práctica. Alicante:
Club Universitario, San Vicente de Alicante.
Royano Gómez, I. (26 de 05 de 2016). Manjaro Linux. Recuperado el 16 de 06 de
2020, de https://medium.com/enredando-con-linux/aprendiendo-manjaro-
fd36f12aa7d3
Venturini, G. (25 de 06 de 2018). El sistema operativo. Recuperado el 01/06/2020,
de https://www.tecnologia-informatica.com/el-sistema-
operativo/#:~:text=Cuando%20el%20sistema%20operativo%20comienza,dat
os%20%C3%BAtiles%20para%20el%20sistema.

76

También podría gustarte