Introduccion Sistemas Operativos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 96

Introducción a

Sistemas Operativos
Octubre – 2021
Un sistema operativo es un programa
(software) que…

• ...gestiona (maneja) los componentes físicos


(hardware) de un computador.
• ...ofrece las bases (un entorno) para que los
programas de aplicación se ejecuten.
• …actúa como intermediario entre la persona que usa
el computador (usuario) y los componentes físicos
(hardware) del computador.
• Ejemplos: Windows 10, Linux, Windows server 2019,
Unix (Solaris, Irix, HP-UX, AIX)
– Algunos son diseñados para ser cómodos, otros para ser
eficientes y otros para tener una combinación de estas dos
características.
“An operating system is a living, breathing
software entity. The soul of the computing
machine, it is the nervous system that turns
electrons and silicon into a personality. It
brings life to the computer.”
Mike Gancarz
Introducción del libro “The Unix Philosophy”
Contenido
• ¿Qué es un sistema operativo?
• Estructura de un sistema de computación
• ¿Qué hace un sistema operativo?
• Retos de un sistema operativo
• Historia abreviada de los sistemas operativos
• Organización y arquitectura de un computador
• Estructura de un Sistema Operativo
• Operaciones de un S.O.
• Gestión de procesos
• Gestión de la memoria
• Gestión de almacenamiento externo
• Protección y seguridad
• Estructuras de datos del sistema operativo y acceso al código fuente
de Linux
• Versiones de Linux y de Windows
• Ambientes de computación
• El estudio de sistemas operativos
¿Qué es un
sistema
operativo?
• Software que administra los
recursos de un computador
para los usuarios y las
aplicaciones
• Un programa que actua
como un intermediario entre
los usuarios y el hardware
del computador
• Metas del Sistema
operativo:
– Ejecutar los programas de
los usuarios y resolver
problemas de los usuarios
de manera más sencilla
– Hacer el Sistema de
cómputo conveniente para
ser utilizado
– Usar el hardware del
computador de una manera
más eficiente
Operador …
Sistemas
operativos

Operador de tablero
de
conmutación

Operadores de
computadores
Estructura de un sistema de
computación
• Un sistema de computación puede
ser dividido en cuatro componentes:
– Hardware – proporciona los recursos Usuario
básicos de computación 3
Editor de texto
Usuario Usuario
• CPU, memoria, dispositivos de E/S 2 4
Hoja electrónica Bases de
– Sistema operativo Aplicaciones
datos

• Controla y coordina el uso del Compilador Navegación


hardware entre diversas aplicaciones y Sistema
Operativo
usuarios Usuario Usuario

– Programas de aplicación– define la 1


Hardw
5

manera en que los recursos del are

Sistema son utilizados para resolver


los problemas de computación de
los usuarios Otro modelo de sistema
• Procesadores de palabra, de
compiladores, navegadores web, computación que
sistemas de bases de datos, juegos de
video podemos
utilizar es:
– Usuarios hardware, software y
• Personas, máquinas, otros datos
computadores
Clasificación de los tipos de programas
• Personalmente tengo una clasificación de los programas
que se utilizan en un computador:
1. Sistemas operativos: conjunto de programas que permiten
utilizar el computador
2. Aplicaciones: programas que le permiten a una organización o
a una persona resolver sus problemas
a. A la medida: aplicaciones específicas para la empresa, por ejemplo el
sistema de reservas de una aerolínea específica.
b. Paquetes: aplicaciones que muchas personas pueden utilizar y, si
tienen éxito comercial, serán adquiridas en grandes cantidades por
los usuarios. Por ejemplo la suite de Office de Microsoft.
3. Herramientas de desarrollo: los lenguajes de programación,
ambientes de desarrollo, etc., con los cuales se construyen
sistemas operativos y aplicaciones (y por supuesto,
herramientas de desarrollo)
¿Qué hace un sistema
operativo?
Roles de un Sistema
Operativo

Árbitr
o

