El documento resume la evolución de Mac OS desde 1984 hasta la actualidad. Mac OS fue uno de los primeros sistemas operativos en incluir una interfaz gráfica de usuario amigable. A lo largo de las versiones, la estructura de Mac OS cambió de monolítica a modular, y actualmente está basada en el núcleo Darwin de código abierto. Mac OS X introdujo mejoras importantes como soporte multiusuario y de 64 bits.
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
Evolución del sistema operativo Mac OS desde sus inicios hasta Mac OS X
1. Juana Guevara | Felipe de León | Maykol Manosalva | Alexander Echeverria
2. Mac OS aparece en 1984 en los primeros computadores .
Fue uno de los primeros S.O. en contar con una interfaz gráfica de
usuario (GUI) amigable, a diferencia del S.O. rival, MS-DOS.
Desde Mac OS, la estructura del SO sufrió una serie de
modificaciones, incluyendo su núcleo basado totalmente en Unix,
hasta su interfaz gráfica llamada Aqua en las versiones
sucesoras.
Mac OS X está totalmente basado en Unix, mediante el núcleo
XNU y a su vez tiene un subsistema llamado Darwin.
3. Sistema 1 (1984)
Incluía escritorio,
iconos, ventanas,
mouse, menús y
scrollbars.
Poseía un basurero,
donde los archivos
desaparecían al reiniciar
el computador.
Era imposible crear una
carpeta dentro de otra.
Sistema 2 (1985) Sistema 3 (1986) Sistema 4 (1987)
Se mejoró la velocidad del
Finder.
Los comandos de cerrar y
regresar fueron
eliminados
Se habilitó la posibilidad
de crear nuevas carpetas,
apagar, impresora.
Se le agregó soporte múltiple
al monitor
El Finder se podía alternar a
decisión del usuario, entre
Finder mono programático y
Finder multi programático
(inicio de sistema
multiprogramación)
Se podía monitorear la
memoria utilizada por cada
programa, mediante el Finder.
El Finder se mejoró.
El sistema de archivos MFS
(Macintosh File System) fue
remplazado por el HFS
(hierarchical file system).
Se corrigió el problema de
crear carpetas dentro de
carpetas
4. Sistema 6 (1988)
Primera versión de
MacOS en tener colores,
no obstante, el Finder no
tenía color
Posibilidad de cancelar
borrado de disco
mediante un botón en
pantalla
Debut de MacOS con
aplicaciones multitarea
Sistema 7 (1990) Mac OS 8 (1990) Mac OS 9 (1999)
Se unifico los Finder y el
Finder múltiple. Esta
versión sólo tuvo un Finder
múltiple, permitiendo la
multitarea.
Se implementó la
arquitectura de 32 bits, por
ende, se podría tener en
una Mac, más de 8 MB de
RAM.
Utilización de memoria
virtual. Toma parte del
disco duro como fuese
memoria RAM, volcando las
partes de memoria que no
están en uso y
recuperándolas cuando se
necesita.
El GUI del Finder se renovó
con un aspecto 3D
Se introdujo un nuevo
sistema de archivos, HFS+ y
por lo tanto se liberaba una
gran cantidad de espacio en
el disco duro
Esta versión incluyó
Sherlock, un programa
avanzado que permitía la
búsqueda en el disco local,
servicios de redes e
internet.
Mac tuvo la posibilidad de
tener varios usuarios en un
mismo computador
(Sistema multiusuario)
Sistema de memoria basado
en Unix. Debido a esto, la
gestión de memoria RAM
era de una forma comedida
y eficiente
Se mejoró el manejo de
redes bajo el protocolo
TCP/IP
5. En sus principios, Mac OS fue un sistema operativo monolítico hasta la versión
Mac OS 8. Actualmente, MacOS X, es un sistema modular, debido a que su
estructura consiste en cuatro grandes capas, que son los pilares de Mac OS se
agrupan de la siguiente manera:
Kernel: Darwin
Entorno de programación: Cocoa, Java y Carbon
Gráfico: Core Video Audio, Open GL, Quicktime y
Quartz
Interfaz de usuario: Aqua y Dashboard
6. Darwin es el corazón de Mac OS y es
una tecnología Open Source.
Darwin se diseñó de tal forma que se
puedan añadir controladores,
extensiones del sistema de red como
nuevos sistemas de archivos.
Darwin está conformado por las
siguientes partes: Mach y BSD.
7. Darwin viene siendo la capa más profunda del sistema operativo y proporciona
funciones vitales a las capas superiores, por ejemplo:
Permite multitasking
Memoria virtual con protección de memoria y asignación dinámica
Multiprocesos simétricos
Multiusuario
Sistemas de archivos VFS (virtual file system)
Controladores de periféricos
Networking
Paquetes básicos para hilos (threading)
8. Es el corazón de Darwin y muchas de las funciones vitales de MacOS X, son
realizadas por Mach.
Mach es el responsable del control de los recursos del computador como el CPU y
la memoria RAM. Además, controla el planificador de procesos, protección de
memoria, implementa un sistema de paso entre procesos. Mach aporta muchas de
las ventajas y características del sistema operativo de los Macintosh:
Protección de memoria
Permite Multitasking
Memoria Virtual, Soporte en tiempo real
9. BSD envuelve el API de POSIX, permitiendo su exportación hacia las capas
superiores de Mac OS. BSD es el pilote para el file system y facilidades de red.
Además, integra distintos interfaces programáticos y servicios, por ejemplo:
Modelo de procesos
Políticas básicas de protección y seguridad
Soporte para hilos (POSIX threads)
Sockets BSD
10. El sistema de archivos utilizado en Darwin está basado en BSD y usa una versión
mejorada de VFS (virtual file system), permitiendo escribir extensiones para
soportar un número mayor de sistemas de archivos. VFS tiene las siguientes
características:
Posee la posibilidad de asignar tanto protección y permiso a unidades
extraíbles.
Buffer caché ligado al caché de la memoria virtual
Permite que los nombres de los ficheros sean largos, basados en UTF-8
Sistema Journaling, que brinda recuperación en los ficheros después de un
error crítico
11. A diferencia de otros sistemas operativos como Windows, Unix, OS/2, el
paradigma de los API de MacOS es fuertemente orientada a objetos, y aunque
da soporte a muchos lenguajes de programación, MacOS utiliza frecuentemente
en su API, Java y Objetive C, siendo este último, creación de Apple
El entorno de programación de MacOS está conformado por tres importantes
API y ellos son:
a) Cocoa
b) Java
c) Carbon
12. Cocoa es denominado como un API orientado a objeto avanzado, y permite
la ejecución de programas codificados en Java y Objective C.
Cocoa se basa en dos frameworks orientados a objetos, los cuales son:
a) Foundation; Brinda una variedad de objetos y funciones tales como:
clases de acceso a ficheros, programación multihilos, trabajos en red,
gestión de strings, etc.
b) Application Kit, Brinda clases para las ventanas, diálogos, botones,
tablas, capos de texto, pop-ups, etc
13. permite desarrollar y ejecutar aplicaciones desarrolladas en este lenguaje de
programación en Mac OS, abarcando también aplicaciones pure Java y
Applets. Este API se implementa a través del Java Development Kit (JDK) y el
Java Virtual Machine.
El API de Java en Mac OS posee los siguientes componentes:
a) Un entorno de desarrollo, incluye compilador, depurador.
b) Un runtime environment, basado en la JVM hotspot, compilador de
bytecode y paquetes de Java
c) Framework que brinda las clases necesarias de Java, a saber:
javax.swing y java.awt
14. API que permite la compatibilidad de aplicaciones derivados de versiones
anteriores de MacOS, brindando una posibilidad de ejecución en MacOS X y
aprovechando su arquitectura y su Kernel, Darwin.
Este API brinda a los programadores una oportunidad de fortalecer el código
creado para adaptarse a las nuevas características de OS X, evitando la
necesidad de reescribir el código para el API Cocoa.
15. Tercera capa de la estructura de MacOS y es la responsable del screen
rendering, impresión, controlar eventos como la administración de las ventanas
y el cursor. También contiene librerías, frameworks y servicios básicos para la
ejecución del GUI.
Esta capa está compuesta por cuatro componentes claves, los cuales son:
a) Quartz
b) Quicktime
c) OpenGL
d) Core Video Audio
16. Está basado en el estándar de Adobe Systems, formato PDF, ofreciendo un
excelente gráfico 2D con profundidad y claridad foto realista; actualmente,
Quartz se divide en dos partes:
Quartz Compositor: Servidor de ventanas del SO
Quartz 2D: Es una biblioteca que permite el renderizado de gráficos.
Extensión del sistema operativo que suministra un entorno interactivo
como multimedia para permitir funcionalidades de gráficos y aplicaciones.
Es el responsable de todos los formatos de imagen, sonido y video que se
encuentra a través de internet
17. Este API ofrece las funcionalidades más avanzadas en render 3D,
texturización, modelado como captura de movimientos.
Su diseño está especializado hacia el campo de videojuegos, animaciones,
diseño asistido por computadora o aplicaciones que requieran una calidad
gráfica excelente.
Herramientas vitales para el procesamiento de multimedios en tiempo real.
Core video: Tecnología desarrollada para MacOS X que permite
aceleración de gráficos 3D para su interfaz gráfico Aqua.
Core Audio: API de bajo nivel para la codificación de audio en MacOS X.
18. Consta de dos componentes, Aqua y Dashboard. También se puede incluir al
terminal de Mac OS, ya que también es una forma de interacción de usuario con
el sistema operativo
Fue integrada por primera vez en Mac OS X, como remplazo al interfaz de Mac
OS Classic, Platinum, Aqua posee dos estilos principales:
a) Standard pinstriped, la cual ofrece una apariencia cristalina y los botones
son en 3D
b) Brushed Metal, entorno en tonos de grises metálicos en la cual los botones
se encajan en la pantalla.
19. Aplicación nativa de Mac OS X, cuya tarea es mostrar widgets con información
en línea. Tiene la apariencia de una capa semi-transparente, que puede ser
activada por el usuario mediante la tecla F12. Está disponible a partir de Mac
OS X Tiger.
El Shell predeterminado en Mac OS X en adelante es
Bash. El cual es muy similar a los de sistemas como
Linux, Unix, BSD. La sintaxis de ciertos comandos,
pueden diferir respecto a otros intérpretes, sin
embargo, las funciones que ejecutan estos
comandos son las mismas que Unix.
20. La gestión de memoria tiene la gran responsabilidad de llevar un control
estricto de las partes de memoria usado y aquellas sin usar, con la misión de
asignar espacio a los procesos que necesiten de ella y liberándola cuando no la
necesitan.
Los gestores de memoria se clasifican en dos tipos: los que trasladan los
procesos de la memoria principal al disco duro y viceversa y los que no.
MacOS X administra la memoria dependiendo de los procesos en ejecución,
permitiendo utiliza casi toda la memoria si hace falta. El SO deja un espacio
libre para los programas ejecutados, no obstante, el asignará este espacio al
programa que necesita de ella
21. ESQUEMA DE MEMORIA DE ASIGNACIÓN CONTIGUA
Descripción Ventajas Desventajas
Partición
Estática
La memoria principal se
divide en una serie de
particiones estáticas,
durante la generación del
sistema un proceso se
puede cargar en una
partición de este tipo.
Sencilla de
implementar, poca
sobre carga del
sistema operativo
Empleo ineficiente de la
memoria, debido a la
fragmentación interna.
El número de procesos.
Partición
dinámica
Las particiones se crean
dinámicamente, de forma
que cada proceso se cargue
en una partición de su
mismo tamaño
No hay
fragmentación
interna, uso más
eficiente de la
memoria principal
Uso eficiente del
procesador debido a la
compactación para
contrarrestar la
fragmentación externa.
22. Consiste en usar un disco o parte del mismo (dispositivo de swap) como
respaldo de la memoria RAM cuando no haya capacidad para los procesos en
ejecución.
Mediante esta técnica en MacOS, existirá un desplazamiento entre memoria y
disco, mientras dure la ejecución de un programa, y no siempre permanecerá
en memoria esto también llevara a que la cantidad de procesos en ejecución
sean superiores al rendimiento del procesador y RAM, por lo tanto ,como tiene
prioridad, permite la posibilidad de ejecutar más programas que residirán en la
memoria RAM del sistema.
23. La memoria virtual está encargada del traspaso de información entre la
memoria principal y la secundaria. La memoria secundaria reside comúnmente
en un disco a través de una partición. La memoria virtual es implementada
mediante un esquema de paginación, a este proceso se llama dispositivo de
paginación.
La memoria virtual le brinda a MacOS una mayor capacidad de memoria
además de la RAM, a pesar de ser virtual. Dependiendo del estado, el S.O.
asignará más espacio del disco para virtualizar esta memoria, sin embargo, los
discos duros (HDD) no poseen la misma rapidez que una RAM, cosa que Mac
OS automatiza la distribución de información entre el HDD y la RAM para
conseguir un rendimiento innato.
24. La paginación es el proceso en la cual el S.O. divide la memoria en unidades
con un peso fijo. Estas unidades se le conoce como marcos. A su vez, los
procesos son divididos en páginas con un tamaño similar que los marcos.
Este proceso de intercambio de páginas desde la RAM al HDD se llama
swapping o intercambio.
MacOS tiene la tarea de precisar la correspondencia entre páginas y marcos a
través de la tabla de páginas y el encargado de aplicar todo este proceso es el
hardware.
La cantidad de información trasladada entre la RAM y el HDD es recopilada
mediante una técnica llamada E/S paginación. Esta recopilación significa el
volumen de datos que MacOS ha enviado entre la RAM y El HDD. Este proceso
de E/S de paginación ocurren cuando el Macintosh tiene que asignar memoria
virtual al sistema operativo.
25. La unidad de gestión de memoria (MMU) no
tiene conocimiento sobre las regiones
destinadas para los procesos con la
paginación, por lo tanto, en esta etapa de
gestión de memoria, todos las aplicaciones y
programas se dividen en segmentos y en
espacios de direcciones como de crecimiento
independiente.
La segmentación es un proceso del hardware,
que pretende brindar un soporte a las
regiones asignadas a los procesos en
ejecución. MacOS conserva por cada proceso,
una tabla de segmentos, mientras haya
cambio de proceso, el SO irá informando a la
MMU que tabla es la adecuada a usar.
Esquema de segmentación
26. Mac OS es un S.O. multiusuario y multitarea con una arquitectura tanto de 32
bits y de 64 bits.
Es considerado multitarea preventivo debido a que necesita de un planificador,
dependiendo de la prioridad de los procesos, instancia el tiempo de los equipos
entre las aplicaciones que lo pidan.
El trabajo del planificador del CPU es mantener ciertos parámetros que
permiten identificar los requerimientos de cada proceso, asimismo como los
recursos utilizados. Un proceso puede adoptar ciertos estados (procesamiento,
listo para ejecutar y en espera).
27. Al igual que POSIX, MacOS tiene una concepción similar de hilo. Un hilo o
thread es un manejo de la ejecución de una aplicación o proceso, de cual tiene
acceso a los recursos del proceso y que puede ejecutarse coetáneamente con
otros. Un proceso es simplemente una serie de recursos.
Tales recursos, pueden ser referenciados mediante los puertos, solo a
excepción del espacio de direccionamiento. Un proceso puede estar
conformado por uno o más hilos.
Para Mach (corazón de Darwin), un proceso no posee cabida de ejecución, por
lo tanto los hilos que posee ese proceso, son lo que verdaderamente se
ejecutan, tomando en cuenta los recursos para tal proceso.
Por tanto, un proceso es una entidad pesada, debido a que todos los hilos que
lo conforman, requerirán una cantidad de recursos.
28. Darwin planifica todos sus procesos, apoyándose en cuatro listas de ejecución,
donde cada una de ellas, posee diferente prioridad. Un hilo puede trasladarse
de un nivel de prioridad a otro, dependiendo de sus requerimientos como de la
política utilizada en el sistema operativo. Mediante el estándar de llamadas
POSIX
Las listas de ejecución que controla el planificador de Mac OS son:
Prioridad Aplicación
Normal Aplicaciones Normales
Alta Procesos cuya prioridad haya aumentado
Modo Kernel Internos al Kernel, con prioridad superior que el nivel de usuario, por
ejemplo, E/S
Tiempo real Hilos con una fracción determinada de ciclos de ejecución
29. En Mach, un puerto o port es un acceso a un recurso, tomando en cuenta este
como un servicio proporcionado a un proceso o hilo.
Cada recurso puede llegar a tener varios tipos de puertos, por ejemplo, el
puerto de nombre y el puerto de control.
Un hilo que se refiera a un puerto de nombre, sólo será capaz de ver algunas
características del recurso y conseguir algunos servicios no privilegiados.
Por lo tanto, un hilo que referencie un puerto de control, tendrá la capacidad
de manipular este proceso por completo.
30. Como cualquier sistema operativo contemporáneo, en Mach existen algunas
formas de comunicación entre los distintos procesos que están en ejecución en
el sistema operativo, En Darwin, el Kernel de Mac OS son:
a) Colas de mensajes
b) Semáforos
c) Cerrojos
d) Notificaciones
e) Llamadas a procedimientos remotos
31. En un principio los sistemas fueron creador para ser utilizados por un solo
usuario, pero debido al desarrollo se tomó la idea de mejorar la interacción con
el usuario. Lo que dio como resultado la interfaz de ventanas que conocemos
hoy.
32. Las primeras computadoras eran distribuidas sin
ningún tipo de sistema operativo.
La interfaz primaria para programar era mediante
llaves [switches] y para recibir sus resultaros se
utilizaban bancos de led.
Claro está, que todo esto requería conocimiento
especializado ya que en su momento las
computadoras personales se veían como objetos
raros.
33. A principios de los noventas los sistemas operativos fueron respondiendo a medida que
pasaba el tiempo a las nuevas características del hardware.
La Microsoft Windows inicialmente un entorno operativo desde su primera edición en 1985,
posteriormente evolucionado a sistema operativo completo ejecutando una base MS-DOS en
1995.
Windows paso de ser un sistemas de operaciones propias y que solo operaba por remplazo
de aplicaciones activa a ser un sistema que termino operando solamente por multitarea
cooperativa y finalmente un sistema que requería de protección en su hardware e
implementaba multitarea aprobativa.
34.
35. Se puede decir que el sistema operativo
Windows es un sistema de tipo:
• Multiusuario
• Multiprogramado
• Soporte al multiprocesamiento
• Diferencia entre interrupciones y
excepción
• Utiliza los distintos modos de ejecución
del procesador (usuario y supervisor)
• Procesos y hebras
Metas de diseño del sistema operativo
Windows
• Extensibilidad
• Portabilidad (escrito en C, C++ Y
ensamblador)
• Confiabilidad
• Compatibilidad (MS-DOS,
POSIX,OS/2,WIN16
• Rendimiento
36. Cliente-servidor: ciertos servicios del sistema operativo se implementan como
procesos de usuario.
Capas: la parte del sistema operativo Windows que se ejecuta en modo kernel,
destacando l aparte de la gestión de entrada y salida.
Orientado a objetos: exactamente no es orientado a objetos pero utiliza objetos para
presentar algunos recursos del sistema, como los son: procesos, hebras, archivo,
sección, evento, directorio, semáforo, impresora, etc.
Multiprocesamiento simétrico: esto consiste en dos partes importantes para la
ejecución que son: Ejecución del sistema operativo en diferentes procesadores.
37.
38.
39.
40. El ejecutivo (executive
del sistema operativo
Windows)
• Se ejecuta en modo kernel o supervisor y
excepto por la interfaz de usuario,
constituye un sistema operativo en sí
mismo.
• Se ejecuta en el contexto de un proceso
existente.
• Los componentes del ejecutivo tienen
interfaces bien definidas.
Los componentes del
ejecutivo.
• Podemos mencionar el gestor de
objetos ( object manager)
• Crea, destruye y gestiona todos los
objetos del ejecutivo como por ejemplo
los procesos, hebras, archivos y mutex.
• Crea descripciones de objetos (handle
object): distribuye la información de
control, más el puntero al objeto.
41. El ejecutivo. Componentes II
• El monitor de referencia de
seguridad
• Refuerza las normas de
seguridad en el ordenador
local como lo es la protección
y auditoria de los objetos en
tiempo de ejecución.
• El gestor de procesos (process
manager)
• Crea, destruye y gestiona los
procesos y hebras.
El ejecutivo componentes III
• En este nivel se asignan dos
componentes como lo son:
• El gestor de E/S: este gestor cuenta con
los siguientes subcomponentes:
• Administrador de sistemas de archivos
• Gestor de red
• La capa de abstracción hardware (HAL)
• Aísla la mayor parte del código
dependiendo del procesador
• Exporta un modelo del procesador
común que oculta las diferencias de
varios procesadores al resto de los
componentes del sistema operativo.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52. EL BLOQUE DE CONTROL DE PROCESOS.
• Un proceso se representa desde el
punto de vista del sistema operativo
por un conjunto de datos donde se
incluye el estado en cada momento
recursos utilizados, registros, etc. Esto
se denomina el bloque de control de
proceso, que persigue dos objetivos:
• Localizar información útil para el
sistema operativo.
• Mantener registrado los datos en caso
de tener que suspender
temporalmente un proceso.
LA INFORMACIÓN CONTENIDA EN EL PCB ES
LA SIGUIENTE: (PROGRAM CONTROL BLACK)
• Estado del proceso: información del
contenido del contador del proceso, el
estado del procesador, modo de ejecución y
al estado de los registros internos del
microprocesador
• Estadísticas de tiempo y ocupación de
recursos para la gestión de la planificación
del procesador.
• Ocupación de memoria interna y externa
para el intercambio o swapping.
• Recursos en uso, normalmente unidades de
E/S.
• Archivos en uso.
53.
54.
55.
56.
57.
58. La CPU puede
hacer
referencia
directa a los
programas y
datos
La CPU solo podrá
hacer referencia a
los programas y
datos luego de
haber sido
trasladados al
almacenamiento
primario
El tiempo de acceso
al almacenamiento
decrece
La velocidad de
acceso al
almacenamiento
aumenta
El costo de
almacenamiento bit
aumenta
La capacidad de
almacenamiento
decrece
59.
60.
61. CUADRO COMPARATIVO- WINDOWS VS MAC OS
Sistema operativo Windows Mac OS
Creador Microsoft Apple Inc.
Licencia No libre (CLUF) No libre (CLUF)
Escrito en C, C++, ensamblador C, C++, Objetive-C, Swift
Núcleo Windows NT XNU basado en Mach y BSD
(Darwin)
Tipo de núcleo Híbrido Monolítico con núcleo (Mac OS
Classic), híbrido (MacOS X)
Arquitectura soportada x86, x64, x86-x64, ARM PowerPC, x86, x86-x64
Sistema de archivos NTFS, FAT, exFAT HFS, HFS+, UFS
Sistema gráfico Basado en el núcleo Aqua
Gestor de ventanas Modern UI Quartz
Administrador de archivos,
discos, etc.
Windows Explorer OS X Finder