Ilusionist
a
Pegamen
to
¿Qué hace un sistema
operativo?
Roles de un Sistema
Operativo
• Árbitro:
– Asignación de recursos entre usuarios y aplicaciones
– Aislamiento entre usuarios y aplicaciones
– Comunicación entre usuarios y aplicaciones
• Ilusionista
– Cada aplicación tiene la sensación de tener reservada una
máquina completa de forma exclusiva
– Las limitaciones y los detalles físicos se enmascaran
– Proporciona objetos de alto nivel, como los archivos
• Pegamento
– Entorno de ejecución con un conjunto común de servicios
– Los archivos escritos por una aplicación pueden ser leidos
por otra
¿Qué hace un sistema
operativo?
Ejemplo de roles: Sistemas de
archivos
• Árbitro
– Evita que un usuario acceda sin permiso los archivos
de otro
• Ilusionista
– Archivos y directorios
– Los archivos pueden crecer a tamaños (casi)
arbitrarios
– E/S de caracteres o de bloques dependiendo si es en
el disco o en la red
– Detalles del disco, como el tamaño del sector, se
ocultan
• Pegamento
– Comandos de apertura de archivos, impresión de
archivos o lectura de archivos [open(),
¿Qué hace un sistema
operativo?
• Depende del punto de vista:
– del usuario
– del sistema
• Un usuario desea conveniencia, facilidad de uso y buen
desempéño
– NO le interesan los detalles de la utilización de los recursos
• Sin embargo, en sistemas de cómputo compartido, como un
mainframe o un minicomputador, el sistema operativo
debe tener satisfechos todos los usuarios
• Los usuarios de sistemas dedicados, como las estaciones
de trabajo (workstations) tienen recursos dedicados, pero
en muchas ocasiones comparten recursos desde servidores
• Los dispositivos móviles generalmente tienen pocos
recursos, y deben optimizar la usabilidad y la vida de la
batería
• Algunos computadores tienen muy poca o ninguna interfaz
para el usuario, como los computadores embebidos en
dispositivos del hogar o en automóviles. Muchos ejecutan
Definición de Sistema operativo
• NO hay una definición aceptada “universalmente” de un Sistema
que cumple muchos roles.
• El sistema operativo es un asignador de recursos
– Gestiona todos los recursos
– Decide entre solicitudes conflictivas para garantizar el uso eficiente y
equitativo de los recursos
• El sistema operativo es un programa de control
– Controla la ejecución de los programas para prevenir la ocurrencia de
errores y mejorar el uso del computador
• “Todos los componentes que el proveedor integra y agrupa cuando
se ordena un sistema operativo” es una aproximación
– Pero varía bastante
• “Aquel programa que se ejecuta todo el tiempo en el computador”
es el kernel.
– Cualquier otro software es o
• Un programa del sistema (incluido con el Sistema operativo) , o
• Un programa de aplicación.
• Los Sistemas operativos de equipos móviles también incluyen
middleware: frameworks de software que proveen servicios
adicionales a los desarrolladores de aplicaciones como bases de
datos, multimedia, gráficas
GNU/Linux
• Un comentario antes de seguir: Algunos “puristas” amantes
del Sistema operativo Linux, señalan que el nombre
completo del Sistema operativo debe ser GNU/Linux.
– Para las personas del Proyecto GNU, Linux es realmente el kernel
del Sistema operativo. Muchas otras cosas que están por fuera
del kernel vienen del Proyecto GNU de la Free Software
Foundation (https://www.fsf.org/es).
– Por esta razón los “puristas” llaman al Sistema completo
"GNU/Linux" del cual el kernel Linux es un componente esencial.
• Teniendo en cuenta esta aclaración, y a pesar de los
“puristas”, es preciso decir que casi todo el mundo reconoce
la palabra “Linux” como el nombre del Sistema completo.
– La sigla "GNU" del nombre del Proyecto significa "GNU is Not
Unix"
Retos del sistema operativo
• Confiabilidad
– ¿El Sistema realiza las funciones para las que fue
diseñado?
• Disponibilidad
– ¿Que proporción del tiempo está funcionando el sistema
correctamente?
• Mean Time To Failure (MTTF), Mean Time to Repair (MTTR)
• Availability = MTTF / (MTTF + MTTR)
• http://blog.fosketts.net/2011/07/06/defining-failure-mttr-mttf-mtbf/
• Seguridad
– ¿el Sistema puede ser comprometido por un atacante?
• Confidencialidad
– La información solo la puede accede un grupo de usuarios
autorizados
Socket
Retos del sistema operativo

• Portabilidad
– Para los programas:
• Application
programming interface
(API)
• Abstract virtual machine
(AVM)
– Para el sistema
operativo
• Capa de abstracción del
Hardware
Retos del sistema operativo
• Desempeño
– Tiempo de latencia/respuesta
• ¿Cuánto tiempo toma realizar una operación de forma
completa?
– Rendimiento (Throughput)
• ¿Cuántas operaciones pueden ser realizadas por unidad de
tiempo?
– Trabajo adicional (Overhead)
• ¿Cuánto trabajo extra es realizado por el Sistema
operativo?
– Equitatividad (Fairness)
• ¿Qué tan equitativo es el desempeño recibido por los
diferentes usuarios?
– Previsibilidad (Predictability)
• ¿Qué tan consistente es el desempeño a través del tiempo?
Historia abreviada de los sistemas
operativos
Desempeño de los computadores
en el tiempo
Primeros Sistemas Operativos:
computadores muy costosos
• Una aplicación a la vez
– Tenía control complete del hardware
– La librería de Runtime era un sistema operativo
primitivo
– Los usuarios hacían fila para utilizar el
computador
• Sistemas de procesamiento por lotes (Batch
systems)
– Asignaba la CPU mediante una cola de trabajos
(jobs)
– El Sistema operativo podía cargar el siguiente
trabajo (job) mientras ejecutaba el actual
– Los usuarios enviaban los trabajos (jobs) y
esperaban
Sistemas operativos de tiempo
compartido:
computadores y personas muy
costosos
• Multiples usuarios en el computador al
mismo tiempo
– Multiprogramación: ejecutaba multiples
programas al mismo tiempo
– Desempeño interactivo: intentaba completar
rápidamente las tareas de todos
– Como los computadores habían bajado de
precio, era más importante optimizar el tiempo
del usuario, NO el tiempo del computador.
Sistemas operativos actuales:
Los computadores son baratos
• Smartphones
– Los iPhones y las iPads ejecutan dos sistemas
operativos diferentes!
• iOS, y
• Una versión ajustada por Apple del microkernel de la
familia L4 en el coprocesador Enclave seguro
• Sistemas embebidos
• Laptops
• Tablets
• Máquinas virtuales
• Servidores de Data Center
Organización y arquitectura de un
computador
• OPERACIÓN DE UN SISTEMA DE CÓMPUTO
– Consta de una o más CPUs y varias controladoras conectadas a través de un
bus común que permite acceso compartido a la memoria
– Las CPUs y las controladoras pueden operar concurrentemente y deben
competir por el acceso a la memoria.

Monitor
Discos

Teclado
On line

Mouse Impresora
Controladora Controladora Adaptador
CPU
de discos USB Gráfico

Memoria
Componentes de un computador con
un único procesador
CPU (Central Processing Unit)

Scheduling
Control

Driver Driver
Entrada ALU Salida

Memory
Memoria Management

Driver Driver

Networking
Partición
File System Almacenamiento
Red de datos
01 secundario
Volumen
File 01 Partición
System 02
Volumen Storage
01
File 02 Management
System
02
Arquitectura de un computador
• Se puede considerar que la arquitectura de un
computador tiene tres elementos:
1. El conjunto de instrucciones (ISA - Instruction Set
Architecture)
2. La organización (microarquitectura)
3. El hardware (componentes electrónicos)
• Los dos últimos están asociados a la
implementación del computador
Arquitectura de un computador
• ISA: hace referencia al conjunto de instrucciones visibles al
programador.
– Cuando se compila un programa, este es traducido a lenguaje de
máquina. Este lenguaje de máquina es que implementa el ISA.
• El ISA es la frontera entre el software y el hardware
– Un procesador 80x86 tiene un conjunto de instrucciones
diferente a un procesador ARM y los dos tienen un conjunto de
instrucciones diferente a un procesador MIPS.
• Los ISA se diferencian por la forma en que acceden y
direccionan la memoria, los modos de direccionamiento, el
tipo y tamaño de los operandos, las operaciones
soportadas, las instrucciones condicionales soportadas, la
codificación (fija o variable), entre otros.
Arquitectura de un computador
• Microarquitectura (organización): incluye aspectos como el
sistema de memoria, la interconexión de la memoria, el diseño de
la CPU (Central Processing Unit), donde se implementan la
aritmética, la lógica, las instrucciones condicionales y la
transferencia de datos).
– Los procesadores AMD Opteron y el procesador Intel Core i7 que tienen
el mismo conjunto de instrucciones (ISA) -el conjunto de instrucciones
x86- pero tienen diferentes organizaciones
• Hardware: se refiere a los componentes específicos de un
computador, incluyendo el diseño lógico detallado y la tecnología
de integración de los circuitos.
– El procesador Intel Core i7 y el Intel Xeon 7560 son casi idénticos, pero
tienen diferentes velocidades de reloj y diferente sistema de acceso a la
memoria, haciendo que el Xeon 7560 sea mejor para servidores.
Arquitectura de un computador
(Analogía)
ISA
Diferente ISA

Igual ISA
Diferente
Igual ISA, organización
organización similar,
implementación
física diferente
Operación de un sistema de
cómputo
• Los dispositivos de E/S y la CPU pueden operar concurrentemente
• Cada controladora está a cargo de un tipo específico de dispositivos
(unidades de disco, dispositivos de audio, dispositivos de vídeo)
• Cada controladora tiene un buffer local
• Cada tipo de controlador de dispositivo tiene un módulo de software
(device driver) en el Sistema operativo para gestionarlo
• La CPU mueve datos desde/hacia la memoria principal hacia/desde
buffers locales
• Las operaciones de E/S van desde el dispositivo hacia el buffer local de la
controladora
• La controladora del dispositivo informa a la CPU que este ha terminado su
operación mediante una interrupción
Interrupciones
• La ocurrencia de un evento se indica con una interrupción: puede
ser de hardware o de software.
• Las interrupciones deben gestionarse los más rápido que se pueda
• Una interrupción generalmente transfiere el control a una ‘rutina de
servicio de la interrupción’, mediante el vector de interrupciones
(interrupt vector), que contiene las direcciones de todas las rutinas
de servicio
• La arquitectura de interrupciones debe guardar la dirección de la
instrucción interrumpida.
• Un trap o una exception es una interrupción generada por software
causada por un error o por solicitud del usuario
• Un Sistema operativo es un manejador de interrupciones
• El Sistema operativo preserva el estado de la CPU al guardar los
registros y el Contador de programa
• Determina qué tipo de interrupción ha ocurrido
– Sondeo (polling)
– Sistema de interrupción vectorizado
• Segmentos separados de código determina qué acción debe ser
adelantada para cada tipo de interrupción
Diagrama de tiempo de una
interrupción
Ejecutando
proceso del
usuario

CPU
Procesando
interrupción
de E/S
Ocioso

Dispositivo
E/S
(disco) Transfiriendo
datos
Interrupción de Interrupción de
Solicitud E/S transferencia Solicitud E/S transferencia
terminada terminada

Cuando la CPU es interrumpida, deja de hacer lo que estaba haciendo e inmediatamente


transfiere la ejecución a una dirección fija de memoria predeterminada. Esta dirección fija
usualmente contiene otra dirección de memoria: la dirección de inicio donde está
colocada la rutina de servicio para dicha interrupción.

Cuando la ejecución de la rutina de servicio para la interrupción concluye, la CPU


reasume el procesamiento que suspendió al recibir la señal de interrupción.
Inicio de un computador
• El programa de inicio (bootstrap program) es
cargado al encender o al iniciar (reboot).
– Normalmente está almacenado en la ROM o en
una EPROM, generalmente conocida como
firmware
– Inicializa todos los aspectos del sistema
– Carga el kernel del sistema operativo e inicia la
ejecución
Ciclo de E/S manejada por
interrupciones
Estructura de E/S
• Después que inicia la operación de E/S, el control retorna al
programa del usuario solo después de terminar completamente la
operación de E/S
– Una instrucción de espera (wait) deja ociosa la CPU hasta la próxima
interrupción
– Ciclo de espera (contención para acceso a la memoria)
– Al menos una solicitud de E/S es tenida en cuenta en el tiempo, no hay
procesamiento de E/S simultaneo
• Después que inicia la operación de E/S, el control retorna al
programa del usuario SIN esperar la terminación de la operación
de E/S
– System call (llamada del sistema) solicita al sistema operativo que le
permita al usuario esperar a la terminación de la operación de E/S
– La tabla de estado de los dispositivos (Device-status table) tiene una
entrada para cada dispositivo de entrada salida indicando su tipo,
dirección y estado
– El sistema operativo utiliza la tabla de estado de los dispositivos para
determinar su estado y modificar el registro para incluir la interrupción.
Estructura del almacenamiento
• Memoria principal: Los programas del computador deben estar en memoria
principal (Random-Access Memory, RAM) para ser ejecutados.
• La memoria principal es la única área de almacenamiento grande que el
procesador puede acceder directamente.
– Acceso directo (Random access)
– Generalmente es volátil}
– Implementada generalmente como DRAM (Dynamic Random-access Memory)
• Almacenamiento secundario– una extensión de la memoria principal que
proporciona una gran capacidad de almacenamiento NO volátil
• Discos duros (HDD) – placas de vidrio o de metal rígido cubiertos con
material de grabación magnético
– La superficie del disco se divide lógicamente en pistas (tracks), que a su vez están
divididos en sectores (sectors)
– La controladora del disco (disk controller) determina la interacción lógica entre el
disco y el computador
• Discos de estado sólido – más rápidos que los discos duros, NO volátil
– Diversas tecnologías
– Se han venido tornando populares
Jerarquía de sistemas de
almacenamiento
• Los sistemas de almacenamiento están organizados en una
jerarquía por
– Rapidez
– Costo
– Volatilidad
• Caching – copia de información en un Sistema de
almacenamiento más rápido; la memoria principal puede ser
vista como un cache para el almacenamiento secundario.
• Controladora de dispositivos - para cada controladora de
dispositivos para gestionar las operaciones de E/S
– Proporciona una interfaz uniforme entre el controlador y el kernel
Jerarquía de dispositivos de
almacenamiento

Más costoso Registros


Más rápido
Memoria cache Memoria
de
semiconductores
Memoria RAM

Disco electrónico (disco de estado sólido)

Menos costoso Disco magnético (disco duro)


Menos rápido
Disco óptico (DVD)

Cintas magnéticas
Jerarquía de dispositivos de
almacenamiento
Caching
• Principio de almacenamiento importante, se utiliza en
diferentes niveles dentro de un computador (en el hardware,
en el sistema operativo, en las aplicaciones)
• La información en uso se copia –de manera temporal- desde
un dispositivo de almacenamiento más lento a uno más
rápido
• El dispositivo de almacenmiento más rápido (cache) verifica
primero si la información está ya almacenada
– Si es así, la información se usa directamente desde el cache
(fast)
– Si NO es así, los datos son copiados al cache y se utilizan allí
• La capacidad del dispositivo de cache es menor que la
capacidad del dispositivo del que se está haciendo ‘caching’
– La gestión del caching es un importante problema de diseño
– Tamaño del cache y política de reemplazo
Estructura del Acceso Directo a
Memoria (Direct Memory Access)
• Utilizado para dispositivos de E/S de alta velocidad con
capacidad para transmitir información cerca a la rapidez de
acceso a la memoria
• La controladora del dispositivo transfiere bloques de datos
desde el buffer del dispositivo directamente a la memoria
principal sin intervención de la CPU
• Solo una interrupción es generada por bloque, en lugar de
una interrupción por byte
Cómo trabaja un sistema de cómputo
moderno

Ciclo de
Hilo de ejecución
ejecución Memoria de Instrucciones
cache Datos Instrucciones
CPU (*N) y
datos
Solicitud Interrupciones
Datos
de E/S

DMA

Dispositivo Memoria
(*M)
Arquitectura de un sistema de
cómputo
• La mayoría de Sistemas utiliza[ba]n UN (1) procesador de
propósito general
– La mayoría de sistemas también tienen procesadores de
propósito especial
• Los sistemas multiprocesador han crecido en uso e
importancia
– Conocidos también como sistemas paralelos, sistemas
fuertemente acoplados
– ventajas:
• Incrementan rendimiento
• Economía de escala
• Incrementa la confiabilidad – tolerancia a fallas
• Dos tipos:
– Multiprocesamiento asimétrico – a cada procesador se le asigna
una tarea específica
– Multiprocesamiento simétrico – cada procesador realiza todas las
tareas
Arquitectura de multiprocesamiento
simétrico
CPU0 CPU1 CPU2
registros registros registros

cache cache cache

Memoria
Diseño Dual-Core
• Multiple-chip y multicore (múltiple núcleo)
• Los sistemas tienen todos los chips
– El chasis tiene multiples sistemas separados

CPU0 CPU1
registros registros

cache cache

Memoria
Numeración Intel
• Intel utiliza un sistema de numeración que
permite identificar las características básicas y
uso esperado de un microprocesador. Por
ejemplo:
Numeración Intel
• En estos ejemplos de numeración se muestra:
– La marca del procesador (Intel Core),
– El modificador de marca. En este ejemplo es i7. De forma
simple, para una misma generación de procesadores, un
procesador Intel Core i7 tiene un rendimiento superior a un
Core i5, que a su vez es superior a un Core i3.
– El “indicador de generación”. El número 6 -mostrado en el
ejemplo- corresponde a la sexta generación de
procesadores Core con microarquitectura [nombre clave]
Skylake. Los procesadores de esta generación fueron
liberados en el mercado a partir agosto de 2015. Hasta
mediados de 2017, Intel había liberado ocho generaciones
de procesadores Core para equipos de escritorio
Numeración Intel
• Los tres dígitos siguientes corresponden al “número de modelo”.
Por lo general, en la misma serie, ofrece un rendimiento superior
cuanto más grande sea este número. Por ejemplo: un Intel Core
i3-5350 sería superior a un Core i3-5200.
• Finalmente, las letras que acompañan al número de modelo
indican la línea de producto. Por ejemplo:
i. “K”: Equipo de escritorio – Multiplicador desbloqueado para facilitar overclocking
ii. “T”: Equipo de escritorio – Optimizado para reducir consumo de potencia
iii. “HK”: Portátil – Gráficos de alto rendimiento y Multiplicador desbloqueado
iv. “H”: Portátil – Gráficos de alto rendimiento
v. “HQ”: Portátil – Gráficos de alto rendimiento y CPU de cuatro núcleos
vi. “U”: Portátil – Consumo ultra bajo
vii. “Y”: Portátil – Bajo consumo
Características que diferencian los
procesadores Intel
• Diferencias entre Intel Core i3, i5, i7 e i9
– Número de núcleos: Cuantos más núcleos, más eficientemente se
podrán realizar varias tareas a la vez.
– Cantidad de memoria cache: está dentro del procesador. Ésta suele ser
de unos pocos MB de capacidad, y en ella se almacenan datos que el
procesador necesita de manera constante.
– HyperThreading: divide un núcleo físico en dos núcleos lógicos, más
conocidos como threads o hilos. Gracias a ello, un procesador de 2
núcleos funcionará como uno de 4, y uno de 4 funcionará como uno de
8. Curiosamente, son los i3 y los i7 los que tienen esta característica,
mientras que los i5 no tienen HyperThreading. (¿i9 tiene
HyperThreading?)
• Es importante tener en cuenta que un núcleo físico es más potente que uno
virtual. Así, un procesador i5 de 4 núcleos reales va a ser siempre más potente
que un i3 de 2 núcleos físicos y 4 virtuales.
Numeración Intel para identificar los
procesadores
– Frecuencia de procesamiento: La frecuencia de un
procesador es el número de ciclos de reloj que puede
realizar un procesador en un segundo.
• Un chip a 3,5 GHz puede hacer 3.500 millones de ciclos de reloj
por segundo. En algunos casos, la frecuencia en GHz de algunos
procesadores i3 es superior a la de procesadores i5 e i7.
• Esto no quiere decir que el i3 sea más potente, ya que los i5 y los
i7 tienen lo que se conoce como Turbo Boost.
– El Turbo Boost permite que el procesador suba su
frecuencia durante una cantidad determinada de tiempo
en el caso de que sea necesario, funcionando a frecuencias
más bajas cuando esto no sea así.
• Un i3-7300 funciona a 4 GHz, mientras que un i5-7600 alcanza los
3.5 GHz. Sin embargo, gracias al Turbo Boost, el i5-7600 llega a
alcanzar los 4,1 GHz cuando hace falta.
Numeración Intel para identificar los
procesadores
– Potencia de la tarjeta gráfica integrada: Prácticamente
todos los procesadores de Intel incluyen una tarjeta gráfica
en su interior, lo que hace que sus chips sean ideales para
portátiles, al no requerir una tarjeta gráfica dedicada para
funcionar, así como en un ordenador de sobremesa
podemos estar un tiempo sin tarjeta gráfica dedicada por
avería o porque la hayamos vendido a la espera de comprar
una nueva.
– Intel ha homogeneizado las tarjetas gráficas que incluyen
sus procesadores, y encontramos la HD 630 en todos los
procesadores i3, i5 e i7 de ordenador y algunos de
portátiles, mientras que la HD 620 queda relegada a unos
pocos procesadores para portátiles.
Listas con las características de
procesadores/microarquitecturas
• https://en.wikipedia.org/wiki/List_of_Intel_Core_i3_microprocessors
• https://en.wikipedia.org/wiki/List_of_Intel_Core_i5_microprocessors
• https://en.wikipedia.org/wiki/List_of_Intel_Core_i7_microprocessors
• https://en.wikipedia.org/wiki/List_of_Intel_Core_i9_microprocessors
• https://en.wikipedia.org/wiki/List_of_AMD_microprocessors
• https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures
Sistemas en Cluster
• Similar a los sistemas multiprocesador, pero multiples
sistemas trabajan juntos
– Usualmente comparten almacenamiento a través de una
red de área de almacenamiento [storage-area network
(SAN)]
– Proporciona servicios de alta disponibilidad
(high-availability - HA) que sobrevive a las fallas
• Clustering asimétrico tiene una máquina en modo hot-standby
• Clustering simétrico tiene multiples nodos ejecutando
aplicaciones, haciendo monitoreo entre ellos
– Algunos cluster son para computación de alto desempeño
(high-performance computing - HPC)
• Las aplicaciones deben ser escritas para utilizar paralelización
– Algunos tienen un gestor de bloqueo distribuido
(distributed lock manager - DLM) para evitar el conflicto
entre operaciones
Sistemas en Cluster
Computador Computador Computador

SAN
Storage Area Network
Multiprogramación y mulitasking
• Multiprogramación (Sistema por lotes –Batch-) necesario por eficiencia
– Un solo usuario no puede mantener ocupados todo el tiempo la CPU y los
dispositivos de E/S
– La multiprogramación organiza jobs (código + datos) de tal forma que la CPU
siempre tiene ejecutando uno de estos ‘jobs’
– Un subconjunto de jobs se mantiene en la memoria del sistema
– Un ‘job’ es seleccionado y ejecutado mediante el job scheduling (planificación de
trabajos)
– Cuando este tiene que esperar (debido, por ejemplo, a una operación de E/S), el
Sistema operativo Cambia a otro job.

• Tiempo compartido (multitarea- multitasking) es la extension lógica en la


cual la CPU conmuta jobs de manera tan frecuente que los usuarios pueden
interactuar con cada job mientras este está ejecutándose, creando la
computación interactiva interactive
– El tiempo de respuesta debe ser menor a un segundo
– Cada usuario tiene al menos un programa ejecutándose en memoria --> un
proceso
– Si se tienen varios jobs listos para ejecutar al mismo tiempo --> CPU scheduling
– Si los procesos no pueden colocarse en la Ram, el swapping los mueve mientras
se ejecutan
– La memoria virtual permite la ejecución de procesos que no están completamente
en memoria
Distribución de la memoria para
sistemas multiprogramados
Operaciones del Sistema
Operativo
• Programa de inicio (Bootstrap program) –
Código simple para inicializar el Sistema,
cargar el kernel
• Inicio de los daemons del sistema (servicios
ofertados fuera del kernel)
• Manejador de interrupciones (hardware y
software)
– Interrupciones por hardware desde uno de los
dispositivos
– Interrupciones por Software (exception o trap):
• Error de software (división por cero)
• Solicitud de servicios al sistema operativo
• Otros problemas de procesos como ciclos infinitos,
procesos interactuando entre ellos o con el sistema
Operaciones del Sistema Operativo
(cont.)
• La operación en modo-dual permite al sistema
operativo protegerse a sí mismo y a otros
componentes del sistema
– Modo usuario y modo kernel
– Bit de modo proporcionado por el hardware del
procesador
• Ofrece la posibilidad de distinguir en qué momento se
ejecuta código en modo usuario o en modo kernel
• Existen instrucciones categorizadas como privilegiadas,
que solo pueden ejecutarse en modo kernel
• Las llamadas al sistema (system call) llevan la ejecución al
modo kernel. El retorno de las llamadas del sistema
(system call) reestablece el modo usuario.
• Existen CPUs que soportan operaciones
multimodo
– Por ejemplo el modo virtual machine manager
(VMM) para VMs invitadas (guest)
Transición de modo Usuario a
modo Kernel
• Temporizador para evitar loops infinitos / acaparar recursos del
proceso
– El temporizador es ‘programado’ (configurado) para interrumpir el
computador después de cierto periodo de tiempo
– Mantiene un contador que es decrementado por el reloj físico.
– El Sistema operativo ‘programa’ (configura) el contador [es una
instrucción privilegiada]
– Cuando el contador llega a cero genera una interrupción
– Configurado antes de hacer el ‘scheduling’ del proceso para recuperar el
control o terminar el programa que excede el tiempo asignado
Gestión de Procesos
• Un proceso es un programa en ejecución. Es una ‘unidad de
trabajo’ dentro del sistema. Un programa es una entidad pasiva, un
proceso es una entidad activa.
• Los procesos necesitan recursos para realizar sus tareas
– CPU, memoria, E/S, archivos
– Inicialización de datos
• La terminación de procesos debe ‘recoger’ los recursos reutilizables
• Procesos con un solo hilo tienen un contador de programa
especificando la ubicación de la siguiente instrucción que debe ser
ejecutada
– Los procesos ejecutan las intrucciones secuencialmente, una a la vez,
hasta concluir el programa.
• Los procesos multi-hilo tienen un contador de programa por hilo
• Normalmente un sistema operativo tienen muchos procesos, varios
usuarios. varios sistemas operativos ejecutándose
concurrentemente en una o más CPUs
– Concurrencia mediante multiplexamiento de CPUs entre procesos/hilos
Actividades de gestión de
procesos
• El Sistema operativo es el responsable de hacer seguimiento a las
actividades relacionadas con la gestión de procesos:
– Crear y borrar procesos de usuario y procesos del sistema
– Suspender y reanudar procesos
– Proporcionar mecanismos para la sincronización de procesos
– Proporcionar mecanismos para la comunicación entre procesos
– Proporcionar mecanismos para el manejo de bloqueos mutuos (abrazos
mortals – deadlock)
Gestión de memoria
• Para ejecutar las instrucciones de un programa, estas deben
estar almacenadas en la memoria principal.
• Los datos (o un subconjunto de los datos) que requiera el
programa, deben estar en memoria.
• La gestión de memoria determina qué está almacenado
en memoria y cuándo.
– Optimizando la utilización de la CPU y la respuesta del
computador a los usuarios
• Actividades de gestión de memoria
– Hace seguimiento de qué zonas de la memoria están siendo
utilizadas en el instante y quién la está utilizando
– Decidir qué procesos (o qué parte de los procesos) y qué datos
se mueven hacia la memoria o se mueven fuera de la memoria
– Asignar y desasignar espacio de memoria a medida que se
requiera
Gestión de sistemas de archivos
(file system)
• Los Sistemas Operativos proporcionan una ‘vista’ lógica y uniforme
del almacenamiento de información en diversos medios
– Abstrae las propiedades físicas para la unidad lógica de almacenamiento:
el archivo
– Cada medio es controlado por tipo de dispositivo (i.e., controladora de
disco, controladora de cinta, etc.)
• Variando las propiedades como rapidez de acceso, capacidad, tasa de
transferencia, método de acceso (secuencial o aleatorio)

• Gestión de sistemas de archivos


– Usualmente los archivos se organizan en directorios
– En muchos sistemas operativos, permite hacer control de acceso para
determinar quién puede acceder qué y con qué derechos (lectura,
escritura, ejecución)
– Las actividades del Sistema Operativo incluyen
• Crear y borrar archivos y directorios
• Primitivas para manipular archivos y directorios
• Mapeo de los archivos en almacenamiento secundario
• Copias de seguridad (backup) de archivos sobre medios de almacenamiento
estables (no-volátil)
Gestión de almacenamiento
masivo
• Usualmente se utilizan discos para almacenar datos que no están
en la memoria principal o los datos que deben guardarse por un
largo tiempo
• La gestión adecuada es de importancia central
• La rapidez total de las operaciones del computador depende del
subsistema de gestión de disco y sus algoritmos
• Actividades del sistema operativo
– Montaje y desmontaje
– Gestión del espacio libre
– Asignación de espacio de almacenamiento
– Planificación (scheduling) del disco
– Particionamiento
– protección
• No todo el almacenamiento debe ser de alta velocidad
– Almacenamiento terciario incluye discos ópticos, cintas magnéticas
– También debe ser administrado – por el Sistema operativo o aplicaciones
especializadas
– Varía entre WORM (write-once, read-many-times) y RW (read-write)
Caching
• Es un principio de almacenamiento muy importante, realizado en
muchos niveles en un computador (hardware, sistema operativo,
software)
• LA información que está en uso se copia de manera temporal
desde almacenamiento más lento a almacenamiento de acceso
más rápido.
• El almacenamiento más rápido (cache) revisa antes si ya tiene
copia de la información:
– Si ya tiene copia es usada directamente desde el cache
– Si no tiene copia, los datos son copiados al cache y luego se utiliza
• La capacidad del almacenamiento cache es menor que el
almacenamiento que esta siendo respaldado
– LA gestión de la memoria cache es un problema de gestión de recursos
importante
– Se deben establecer políticas para el tamaño y el reemplazo del cache
Desempeño de varios niveles de
almacenamiento

El movimiento entre niveles de jerarquía de almacenamiento puede ser explícito o


implícito
Migración del bloque de datos “A”
desde el disco hacia el registro
• Los ambientes Multitasking deben ser cuidadosos para
garantizar el uso del valor más reciente, sin importar el
nivel de la jerarquía de almacenamiento donde se encuentre

• En ambientes multiprocesador se debe proporcionar


coherencia del cache en hardware de tal forma que todas
las CPUs tengan el valor más reciente en su cache
• En ambientes distribuidos la situación es aún más compleja
– Pueden existir diversas copias del dato
Subsistema de E/S
• Un propósito del sistema operativo es ocultar al
usuario las peculiaridades de los diversos dispositivos
de hardware
• El subsistema de E/S es el responsable de
– La gestión de memoria de los dispositivos de E/S
incluyendo el ‘buffering’ (almacenamiento de datos de
forma temporal mientras están siendo transferidos),
‘caching’ (almacenamiento de partes de los datos en
almacenamiento de acceso rápido que mejora el
desempeño), ‘spooling’ (superposición o solapamiento de la
salida de un ‘job’ con la entrada de otros ‘jobs’)
– Interfaz general del controlador (driver) de dispositivos
– Controladoras (drivers) para dispositivos de hardware
específicos
SPOOL: Simultaneous Peripheral
Operations On-Line
Protección y seguridad
• Protección – cualquier mecanismo para controlar el acceso de los
procesos o usuarios a los recursos definidos por un sistema
operativo.
• Seguridad – defensas del Sistema contra ataques internos y
externos
– Rango amplio, incluyendo negación de servicios (denial-of-service),
gusanos (worms), virus, robo de identidad
• Los sistemas distinguen primero entre usuarios, para determiner
quién puede hacer qué
– Las identidades de usuarios (user IDs, security IDs) incluye el nombre y
el número asociado, uno por usuario
– El ‘User ID’ luego se asocial con todos los archivos y los procesos de ese
usuario para determinar el control de acceso
– El identificador de grupo (group ID) permite definir conjuntos de usuarios
y gestionarlos, estos grupos de usuarios también se asocian con cada
proceso y archivo
– El escalamiento de privilegios permite a los usuarios cambiarse a un ID
con más derechos
Estructuras de datos del kernel
• Similares a las estructuras de datos estándar
• Lista encadenada simple

• Lista doblemente encadenada

• Lista encadenada circular


Estructuras de datos del kernel
• Árbol de búsqueda binaria
izquierda <= derecha
– Desempeño de la búsqueda es O(n)
– Árbol de búsqueda binaria balanceada es
O(lg n)
Estructuras de datos del kernel
• Una función Hash puede crear un mapa hash
Funcion_hash (llave)

Mapa hash
0 1 . . n

Valor

• Bitmap – cadena de n dígitos binarios que representan el


estado de n elementos
• Estructuras de datos de Linux definidas en los archivos
include <linux/list.h>, <linux/kfifo.h>,
<linux/rbtree.h>
Acceso al código fuente de linux
• Un sitio donde se puede revisar el código fuente de Linux –y
ver la implementación de las estructuras mencionadas antes-
es
– https://elixir.bootlin.com/linux/latest/source

https://elixir.bootlin.com/linux/latest/source/include/linux/list.h
https://elixir.bootlin.com/linux/latest/source/include/linux/kfifo.h
https://elixir.bootlin.com/linux/latest/source/include/linux/rbtree.h
Numeración de las versiones del kernel
de Linux
• El kernel de Linux ha tenido tres esquemas de numeración
de versiones diferentes
• El primero esquema fue utilizado hasta llegar a la versión
“1.0”.
– La primera versión del kernel fue 0.01, seguido por 0.02, 0.03,
0.10, 0.11, 0.12 (primera versión GPL), 0.95, 0.96, 0.97, 0.98, 0.99
y finalmente 1.0.
• Después de la 1.0 y antes de la versión 2.6, se utilizó un
segundo esquema donde el número tenía la estructura
"A.B.C“.
– El número en la posición A indicaba la versión del kernel,
– B representaba una revisión importante del kernel y
– C una revisión menor.
Numeración de las versiones del kernel
de Linux
• Durante este periodo de tiempo, el número de la
versión se cambiaba sólo cuando había cambios
importantes en el concepto y en la
implementación del kernel:
– en 1994 (versión 1.0) y
– en 1996 (versión 2.0).
• El segundo número (el de la pocición B), cuando
era par indicaba que era una versión estable y
cuando era impar que era una versión de
desarrollo.
Numeración de las versiones del kernel
de Linux
• En 2004, después que la versión 2.6.0 fue liberada,
Linus Torvalds y otros decidieron que un ciclo de
tiempo más corto entre liberaciones sería benéfico.
Por esta razón, durante siete años los dos primeros
números permanecieron en 2.6 y el tercer número era
incrementado con cada nueva liberación (cada dos o
tres meses)
– En ocasiones se adicionaba un cuarto número para mostrar
que algún problema de seguridad o algún error menor se
había solucionado en el kernel.
– En este periodo de tiempo desapareció el sistema
par-impar para indicar si la versión era estable o no.
Numeración de las versiones del kernel
de Linux
• El 29 de Mayo de 2011, Linus Torvalds anunció que la versión del
kernel que siguiera a la liberación 2.6.39 sería la versión 3.0, con el
fin de conmemorar el aniversario número 20 de Linux.
• Para este último esquema se sigue manteniendo la practica
establecida de cambiar el número para cada liberación, pero en el
segundo número (no el tercero como ocurría en 2.6), es decir que
la liberación 3.1 seguiría a la 3.0.
• Un número adicional (que ahora es el tercer número) puede ser
adicionado cuando se necesite indicar solución de errores o de
problemas de seguridad, por ejemplo 3.0.18.
• Después de la version 3.19 el número principal se cambio a 4
• Después de la vesrión 4.21 el número principal se cambió a 5
[Marzo 4 de 2019]
• Última versión estable cuando se revisó esta presentación: 5.14.9
Numeración de las versiones del kernel
de Linux
• Visitar https://www.kernel.org/ para ver la versión
del último kernel estable
Versiones del sistema operativo
Windows

11

Server
2022

https://en.wikipedia.org/wiki/Microsoft_Windows#Timeline_of_releases
https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions
Ambientes de computación -
Tradicional
• Máquinas de propóstito general que operan de forma
independiente (stand-alone)
• Aunque en este momento está desdibujado ya que la
mayoría de equipos están interconectados (i.e., Internet)
• Los portales proporcionan accesos web a los sistemas
internos
• Los computadores de red (clientes delgados - thin
clients) hacen las veces de terminales Web
• Los computadores móviles se interconectan mediante redes
inalámbricas
• Las redes y sus components se han vuelto obicuas
(extendido por todas partes) – incluso en las redes de las
casas de familia se utilizan firewalls para proteger los
computadores y la información del hogar de ataques usuales
provenientes de Internet.
Ambientes de computación -
Móviles
• Los smartphones, que pueden llevarse en las manos,
las tablets, etc
• ¿Qué los hace diferentes de un laptop tradicional?
– Características adicionales: GPS, giroscope
– Permiten nuevo tipos de aplicaciones, como realidad
aumentada
– Para conectividad puede utilizar redes IEEE 802.11
(inalámbricas), o la red celular para pasar datos
• Los líderes en este momento Apple iOS y Google
Android
Ambientes de computación–
Distribuido
• Computación distribuida
– Colección de sistemas en red separados, incluso
heterogéneos,
• La red es la estructura (física y lógica) que permite la
comunicación. TCP/IP es la más común
– Local Area Network (LAN)
– Wide Area Network (WAN)
– Metropolitan Area Network (MAN)
– Personal Area Network (PAN)
– Body Area Network (BAN)
– Sistema operativo de Red (Network Operating System)
proporciona las características que dan soporte al Sistema
distribuido a través de la red
• El esquema de comunicación permite a los Sistemas intercambiar
mensajes
• Se puede crear la ilusión de un único sistema
Ambientes de computación–
Cliente/Servidor
• Computación Cliente/Servidor
– Terminales ‘brutas’ (dumb terminals) reemplazadas por
computadores inteligentes (smart PCs)
– Muchos Sistemas ahora son servidores, respondiendo a
solicitudes generadas por los clientes
• El Sistema de cómputo del servidor proporciona una interfaz al cliente
para solicitar servicios (i.e., database)
• El Sistema de archivos del servidor proporciona una interfaz para que
los clients almacenen y recuperen archivos
Ambientes de computación –
P2P
• Otro modelo de Sistema distribuido
• Peer-to-peer (P2P) no distingue entre
clients y servidores
– Todos los nodos son considerados iguales
– Cada nodo puede actuar como cliente,
como servidor o como los dos al mismo
tiempo
– El nodo debe asociarse a la red P2P
• Registra sus servicios con el servicio de
búsqueda (lookup) central, o
• Emite mensajes de solicitud de servicio para
los miembros de la red P2P y responde a
solicitudes mediante algún protocol de
descubrimiento (discovery protocol)
– Ejemplos son servicios de Voice over IP
(VoIP) como Skype, intercambio de
archivos como BitTorrent
Ambientes de computación -
Virtualización
• Permite a los sistemas operativos ejecutar
aplicaciones dentro de otros sistemas operativos
• Emulación utilizada cuando el tipo de CPU origen es
diferente del la CPU objetivo (i.e. PowerPC a Intel x86)
– Generalmente es un método más lento
• Virtualización – El sistema operativo está compilado de
forma nativa para cierta CPU, ejecutando sistemas
operativos ‘invitados’ compilados también de forma
nativa
– Considere VMware ejecutando sistemas con Windows,
cada uno ejecutando aplicaciones, todos sobre nodos
Windows nativos
– VMM (virtual machine Manager) proporciona servicios de
virtualización
Ambientes de computación -
Virtualización
• En otros casos se pueden utilizar laptops y desktops
ejecutando multiples sistemas operativos para
exploración o compatibilidad
– Laptop Apple ejecutando Mac OS X, con Windows como
Sistema operativo invitado
– Desarrollando aplicaciones para diversos Sistemas
operativos sin tener multiples Sistemas en hardware
– Pruebas de aseguramiento de calidad (QA) de aplicaciones
sin tener multiples Sistemas en hardware
– Ejecución y gestión de diversos ambientes de cómputo
dentro de data centers
• VMM puede ejecutarse de forma nativa, en dicho caso
también son el host
– VMware ESXi y Citrix XenServer
Ambientes de computación -
Virtualización
Ambientes de computación–
Computación en la nube
• Entrega computación, almacenamiento, incluso aplicaciones como
servicio a través de la red
• Extensión lógica de la virtualización ya que utiliza la virtualización
como base para sus funcionalidades.
– Amazon EC2 tiene miles de servidores, millones de máquinas virtuales,
petabytes of almacenamiento disponibles en varios sitios en Internet. Se
paga de acuerdo con el uso
• Muchos tipos
– Nube pública – disponible vía Internet para cualquiera que desee pagar
– Nube privada – ejecutada por una compañía para uso interno de la
compañía
– Nube híbrida – incluye components de nube privada y de nube pública
– Software as a Service (SaaS) – una o más aplicaciones disponibles vía
Internet (Office en la nube)
– Platform as a Service (PaaS) – components de software listos uso de
aplicaciones a través de Internet (contenedor de aplicaciones, servidor de
base de datos)
– Infrastructure as a Service (IaaS) – servidores o almacenamiento
disponibles en Internet (i.e., almacenamiento disponible para hacer copias
de respaldo - backup)
Ambientes de computación–
Computación en la nube
• Ambiente de computación en la nube compuesto por Sistemas
operativos tradicionales, más VMMs, más herramientas de gestión
en la nube
– La conectividad a Internet requiere componentes de seguridad como
firewalls
– Balanceadores de carga distribuyen el tráfico a través de múltiples
aplicaciones
Ambientes de computación–
sistemas embebidos en tiempo real
• Sistemas embebidos en tiempo real es la forma
predominante de los computadores
– Varía de forma considerable, son de propósito especial, utilizan
sistemas operativos de propósito limitado, sistemas operativos
de tiempo real
– Su uso se sigue expandiendo (IoT: Internet de las cosas)
• Incluye otros entornos de computación especial
– Algunos tienen sistemas operativos, otros realizan tareas sin un
sistema operativo
• Los sistemas operativos de tiempo real tienen restricciones
de tiempo definidas extrictamente
– El procesamiento debe realizarse dentro de las restriciiones de
tiempo
– La operación se considera correcta solo si se cumplen las
restricciones
Ambientes de computación–
Virtualización basada en

contenedores
Containerization – también llamada virtualización basada en
contenedores y aplicación de contenedores – es un método de
virtualización a nivel de sistema operativo para desplegar y ejecutar
aplicaciones distribuidas sin lanzar una VM completa para cada
aplicación.
– Por el contrario, múltiples sistemas aislados, llamados contenedores
(containers), son ejecutados sobre un único host de control y con acceso
a un único kernel.
• Debido a que los contenedores comparten el mismo kernel del
sistema operativo al igual que el host, los contenedores pueden ser
más eficientes que las VMs, que requieren instancias del sistema
operativo separadas.
• Los contenedores tienen los componenets necesarios para ejecutar
el software deseado, tales como archivos, variables y librerías de
entorno.
• El sistema operativo del Host también restringe el acceso del
contenedor a los recursos físicos – como la CPU y la memoria – de
esta forma, un solo contenedor no puede consumir todos los
recursos físicos del del computador.
Ambientes de computación–
Virtualización basada en
contenedores

http://searchservervirtualization.techtarget.com/definition/container-based-virtualization-operating-system-level-virtuali
zation
Ambientes de computación–
Virtualización basada en

contenedores
Beneficios de los containers:
– Pueden ser más eficientes que las máquinas virtuales
– Son portables
– Uso eficiente de Memoria, CPU y almacenamiento
– Son consistentes a través del ciclo de vida de las aplicaciones,
facilitando iniciatives como CI (continuous integration) y CD
(Continous delivery)
• Desventajes de los containers:
– Más vulnerable a amenazas de segurida debido a que NO está
aislado del Sistema operativo del host.
– No es flexible en lo relacionado con el sistema operativo:
contenedores creados en un host Linux no pueden ejecutarse en
Windows
– Al tener cientos o miles de contenedores en en un servidor es
difícil hacer monitoreo a cada contenedor (Orquestación)
Sistemas operativos de código
abierto (open-source)
• Sistemas operativos que tienen disponibles el código fuente
antes que solo el código binario con el acceso restringido al
código fuente (closed-source y propietario)
• En contra de la ‘copy protection’ y el movimiento ‘Digital
Rights Management (DRM)’
• Iniciado por la fundación Free Software Foundation (FSF),
que tiene la licencia “copyleft” GNU Public License (GPL)
– http://gnu.org/philosophy/open-source-misses-the-point.html/
• Ejemplos de estos sistemas operativos incluye GNU/Linux y
BSD UNIX (incluyendo el core de Mac OS X), entre otros
• Puede utilizar un VMM como VMware Player (Uso libre en
Windows), Virtualbox (open source y de libre uso en muchas
plataformas - http://www.virtualbox.com)
– Utilizado para ejecutar sistemas operativos para exploración
El estudio de sistemas operativos
• El movimiento open-source permite estudiar los
Sistemas operativos examinado el Código.
– https://en.wikipedia.org/wiki/Comparison_of_open-source
_operating_systems
– https://elixir.bootlin.com/linux/latest/source
• La virtualización permite ejecutar muchos Sistemas
operativos sin tener hardware dedicado.
• Los sistemas operativos open-source facilitan pasar de
estudiante a desarrollador de sistemas operativos.
– Con algo de conocimientos, esfuerzo y una conexión a
Internet, una persona puede crear una nueva distribución
de un sistema operativo.
Referencias
• Silberschatz, A. Galvin P.B. y Gagne, G.
Operating System Concepts. Wiley. 10a
Edición. 2018.
• Anderson, T. & Dahlin, M. Operating Systems:
Principles and Practice Recursive Books. 2
edición. 2014
• Mauerer, W. Professional Linux Kernel
Architecture. Wrox. 1 edition. 2008

También podría gustarte