Está en la página 1de 119

UNIVERSIDAD DE ORIENTE

NÚCLEO ANZOÁTEGUI
COORDINACIÓN DE POSTGRADO
MAESTRIA EN INFORMÁTICA GERENCIAL

SISTEMAS OPERATIVOS:

APPLE OSX

Autores:
Ing. Angélica Martínez
Lcdo. Esp. Miguel Rafael Fernández Marcano
Lcdo. Rodolfo Camilo Hernández Salazar

Facilitador: Dr. Pedro Castillejo

Barcelona, Diciembre, 2014


Sistema  Operativo:  Apple  OSX   2  

TABLA DE CONTENIDO
INTRUDUCCION  ..........................................................................................................................................  4  
CAPITULO I. Arquitectura de OSX.  ...............................................................................................  7  
TEMA I.- Diagrama de bloques de una estructura de hardware (MacBook Pro
13 – Principios 2011)  .............................................................................................................................  7  
1.1 Diagrama de Bloques de la estructura del Hardware.  ............................................  7  
1.2 Descripción del bloque procesador  ..................................................................................  8  
1.3 Descripción del bloque memoria  ......................................................................................  13  
1.4 Descripción del bloque periféricos (Entrada y Salida)  ..........................................  16  
TEMA II.- Evolución histórica de la estructura del hardware que soporta OSX.  18  
2.1 Estructura del hardware Apple I  .......................................................................................  18  
2.1.1 Basadas en Apple PowerPC CPU  ..............................................................................  18  
2.1.2 Basadas en Apple Intel CPU  ..........................................................................................  20  
CAPITULO II. ESTRUCTURA DEL SISTEMA OPERATIVO  .............................................  22  
TEMA III La evolución de OSX.  .....................................................................................................  22  
3.1 La herencia del Sistema BSD en OSX  .........................................................................  22  
3.2 Capas de la experiencia de usuarios.  ...........................................................................  25  
3.3 El núcleo de UNIX – Darwin.  ..............................................................................................  28  
3.5 Uso del sistema de archivos de UNIX en OSX.  .......................................................  29  
3.6 Aplicaciones en OSX.  ............................................................................................................  29  
3.7 Frameworks.  ...............................................................................................................................  31  
3.9 Llamados del Sistema (System Calls).  .........................................................................  33  
3.10 Visión general de XNU.  ......................................................................................................  35  
3.11 Mac OS Clásico.  ....................................................................................................................  37  
3.12 Adopción de NextStep.  .......................................................................................................  39  
3.13 Inicios del OSX.  ......................................................................................................................  40  
3.14 Versiones de OSX:  ...............................................................................................................  41  
TEMA IV. Procesos en OSX  ...........................................................................................................  54  
4.1 Definición de Proceso  ...........................................................................................................  54  
4.2 Estados de Procesos  ............................................................................................................  54  
4.3 Mach Kernel Abstracciones  ...............................................................................................  56  
4.4 Distribución de Trabajos  .....................................................................................................  57  
TEMA V. Gestión de Memoria Principal  ....................................................................................  63  
5.1 Gestión de la Memoria en Mac OS X  .........................................................................  63  
5.2 Descripción de los Distintos Estados de Memoria  ................................................  66  
5.3 Requerimientos para un Correcto Manejo de Memoria  ......................................  66  
5.4 Objetivos del Sistema de Gestión de Memoria  .......................................................  67  
5.5 Gestión de RAM OS X  .........................................................................................................  70  
TEMA VI. Gestión de Almacenamiento en OSX  ................................................................  74  
6.1 Hierarchical File System Plus (HFS Plus)  ...................................................................  74  
6.2 Estructura de Archivos en Mac OS X  ...........................................................................  76  
TEMA VII.- Gestión de Entrada y Salida (E/S)  ......................................................................  79  
7.1. El I/O Kit  .......................................................................................................................................  79  
TEMA VIII.- Consideraciones sobre seguridad y protección ofrecidas por Apple
OSX  ..............................................................................................................................................................  81  
Sistema  Operativo:  Apple  OSX   3  

8.1 Seguridad física en el hardware  .......................................................................................  82  


8.3 Seguridad del sistema  ...........................................................................................................  82  
8.4 Estrategias de seguridad  .....................................................................................................  87  
TEMA IX Tendencias Actuales  ......................................................................................................  88  
9.1 Tendencias “free” u “Open” de OSX y de Apple en general.  .........................  88  
9.2 Comparción de OSX, Windows y Linux  .......................................................................  91  
TEMA X Proceso de instalación y actualización de OSX  ................................................  95  
10.1 Cómo instalar Os x Yosemite de forma segura.  ..................................................  95  
10.2 Proceso de Actualización de OSX  ...........................................................................  106  
CONCLUSIONES  ...................................................................................................................................  116  
REFERENCIAS  ........................................................................................................................................  118  
Sistema  Operativo:  Apple  OSX   4  

INTRUDUCCIÓN

Todo sistema operativo es simplemente entendido como el conjunto de


aplicaciones que hacen posible la interacción del usuario con el hardware. Y
partiendo desde allí, existen hoy en día un gran numero de ellos, dedicados y
orientados a tales fines, sin embargo, si nos enfocamos en los llamados SO de
Sobremesa, que son los que nos acompañan en las computadoras personales de
escritorio; definitivamente existen tres grandes sistemas operativos que dominan
en el mundo, estos son, Microsoft Windows, Mac OSX y GNU/Linux. Cada uno de
ellos con sus ventajas y desventajas y nichos bien definidos entre los usuarios. El
Mac OSX es el objeto de nuestro estudio, y estaremos abarcando su arquitectura
y su estructura, en el primer capítulo, se detalla, a través de un hardware tipo, su
diagrama de bloques, su procesador y su memoria, también se describirá la
evolución histórica del hardware que soporta Mac OSX, desde sus inicios con
arquitectura PowerPC hasta el X86-64 que hoy en día utiliza en todos sus modelos
en el mercado. En el segundo capitulo se describirá con detalle la estructura
propia del sistema operativo, su evolución, sus capas, su herencia, librerías,
versiones. Haciendo especial énfasis en los diagramas de componentes del
sistema operativo y la descripción de cada uno de ellos. La gestión de procesos en
Osx se detallará como parte esencial de la descripción de un sistema operativo,
así también la gestión de memoria principal, la gestión de almacenamiento, la
gestión de entrada y salida.

Se presentará un conjunto de características relacionadas con la seguridad


que ofrece Mac OSX para finalmente enfocarnos en las tendencias actuales
respecto a las llamadas olas OpenSource y la visión de Apple respecto a ello.

En líneas generales como se puede observar, se pretende con esta


monografía lograr una comprensión detallada del sistema operativo Mac OSX no
desde un punto de vista de usuario, si no mas bien desde el punto de vista de
entusiastas de la informática y conocedores de sistemas operativos en general
Sistema  Operativo:  Apple  OSX   5  

Aun y cuando Mac OSX esté en plena evolución y su pase o migración de


arquitectura de hardware pueda ocurrir de nuevo en el futuro, este estudio será
vigente en tanto la filosofía “Unix like” de Apple no cambie, y es algo que no
parece ser contemplable al menos en esta década.
Sistema  Operativo:  Apple  OSX   6  
Sistema  Operativo:  Apple  OSX   7  

CAPITULO I. Arquitectura de OSX.

TEMA I.- Diagrama de bloques de una estructura de hardware


(MacBook Pro 13 – Principios 2011)

1.1 Diagrama de Bloques de la estructura del Hardware.

Los tres grandes sistemas operativos conocidos: Windows, Linux, y


Mac OSX. Tienen hoy en día un aspecto en común respecto a su arquitectura de
hardware, todos ellos soportan la arquitectura Intel x86-64. Esto no siempre fue
así, y de ello se hablará mas adelante cuando se muestre la evolución de la
arquitectura del hardware que soporta Mac OSX. Sin embargo el caso de Mac
OSX tiene una particularidad, la gama de procesadores, memoria, y en general
circuitos integrados están delimitados a un cierto grupo de modelos y versiones.
Esto es así, debido a que Apple necesita tener controlado el hardware que soporta
el sistema operativo, garantizando de esta forma, que éste siempre esté entonado
para trabajar con el hardware en particular y garantizar también un soporte integral
y optimo de cara al usuario.

Pero en líneas generales, el comportamiento de la estructura de hardware


que soporta mac osx es el mismo que el de una PC. Y solo varia para incluir
puertos y periféricos propietarios como es el caso del Apple Thunderbolt que hace
uso del bus principal de la tarjeta madre para acceder a los recursos. A
continuación se muestra un diagrama de bloques de la estructura del hardware
donde se “monta” mac osx que es básicamente el de una arquitectura basada en
microprocesador.
Sistema  Operativo:  Apple  OSX   8  

figura 1: Arquitectura basada en microprocesador. (fuente: Diseño de sistemas de


microprocesador http://www.dte.eis.uva.es)

Como se puede observar, se cuenta con tres grandes bloques, el bloque cpu que
representa la unidad central de procesamiento y donde Apple ha apostado por la
tecnología iCore (i3, i5, i7), el bloque memoria donde se cargan todos los
programas demandados por la capa usuario y sistema operativo, el tipo de
memoria usado en Mac OSX viene determinado por el soportado por el CPU, dado
que la velocidad del bus es determinante en el manejo de las interrupciones. Y el
bloque de entrada y salida también conocido como bloque de acceso a periféricos.

1.2 Descripción del bloque procesador

Los procesadores Intel Core, son procesadores de alto rendimiento, tanto


para las tareas diarias de una PC, como en uso de juegos, reproducción de media
digital, facilidad en diseño, edición y compartir vía web (escritorio compartido,
escritorio remoto, etc) .
Sistema  Operativo:  Apple  OSX   9  

Estos procesadores son conocidos como procesadores inteligentes, y dicen


ser procesadores mas “vivos” que antes, gracias a la Tecnología Turbo Boost de
Intel, dicha tecnología incrementa la inteligencia del uso de las PC’s, ya que
aumenta la velocidad cuando es necesario.

La tecnología Core también incluye una característica “vieja conocida” pero


en este caso se aprovecha al máximo con los núcleos iCORE, es la Tecnología
Hiper-Hilos (Hyper-Threading). Con esto permite o se logra conectar cada uno de
los núcleos del procesador para trabajar en 2 tareas al mismo tiempo (múltiples
Tareas).

Con la entrega de la característica de multitarea inteligente, es mucho mas


veloz moverse entre aplicaciones en uso y es visiblemente notable el rendimiento
al alza a diferencia de procesadores “comunes”.

Intel fue escogido por Apple para sus computadores ya que este puede
presumir también de la alta velocidad para convertir de media de un dispositivo a
otro con el Intel Quick Sync Video y de la alta calidad del video con el Clear Video
HD Technology, también de la nitidez de imagenes, el rico de sus colores, el gran
sonido real junto con el video con HD Graphics, cosa que Apple necesitaba para
disminuir la densidad de sus equipos al poder prescindir de una tarjeta grafica
adicional, aun y cuando algunos de sus modelos de cualquier forma la incorporan.

Intel ofrece 3 procesadores iCore, según cada necesidad i3,i5,i7 son los
procesadores comerciales cada uno con los mismos principios y con un HIGH
PERFORMANCE cada nuevo modelo. Para el hardware en estudio y que incluye
Apple en su modelo macbook pro 13 de principios de 2011 se tiene el Intel Core
i5.
Sistema  Operativo:  Apple  OSX   10  

ARQUITECTURA iCORE 64 bits usado en el Macbook Pro

A continuación un diagrama a Bloques de la arquitectura de los procesadores


Intel Core. La Imagen es específicamente del procesador Intel Core i5 el cual
cuenta con 4 núcleos como se ve en la imagen, a diferencia de los i5 que algunas
versiones(MOBILE y MacBook Pro) cuentan sólo con 2 núcleos y los i3 que todos
los modelos son de 2 núcleos.

figura2: Diagrama de bloques de un CPU Intel Core i5 de 4 núcleos. (fuente:


Intel® iCore Technology, Chapter 3 “CPU”)

L1, cache primaria, se encuentra alojada dentro del procesador.


L2, cache secundaria, esta justo fuera del procesador.
L3 el nivel 3 de la cache se localiza entre la tarjeta madre y el procesador y la
memoria RAM.

A continuación se muestra una figura del como funciona la memoria caché en este
tipo de procesador.
Sistema  Operativo:  Apple  OSX   11  

figura 3: Como Funciona La Memoria Caché (fuente: Intel® iCore Technology,


Chapter 3 “CPU”)

Otras características del CPU:

REGISTROS BASE (BR)

Un registro es un área de datos “física” que se encuentra en el procesador. El


uso de los registros es el lugar físico del cual se auxilia el A.L.U. para poder
realizar operaciones aritmético-lógicas, el control programas u otro tipo de
operaciones específicas. Son tan importantes que cada operación que desee
realizar el procesador la data pasará por los registros.

Todos los datos obtenidos por los registros son cargados desde los distintos
tipos de memoria (RAM,ROM, etc) y/o de dispositivos de entrada y salida (I/O
Sistema  Operativo:  Apple  OSX   12  

devices).

El Registro Base se encuentra en la clasificación de Registros de Uso


General. La Función del registro Base es para inicializar o determinar la posición
del apuntador (puntero) para acceder a posiciones de memoria.

En función a la arquitectura del procesador es la capacidad de los registros así:


BL(Parte Baja del registro Base)
comprende 0-7 bits
BH(Parte Alta del registro Base)
comprende 8-15 bits
BX(Conformado por BL y BH)
comprende 0-15 bits
EBX(registro Base Extendido)
comprende 0-31 bits
RBX(registro Base Arquitectura 64 bits)
comprende 0-63 bits

REGISTROS ARQUITECTURA EXTENDIDA (EAR)

Tienen un uso más específico con ciertas instrucciones, el funcionamiento de


instrucciones va a variar en función al tiempo de liberación del procesador.

REGISTROS DE PUNTO FLOTANTE (ST)

Este tipo de Registros fueron incluidos al agregar al procesador la Unidad de


Punto Flotante (FPU, por sus siglas en inglés). Son útiles para guardar la
información del FPU cuando existe el Punto Flotante.
Sistema  Operativo:  Apple  OSX   13  

REGISTROS EXTENSIÓN DE MATRIZ MATEMÁTICA (MMX)

Estos registros se introdujeron con el inicio de los Procesadores Pentium. Se


utilizan para almacenar los datos de las Operaciones de extensión de Matriz
Matemática (MMX).

1.3 Descripción del bloque memoria

En cualquier sistema informático actual basado en microprocesador, la


forma de trabajar es esencialmente la misma y está basada en el modelo de
John von Neumann, donde tanto los datos como los programas se almacenan en
la misma memoria.

El procesador tiene que tomar los datos y las instrucciones de ella para
poder funcionar. Ahora bien, a las velocidades a las que trabaja éste, la memoria
de la cual toma los datos y las instrucciones tiene que ser ultrarrápida. O, lo que
es lo mismo, ultracara. Por este motivo, se han creado distintos niveles jerárquicos
de memoria.

La más rápida y cercana al procesador es la caché, con niveles 1, 2 y hasta


3. La L1 es ultrarrápida y muy cara, y por eso no pasa de unas decenas de
Kbytes. En Sandy Bridge es de 64 Kbytes dividida en 32 Kbytes para datos y 32
para instrucciones. La caché de nivel dos, L2, ya pasa a ser de más de 100
Kbytes, con hasta 256 o 512 Kbytes. La de nivel 3 o L3 se desenvuelve con varios
«megas», de hasta 16 Mbytes. Estos tres niveles están integrados en el
procesador, mientras que el siguiente, la RAM, está fuera, en forma de módulos
de memoria.
Sistema  Operativo:  Apple  OSX   14  

Y, por último, la memoria más barata, pero la más lenta también, se


corresponde con los discos duros, unidades ópticas y memoria Flash. Estos
sistemas son solo un soporte para cargar datos en la RAM. Y es que desde un
disco duro no se puede ejecutar nada directamente; solo cargar en RAM.
El procesador busca primero en sus registros, luego en la caché L1, luego en la
L2, la L3 y, por último, en la RAM. Todo lo que sea tener que ir a por un dato en la
memoria supone ralentizar la operación, tanto más cuanto más arriba esté el dato
en la jerarquía de memoria.

Por suerte, los sistemas implementados en la CPU permiten adivinar con


bastante precisión qué instrucciones se irán ejecutando en un programa, de modo
que se pueden precargar en la caché, y solo cuando se equivoca, se necesita
invertir más ciclos de reloj en la lectura de la memoria RAM. La eficacia de la
arquitectura define en gran medida como funciona este sistema, tanto en Intel
como AMD o ARM.

Lo que sí hay que tener en cuenta es que la velocidad de la RAM no es tan


crucial como se podría pensar en un principio para caracterizar el rendimiento de
un sistema. Al menos en general. Los accesos a la RAM serán programados con
antelación y no supondrán, en general, un cuello de botella.

La memoria principal o memoria RAM usada por el modelo Apple MacBook


Pro 13 de principios de 2011 es la DDR 3 de 1333 Mhz.

Según wikipedia 2014 la memoria DDR3 SDRAM (de las siglas en inglés,
Double Data Rate type three Synchronous Dynamic Random-Access Memory) es
un tipo de memoria RAM, de la familia de las SDRAM usadas ya desde principios
de 1970.
Sistema  Operativo:  Apple  OSX   15  

Entre sus principales características se tienen:

Los DIMMs DDR3 tienen 240 contactos, es el mismo número que DDR2; sin
embargo, los DIMMs son físicamente incompatibles, debido a una ubicación
diferente de la muesca.

Ventajas
• El principal beneficio de instalar DDR3 es la posibilidad de hacer
transferencias de datos más rápidamente, y con esto obtener velocidades
de transferencia y de bus más altas que las versiones DDR2.
• Proporciona significativas mejoras de rendimiento en niveles de bajo
voltaje, lo que conlleva una disminución global del consumo eléctrico.

Desventajas
• No hay una reducción en la latencia, la cual es proporcionalmente más alta.

A continuación se muestran las partes que componen a la memoria DDR3:

1.- Tarjeta: es una placa plástica sobre la cuál están soldadas los componentes de la memoria.
2.- Chips: son módulos de memoria volátil.
3.- Conector (240 terminales): base de la memoria que se inserta en la ranura especial para memoria DDR3.
4.- Muesca: indica la posición correcta dentro de la ranura de memoria DDR3.
Sistema  Operativo:  Apple  OSX   16  

1.4 Descripción del bloque periféricos (Entrada y Salida)

Los dispositivos de entrada/salida son una de las partes fundamentales de


la arquitectura del computador y su objetivo es la eficiencia en la gestión de las
operaciones de entrada/salida, descargando a la CPU de tanto trabajo como sea
posible. Estos dispositivos tienen velocidades muy variadas:

Dispositivos lentos (como el ratón o el trackpad en el caso del mac, el


teclado, el joystick, entre otros) Dispositivos de velocidad media (como una
impresora) Dispositivos rápidos (como un disco duro o una tarjeta de red)

Por tanto, un dispositivo concreto no puede aceptar datos enviados a una


tasa arbitrariamente alta (por ejemplo, una impresora no puede imprimir los
millones de caracteres por segundo que sería capaz de enviarle un procesador i5
que incluye el macbook pro). Por ello, ha de haber alguna forma de coordinar el
envío de datos entre la CPU y los periféricos. Esa es la misión de los circuitos de
interfaz que aparecen en la figura 4.

Existen dos formas básicas de conectar estos circuitos de interfaz,


dependiendo del tipo de procesador en que se base la arquitectura. Ambos tipos
de acceso requieren que la CPU realice el movimiento de los datos entre el
periférico y la memoria principal:

1. Conexión mapeada en memoria (memory–maplicacióned I/O), que usa


“direcciones especiales” en el espacio normal de direcciones. En este caso
el circuito de interfaz se conecta en el computador como si fuera memoria.
Cualquier instrucción que acceda a la memoria (como “mov”) puede
acceder a un puerto I/O mapeado en memoria.
Sistema  Operativo:  Apple  OSX   17  

2. Conexión mediante puertos especiales de entrada/salida (I/O–


maplicacióned I/O), que usa “instrucciones especiales” de entrada/salida y
un espacio de direcciones específico. Este es el caso de las CPUs de la
familia 80x86 y x86-64, y por tanto el que nos interesa mostrar en esta
monografía.

Los procesadores de la familia iCore proporcionan, por tanto, dos espacios


de direcciones: Para memoria y Para dispositivos de E/S. Por lo tanto Las CPUs
Intel Core i5 que usa el macbook pro (y también las de la familia iCore), requieren
instrucciones especiales para acceder a los dispositivos de entrada/salida.

figura 4: Interfaces de Entrada y Salida en una arquitectura basada en


microprocesadores. (fuente: Introducción al I/O http://marte.unican.es)
Sistema  Operativo:  Apple  OSX   18  

TEMA II.- Evolución histórica de la estructura del hardware que


soporta OSX.

2.1 Estructura del hardware Apple I

El Apple I fue uno de los primeros computadores personales, y el


primero en combinar un microprocesador con una conexión para un teclado
y un monitor. Fue diseñado y hecho a mano por Steve Wozniak
originalmente para uso personal. Un amigo de Steve Wozniak, Steve Jobs,
tuvo la idea de vender el computador. Fue el primer producto de Apple,
demostrado en abril de 1976 en el Homebrew Computer Club en Palo Alto,
California.
Según Wikipedia [Mac OS X] y Picado (s.f.) para las primeras versiones del
sistema operativo Mac OS X, la plataforma estándar de hardware soportada
era la línea completa de los computadores Macintosh (portátiles, desktop's
y servidores) basados en procesadores PowerPC G3, G4 y G5. Las
versiones que salieron más adelante soporta equipos con procesador Intel,
de hecho todos los modelos de Mac actuales usa los procesadores de la
gama Intel x86-64 y vienen con una versión nativa de la última versión de
Mac OS X, que desde julio de 2012 está en su versión Mac OS X v10.8
Mountain Lion.

2.1.1 Basadas en Apple PowerPC CPU

Para las primeras versiones del Mac OS X, la plataforma estándar de


hardware soportada era la línea completa de los computadores Macintosh
(portátiles, desktop's y servidores) basados en procesadores PowerPC G3,
G4 y G5. Las versiones que salieron más adelante discontinuaron el
soporte para hardware antiguo; por ejemplo, Panther no soporta el Power
Macintosh G3, y Tiger no soporta sistemas anteriores a la inclusión del
Sistema  Operativo:  Apple  OSX   19  

puerto FireWire (aunque los puertos en sí mismos no son un requerimiento


del sistema). Mac OS X v10.5 Leopard (introducido en octubre de 2007)
abandonó el soporte para todos los procesadores PowerPC G3 y para los
procesadores PowerPC G4 con velocidades de reloj menores a 867 MHz.
Mac OS X v10.7 "Lion" sólo soporta equipos con procesador Intel,
abandonando todo el soporte para los procesadores PowerPC.
Herramientas como XpostFacto y diversos parches aplicados al disco de
instalación han sido desarrollados por terceras partes para permitir la
instalación de versiones recientes de Mac OS X en sistemas no soportados
oficialmente por Apple. Esto incluye un número de sistemas Macintosh pre-
G3, que solo pueden ejecutar el Mac OS X hasta la versión 10.2 Jaguar,
todos los Macs basados en procesadores G3 que solo pueden ejecutar
hasta el sistema Tiger y los G4 con velocidad menor a 867 MHz se les
puede instalar Leopard removiendo la restricción desde el DVD de
instalación o ingresando un comando en la interfaz Open Firmware para
indicarle al instalador del sistema que la velocidad del reloj es igual o
superior 867 MHz. A excepción de las funcionalidades que requieren un
hardware específico (p.j. aceleración gráfica, grabación de DVD), el sistema
operativo ofrece las misma funcionalidad que en un hardware soportado.
Las versiones PowerPC de Mac OS X anteriores a Leopard mantienen la
compatibilidad con aplicaciones del Mac OS mediante un entorno de
emulación denominado Classic, el cual permite a los usuarios ejecutar Mac
OS 9 como un proceso en el Mac OS X, con el fin de que las aplicaciones
antiguas funcionasen como si lo hicieran en el anterior sistema operativo.
Classic no está soportado en Macs Intel o en el Mac OS X v10.5 Leopard,
aunque los usuarios que requieran ejecutar aplicaciones Classic
en Intel Macs pueden usar el emulador SheepShaver.
Sistema  Operativo:  Apple  OSX   20  

2.1.2 Basadas en Apple Intel CPU

Según Wikipedia Mac OSX, En abril de 2002, eWeek hizo público un


rumor que afirmaba que Apple tenía una versión de Mac OS X con nombre
código Marklar, la cual funcionaba en procesadores Intel x86. La idea
detrás de Marklar fue mantener al sistema Mac OS X funcionando en una
plataforma alternativa, debido que Apple se encontraba insatisfecha con el
progreso de los procesadores PowerPC. Estos rumores desaparecieron
hasta que a finales de mayo de 2005, cuando varios medios de
comunicaciones, como el Wall Street Journal y CNET, reportaron que Apple
presentaría Marklar en los meses venideros.
El 6 de junio de 2005, Steve Jobs confirmó estos rumores cuando anunció
en su discurso en el Wordwide Developers Conference que Apple estaría
trabajando en la transición de PowerPC a Intel desde hacía 2 años y que
Mac OS X soportaría ambas plataformas durante la transición. Jobs
también confirmó los rumores respecto a que Apple tenía versiones de Mac
OS X funcionando en procesadores Intel con las mismas funciones que la
versión para PowerPC. La última vez que Apple cambio la familia de
procesadores fue del Motorola 68k al PowerPC. Apple incluyó un emulador
de Motorola 68k en el nuevo sistema operativo, el cual hacía que todos los
programas 68k funcionarán automáticamente en el nuevo hardware. Apple
soportó el emulador para 68k por 11 años, pero lo retiró durante su
transición a las CPU de Intel.
En las recientes versiones del sistema para equipos con procesador se
incluye Rosetta, una de traducción binaria que habilita al software
compilado en PowerPC para ser ejecutado en computadores con
procesador Intel. Sin embargo, Apple abandonó el soporte para el modo
clásico en los nuevos Mac basados en Intel. Software de emulación de
terceros como Mini vMac, Basilisk II y SheepShaver proveen soporte para
algunas de las primeras versiones de Mac OS. Una nueva versión de
Sistema  Operativo:  Apple  OSX   21  

Xcode permite compilar software en binario universal, el cual funcionaría en


cualquiera de las dos arquitecturas.
Los programas que están disponibles solo para PowerPC pueden
ejecutarse sobre Rosetta, aunque dichas aplicaciones podrían ser
reescritas para que se ejecuten con propiedad en el OS X para Intel. Apple
exhorta a los desarrolladores a producir binarios universales para soporte
tanto para PowerPC como x86. Hay una penalidad en el rendimiento
cuando los binarios de PowerPC se ejecutan en un Mac Intel a través
de Rosetta. Además, algunos programas PowerPC, como las extensiones
del núcleo y los complementos para el panel Preferencias del Sistema, no
están soportados en Intel Macs. Algunas aplicaciones PowerPC podrían no
ejecutarse del todo en el OS X para Intel. Los complementos para Safari
necesitan ser compilados para la misma plataforma que Safari, de modo
que cuando Safari funciona en un Mac Intel requiere que los complementos
hayan sido compilados para Intel o que sean binarios universales, de modo
que los complementos PowerPC no tienen soporte. Mientras que los Mac
Intel pueden ejecutar programas compilados para PowerPC, x86 y binarios
universales, los Mac PowerPC solo tendrán soporte para los binarios
universales y para las compilaciones PowerPC.

El Core Duo y el Core 2 Duo de Intel constan de dos núcleos de


procesamiento incorporados en un único chip, por lo que ofrecen
prácticamente el doble de potencia de cálculo que un procesador único
tradicional en el mismo espacio. Estos procesadores, dotados de dos
núcleos estrechamente integrados, una mayor caché de nivel 2 y una
miríada de avances de diseño, ofrecen mejor rendimiento en todas tus
tareas: desde el retoque de las fotos de la familia hasta la generación de
efectos especiales para una película.
Sistema  Operativo:  Apple  OSX   22  

CAPITULO II. ESTRUCTURA DEL SISTEMA OPERATIVO

TEMA III La evolución de OSX.

3.1 La herencia del Sistema BSD en OSX

Si bien el núcleo de XNU es innegablemente Mach, su interfaz principal a


modo de usuario es la de BSD. OSX y iOS ambos ofrecen el conjunto de llamadas
al sistema POSIX compatible, así como varios BSD específicamente. En algunos
casos, Apple ha ido varios pasos adicionales, implementar características
adicionales, algunos de los cuales han sido de back-portado en BSD y
OpenDarwin.

sysctl

El sysctl (8) comando es algo de una forma estandarizada para acceder el


estado interno del kernel. Introducido en BSD 4.4, también se puede encontrar en
otros sistemas de UN * X (en particular, Linux, donde es respaldado por los
directorios / proc / sys). Mediante el uso de este comando, un administrador puede
consultar directamente el valor de las variables del núcleo, proporcionando
diagnósticos en tiempo de ejecución importantes. En algunos casos, la
modificación el valor de las variables, alterando así el comportamiento del núcleo,
es posible. Naturalmente, sólo un bastante pequeño subconjunto de amplia base
de variables del kernel se exporta de esta manera. Sin embargo, esas variables
Sistema  Operativo:  Apple  OSX   23  

que se hacen visibles juego un papel clave en la grabación o la determinación de


la funcionalidad del núcleo.

El sysctl (8) comando encapsula el (3) llamada biblioteca sysctl, que en sí


envuelve el sistema __sysctl llame al (# 202). Las variables del núcleo exportados
se accede por su Base de Información de Gestión (MIB) nombres. Esta
convención de nomenclatura, tomado de la Simple Network Management Protocol
(SNMP), es Contacto clasifi las variables de espacios de nombres.

XNU soporta un buen número de espacios de nombres no modificables, como se


muestra en la Tabla
NAMESPACE NUMERO TIENDA
debug 5 Varios parámetros de depuración.
hw 6 Ajustes relacionados con el
hardware. Por lo general, todos
de sólo lectura.
kern 1 Ajustes relacionados con el
núcleo genéricos.
machdep 7 Ajustes dependientes de la
máquina. Complementa el
espacio de nombres hw
concaracterísticas del
procesador.
Net 4 Configuración de pila de red. Los
protocolos se define en su
propiosub-espacios de nombres.
vfs 3 Relativos al sistema de archivos
de configuración. El interruptor
del sistema de archivos virtual es
la década de kernel capa de
sistema de archivos común.
Sistema  Operativo:  Apple  OSX   24  

vm 2 Configuración de memoria virtual.


user 8 Ajustes para los programas de
usuario.
TABLA 1 Los espacios de nombres predefinidos sysctl

Como se muestra en la tabla, los espacios de nombres se convierten a una


representación de entero, y por lo tanto la variable se puede representar como una
matriz de enteros. El sysctlnametomib llamada biblioteca (3) se puede traducir
desde el textual a la representación entera, aunque eso es a menudo innecesario,
porque sysctlbyname ( 3) se puede utilizar para buscar un valor variable por su
nombre.

Cada espacio de nombres puede tener variables definidas directamente en


ella (por ejemplo, kern.ostype, 1.1), o en sub-espacios de nombres (por ejemplo,
kern.ipc.somaxconn, 1.32.2). En ambos casos, el acceso a la variable en cuestión
es posible, ya sea especificando su nombre ed completamente califi, o por su
especificador numérico MIB. Buscar un número MIB por su nombre (usando
sysctlnametomib (3)), es posible, pero no viceversa. Así, se puede caminar por las
MIB por número, pero no recuperar los nombres correspondientes.

Componentes del kernel pueden registrar valores de sysctl adicionales, e


incluso los espacios de nombres completos, sobre la marcha. Buenos ejemplos
son el espacio de nombres de seguridad (se utiliza en gran medida por el kext caja
de arena) y el espacio de nombres appleprofile (registrada por el
AppleProfileFamily kexts).

kqueues

kqueues son un mecanismo BSD Para las notificaciones de eventos del


kernel. A kqueue es un descriptor que bloquea hasta que un evento de un tipo y
categoría específica se produce. A (o núcleo) proceso de modo de usuario puede
Sistema  Operativo:  Apple  OSX   25  

así esperar en el descriptor, proporcionando un método simple pero eficaz para la


sincronización de uno o más procesos.

kqueues y sus kevents forman la base de E / S asíncrona en el kernel (y


permiten la POSIX poll (2) / seleccionar (2), en consecuencia). A kqueue se puede
construir en modo de usuario simplemente llamando a la kqueue (2) llamada al
sistema (# 362), sin argumentos. Entonces, los eventos específi cos de interés
pueden ser específicamente utilizando la macro EV_SET, que inicializa una
estructura kevent. Llamando al kevent (2) o kevent64 (2) llamadas al sistema (#
363 o # 369, respectivamente) establecerán los filtros de eventos, y regresar si
han sido satisfechas.

3.2 Capas de la experiencia de usuarios.

Según Levin en el lenguaje X OS, la interfaz de usuario es la experiencia


del usuario. OS X proporciona características innovadoras, tales como la elegante
interfaz, que debutó con Cheetah y ha evolucionado desde entonces, esta ha sido
un objetivo para la imitación, y ha influido en otros sistemas operativos basados en
GUI, como Vista y Windows 7.

Apple enumera varios componentes como parte de la capa de Experiencia de


Usuario las cuales son:

- Aqua:
Aqua es la interfaz gráfica de usuario familiar distintiva de OS X. Presenta
características, tales como ventanas translúcidas y gráficos efectos. El
proceso en modo de primer usuario del sistema launchd es responsable de
iniciar la interfaz gráfica de usuario. El proceso principal que mantiene la
interfaz gráfica de usuario es la WindowServer
Sistema  Operativo:  Apple  OSX   26  

- Quick Look
Quicklook es una característica que se introdujo en Leopard (10.5) para
permitir una vista previa rápida desde el interior delbuscador, de diversos
tipos de archivos. En vez de hacer doble clic para abrir un archivo, que
puede ser QuickLook-ed pulsando la barra espaciadora. Es una
arquitectura extensible, permitiendo que la mayor parte del trabajo a realizar
sea a través de plugins. Estos plugins son paquetes con una extensión
.qlgenerator, que se puede instalar fácilmente colocándolos en el directorio
QuickLook (en todo el sistema en / System / Library / QuickLook; o por
usuario, en ~ / Library / QuickLook).

El actual plug-in es un programa especialmente compilado, pero no


un ejecutable independiente. En lugar de la principal tradicional () punto de
entrada, se implementa un QuickLookGeneratorPluginFactory. Un separado
archivo de configuración asocia el plugin con el archivo. El tipo de archivo
se especifica en lo que Apple llama UTI, Uniforme Identificador de Tipo, que
es esencialmente sólo revertir notación DNS.

Hay una buena razón para usar el nombre de DNS inversa como
identificadores de software de paquetes específicamente:
- El formato DNS de Internet sirve como un espacio de nombres jerárquico
único global para nombres de host. Se forma un árbol, con raíces en el
dominio nulo (.), Con el nivel superior dominios siendo .com, .net, .org, y así
sucesivamente.
- La idea de utilizar el mismo espacio de nombres para el software se originó
con Java. Para evitar conflictos de espacio de nombres, Sun (ahora Oracle)
señaló que el DNS puede ser utilizado, aunque a la inversa, para
proporcionar una jerarquía que se asemeja mucho a un archivo sistema.

-Spotlight.
Sistema  Operativo:  Apple  OSX   27  

Spotlight es la tecnología de búsqueda rápida que Apple presentó con Tiger


(10.4). En Leopard, lo ha integrado a la perfección en el buscador. También
se ha portado en iOS, comenzando con iOS 3.0.
En OS X, el usuario interactúa con él haciendo clic en el icono de la lupa
que se encuentra en la esquina derecha de la barra de menú del sistema.
El cerebro detrás del centro de atención es un servidor de
indexación, mds, situado en el marco de metadatos, que es parte de los
servicios centrales del sistema.
(/System/Library/Frameworks/CoreServices.framework/framework/etadata.fr
amework / Soporte / MDS). Este es un demonio sin GUI. Cada vez que una
operación de archivos se produce (creación, modifi cación o supresión) el
núcleo notifica este demonio. Este mecanismo de notificación es llamada
fsevents.

Cuando mds recibe la notificación, entonces ocurren las


importaciones, a través de un proceso de trabajo (mdworker), varios
metadatos guardan la información en la base de datos. El mdworker puede
lanzar un importador Spotlight específico para extraer el metadatos del
archivo. Importadores por el sistema previsto son siempre en el usuario /
System / Library / Spotlight, y queridos están en / Library / Spotlight. Al igual
que QuickLook, son plugins, implementando un fijo API (que puede ser
generado por repetitivo XCode cuando se selecciona un proyecto
Importador metadatos).

Spotlight se puede acceder desde la línea de comandos con los


siguientes comandos:
- mdutil: administra la base de datos de metadatos
- mdfind: consultas Cuestiones spotlight
- mdimport: Configura y plugins spotlight prueba
- MDLS: Listas metadatos los atributos de archivo
- mdcheckschema: Valida los esquemas de metadatos
Sistema  Operativo:  Apple  OSX   28  

- Mddiagnose: Añadido en León, esta utilidad proporciona un diagnóstico


completo del subsistema punto de mira (MDS y mdworker), así como datos
adicionales sobre el sistema.
Otra característica documentada poco está controlando Spotlight (en
particular, los mds) mediante la creación de archivos en diversos caminos:
Por ejemplo, la creación de un .metadata_never_index fi oculto en un
directorio le impedirán su indexación (originalmente concebidos para
medios extraíbles).

3.3 El núcleo de UNIX – Darwin.

Según wikipedia Darwin es el sistema que subyace en Mac OS X, cuya


primera versión final salió en el año 2001 para funcionar en
computadoras Macintosh. Integra el micronúcleo Mach (como parte
de XNU) y servicios de sistema operativo de tipo UNIX basados en BSD 4.4
(en particular FreeBSD) que proporcionan una estabilidad y un rendimiento
mayor que el de versiones anteriores de Mac OS. En realidad, se trata de
una evolución del sistema operativo NEXTSTEP (basado en el núcleo Mach
2.5 y código BSD 4.3) desarrollado por NeXT en 1989 para ejecutarse en
los ordenadores NeXT, llamados 'black boxes', comprado por Apple
Computer en diciembre de 1996.
Darwin proporciona al Mac OS X prestaciones modernas, como la memoria
protegida, la multitarea por desalojo o expulsiva, la gestión avanzada de
memoria y el multiproceso simétrico.
El núcleo de UNIX (kernel) se clasifica como de tipo monolítico, pero en él
se pueden encontrar dos partes principales [Tan92] el núcleo dependiente
de la máquina y el núcleo independiente.
El núcleo dependiente se encarga de las interrupciones, los manejadores
de dispositivos de bajo nivel (lower half) y parte del manejo de la memoria.
El núcleo independiente es igual en todas las plataformas e incluye el
manejo de llamadas del sistema, la planificación de procesos, el
Sistema  Operativo:  Apple  OSX   29  

entubamiento, el manejo de centinelas, la paginación e intercambio, el


manejo de discos y del sistema de archivos.

3.5 Uso del sistema de archivos de UNIX en OSX.

Lo que convierte a OS X en un potente sistema operativo es la tecnología


que lo impulsa: cimientos UNIX plenamente certificados. Lo que contribuye
a convertirlo en uno de los sistemas operativos más seguros y estables de
todas las plataformas. Los desarrolladores lo valoran aún más porque es
totalmente compatible con UNIX. Esto significa que es capaz de compilar y
ejecutar todo el código que ha sido escrito en UNIX, lo que permite
implantarlo en entornos que exigen conformidad total: gracias a esto, los
programas funcionan exactamente como deben

3.6 Aplicaciones en OSX.

El enfoque de OS X para aplicaciones es otro legado de sus orígenes


NeXTSTEP. Las solicitudes están prolijamente agrupados en paquetes.
Paquete de una aplicación contiene la mayoría de los archivos necesarios
para la aplicación de tiempo de ejecución: El binario principal, bibliotecas
privadas, iconos, elementos de interfaz de usuario, y gráficos. El usuario
permanece en gran medida ajeno a esto, como un paquete se muestra en
el Finder como un único icono. Esto permite la fácil experiencia de
instalación de Mac OS, simplemente arrastrando un icono de aplicación en
la carpeta de aplicaciones. Para mirar dentro de una aplicación, habría que
utilizar (la no-intuitivo) del botón derecho.

En OS X, las aplicaciones son generalmente ubicados en la carpeta /


Aplicaciones. Cada aplicación está en su propio directorio, llamado
Sistema  Operativo:  Apple  OSX   30  

AppName.app. Cada aplicación se adhiere a un formato fijo, en el que los


recursos se agrupan de acuerdo a la clase, en separados subdirectorios.
En iOS, aplicaciones se desvían ligeramente de la estructura ordenada,
aunque aún se encuentran en sus propios directorios, pero no se adhieren
tan celosamente al formato de paquete. Más bien, el directorio de aplicación
puede ser bastante desordenado, con toda la aplicación archivos localizado
en la raíz, aunque a veces los archivos necesarios para la
internacionalización ("I18n") están en subdirectorios (directorios xxx.lproj,
donde XXX es el idioma o lenguaje ISO código).

Además, iOS distingue entre las aplicaciones por defecto


proporcionados por Apple, que residenen / Aplicaciones (o / var / alijo /
Aplicaciones en mayores jailbreak-versiones de iOS), y App. Este último
está instalado en un directorio con un específico GUID de 128 bits, dividido
en una estructura más manejable de 4-2-2-2-4 (por ejemplo:A8CB4133-
414E-4AF6-06DA-210490939163 - cada dígito hexadecimal que representa
4 bits).

App componentes Utilizado para:


Documentos Los archivos de datos guardados por las
aplicaciones (guardan altas puntuaciones de
juegos, documentos, notas)
iTunesArtwork Icono de alta resolución del aplicación. Esto
suele ser una imagen JPG.
iTunesMetaData.plist La lista de propiedades de la aplicación, en
formato plist binario
Biblioteca / Archivos de aplicaciones diversas. Esto se
subdivide en Cachés, cookies, Preferencias
y, a veces WebKit (para aplicaciones con
una función de navegación)
TMP Directorio para los archivos temporales
Sistema  Operativo:  Apple  OSX   31  

Tabla 2: Estructura de directorios por defecto de una aplicación para OSX.

3.7 Frameworks.

Un framework o infraestructura digital, es una estructura


conceptual y tecnológica de soporte definido, normalmente con artefactos o
módulos de software concretos, que puede servir de base para la
organización y desarrollo de software. Típicamente, puede incluir soporte
de programas, bibliotecas, y un lenguaje interpretado, entre otras
herramientas, para así ayudar a desarrollar y unir los diferentes
componentes de un proyecto. La consolidación de estos recursos trae
consigo una serie de beneficios. Por ejemplo, hace que sea más fácil para
una biblioteca dinámica compartida para localizar sus recursos, y hace
instalación y desinstalación fácil para el usuario.
Los framework son un poco diferente de las aplicaciones. La diferencia
clave está en el mecanismo de control de versiones integrado: un marco
contiene una o más versiones del código, que pueden existir lado a lado en
subdirectorios separados, tales como Versiones / A, Versiones / B, y así. La
versión preferida puede ser fácilmente activarse mediante la creación de un
enlace simbólico (acceso directo) llamadaActual. El framework de los
archivos en sí son todos los enlaces a la versión seleccionada archivos,
este enfoque se toma después de que el modelo de la ONU * X de
bibliotecas que unen simbólicamente, sino que se extiende a las cabeceras
también, y, aunque la mayoría de los marcos todavía tienen sólo una
versión (por lo general A, pero a veces B o C), esta arquitectura permite
tanto la compatibilidad hacia adelante como hacia atrás.
Los Frameworks se almacenan en varios lugares en el sistema de archivos:
- / System / Library / Frameworks. Contiene marcos suministrados de Apple,
tanto en iOS y OS X
- /red/Library/Frameworks puede (raramente) se utilizarán para Frameworks
comunes instalados en la red.
Sistema  Operativo:  Apple  OSX   32  

- /Library/Frameworks tiene Frameworks de 3 ª parte


- ~ /Library/Frameworks sostiene Frameworks suministrados por el usuario,
si los hay, además, las aplicaciones pueden incluir sus propios
Frameworks. Buenos ejemplos de esto son de Apple GarageBand, iDVD e
iPhoto, todos los cuales tienen Frameworks de aplicación de C-específi en
Contenidos / Frameworks.
La búsqueda marco pueden modificarse aún más por las variables definidas
por el usuario en el siguiente orden:
- DYLD_FRAMEWORK_PATH
- DYLD_LIBRARY_PATH
- DYLD_FALLBACK_FRAMEWORK_PATH
- DYLD_FALLBACK_LIBRARY_PATH
De Apple proporciona un buen número de Frameworks (más de 90 en
Snow Leopard, y mucho más allá de 100 en León). Aún mayor en número,
sin embargo, son los Frameworks privados, que se utilizan internamente
por las públicas, o directamente por las aplicaciones de Apple. Estos
residen en / System / Library / PrivateFrameworks, y son exactamente los
mismos que los públicos, con excepción de los archivos de cabecera, que
son (intencionalmente) no incluido.
Los dos Frameworks más importantes en OS X son:
- carbon
El carbon es el nombre dado a las interfaces de programación legado OS 9.
Carbon ha sido declarado obsoleta, aunque muchas aplicaciones,
incluyendo Apple propia, todavía dependen de ella. A pesar de que muchos
de sus interfaces son específicamente orientado para OS 9 compatibilidad,
se han añadido muchas nuevas interfaces en ella, y no muestra signos de
desaparecer.
- Cacao
El cacao es el entorno de programación de aplicación preferida. Es la
encarnación moderna del medio ambiente NeXTSTEP, como es evidente
por el prefijo de muchos de sus clases base NS (abreviatura de
Sistema  Operativo:  Apple  OSX   33  

NeXTSTEP / dom). El idioma preferido para la programación con cacao es


Objective C, aunque se puede acceder desde Java y AppleScript también.
3.8 Librerías en OSX.
Los Frameworks son sólo un tipo especial de bibliotecas. De hecho, los
Frameworks binarios son las bibliotecas, como puede serverificado con el
(1) comando file. Apple todavía hace una distinción entre los dos términos,
y Frameworks tienden a ser más OS X (y iOS) específica, en contraposición
a las bibliotecas, que son comunes a todos los sistemas UNIX.
OS X y iOS almacenan sus bibliotecas "tradicionales" en / usr / lib (no hay /
lib). Las bibliotecas son sufijo con una extensión .dylib, en lugar de la
habitual .so (objetos compartidos) de ELF en otra UNIX. Aparte de la
diferente extensión (y el diferente formato binario, que es incompatible con
.so), todavía son conceptualmente el mismo. Todavía se puede hallar sus
bibliotecas favoritas de otros UNIX, aunque con el formato .dylib.

3.9 Llamados del Sistema (System Calls).

Como en todos los sistemas operativos, programas de usuario son


incapaces de acceder directamente a los recursos del sistema. Programas
puede manipular los registros de propósito general y realizar cálculos
simples, pero con el fin de lograr cualquier funcionalidad significativa, como
la apertura de un expediente o un socket, o incluso la salida de un sencillo
mensaje, para esto deben utilizar las llamadas al sistema. Estos son puntos
de entrada en funciones predefinida exportados por el núcleo y accesible en
modo de usuario mediante la vinculación contra /usr/lib/libSystem.B.dylib.
OS X, las llamadas al sistema son inusuales ya que el sistema exporta en
realidad dos "personalidades" distintas, la de Mach y la de POSIX.
3.9.1 POSIX: POSIX Comenzando con Leopard (10.5), OS X es una
aplicación UNIX certificado. Esto significa que es totalmente compatibles
con la Interfaz de sistema operativo portátil, conocido más comúnmente
como POSIX. POSIX es una API estándar que define, en concreto:
Sistema  Operativo:  Apple  OSX   34  

- llamada al sistema prototipos: Todas las llamadas al sistema POSIX,


independientemente de la aplicación subyacente, tener el mismo prototipo,
es decir, los mismos argumentos y valor de retorno. Abierta (2), por
ejemplo, es definida en todos los sistemas POSIX como: int abierto (*
camino const char, int oflag, ...); camino es el nombre del nombre
expediente que se abra, y oflags es un OR de flags define en <fcntl.h> (por
ejemplo, O_RDONLY, O_RDWR, O_EXCL). Esto asegura que el código
compatible con POSIX puede ser portado - a nivel de código fuente - entre
cualquier sistema operativo compatible con POSIX. Código de OS X puede
ser portado a Linux, Free- BSD, Solaris e incluso - con tal de que se basa
en nada más que POSIX llamadas y el C / C ++ bibliotecas estándar.
- números de llamada del sistema: Las principales funciones POSIX,
además del prototipo fijo, han bien definido números de llamada del
sistema. Esto permite (en un grado limitado) portabilidad binaria, lo que
significa que un binario POSIX compilado puede ser portado entre sistemas
POSIX de la misma subyacente arquitectura (por ejemplo, Solaris puede
ejecutar binarios de Linux nativas - ambos son ELF). OS X es compatible
con esto, sin embargo, debido a que su formato de objeto, Mach-O, es
incompatible con ELF.
Es más, sus números de llamada sistema desvían de los contenidos de la
norma. La compatibilidad POSIX es proporcionado por la capa de BSD
XNU. Los prototipos de sistema de llamada están en<unistd.h>

3.9.2 Las llamadas del sistema de Mach

Recordemos que OS X se basa en el kernel Mach, un legado de


NeXTSTEP. La capa BSD envuelve el Mach kernel, pero sus llamadas de
sistema nativas siguen siendo accesibles desde el modo usuario. De hecho,
sin Mach las llamadas al sistema, los comandos comunes, como la parte
superior no funcionarían.
Sistema  Operativo:  Apple  OSX   35  

En sistemas de 32 bits, las llamadas del sistema de Mach son negativos.


Este truco ingenioso permite tanto POSIX y Sistema de Mach llama a
coexistir. Debido POSIX sólo define las llamadas no negativos del sistema,
losespacio negativo se deja definido, y por lo tanto utilizable por Mach.
En sistemas de 64 bits, las llamadas del sistema de Mach son positivas,
pero tienen el prefijo 0x2000000, que claramente separa y les de
ambigüedad de la POSIX llamadas, que se prefija con 0x1000000.

3.10 Visión general de XNU.

XNU es un núcleo que adquirió y desarrolló Apple para ser usado en


el sistema operativo Mac OS X. Es software libre y forma parte del sistema
operativo Darwin. XNU es un acrónimo que significa X is Not Unix (X No es
Unix). Fue desarrollado originalmente por NeXT para el sistema
operativo NEXTSTEP. XNU era un núcleo híbrido que combinaba Mach 2.5
con componentes de BSD 4.3 y una API orientada a objetos para escribir
drivers llamada DriverKit. Cuando Apple adquirió NeXT, actualizó los
componentes Mach a la versión 3.0, reemplazó los componentes BSD con
código procedente de FreeBSD y DriverKit fue sustituido por I/O Kit. Como
algunos otros núcleos modernos, XNU es un híbrido y tiene características
tanto de los núcleos monolíticos como de los micronúcleos. Intenta hacer
un mejor uso de las dos tecnologías, como la capacidad de pasar mensajes
de los micronúcleos, permitiendo una mayor modularidad y que grandes
porciones del SO se beneficien de la protección de memoria. Asimismo,
permite mantener la velocidad de los núcleos monolíticos para desempeñar
determinadas tareas.

Según MacProgramadores (s.f) el nucleo XNU consta de seis


componentes principales los cuales son:

- Mach El corazón del núcleo XNU, Mach, fue originalmente concebido


como un simple micronúcleo. Como tal, es capaz de hacer funcionar la
Sistema  Operativo:  Apple  OSX   36  

base de un sistema operativo como procesos separados, lo que permite


una mayor flexibilidad (se podrían ejecutar varios sistemas operativos en
paralelo sobre la base de Mach), pero a menudo reduce el rendimiento
debido al tiempo consumido para cambiar del contexto kernel al contexto
usuario, y al trabajo que se deriva de mapear o copiar mensajes entre el
espacio de direcciones del micronúcleo y el de los daemons de servicios.
Con Mac OS X, los diseñadores han intentado hacer más sencillas algunas
tareas, y las funcionalidades de BSD se han implementado en el núcleo con
Mach. El resultado es una combinación de Mach y un clásico núcleo BSD,
con algunas ventajas y desventajas de ambos.

-BSD Una capa por encima de Mach que permite a los programadores usar
las conocidas llamadas al sistema POSIX de los sistemas UNIX. Estas
funciones nos permiten entre otras cosas la gestión de procesos por ID, dar
permisos a estos procesos, gestión de señales, o el uso de sockets BSD.
La principal ventaja que aporta BSD es que permite migrar fácilmente
aplicaciones UNIX a Mac OS X.
-Kernel Extensions (también llamados kexts) Son bundles que extienden
la funcionalidad del núcleo de Mac OS X y que se pueden cargar y
descargar dinámicamente. Dentro del bundle encontramos el kernel
módule (también llamado kmod) que es una imagen binaria Mach que se
instala en el kernel. Los kext se programan en C.
-I/O Kit Proporciona un framework C++ para el desarrollo de drivers de
dispositivos mediante kexts. En concreto, usa un subconjunto del lenguaje
C++ llamado Embedded C++. Un I/O Kit driver es una kext que, en vez de
estar programada en C, está programada en Embeded C++. El I/O Kit está
formado por tres componentes principales:
• Families. Define una colección de abstracciones software comunes a todos
los dispositivos de una categoría. Apple proporciona familias para
protocolos como USB, SCSI y FireWire, así como para dispositivos de
Sistema  Operativo:  Apple  OSX   37  

almacenamiento y frame buffers. Nosotros debemos en general basarnos


en las familias ya hechas, y no crear nuevas familias.
• Nubs. Es un objeto que representa un dispositivo o servicio lógico (p.e. un
bus, un disco, una partición de disco o el teclado).
• Drivers. Es un objeto que se encarga de gestionar una determinada pieza
hardware, implementando las operaciones de E/S para ese dispositivo. Mac
OS X ya proporciona una colección de drivers que gestionan los
dispositivos más comunes, como puedan ser discos duros o teclados. Si un
nuevo dispositivo cumple con un estándar industrial, pero tiene más
funcionalidad, entonces simplemente tendremos que crear una subclase
que maneje esas características adicionales.
-File System El sistema de ficheros de XNU se basa en el diseño de VFS
(Virtual File System), el cual se caracteriza porque nos permite añadir
fácilmente nuevos sistemas de ficheros, así como añadir capas a un
sistema de ficheros existentes (p.e. compresión, encriptación). Mac OS X
viene con los sistemas de ficheros HFS, HFS+, UFS (Universal File System)
y ISO 9660
-Networking Mac OS X lleva implementada la pila de red en el núcleo, la
cual también tiene un sistema extensible que nos permite añadir nuevos
protocolos llamado NKE (Network Kernel Extensions).

3.11 Mac OS Clásico.

Según wikipedia, Mac OS 9 fue la última versión mayor de la familia


de sistemas operativos conocida como Mac OS clásico (classicen inglés).
Fue introducida por Apple Computer el 23 de octubre de 1999 y sucedida
por Mac OS X. Si bien inicialmente estaba previsto que fuera una nueva
versión menor del anterior Mac OS 8 (Mac OS 8.7), se cambió a Mac OS 9
para suplir el salto hacia la siguiente generación (ya en preparación) del
Mac OS, Mac OS X (presentado como versión 10). Apple lo catalogó como
"el mejor sistema operativo de Internet", destacando la capacidad de
búsqueda del programa Sherlock 2 y la integaración con un servicio gratuito
Sistema  Operativo:  Apple  OSX   38  

conocido en aquel entonces como iTools (luego .Mac, después MobileMe y


ahora iCloud).
Este sistema, al igual que todos los de esta familia, carecía de algunos
servicios y prestaciones comunes en los sistemas de su tiempo, tales como
la memoria protegida o multitarea preventiva. Sin embargo presentaba
numerosas ventajas con respecto a los anteriores Mac OS, como por
ejemplo interfaz para varios usuarios (un multiusuario básico), búsqueda
avanzada y mayor compatibilidad.
Fue discontinuado en 2001, durante la transición a Mac OS X. De ahí en
adelante, dejó de recibir actualizaciones. Las últimas actualizaciones
corregían errores relativos al Classic Enviroment cuando corre en Mac OS
X y la compatibilidad con las aplicaciones Carbon. En el WWDC de
2002, Steve Jobs empezó la conferencia con el funeral de Mac OS 9.
Apple actualizó el Mac OS 9 con una serie de correcciones y versiones
menores tales como la 9.0.4 y 9.1 (en la cual, por ejemplo, fue incluida la
capacidad para grabar CD desde el propio sistema (con el Finder) sin
utilizar una herramienta externa), en 2000 y 2001. La actualización 9.2 dejó
de darle soporte a los procesadores PowerPC más antiguos (601, 603 y
604) y requería un procesador G3 como mínimo. Otra actualización, Mac
OS 9.2.1, fue lanzada en 2001, pero ya sólo mejoró la funcionalidad del
entorno de emulación Classic de Mac OS X (y fue seguida del 9.2.2 con el
mismo propósito).
Los últimos equipos producidos con capacidad de utilizar este sistema
fueron los Power Mac G4, descatalogados en 2004. Los productos que
fueron lanzados para Mac OS 9 o anterior ya no son compatibles con los
Mac con el sistema operativo Mac OS X Leopard o Mac OS X Snow
Leopard.
Las copias de Mac OS 9 aun están disponibles en varias empresas a
precios variables. Ya no está disponible en Apple. Aunque ahora es
clasificado como abandonware, ya que el desarrollo ha terminado, aun está
en uso por quienes no pueden actualizar a Mac OS X debido a limitaciones
Sistema  Operativo:  Apple  OSX   39  

del sistema o lo prefieren más que Mac OS X. También es una opción


popular para los fanáticos de la retroinformática.

Figura 5 Interfaz de Mac OS Classic

3.12 Adopción de NextStep.

Aunque Mac OS experimentó sus dolores de crecimiento en la faz de la PC


descomunal, su fundador Steve Jobs dejó Apple (según algunas versiones
fue derrocado) para ponerse a trabajar con una empresa nueva y
radicalmente diferente.
La compañía, NeXT, fabrica hardware especializado, el ordenador NeXT y
NeXTstation, con un sistema operativo dedicado llamado NeXTSTEP.
NeXTSTEP jactó algunas de las características de vanguardia para la
época:
- NeXTSTEP se basó en el microkernel Mach, un núcleo poco conocido
desarrollado por Carnegie Mellon University (CMU). El concepto de un
microkernel era, en sí, considerado una novedad, y permanece raramente
implementado aún hoy en día.
- El desarrollo del lenguaje utilizado fue de Objective-C, un superconjunto
de C, que a diferencia de C ++ es fuertemente orientado a objetos.
Sistema  Operativo:  Apple  OSX   40  

- La misma orientación a objetos era frecuente durante todo el sistema


operativo. el sistema de marcos y kits ofrecidos, lo que permitió el
desarrollo de GUI rápido con un objeto rico biblioteca, basado en el
NSObject.
- El entorno de controlador de dispositivo era un marco orientado a objetos,
así, conocida como DriverKit. Los conductores podrían subclase otros
conductores, heredando de ellos y la ampliación de su funcionalidad.
- aplicaciones y bibliotecas fueron distribuidos en paquetes independientes.
Paquetes consistían en una estructura de directorios fi fija, que se utilizó
para paquete de software, junto con sus dependencias y relacionado fi les,
por lo que la instalación y desinstalación podría ser tan fácil como mover
alrededor de una carpeta.
- PostScript fue muy usado en el sistema, incluyendo una variante llamada
"pantalla PostScript," que permitió a la representación de imágenes de
pantalla como posdata. Soporte de impresión era por lo tanto 1: 1, a
diferencia de otros sistemas operativos, lo que necesitan para convertir a un
formato para impresión.
NeXTSTEP fue por el camino de la mejora de los sistemas operativos
(recuerde OS / 2?), Y es hoy en día extinto, a excepción de un puerto
GNUStep. Sin embargo, su legado sigue vivo hasta nuestros días. Un día
de invierno en 1997, Apple, con un sistema operativo que no se va a
ninguna parte, terminó la adquisición de NeXT, con lo que su intelectual
propiedad en Apple, junto con Steve Jobs. Y el resto, como dicen, es
historia.

3.13 Inicios del OSX.


Como resultado de la adquisición de NeXT, Apple tuvo acceso a Mach,
Objective-C, y el otro aspectos de la arquitectura NeXTSTEP. Mientras
NeXTSTEP se interrumpió como consecuencia, éstos componentes viven
en en OS X. De hecho, OS X puede ser considerada como una fusión de
Mac OS Classic y NeXTSTEP, la mayoría de la absorción de este último al
primero. La transición no fue inmediata, y Mac OS pasa a través de un
Sistema  Operativo:  Apple  OSX   41  

sistema operativo provisional llamado Rhapsody, que en realidad nunca se


hizo público. Fue Rhapsody, sin embargo, que con el tiempo se convirtió en
la primera versión de Mac OS X, y su núcleo se convirtió en el centro de lo
que hoy se conoce como Darwin.
Mac OS X, es un entorno operativo basado en Unix, desarrollado,
comercializado y vendido por Apple Inc. Ha sido incluido en su gama de
computadoras Macintosh desde el año de 2002. OS X es el sucesor
del Mac OS 9 (la versión final del Mac OS Classic), el sistema operativo de
Apple desde 1984. Está basado en BSD, y se construyó sobre las
tecnologías desarrolladas en NeXT entre la segunda mitad de los 80's y
finales de 1996, cuando Apple adquirió esta compañía. Técnicamente, no
es un sistema operativo, sino que incluye uno (Darwin, cuyo núcleo
es XNU). Desde la versión Mac OS X 10.5 Leopard para
procesadores Intel, el sistema tiene la certificación UNIX 03.

3.14 Versiones de OSX:

La primera versión del sistema fue Mac OS X Server 1.0 en 1999, y en


cuanto al escritorio, fue Mac OS X v10.0«Cheetah» (publicada el 24 de
marzo de 2001). Para dispositivos móviles Apple produce una versión
específica de OS X llamada iOS, que funciona en iPhone, iPod
Touch, iPad y Apple TV. Hasta la versión 10.8, inclusive, los nombres de las
versiones de Mac OS X tienen nombre de grandes felinos. Por
ejemplo: Mac OS X v10.7 es denominado «Lion». A partir de la versión
10.9, «Mavericks», Apple empezó a utilizar nombres de lugares de
California para denominar al sistema operativo.

3.14.1 Versión 10.0 Cheetah.

Mac OS X 10.0, conocido como Cheetah (guepardo), es la primera versión


pública de la plataforma OS X. El 24 de marzo de 2001 Alrededor de un
Sistema  Operativo:  Apple  OSX   42  

año después de una beta pública, llamada Kodiak. Esto marca una
diferencia significativa con el viejo estilo de Mac SO con la integración de
las funciones de NeXT / Openstep, y en capas de la arquitectura. Es una
reescritura total del MacOS 9, y acciones poco en común, ahorrar para tal
vez la interfaz de carbono, que se utiliza para mantener la compatibilidad
con OS 9 APIs. La versión inicial era lenta, estaba incompleta y tenía muy
pocas aplicaciones disponibles al momento de su lanzamiento, casi todas
de desarrolladores independientes debido a esto, 10.0 tuvo cinco sub-
versiones (10,0 a 10.0.4) con modificaciones relativamente menores. La
versión de los paquetes principales del sistema operativo, llamado Darwin,
eran 1.3.1 en todos. XNU era la versión 123.

Figura 6 . Interfaz de Mac OS X Versión 10.0. Cheetah

3.14.2. Versión 10.1 Puma.

Seis meses después de la versión Cheetah, específicamente el 25 de


septiembre de 2001, Apple lanzó esta nueva versión que incrementaba el
rendimiento del sistema a la vez que incorporaba algunas nuevas
características tales como la reproducción de DVD. Mac OS X 10.1,
conocido como Puma, fue de distribución para solucionar problemas de
estabilidad y rendimiento, así como añadir más características experiencia
del usuario. Esto también llevó poco después al abandono público de Apple
Sistema  Operativo:  Apple  OSX   43  

de Mac OS 9, y se centran en OS X como el nuevo sistema operativo de


elección. Puma corrió seis sub-versiones (10,1 través 10.1.5). en la versión
10.1.1, Darwin (el núcleo del sistema operativo) se volvió a numerar de
v1.4.1 a 5,1, y desde entonces ha seguido el Números OS X
constantemente por ser cuatro números por delante de la versión menor, y
la adaptación de su propia menor con la sub-versión. XNU era la versión
201.

Figura 7. Interfaz de Mac OS X Versión 10.1. Puma

3.14.3. Versión 10.2 Jaguar.

Un año más tarde, El 23 de agosto de 2002, se produjo la introducción de


Mac OS X 10.2, conocido como Jaguar, un sistema operativo mucho más
madura con un sinfín UX que ofrecen mejoras, y la introducción del marco
de "Quartz Extreme" para gráficos más rápidos. Otra adición Bonjour de
Apple (entonces llamado Rendezvous), que es una forma de ZeroConf, un
protocolo UPnP como (Universal Plug and Play) permitiendo que los
dispositivos de Apple para hallar el uno al otro en una red de área local
(discutido más adelante en este libro). Darwin fue actualizada 6.0. 10.2
corrió nueve subversiones (10,2 través 10.2.8, Darwin 6.0 a 6.8,
respectivamente). XNU era la versión 344.
Sistema  Operativo:  Apple  OSX   44  

Figura 8. Interfaz de Mac OS X Versión 10.2. Jaguar

3.14.4. Version 10.3 Panther and Safari 6.

Un año pasó, el 24 de octubre de 2003 Apple lanzó Mac OS X 10.3,


Panther, mejorando el sistema operativo con aún más características UX
como Exposé. Apple creó su propio navegador web, Safari, desplazando
Internet Explorer para Mac, ya que se distanció de Microsoft. Las nuevas
mejoras de Panther incluyen: un buscador actualizado (que incorpora una
interfaz metálica y búsqueda rápida), Exposé (una nueva forma de
manipular ventanas), cambio rápido de usuarios (permite tener sesiones
con diferentes usuarios abiertas al mismo tiempo y pasar de una a otra
rápidamente), iChat AV (que añade soporte para videoconferencia a iChat),
renderización mejorada de PDF, soporte integrado de fax, interoperabilidad
mejorada con Microsoft Windows,FileVault (sistema de cifrado en tiempo
real) e incremento de velocidad en todo el sistema con un mayor soporte
para los G5. Otra mejora notable en Panther es FileVault, que permite el
cifrado de disco transparente. Mac OS X 10.3 se mantuvo vigente durante
un año y medio, y corrió 10 sub-versiones (10.3 a 10.3.9) con Darwin 7.x
(7.0 a 7.9). XNU era la versión 517.
Sistema  Operativo:  Apple  OSX   45  

Figura 9. Interfaz de Mac OS X Versión 10.3. Panther

3.14.5. Version 10.4 Tiger and Intel Transition 6.

Mac OS X v10.4 "Tiger" se puso a la venta el 29 de abril de 2005.


Contiene más de 150 nuevas mejoras, pero al igual que con el lanzamiento
de Panther, algunas máquinas antiguas dejaron de ser soportadas; en
particular, cualquier equipo Apple que no cuente con conexión FireWire no
está ya soportado en Tiger. Como curiosidad cabe comentar que Apple
dispone a partir de Tiger, de una versión "paralela" compilada para
procesadores Intel, si bien, teóricamente, sólo podrá instalarse bajo ciertas
restricciones de hardware y en procesadores con soporte SSE3. Esta
versión apareció oficialmente el día 10 de enero de 2006 con los primeros
equipos "Mac Intel": El iMac Core Duo (ex iMac G5), Mac mini Core Solo y
Core Duo (ex Mac mini G4) además de los nuevos portátiles denominados
MacBook y MacBook Pro, ambos equipados con procesadores Intel Core
Duo. También han existido versiones para G4 de este sistema operativo,
incluida al menos en los últimos PowerBook G4 a la venta.
Las aplicaciones incluidas en versiones anteriores fueron mejoradas. Entre
lo más destacable se tiene: Spotlight (sistema de búsqueda basado en
Sistema  Operativo:  Apple  OSX   46  

contenidos y metadatos), Dashboard (conjunto de miniaplicaciones para


realizar tareas comunes y ofrecen acceso instantáneo a la
información), iChat (soporte para el códec de vídeo H.264 para la
realización de videoconferencias de hasta 4 personas. Además, también
permite realizar audioconferencias de hasta 10 personas),QuickTime 7
(soporte para H.264 y una interfaz completamente
rediseñada), Safari (incorpora soporte para RSS, mayor velocidad y
seguridad, etc.).
Se introdujeron los siguientes programas y tecnologías: Automator (sistema
que permite llevar a cabo de forma eficaz y sencilla toda clase de tareas
manuales y repetitivas de forma automática y sin necesidad de
conocimientos de programación), Core Image y Core Video (tecnologías
avanzadas de procesamiento de imágenes en tiempo real), soporte de
memoria de 64 bits (para los nuevos G5, usando el sistema LP64),
utilidades Unix actualizadas (como cp y rsync, que pueden preservar los
metadatos en HFS Plus y resource fork) y un sistema extendido de
permisos usando listas de control de acceso.
Sistema  Operativo:  Apple  OSX   47  

Figura 10. Interfaz de Mac OS X Versión 10.4. Tiger

3.14.6. Version 10.5 Leopard and UNIX.

Leopard fue más de un año en la fabricación. Anunciado en junio de


2006, pero no publicado hasta octubre 2007, se jactó cientos de nuevas
características, Las nuevas funciones incluyen: una nueva apariencia, un
Finder actualizado, un software para realizar copias de seguridad:Time
Machine, soporte completo para aplicaciones de 64 bits, nuevas funciones
en Mail e iChat, y nuevas características de seguridad.. El principal de ellos
desde la perspectiva del desarrollador fueron:
- Core Animation, que descargo tareas de animación con framework.
- Objective-C 2.0
- OpenGL 2.1
- mejorada de scripting y nuevos lenguajes, incluyendo Python y Ruby
Sistema  Operativo:  Apple  OSX   48  

- Dtrace (portado desde Solaris 10) y su interfaz gráfica de usuario,


Instrumentos
- FSEvents, lo que permite la funcionalidad de inotify como de Linux
(sistema fi l / cationes directorio notifi)
- Leopard es también completamente UNIX / compatible con POSIX
Leopard corrió 10.5 a 1.0.5.8; Darwin 9.0 a 9.8. XNU saltó hacia delante a
la versión 1228.

Figura 11. Interfaz de Mac OS X Versión 10.5. Leopard

3.14.7. Versión 10.6 Snow Leopard 7.


Snow Leopard introdujo bastantes cambios. Después de lo que ahora fue
algo de una tradición, se tardó más de un año desde su anuncio, en junio
de 2008 para su lanzamiento en agosto de 2009 Desde la perspectiva UX,
los cambios son mínimos, aunque todas sus aplicaciones eran a 64 bits. La
perspectiva del desarrollador, , reveló cambios significativas, incluyendo:
- La funcionalidad completa de 64 bits: bibliotecas de espacio tanto en el
usuario y el espacio del núcleo (K64).
- La compresión de archivos a nivel de sistema: Incorporado en voz muy
baja, como la mayoría de los comandos y API Todavía reportar tamaños
reales de los archivos.
Sistema  Operativo:  Apple  OSX   49  

- Grand Central Dispatch: programación multi-núcleo Habilitado a través de


una API central.
- OpenCL: habilita la descarga de los calculos a la GPU, la utilización de la
cada vez mayor potencia de cálculo de los adaptadores gráficos para tareas
no gráficas. Apple desarrolló originalmente el estándar, y todavía mantiene
la marca sobre el nombre. El desarrollo ha sido entregado hacia el grupo
Khronos (www.khronos.org), un consorcio de líderes de la industria
(incluyendo AMD, Intel, NVidia, y muchos otros), que también acogerá
OpenGL (para gráficos) y OpenSL (por sonido).
Snow Leopard terminó el proceso de migración se inició en 10.4.4 - de PPC
para las arquitecturas x86 / x64. Ya no es compatible con PowerPC binarios
tan universales para apoyar que la arquitectura ya no es tán necesario,
ahorrando mucho espacio en disco por adelgazamiento binarios. En la
práctica, sin embargo, la mayoría de los binarios aún contienen múltiples
arquitecturas de 32 bits y 64 bits de Intel. La versión más actualizada de
Snow Leopard es 10.6.8 (Darwin 10.8.0), liberado de julio de 2011. XNU es
versión 1504.

Figura 12. Interfaz de Mac OS X Versión 10.6. Snow Leopard


Sistema  Operativo:  Apple  OSX   50  

3.14.8. Versión 10.7 Lion 8.


El 20 de octubre de 2010, en el evento llamado Back to the Mac («Vuelta al
Mac»), Apple mostró un Sneak Peek del próximo sistema operativo Mac OS
X 10.7 con nombre código «Lion». Es un sistema relativamente de alta
gama, lo que requiere Intel Core 2 Duo o superior para funcionar. A pesar
de que ofrece muchas características, la mayoría de ellos están en modo
de usuario. Varias de las nuevas características que sido fuertemente
influenciado desde iOS (el puerto móvil de OS X para i-dispositivos, como
veremos más adelante). Estos características incluyen, por nombrar sólo
algunos:
- iCloud: nuevo almacenamiento basado en la nube de Apple está
estrechamente integrado en León, aplicaciones que permiten almacenar
documentos en la nube directamente desde el tiempo de ejecución de
Objective-C y NSDocument.
- seguridad más estricta: A partir de un modelo que se inició en iOS, de
sandboxing de aplicaciones y separación de privilegios.
- Las mejoras en las aplicaciones integradas: Tal como Finder, Mail, y vista
previa, así como portal de aplicaciones de iOS, especialmente FaceTime y
el LaunchPad iOS similar.
- Muchas características del marco: De las barras de desplazamiento de
superposición y otras mejoras de interfaz gráfica de usuario, a través de voz
en off, texto auto-corrección similar a iOS, a lingüística y Etiquetado
gramatical para permitir a las aplicaciones basadas en el Procesamiento del
Lenguaje Natural.
- Core Almacenamiento: Permitir apoyo volumen lógico, que puede ser
utilizado para las nuevas características de particionamiento. Una
característica particularmente útil está extendiendo los sistemas de archivo
en más de una partición.
- FileVault 2: Se utiliza para el cifrado del sistema de ficheros de música,
hasta el nivel de volumen de la raíz. Esto se basa en la base de
almacenamiento de capacidades de encriptación a nivel de volumen lógico.
Sistema  Operativo:  Apple  OSX   51  

El cifrado es AES-128 en el modo XTS, que está especialmente optimizado


para el cifrado del disco duro. (Tanto Básico de almacenamiento y almacén
de archivos se discuten en el capítulo 15 de este libro, "Los archivos y
sistemas de archivos.")
- descenso del aire: Se extiende ya formidables habilidades Nding peer-fi de
Apple (cortesía de Bonjour) a permitir el intercambio de archivos rápida
entre los hosts a través de WiFi.
- modo de 64 bits: Habilitado de forma predeterminada en más modelos de
Mac. Snow Leopard ya tenía una de 64 bits kernel, pero aún arrancado
núcleos de 32 bits en la no-Pro Macbooks.

Figura 13. Interfaz de Mac OS X Versión 10.7. Lion

3.14.9. Versión 10.8 Mountain Lion.


El 16 de febrero de 2012 Apple lanzó la Developer Preview de Mac OS X
10.8 Mountain Lion, una versión del sistema operativo en la que se incluyen
muchas aplicaciones nativas de iOS, como Recordatorios, Notas o
Mensajes. Incluye también un centro de notificaciones cercano al de iOS.
Mac OS X Mountain Lion salió a la venta en España el 25 de julio de 2012.
Con esta nueva versión, Apple pretende potenciar el uso de la nube, con el
ya usado iCloud, gracias a la integración con la suite ofimática, iWork. Otra
de las grandes novedades es Game Center, una plataforma de juego que
Sistema  Operativo:  Apple  OSX   52  

pretende ser la primera en aunar los progresos y logros de las consolas


portátiles con los sistemas de escritorio. También cuenta con Gatekeeper
es una característica que evita la instalación de aplicaciones no confiables y
así evitar malware. La versión actual del sistema es la 10.9.4

Figura 14. Interfaz de Mac OS X Versión 10.8. Mountain Lion

3.14.10. Versión 10.9 Mavericks.


El 22 de octubre de 2013 Apple lanzó la Actualización Mac OS X 10.9
Mavericks, una nueva versión que integra las aplicaciones de iOS como
Recordatorios, Notas, Mensajes, iBook y notificaciones instantáneas pero
con mucha más personalización. La nueva versión se puede actualizar sin
ningún costo desde el mismo día de su presentación. Entre otras
novedades anunciadas de OS X Mavericks está la opción de usar una
HDTV como segundo monitor por medio de Apple TV y el aumento de la
duración de la batería para los usuarios de MacBook Air de 11" y 13", con
mayor ahorro de energía para iMac.
Sistema  Operativo:  Apple  OSX   53  

Figura 15. Interfaz de Mac OS X Versión 10.9. Mavericks

3.14.11. Versión 10.10 Yosemite.


El 2 de junio de 2014 Apple presentó en la "WWDC 2014" Mac OS X 10.10
Yosemite, una nueva versión del sistema operativo que presenta un
rediseño en su interfaz y mejoras en el Finder, Safari, Mail, Centro de
Notificaciones, etc. La versión Beta se encontrará disponible únicamente
para el primer millón de usuarios que se suscriban en el programa Beta de
Apple. Durante la Keynote del 16 de octubre de 2014, Apple anuncio el
lanzamiento oficial de Mac OS X v10.10 (Yosemite).

Figura 16. Interfaz de Mac OS X Versión 10.10. Yosemite


Sistema  Operativo:  Apple  OSX   54  

http://es.wikipedia.org/wiki/Mac_OS_9
http://web.archive.org/web/20001109004000/http://www.apple.com/macos/

TEMA IV. Procesos en OSX

4.1 Definición de Proceso


Un proceso es un programa en ejecución. Los procesos son gestionados
por el sistema operativo y están formados por:
Las instrucciones de un programa destinadas a ser ejecutadas por el
microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los
registros de la unidad central de procesamiento para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos
multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo
(compartida por todos los hilos) y la información de planificación. Cada hilo consta
de instrucciones y estado de ejecución.

4.2 Estados de Procesos


Un proceso activo es el que está ejecutándose en un instante dado. En el
caso de sistemas con un único procesador, sólo puede haber una tarea en dicho
estado en cada instante.
Preparado, se encuentran todas las tareas que están listas para ejecutarse
pero que esperan a que el procesador quede libre (hay otros procesos más
prioritarios en ejecución).
Sistema  Operativo:  Apple  OSX   55  

Bloqueado o suspendido, Las tareas que están a la espera de que se


cumpla una condición y que por lo tanto, no están preparadas para ejecutase.
Muerto cuando ha terminado su ejecución o bien el sistema operativo a detectado
un error fatal y lo ha transferido a dicho estado. También es posible que haya
entrado él como resultado de un fallo del propio sistema operativo (aspecto que
puede ocurrir frecuentemente en algunos OS).
El control y la distribución de trabajos en el sistema se hacen en base a la
información proporcionada por el usuario a través de una interfaz de comunicación
entre el usuario y el sistema operativo. Esta información es necesaria, para que el
usuario pueda expresar al sistema lo que desea hacer, indicando los
requerimientos de recursos, de tal forma que el sistema pueda optimizar su
rendimiento, claro esta que la comunicación entre el usuario y el sistema no es
unidireccional, sino, que debe existir una interfaz complementaria para que el
sistema pueda comunicarse con el usuario.
El Mac OS X es un sistema operativo multiusuario y multitarea con una
capacidad para administrar simultáneamente información de 32 bits, se considera
de multitarea preventivo dado que cuenta con un programador (también llamado
planificador) el cual, según los criterios de prioridad, asigna el tiempo de los
equipos entre varios procesos que lo solicitan. La planificación del procesador
consiste en mantener una serie de estructuras de información que permiten
identificar las características de cada trabajo, así como los recursos que tiene
asignados. Un trabajo puede estar en varios estados (procesamiento, listo para
ejecutar y en espera).

4.2.1 Mach Información General


Los servicios y las primitivas fundamentales del kernel OS X se basan en
Mach 3,0. Apple ha modificado y ampliado Mach a mejores objetivos funcionales y
de rendimiento que se encuentra en OS X.
Mach 3.0 se concibió originalmente como un simple, extensible, comunicaciones
microkernel. Es capaz de funcionar como un núcleo independiente, con otros
Sistema  Operativo:  Apple  OSX   56  

servicios tradicionales de sistemas operativos tales como E / S, sistemas de


archivos y las pilas I de redes que funcionan como servidores en modo de usuario.
Sin embargo, en OS X, Mach está vinculado con otros componentes del
núcleo en un único espacio de direcciones del núcleo. Esto es principalmente para
el rendimiento; es mucho más rápido para hacer una llamada directa entre
componentes vinculados de lo que es para enviar mensajes o hacer llamadas a
procedimiento remoto (RPC) entre tareas separadas. Esta estructura modular da
lugar a un sistema más robusto y extensible que un núcleo monolítico permitiría,
sin la penalización en el rendimiento de un microkernel puro.
Así, en OS X, Mach no es principalmente un centro de comunicación entre clientes
y servidores. En lugar de ello, su valor consiste de sus abstracciones, su
extensibilidad, y su flexibilidad. En particular, Mach ofrece
• Objetos basados APIs con canales de comunicación (por ejemplo, los
puertos) como referencias a objetos.
• Altamente ejecución paralela, incluyendo preventivamente programado
hilos y apoyo a SMP.
• Un marco horario flexible, con soporte para uso en tiempo real.
• Un completo conjunto de primitivas IPC, incluyendo mensajes, RPC,
sincronización y notificación.
• Soporte para gran espacios de direcciones virtuales, regiones de
memoria compartida, y los objetos de memoria respaldados por
almacenamiento persistente.
• Extensibilidad y portabilidad demostrado, por ejemplo a través del
conjunto de instrucciones de arquitecturas y en entornos distribuidos.
• La seguridad y la gestión de recursos como un principio fundamental del
diseño; todos los recursos están virtualizados.

4.3 Mach Kernel Abstracciones


Mach ofrece un pequeño conjunto de abstracciones que han sido diseñadas
para ser a la vez simple y poderoso. Estos son las principales abstracciones del
kernel:
Sistema  Operativo:  Apple  OSX   57  

• Tareas. Las unidades de propiedad de los recursos; cada tarea consiste


en una espacio de direcciones virtuales, un puerto espacio de nombres
de la derecha, y uno o más hilos. (Similar a un proceso).
• Hilos. Las unidades de ejecución de CPU dentro de una tarea.
• Espacio de direcciones. En colaboración con los gestores de memoria,
Mach implementa la noción de un espacio de direcciones virtuales
escasa y memoria compartida.
• Objetos de memoria. Las unidades internas de gestión de memoria.
Objetos de memoria incluyen entradas y regiones nombradas; son
representaciones de datos potencialmente persistentes que puede ser
asignada a los espacios de direcciones.
• Puertos. Canales seguros de comunicación simple, accesible sólo a
través de envío y recepción capacidades (conocidos como derechos de
puerto).
• IPC. Las colas de mensajes, llamadas a procedimientos remotos,
notificaciones, semáforos y conjuntos de bloqueo.
• Tiempo. Relojes, Temporizadores, y espera.
Al nivel de la trampa, la interfaz a la mayoría de las abstracciones Mach consiste
en mensajes enviados desde y hacia los puertos del núcleo que representan esos
objetos. La interfaz a nivel de la trampa (como mach_msg_overwrite_trap) y
formatos de mensaje se resumieron a sí mismos en el uso normal de la Interfaz
Generador Mach (MIG). MIG se utiliza para compilar las interfaces de
procedimiento para las API basadas en mensajes, en base a las descripciones de
las API.

4.4 Distribución de Trabajos

4.4.1 Tareas e Hilos


Mac Os X define el concepto de hilo tal y como lo hace POSIX, siguiendo
este mismo estándar para su manejo. Un hilo es, por tanto, es un punto de control
de la ejecución de un proceso, que tiene acceso a todos los recursos del proceso
Sistema  Operativo:  Apple  OSX   58  

y que se puede ejecutar en paralelo (si la maquina lo soporta) con otros hilos
(estén o no dentro del mismo proceso).
Un proceso (o tarea, como se le denomina en Mach) se define como un
conjunto de recursos. Estos recursos, como veremos posteriormente, pueden ser
referenciados a través de los puertos, con la excepción del espacio de
direccionamiento. Una tarea debe contener uno o más hilos.
En Mach, una tarea no tiene capacidad de ejecución, sino que son los hilos
que contiene los que realmente se ejecutan basándose en los recursos de la
tarea. Una tarea es, por tanto, una entidad bastante pesada, ya que contiene
todos los recursos que los hilos contenidos van a necesitar. Por el contrario, un
hilo es una entidad sumamente ligera, ya que sólo contiene cierta cantidad de
información relativa al estado de la ejecución, delegando en la tarea todos los
aspectos relativos a los recursos.

4.4.2 Planificación
La planificación en el kernel de Mac OS X esta basada en cuatro listas de
ejecución, cada una de ellas con diferente prioridad. Un hilo puede migrar de un
nivel de prioridad a otro en función de sus requerimientos, dependiendo de la
política en concreto que se utilice en el sistema. En general, es posible manejar
estas prioridades mediante los procedimientos definidos en el estándar de
llamadas POSIX. Los procesos parecen efectuarse simultáneamente

4.4.3 Puertos
En Mach, un puerto (port) es el punto de acceso a un recurso, entendiendo
este como un servicio prestado a una aplicación o hilo. Cada objeto o recurso
puede tener varios tipos de puerto, entre ellos el puerto de nombre (name port) y
el puerto de control (control port). Un hilo que haga una referencia a un puerto de
nombre sólo podrá ver ciertas características del recurso y obtener ciertos
servicios no privilegiados. Sin embargo, un hilo que pueda referenciar el puerto de
control será capaz de manipular completamente este recurso.
Sistema  Operativo:  Apple  OSX   59  

Asociado con los puertos existe el concepto de derechos de puertos (port


rights). Cada hilo posee unos derechos de puertos que le dan acceso a un número
limitado de recursos y a un nivel de manipulación sobre estos. Estos derechos de
puertos se pueden traspasar de unos hilos a otros, siempre y cuando se tengan
los permisos adecuados para ello. El sistema de seguridad de Mach se basa
precisamente en el manejo de los derechos de puertos.

4.4.4 Comunicación Entre Procesos


Al igual que en cualquier sistema operativo moderno, en Mach se definen
algunos métodos de comunicación entre los diferentes procesos que se ejecutan
en el sistema. Los canales de comunicación entre procesos están regidos por
puertos, que tienen unos derechos asociados. Los canales de comunicación que
están definidos en el kernel de Mac OS X son:
• Colas de mensajes.
• Semáforos.
• Notificaciones.
• Cerrojos.
• Llamadas a procedimientos remotos.
La forma de utilizar estos métodos de comunicación viene definida por una
API (Application Programmer Interface), librería de funciones que ofrecen servicios
de creación, control, manejo y destrucción de los elementos IPC comentados.

5.4.4.1 Colas de Mensajes

Las colas de mensajes eran, originalmente, el único canal de comunicación


ínter proceso definido en el kernel Mach. Las colas están definidas de forma que
sólo un proceso tiene privilegios sobre el puerto de lectura, mientras que varios
procesos pueden tener privilegios sobre el puerto de escritura en la cola. Como en
otros sistemas operativos, la comunicación entre procesos se lleva a cabo
mediante escrituras en la cola y posteriores lecturas por parte de otro proceso.
Sistema  Operativo:  Apple  OSX   60  

Cada mensaje puede contener información de diferentes tipos:


• Datos de aplicación generados por el proceso escritor;
• Una copia de la información en un rango determinado de memoria;
• Derechos sobre puertos;
• Atributos específicos del kernel, como la identificación del emisor.
Es destacable que, si bien sólo una tarea (forma en que se denominan los
procesos en Mach) tiene acceso de lectura a una cola de mensajes, cualquier hilo
de ejecución dentro de ella puede estar intentando leer un mensaje. En ese caso,
la implementación hace que sólo un hilo puede leer un determinado hilo.

4.4.4.2 Semáforos
En Mach, los semáforos tienen tres posibles operaciones:
• Wait: Hace que el proceso espere en el semáforo hasta que el contador
sea mayor que cero. Esta operación se suele hacer cuando se va a
entrar, por ejemplo, en una sección crítica.
• Post: Incrementa el contador del programa, haciendo que se desbloquee
algún proceso que estuviese bloqueado en el semáforo.
• Post all: Hace que se desbloqueen todos los procesos que estaban
bloqueados en el semáforo.
Evidentemente, si el semáforo es binario, no existe diferencia práctica entre
la llamada a post y la llamada a post all.

4.4.4.3 Notificaciones
Los objetos de notificación son similares a los semáforos en el sentido de
que soportan las operaciones post y wait. La diferencia radica en que las
notificaciones contienen además un campo de estado. El campo es de longitud y
formato fijos, definidos en la creación del objeto. En cada operación post se
actualiza el contenido del campo de estado. En cada objeto sólo existe un campo
de estado, por lo que éste se sobrescribe en cada operación post. Las
Sistema  Operativo:  Apple  OSX   61  

notificaciones constituyen una forma algo más avanzada de comunicación que los
semáforos, porque permiten el paso de datos adicionales en el campo de estado.

4.4.4.4 Cerrojos
Un cerrojo es un objeto que proporciona acceso exclusivo a una región
crítica, es decir, es esencialmente un semáforo binario. Durante la sección crítica o
transacción -definida como un bloque de operaciones que se deben ejecutar de
forma atómica, el hilo o tarea cierra el cerrojo. Al salir de la transacción, el cerrojo
es abierto de nuevo.

4.4.4.5 Llamadas a Procedimientos Remotos


En Mach existen objetos -llamados objetos RPC (Remote Procedure Calls)-
diseñados para hacer posible y optimizar las llamadas a procedimientos remotos.
En el momento de creación de un objeto RPC, se definen los formatos para los
argumentos. Cuando se hace la llamada (operación send sobre el objeto RPC), se
crea un mensaje en el formato ya definido y se pone en la cola del objeto. Este
mensaje se pasa al servidor. Cuando el servidor retorna de la transacción,
entonces la respuesta se le envía al emisor que hizo la llamada. El kernel Mach
trata de optimizar el proceso haciendo que el servidor se ejecute utilizando los
recursos del cliente. Esta técnica se denomina migración de hilo.
Mecanismos de control
El Mac OS X controla los diferentes procesos de la computadora por medio
de la interpretación de el lenguaje de comandos que le permiten al usuario
comunicarse, además, de las herramientas adecuadas para que pueda realizar
sus tareas informáticas y le evita asumir los complicados procesos necesarios
para llevar a cabo dichas tareas.
En las plataformas de derivados de Unix, el intérprete Tcl/Tk a menudo se
instala de manera predeterminada. Si este no es el caso, normalmente es
necesario instalar los paquetes correspondientes a la distribución o sino utilizar el
código fuente de Tcl (lenguaje de herramientas de comando) y compilarlo para
Sistema  Operativo:  Apple  OSX   62  

luego proceder con su instalación. Por otra parte, la ejecución de un código Tcl se
realiza escribiendo en el intérprete de comandos o consola: tclsh archivo.tcl
Sistema  Operativo:  Apple  OSX   63  

TEMA V. Gestión de Memoria Principal

5.1 Gestión de la Memoria en Mac OS X

Al igual que con la mayoría de los sistemas operativos modernos, Mach


ofrece dirigiéndose a grandes, espacios de direcciones virtuales dispersos. Acceso
Runtime se hace a través de direcciones virtuales que pueden no corresponder a
las ubicaciones en la memoria física en el momento inicial del intento de acceso.
Mach es responsable de tomar una dirección virtual solicitada y asignándole un
lugar correspondiente en la memoria física. Lo hace a través de la demanda
paginación.
Una gama de un espacio de direcciones virtuales se rellena con los datos
cuando un objeto de memoria está asignado en ese rango. Todos los datos en un
espacio de direcciones se proporcionan en última instancia, a través de objetos de
memoria. Mach pide el propietario de un objeto de memoria (un pager) de los
contenidos de una página al establecer que en la memoria física y devuelve los
datos posiblemente modificados al buscapersonas antes de recuperar la página.
OS X incluye dos incorporadas localizadores-la buscapersonas defecto y el
buscapersonas vnode.
El localizador predeterminado maneja la memoria no persistente, conocido
como memoria anónima. Memoria Anónima es inicializada a cero, y sólo existe
durante la vida de una tarea. El localizador vnode mapas de archivos en objetos
de memoria. Mach exporta una interfaz para objetos de memoria para permitir su
contenido a ser aportados por las tareas de modo de usuario. Esta interfaz se
conoce como la interfaz de administración de memoria externa, o EMMI.
La memoria virtual exportaciones subsistema de gestión de memoria
maneja conocido como entradas con nombre o registros de la memoria con
nombre. Como la mayoría de los recursos del núcleo, éstos se indican mediante
los puertos. Tener un mango entrada de memoria llamada permite al propietario
para mapear el objeto de memoria virtual subyacente o para pasar el derecho de
asignar el objeto subyacente a los demás. Asignación de una entrada denominada
Sistema  Operativo:  Apple  OSX   64  

en dos resultados diferentes tareas en una ventana de memoria compartida entre


las dos tareas, proporcionando así un método flexible para el establecimiento de la
memoria compartida.
A partir de OS X v10.1, la EMMI sistema se ha mejorado para admitir
"portless" EMMI. En la tradicional EMMI, dos puertos Mach fueron creados para
cada región de memoria, y del mismo modo dos puertos para cada vnode caché.
Portless EMMI, en su implementación inicial, reemplaza esto con referencias de
memoria directa (básicamente punteros). En una versión futura, los puertos serán
utilizados para la comunicación con los buscapersonas fuera del núcleo, mientras
que el uso de referencias directas para la comunicación con localizadores que
residen en el espacio del núcleo. El resultado neto de estos cambios es que las
primeras versiones de portless EMMI no admiten localizadores ejecutan fuera del
espacio del núcleo. Se espera que este apoye para ser reinstalado en una versión
futura.
Los rangos de direcciones del espacio de memoria virtual también se
pueden ocupar a través de asignación directa (utilizando vm_allocate). El objeto
de la memoria virtual subyacente es anónimo y respaldado por el localizador
predeterminado. Rangos compartidos de un espacio de direcciones también se
pueden establecer a través de la herencia. Cuando se crean nuevas tareas, que
son clonados de un padre. Esta clonación se refiere al espacio de direcciones de
memoria subyacente también. Porciones asignadas de objetos pueden ser
heredadas como una copia, o como compartidos, o nada en absoluto, sobre la
base de atributos asociados con las asignaciones. Mach practica una forma de
retraso copia conocida como copia en escritura para optimizar el rendimiento de
las copias heredadas de creación de la tarea.
En lugar de copiar directamente la gama, una optimización de copia en
escritura se logra mediante el intercambio protegido. Las dos tareas comparten la
memoria a copiar, pero con acceso de sólo lectura. Cuando cualquiera de tarea
intenta modificar una parte de la gama, esa porción se copia en ese momento.
Esta evaluación inútil de copias de la memoria es una optimización importante que
permite simplificaciones en varias áreas, en particular la API de mensajería.
Sistema  Operativo:  Apple  OSX   65  

Otra forma de participación es proporcionada por Mach, a través de la exportación


de regiones con nombre. Una región con nombre es una forma de una entrada
llamada, pero en lugar de ser respaldado por un objeto de memoria virtual, que
está respaldado por un fragmento de mapa virtual. Este fragmento puede contener
asignaciones a numerosos objetos de la memoria virtual. Es incluirlos en un mapa
en otros mapas virtuales, proporcionando una forma de heredar no sólo un grupo
de objetos de memoria virtual, sino también sus relaciones de mapeo existentes.
Esta característica ofrece una optimización significativa en la configuración de
tareas, por ejemplo, al compartir una región compleja del espacio de direcciones
utilizado para bibliotecas compartidas.
La gestión de la memoria en Mac OS X puede ser asombrosa (Aramendi
Inchauspe, 2014), considerando que Apple cataloga el uso de la memoria de la
siguiente forma:
• Libre.
• Sistema.
• Activa.
• Inactiva.
• En uso.

En la siguiente figura se puede apreciar esta catalogación:

Figura 14. Catalogación de la Memoria, tomado de (Aramendi Inchauspe, 2014)

Es muy importante tal y como menciona la página Web de Apple, tener en


cuenta que la gestión de la memoria abarca la memoria denominada como RAM,
la memoria virtual así como los archivos de intercambio.
Sistema  Operativo:  Apple  OSX   66  

5.2 Descripción de los Distintos Estados de Memoria


• Sistema: Cantidad de memoria que se emplea por parte del sistema.
• Libre: Tal como se puede deducir, este tipo de memoria no se está
utilizando.
• Activa: Memoria RAM que ha sido utilizada hace poco.
• Inactiva: Cantidad de memoria que no se está utilizando en el momento
pero que puede volver a estar disponible para la aplicación que la ha
usado. Mac OS X reserva este tipo de memoria a aplicaciones que se
han cerrado. De esta forma si vuelven a abrirse, como tienen memoria
reservada, se abrirán más rápido.
• En uso: Consiste en la cantidad de memoria total que se encuentra en
uso.

5.3 Requerimientos para un Correcto Manejo de Memoria


• Transparencia: la asignación que hace el Sistema Operativo de la
memoria a cada proceso debe ser transparente para el usuario.
• Protección: se debe asegurar que no haya una sobre escritura de la
memoria.
• Segmentos múltiples: los segmentos de un proceso deben aparecer
lógicamente contiguos.
• Código compartido: se debe mantener una sola imagen de cada
proceso.
• Mac OS X gestiona la memoria según las necesidades de los programas
que se tengan abiertos, pudiendo utilizar casi todo el disponible si hace
falta. El sistema deja siempre algo para los programas abiertos pero
asigna sobre la marcha la necesaria al programa que esté trabajando. Al
teclear "top" en el computador se pueden ver todos los procesos en
ejecución, la memoria RAM y uso del procesador que tiene cada uno.
Sistema  Operativo:  Apple  OSX   67  

5.4 Objetivos del Sistema de Gestión de Memoria


Partimos de la base de que no hay sistema operativo perfecto. Cualquier
sistema operativo tiene puntos mejores y peores que otros (Santamaría, 2014). Lo
importante es el equilibrio que consigue para ofrecer el mejor rendimiento posible.
Aquí Apple siempre ha tenido una importante ventaja, al fabricar sus propios
equipos tiene más facilidades para encontrar los fallos, para optimizar el hardware.
Por supuesto no siempre es así y a veces surgen interrogantes en que por qué no
va mucho mejor. Pero en líneas generales, el rendimiento es muy satisfactorio.
La memoria es uno de los principales recursos del computador, la cual debe
administrarse cuidadosamente. Aunque actualmente la mayoría de los sistemas
de cómputo cuentan con una alta capacidad de memoria, de igual manera las
aplicaciones actuales tienen también alta demanda de memoria, lo que sigue
generando escasez de memoria en los sistemas multitarea y/o multiusuario.
La memoria RAM ofrece tiempos de acceso mucho más rápidos que los de
otro tipo de memoria, a excepción de las memorias caché del procesador. Por
tanto, es lógico que se aproveche al máximo toda la RAM instalada. Mac OS X
almacena y retiene todos los datos. No “mata” ningún proceso o aplicación
simplemente para liberar RAM si no hay ninguna aplicación que la necesite. Al no
hacerlo, si ninguna aplicación ha reclamado dicho espacio en RAM, cuando se
vuelve a usar la aplicación que cargo esos datos su acceso será más rápido.

5.4.1 Esquemas de Memoria en Asignación Contigua


Un esquema simple de gestión de memoria consiste en asignar a cada
proceso una zona contigua de memoria para que en ella resida su mapa de
memoria, (donde cada región es una zona contigua que se caracteriza por la
dirección dentro del mapa del proceso donde comienza y por su tamaño, además,
tendrá asociadas una serie de propiedades y características), de los esquemas de
asignación contigua Mac OS X aplica un sistema de asignación dinámica donde
cada aplicación pide memoria al sistema según la va necesitando y la libera
cuando no la necesita, lo que optimiza su aprovechamiento, en un Mac OS se
Sistema  Operativo:  Apple  OSX   68  

asignará una única dirección de memoria por cada proceso que se este
ejecutando.
• Partición estática: La memoria principal se divide en un conjunto de
particiones estáticas, durante la generación del sistema un proceso
se puede cargar en una partición de este tipo. Este tipo de partición
es sencilla de implementar y produce poca sobre carga en el
procesador; no obstante, su empleo es ineficiente debido a la
fragmentación interna de la memoria.
• 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. Aquí no hay fragmentación interna de la memoria, pero se
incrementa el uso del procesador, debido a la compactación.

5.4.2 Técnica de Intercambio


Esta técnica se basa en usar un disco o parte de un disco (dispositivo de
swap) como respaldo de la memoria principal cuando no caben en memoria todos
los procesos activos (ejemplo: puede ser debido a que se ha creado uno nuevo),
se elige un proceso residente y se copia en swap su imagen en memoria. El
criterio de selección puede tener en cuenta aspectos tales como la prioridad del
proceso, el tamaño de su mapa de memoria, el tiempo que lleva ejecutando y
principalmente, su estado. Mediante la Administración de memoria con
Intercambio en Mac Os X, existe “traslado” entre memoria y disco, durante tiempo
de ejecución de un proceso, no necesariamente deben permanecer en memoria y
la cantidad de procesos son superiores a la capacidad de cpu y memoria, esto,
dado que tiene como prioridad dar cabida a la ejecución de mas aplicaciones de
las que pueden residir simultáneamente en la memoria del sistema.
Sistema  Operativo:  Apple  OSX   69  

5.4.3 Memoria Virtual


La técnica de memoria virtual se ocupa de la transferencia de información
entre la memoria principal y la secundaria. La memoria secundaria esta
normalmente soportada en un disco (o partición).la memoria virtual se implementa
sobre un esquema de paginación, a este dispositivo se le denomina dispositivo de
paginación. La memoria virtual permite a Mac OS X usar "virtualmente" más
memoria además de la RAM que tenga utilizando espacio en el disco duro para
complementar la RAM. No obstante, los discos duros son mucho más lentos que
la RAM, por lo que Mac OS X distribuye la información automáticamente entre el
espacio en disco y la RAM para obtener el mejor rendimiento posible.

5.4.4 Paginación
Como su nombre lo indica, la unidad básica de este tipo de esquema es la
página. Consiste en que el sistema operativo divide la memoria en unidades de
tamaño fijo (generalmente potencia de 2, por ejemplo de 1 Kb), llamados marcos.
Los procesos son divididos en páginas de igual tamaño que los marcos. Al
proceso de intercambiar páginas, segmentos o programas completos entre
memoria principal y disco se le conoce como `intercambio' o `swapping'.
`sobrecarga' (overhead), por páginas muy pequeñas. Fragmentación al interior de
una página. La página corresponde con una zona de memoria contigua de un
determinado tamaño. Por motivo de eficiencia en la traducción este tamaño debe
ser potencia de 2 (un tamaño de pagina de 4 KB es un valor bastante típico). El
mapa de memoria de cada proceso se considera dividido en páginas a su vez, la
memoria principal del sistema se considera dividida en zonas del mismo tamaño
que se denominan marcos de páginas. Un marco de página contendrá en un
determinado instante una página de memoria de un proceso. La estructura de
datos que relaciona cada página con el marco donde está almacenada es la tabla
de páginas. Mac OS X se encarga de definir la correspondencia entre páginas y
marcos mediante la tabla de páginas, y el hardware es el encargado de aplicarla.
En Mac OS X hay lo que se conoce como las "Entradas y salidas de paginación"
que se refiere a la cantidad de información que se mueve entre la RAM y el disco
Sistema  Operativo:  Apple  OSX   70  

duro. Este número representa la cantidad de datos acumulados que Mac OS X ha


movido entre la RAM y el espacio en disco. Las salidas de paginación se producen
cuando el Mac tiene que escribir información de la RAM en el disco duro (porque
la RAM ya está llena). Añadir más RAM puede reducir las salidas de paginación.
La gestión de memoria/archivo de paginación es mucho más eficiente en Mac OS
X dado resulta un sistema operativo más liviano que otros.

5.4.5 Híper Paginación


Un proceso esta híper paginado si emplea mas tiempo paginando, es decir,
produciendo fallos de página y cargando las páginas en memoria; que
ejecutándose propiamente tal.

5.5 Gestión de RAM OS X


Conocer la gestión de RAM que hace OS X no es complicado. Por supuesto
hay mucho más de fondo como la asignación de memoria “purgable”,
optimización, etc. pero eso corresponde más a los desarrolladores. Es importante
conocer los aspectos básicos que permitan saber, qué tipo de configuración será
más eficiente para requerimientos.
El uso de las actuales unidades SSD mejora posibles carencias de RAM OS
X en la actualidad ha mejorado la gestión y nuevas características permiten
aprovechar más la RAM ya instalada en nuestro Mac. Un motivo importante para
actualizar a versiones recientes. Por supuesto, se puede optar a una configuración
con más RAM, pero el uso de aplicaciones exigentes (After effects, Photoshop,
Parallels Desktop, VMWare).
Los sistemas de administración de memoria se pueden clasificar en dos
tipos: los que desplazan los procesos de la memoria principal al disco y viceversa
durante la ejecución y los que no.
El Monitor de actividad muestra información detallada del consumo de
RAM, obsérvese la Figura X. Para conseguir ese rendimiento, una de las tareas
más importantes es gestionar la memoria RAM de forma correcta. Para conocer
Sistema  Operativo:  Apple  OSX   71  

más datos sobre el uso de la RAM en OS X es necesario utilizar el Monitor de


actividad. Existen aplicaciones, tales como iStats Menu, que pueden ejecutar
tareas similares; son embargo, ya el propio Mac OS X posee su propia opción del
sistema.

Figura X. Monitor de Actividad (Santamaría, 2014)

El Monitor de actividad nos aporta toda la información necesaria para saber qué
consume la nuestra RAM:
• Memoria física: La cantidad de RAM instalada.
• Memoria usada: La cantidad de RAM en uso y no disponible
inmediatamente para otras aplicaciones.
• Memoria virtual: La cantidad de asignación de memoria que han solicitado
las aplicaciones. No es el consumo real de recursos de RAM y el tamaño lo
determina el autor de la aplicación.
• Espacio de intercambio usado: El espacio de tu unidad que sirve para
intercambiar con la RAM archivos sin usar.
• Memoria de aplicaciones: La cantidad de memoria usada por las
aplicaciones.
Sistema  Operativo:  Apple  OSX   72  

• Memoria física: Memoria que no se puede guardar en la memoria caché del


disco, por lo que debe permanecer en la RAM. Esta memoria no la pueden
utilizar otras aplicaciones.
• Comprimida: La cantidad de memoria RAM comprimida, que deja libres
más recursos de RAM para otras aplicaciones.
• Caché de archivos: El espacio en la RAM marcado como disponible para
las aplicaciones y que contiene los archivos usados recientemente.

Si se considera una aplicación X que ha usado 1GB de RAM. La cerramos


o dejamos en segundo plano mientras usamos la aplicación Y. Como Y no
requiere ese espacio en RAM ocupado con X nosotros, se puede usar con
normalidad. Ahora, si por algún motivo se necesita regresar a X y si se hubiese
liberados los datos en RAM se tendrían que volver a cargar pero como no fue así,
el acceso es mucho más rápido.

5.5.1 Memoria Comprimida


La compresión de memoria permite aprovechar más la RAM disponible en
el equipo. El segundo cambio importante que llegó con OS X Mavericks es la
compresión de memoria. Esta característica permite retrasar el uso de la memoria
virtual.
Hasta el momento, la gestión de RAM era algo muy estándar. Las
aplicaciones solicitaban memoria al sistema y este la otorgaba en función de las
posibilidades y necesidades. Una vez finalizado el uso de la aplicación la memoria
era devuelta al sistema para futuras peticiones. Ahora llega la compresión de
memoria, una característica que no es invento de Apple pero sí ayuda al
rendimiento del Mac. Obsérvese la Figura X.
Sistema  Operativo:  Apple  OSX   73  

Figura 15. Memoria Comprimida (Santamaría, 2014)

La compresión de memoria lo que hace es comprimir los datos ocupados


pero que en el momento actual no están siendo utilizados. Así, por ejemplo,
podemos tener datos de las pestañas abiertas en Safari o Chrome comprimidos
porque en estos momentos no son necesarios. De modo que ganamos memoria
para su uso por otras aplicaciones.
Con esa compresión no sólo “ganamos” RAM sino que ahorramos tiempo.
Si en lugar de cargar los datos desde la RAM tuviésemos que hacerlo desde el
espacio de intercambio (Swap) el tiempo de acceso sería mayor.
El proceso de compresión no es algo que se lleve a cabo en todo momento.
El sistema lo realiza cuando calcula que la memoria RAM disponible no es
suficiente. Si considera que hay una cantidad de RAM más que suficiente no hace
nada. Por eso, hay momentos en los que pocas aplicaciones ocupan casi toda la
RAM.
La compresión de memoria que hace más uso de la CPU para calcular qué
datos comprime y en realizar la compresión. Pero teniendo en cuenta las CPU
usadas en la actualidad y su rendimiento, el uso no afecta de forma dramática.
Sólo en algunos procesadores más antiguos se podría a llegar a notar bajo
determinados escenarios.
Sistema  Operativo:  Apple  OSX   74  

TEMA VI. Gestión de Almacenamiento en OSX

6.1 Hierarchical File System Plus (HFS Plus)

Mac OS X proporciona soporte "out-of-the-box" para varios diferentes


sistemas de archivos. Estos incluyen el formato Mac OS (HFS +), el formato BSD
sistema de archivos estándar (UFS), NFS (un estándar de la industria para
sistemas de archivos de red), ISO 9660 (utilizado para CD-ROM), MS-DOS, SMB
(estándar de intercambio de archivos de Windows), AFP (Mac OS compartir
archivos), y UDF.
También se incluye soporte para leer el formato estándar de Mac OS
mayores (HFS) Tipo de sistema de archivos; sin embargo, no dar formato a los
nuevos volúmenes que utilizan el formato estándar de Mac OS. OS X no puede
arrancar desde estos sistemas de archivos, ni el formato estándar de Mac OS
proporcionar parte de la información requerida por OS X.
El formato Mac OS ofrece muchas de las mismas características que el
formato estándar de Mac OS, pero añade soporte adicional para los servicios
modernos, como los permisos de archivos, nombres de archivos largos, Unicode,
los dos enlaces duros y simbólicos y tamaños de disco más grandes.
UFS proporciona sensibilidad y otras características que se pueden esperar por
los comandos BSD. Por el contrario, el formato Mac OS Extended no distingue
entre mayúsculas y minúsculas
Mac OS X en la actualidad se pueda iniciar "raíz" de un HFS +, UFS, ISO,
NFS o volumen UDF. Es decir, OS X puede arrancar desde y montar un volumen
de cualquiera de estos tipos y lo utilizan como el principal o raíz, sistema de
archivos.
Otros sistemas de archivos también se pueden montar, permitiendo a los
usuarios acceder a los formatos y características de volumen adicionales.
NFS proporciona acceso a los servidores de red como si estuvieran montados
localmente sistemas de archivos. Imita entorno de aplicación Carbon muchos
comportamientos esperados de formato Mac OS Plus en la parte superior de
Sistema  Operativo:  Apple  OSX   75  

ambos UFS y NFS. Estos incluyen características tales como Buscador de


Información, el acceso a archivos de identificación, y alias.
VFS es un sistema de archivos para el sistema operativo Mac OS X. Tiene como
objeto sustituir al HFS original y pasar a ser el sistema de archivos primario para
este sistema operativo. Durante su fase de desarrollo, fue conocido con el nombre
de Sequoia.
Los objetivos básicos que se buscaron en el diseño de HFS Plus fueron:
• Eficiencia en la utilización del disco.
• Utilización de nombres internacionales, utilizando el juego de
caracteres Unicote.
• Posibilidad de nombres largos, de hasta 255 caracteres UTF-16.
• Posibilidad de almacenar datos extra junto con cada fichero
(metadata) de una forma flexible y estándar.
• Manejo de discos grandes, pudiendo direccionar 232 bloques en
cada volumen (en comparación con 216 en HFS).
• Posibilidad de arranque en sistemas no basados en Mac OS.
El explorador de archivos es una pieza esencial ya que nos permite acceder
a cualquier parte del disco duro a través del sistema de archivos comúnmente
estructurado de carpetas.
El sistema operativo Mac OS X ejecuta una aplicación llamada Finder que
es la responsable de la gestión total de los archivos de usuario y genera un uso
más eficiente del sistema de ficheros, discos, red y el lanzamiento de otras
aplicaciones.
En Mac OS X el Finder incorpora un cuadro de “búsqueda rápida”
localizado en la esquina superior derecha, una barra de ruta o dirección y una
barra lateral desde donde se puede acceder rápidamente a lugares comunes del
equipo.
Bloques de arranque: Ocupan los sectores 0 y 1, y son parte fundamental
para el arranque del sistema.
Sistema  Operativo:  Apple  OSX   76  

Cabecera del volumen: Guarda en el sector 2 ciertos datos generales


sobre el volumen, como el numero de bloques que contiene, la fecha de creación
o la localización del resto de partes del volumen.
Fichero de reservas: Lleva el control de los bloques libres y asignados.
Esta parte tiene un tamaño variable, y no tiene por que estar almacenada de forma
contigua en el disco. El control se lleva a través de un mapa de bits de bloques.
Fichero de desborde de extensión: Contiene información sobre los
bloques que tiene cada fichero en el volumen. Un fichero solo aparecerá en esta
sección si ocupa más de 8 bloques, ya que en el fichero de reservas se pueden
direccionar hasta 8 bloques de cada fichero. El resto de bloques de cada fichero
se debe direccionar en esta sección. Los bloques erróneos también se guardan en
esta sección.
Fichero de catálogo: Contiene información sobre los ficheros y directorios
que contiene el volumen completo.
Fichero de atributos: Contiene información sobre los atributos (por
ejemplo, permisos de lectura y escritura) de cada elemento del sistema de
archivos. Estos elementos pueden ser tanto ficheros como directorios.
Fichero de arranque: Similar a los bloques de arranque, pero diseñado
especialmente para aquellos sistemas operativos que no ofrezcan soporte nativo
para HFS+.
Cabecera alternativa del volumen: Almacena en el penúltimo sector del
disco la misma información que la cabecera del volumen. Esta sección esta
diseñada para que sea utilizada por las utilidades de disco de Apple Inc.
Ultimo sector: Está reservado para uso de la empresa Apple Inc., que lo utiliza
durante el proceso de fabricación del ordenador.

6.2 Estructura de Archivos en Mac OS X


HFS+ se utiliza en el último MAC OS X sin límite en el tamaño de archivo.
La organización de archivos suele ser por asignación jerárquica. En forma de árbol
invertido. Un disco duro puede estar dividido en particiones. Como mínimo debe
tener una partición y esta deberá estar activa.
Sistema  Operativo:  Apple  OSX   77  

6.2.1 Particiones
• Primaria. Puede haber un máximo de cuatro particiones primarias en cada
disco duro. o Cada una de ellas pueden contener sistema operativo propio.
o Ha de haber una partición primaria activa que será la que contenga el
sistema operativo que arranque en ese momento el ordenador
• Extendida. Es un tipo de partición que permite tener indefinidas unidades
lógicas. Se creó para saltarse el límite de las cuatro particiones primarias.
• Lógica. Partición que sólo puede existir en las particiones extendida. No
pueden contener un sistema operativo si lo contienen se debe instalar un
gestor de arranque para que el ordenador cargue ese sistema operativo.
Sólo habrá una partición extendida. Dentro de ella podrá haber indefinidas
particiones lógicas.
En Mac OS X casi todos los ficheros que contienen código ejecutable, como
las aplicaciones, bibliotecas y módulos del núcleo se realizan en forma de ficheros
en formato macho. El formato macho no es un programa desarrollado
originalmente por Apple. Fue desarrollado por Open Source Foundation para su
sistema operativo OSF/1 y luego adaptado por Apple para la arquitectura x86 en el
marco del proyecto OpenStep.
El formato de ficheros macho y la especificación ABI (Application Binary
Interface) describe la manera en que el núcleo debe cargar y lanzar el fichero
ejecutable en Mac Os.
A grandes rasgos, macho se puede dividir en tres partes: título,
instrucciones de carga y segmentos, que pueden constar de varias secciones. El
título y las instrucciones de carga describen las principales características del
fichero, mientras que el segmento de datos contiene un conjunto de bytes a los
cuales se remiten las instrucciones de carga.
Sistema  Operativo:  Apple  OSX   78  

6.2.2 Título
Los primeros cuatro bytes del título determinan el así llamado “magic
number”, que identifica el fichero como de 32 o 64 bytes. Además, permiten al
procesador determinar el orden de los bytes. El título define la arquitectura para la
cual se ha compilado el fichero. Esto permite al núcleo garantizar el lanzamiento
de los ficheros sólo en aquella plataforma para la que fueron compilados. A veces,
el fichero binario puede contener código para más de una arquitectura. Este
formato se conoce como Universal Binaries. En este caso el fichero empieza por
un título fat.

6.2.3 Instrucciones de Carga


El campo de instrucciones de carga contiene una lista de instrucciones que
comunican al núcleo de qué manera debe cargar los diferentes segmentos del
fichero. Estas instrucciones describen cómo cada segmento está alineado en la
memoria, qué derechos de acceso tiene y dónde está ubicado en la memoria.

6.2.4 Segmentos y Secciones


El fichero ejecutable macho suele tener 5 segmentos:
• PAGEZERO. Ubicado en la dirección virtual cero, no tiene ninguna
protección. Este segmento no tiene ningún campo en el fichero en el disco.
• TEXT. Contiene datos con acceso sólo de lectura y ejecución.
• DATA. Contiene datos con acceso de escritura. Esta sección está marcada
como copy-on-write.
• OBJC. Contiene datos usados por el medio de ejecución Ojective-C.
• LINKEDIT. Contiene datos que se usan para establecer relaciones
dinámicas.
Los segmentos TEXT y DATA contienen cero o más secciones. Cada
sección contiene un determinado tipo de datos, por ejemplo: el código usado, las
constantes, líneas de texto, etc. Así, el código ejecutable y no ejecutable se
guardan en un segmento separado.
Sistema  Operativo:  Apple  OSX   79  

6.3 VFS Transición

Al utilizar el OS X Sistema de archivos virtual (VFS) extensiones de


capacidad y la escritura del kernel, se puede añadir soporte para otros sistemas
de archivos. Ejemplos de sistemas de archivos que no son compatibles
actualmente en OS X, pero puede que desee agregar al sistema incluyen la
Andrew sistema de archivos (AFS) y el sistema de archivos Reiser (ReiserFS).
Los detalles del subsistema de VFS en OS X están en el proceso de cambio
con el fin de hacer que la interfaz VFS sostenible.

TEMA VII.- Gestión de Entrada y Salida (E/S)

La administración y control de la entrada y salida es parte esencial de todo


sistema operativo, y siendo apple osx uno basado en Unix, cuenta con todas las
ventajas relacionadas que da su avanzado manejo de entrada y salida, esto es,
que las entradas y salidas pueden ser redireccionadas o redirigidas hacia
archivos, procesos y dispositivos.

A continuación se muestra, la forma en que Mac OSX marca distancia de


Unix y del resto de los sistemas operativos en cuanto al manejo E/S con la
implementación del I/O Kit.

7.1. El I/O Kit

Como ya se dijo un paquete importante de Darwin es el núcleo de Mac OS


X, XNU. Dentro de Darwin encontramos el paquete XNU con el código fuente
tanto para x86 como para PowerPC y ARM.
Sistema  Operativo:  Apple  OSX   80  

Bien, ya conocemos que las principales partes que componen XNU son
básicamente dos: Mach 3.0, un microkernel desarrollado en la Universidad de
Carnegie Mellon, y el núcleo BSD 4.4 (Berkeley Software Distribution) de
FreeBSD.

XNU, entonces es conocido que consta de seis componentes principales:


Mach El "núcleo del núcleo" XNU. Realiza las operaciones críticas de un
microkernel, como son la gestión de procesador, la gestión de memoria, la gestión
de procesos y hilos (protección de memoria, scheduling), soporte para el reloj real-
time (p.e. usado por las aplicaciones multimedia) y el soporte para depuración del
kernel.
Aunque el microkernel Mach 3.0 fue el núcleo en el que se basaron los
ingenieros de Apple, XNU no es en si un microkernel puro, ya que su espacio de
memoria está compartido con una parte de BSD y con las Kernel Extensions.

BSD es una capa por encima de Mach que permite a los programadores
usar las conocidas llamadas al sistema POSIX de los sistemas UNIX. Estas
funciones nos permiten entre otras cosas la gestión de procesos por ID, dar
permisos a estos procesos, gestión de señales, o el uso de sockets BSD. La
principal ventaja que aporta BSD es que permite migrar fácilmente aplicaciones
UNIX a Mac OS X.

Kernel Extensions (también llamados kexts) Son bundles que extienden la


funcionalidad del núcleo de Mac OS X y que se pueden cargar y descargar
dinámicamente. Dentro del bundle encontramos el kernel módule (también
llamado kmod) que es una imagen binaria Mach que se instala en el kernel.

Basándonos en Apple Inc. (2012). I/O Kit Fundamentals, I/O Kit o Paquete
de Entrada/Salida, proporciona un framework C++ para el desarrollo de drivers de
dispositivos mediante kexts. En concreto, usa un subconjunto del lenguaje C++
llamado Embedded C++. Un I/O Kit driver es una kext que, en vez de estar
Sistema  Operativo:  Apple  OSX   81  

programada en C, está programada en Embeded C++. El I/O Kit está formado por
tres componentes principales:

Families. Define una colección de abstracciones software comunes a todos los


dispositivos de una categoría. Apple proporciona familias para protocolos como
USB, SCSI y FireWire, Thunderbolt, así como para dispositivos de
almacenamiento y frame buffers.

Nubs. Es un objeto que representa un dispositivo o servicio lógico (p.e. un bus, un


disco, una partición de disco o el teclado).

Drivers. Es un objeto que se encarga de gestionar una determinada pieza


hardware, implementando las operaciones de E/S para ese dispositivo. Mac OS X
ya proporciona una colección de drivers que gestionan los dispositivos más
comunes, como puedan ser discos duros o teclados. Si un nuevo dispositivo
cumple con un estándar industrial, pero tiene más funcionalidad, entonces
simplemente se tendría que crear una subclase que maneje esas características
adicionales.

TEMA VIII.- Consideraciones sobre seguridad y protección ofrecidas


por Apple OSX
La seguridad es un aspecto importante de todo sistema operativo de uso
domestico y empresarial, y en una era donde todos estamos interconectados y
cada vez mas servicios y aplicaciones se ofrecen a través de internet, contar con
un sistema operativo a prueba de ataques informáticos es fundamental y ha
potenciado en los últimos años que Apple dedique horas de ingeniería en este
sentido.
Sistema  Operativo:  Apple  OSX   82  

8.1 Seguridad física en el hardware

Como ya se indicó, Apple mantiene en desarrollo, tanto su sistema


operativo como el hardware que lo acompañará, teniendo el control de fallos post
venta y de solución de errores en un ambiente conocido, desde el tipo de teclado
que usa un modelo en particular, hasta el tipo de altavoces que tendrá en sus
manos el usuario final. Es precisamente en este sentido donde existe el problema
de seguridad de hardware en Mac. La homogeneidad en sus líneas de equipos,
así como, la necesidad de mantener un catalogo de solución de problemas
controlado ha generado que ninguno de sus modelos incluya un lector de huella
dactilar o sistemas biométricos, como si existe en una gran cantidad de
proveedores de PCs compatibles con Microsoft Windows y Linux. Sin embargo
como cualquier sistema Unix Like, la seguridad física nunca ha sido el fuerte en
ninguno de ellos, y centran sus esfuerzos en la seguridad de tipo lógica embebida
en el sistema operativo, cosa que con los años ha venido mejorando
sustancialmente en Mac OSX.

8.3 Seguridad del sistema

Es conocido que Mac OSX en comparación con otros sistemas operativos está
entre los menos atacados y menos susceptibles a virus informáticos, esto puede
deberse fundamentalmente a que aun no llega a una cuota de mercado como para
impactar estadísticamente, sin embargo esto no significa que no sea vulnerable. A
continuación se enumeran las características principales que hacen de Mac OSX
un sistema operativo cada vez mas seguro y los esfuerzos que ha hecho la
compañía en mejorar su condición de vulnerabilidad.
Sistema  Operativo:  Apple  OSX   83  

• Las actualizaciones de software dejan con la última palabra en


seguridad al usuario.

Cuando las nuevas actualizaciones se encuentran disponibles, OS X envía


al usuario una notificación. Con sólo un clic se puede aceptar las
actualizaciones y descargarlas de forma automática en el Mac. OS X busca
nuevas actualizaciones todos los días, para que siempre se esté protegido por
la versión más reciente y segura.

• Gatekeeper, para descargar aplicaciones de forma segura.

Con Gatekeeper se puede descargar aplicaciones de forma más segura, ya


que te protege contra la instalación accidental de software malicioso en el Mac.
Y sugiere al usuario final que el lugar más seguro donde descargar
aplicaciones para el Mac es la Mac Aplicación Store (Repositorio centralizado
de aplicaciones Apple para OSX). Apple revisa cada aplicacion antes de ser
aceptada por la tienda, y si hay un problema con una aplicación, la elimina de
inmediato. Cuando se descarga software desde otro lugar de Internet,
Gatekeeper también mantiene al mac seguro. Los desarrolladores pueden
obtener un ID específico para desarrolladores de Apple y usarlo para firmar
digitalmente sus aplicaciones. A través de este ID de desarrollador,
Gatekeeper puede bloquear aplicaciones creadas por desarrolladores de
malware y verificar que las aplicaciones no hayan sido alteradas. Si una
aplicación fue creada por un desarrollador desconocido, es decir, uno que no
tenga un ID de desarrollador, Gatekeeper puede proteger tu Mac al bloquear la
instalación de la aplicación.

También Gatekeeper brinda más control sobre lo que el usuario instala.


Gatekeeper te brinda tres opciones de seguridad. Se puede descargar e
instalar aplicaciones desde cualquier sitio de la web, elegir la opción segura y
descargar e instalar aplicaciones sólo desde la Mac Aplicación Store, o usar la
Sistema  Operativo:  Apple  OSX   84  

opción predefinida, que le permite al usuario descargar aplicaciones tanto


desde la Mac Aplicación Store como aquellas firmadas con un ID de
desarrollador. Si una aplicación no está firmada, Gatekeeper bloquea la
instalación de la aplicación y advierte que no proviene de un desarrollador
identificado. Si el usuario sabe que la aplicación es segura, éste puede anular
Gatekeeper.

• FileVault 2 encripta los datos del usuario.

Con FileVault 2 Apple ofrece al usuario la garantía de tener los datos


seguros y a salvo, incluso si el Mac cae en otras manos. FileVault 2 encripta
todo el disco duro de el Mac, protegiendo los datos del usuario con
encriptación XTS-AES 128. También permite al usuario encriptar cualquier
disco extraíble, lo que ayuda a proteger los respaldos (como por ejemplo la
solución Time Machine) o los discos externos con facilidad. Tambien permite
que si el usuario quiere vender o regalar el Mac, el borrado instantáneo elimina
las claves de encriptación de el Mac, haciendo que los datos sean
completamente inaccesibles, y luego continúa con el borrado de todos los
datos del disco.
• Los controles de privacidad protegen la privacidad del usuario.

Las Preferencias del sistema incluyen controles de privacidad para que se


pueda decidir si se quiere compartir los datos de localización y diagnóstico del
Mac. Además, las Preferencias de Safari (Navegador por defecto en OSX)
incluyen un panel de privacidad que le permite al usuario limitar o bloquear
cookies, e incluso el acceso web a los servicios de localización.

• Llavero de iCloud almacena las contraseñas del usuario.

Una vez que se tiene una contraseña segura el llavero de iCloud la


recordará para que no se tenga que hacerlo cada vez. El llavero de iCloud
Sistema  Operativo:  Apple  OSX   85  

almacena los nombres de usuario y contraseñas, y los sincroniza entre los


dispositivos que se elija: Mac, iPhone, iPad e iPod touch. Cuando se visita un
sitio, el llavero de iCloud completará la información de inicio para que se pueda
acceder a las cuentas online del usuario. También puede autorellenar la
información de la tarjeta de crédito para las compras por Internet. La
información siempre estará protegida gracias a la robusta encriptación AES de
256 bits.

• Zona protegida bloquea el código malicioso.

La aplicación Zona protegida en OS X ayuda a asegurar que las


aplicaciones sólo hagan lo que deben hacer. Además, las aísla de los
componentes críticos del sistema del Mac, los datos de usuario y sus otras
aplicaciones. Incluso si una aplicación se ve comprometida por un software
malicioso, Zona protegida la bloquea automáticamente para mantener a salvo
la computadora y su información. OS X brinda una protección aún mejor en
Safari al aislar el visor integrado de PDF y los módulos como Adobe Flash
Player, Silverlight, QuickTime y Oracle Java. Además, OS X aísla aplicaciones
como la Mac App Store, Mensajes, Calendario, Contactos, Diccionario,
Catálogo tipográfico, Photo Booth, Vista rápida, Notas, Recordatorios, Game
Center, Mail y FaceTime.

• Runtime. Protección en el núcleo mismo.

Las protecciones en tiempo de ejecución en OS X funcionan desde el


núcleo de la Mac para mantener a todo el sistema seguro. La funcionalidad XD
(execute disable) está integrada en el procesador y crea una barrera entre la
memoria utilizada por los datos y la memoria empleada para ejecutar
instrucciones. Esto protege a la Mac contra cualquier malware que intente
engañarla tratando a los datos como si fuera un programa. La funcionalidad
ASLR (Address Space Layout Randomization) cambia las ubicaciones de la
Sistema  Operativo:  Apple  OSX   86  

memoria donde se almacenan diferentes partes de una aplicación. Así, a un


agresor le resultará más difícil encontrar y reordenar las partes de una
aplicación para lograr que hagan algo que no deberían. OS X integra a la
funcionalidad ASLR en la memoria utilizada por el kernel en el corazón del
sistema operativo, para que las mismas defensas funcionen en todos los
niveles del Mac.

• Antiphishing. Protección contra sitios webs fraudulentos.

Phishing es un tipo de ataque online en el cual los delincuentes intentan


adquirir información confidencial, como nombres de usuarios, contraseñas y
detalles de tarjetas de crédito, creando sitios web falsos que parecen de
empresas reales, como el banco o red social. La tecnología antiphishing de
Safari puede proteger al usuario de estos engaños al detectar estos sitios web
fraudulentos. Si se intenta visitar un sitio sospechoso, Safari deshabilita la
página y muestra una alerta que te advierte sobre el posible fraude.

• El Mac siempre está alerta.

Por muy inocentes que parezcan, los archivos que se descargan de Internet
pueden contener software malicioso encubierto. Por eso, los archivos que se
descargan con Safari, Mail y Mensajes (Todas aplicaciones desarrolladas por
Apple) son analizados para determinar si contienen aplicaciones. Si es así, OS
X avisará la primera vez que se abren para que el usuario decida si quieres
abrir la aplicación o cancelar el intento. Si el archivo contiene software
identificado como malicioso, OS X ofrece la posibilidad de moverlo a
la Papelera.

• OS X e iCloud pueden ayudar a encontrar un Mac si se pierde.


Sistema  Operativo:  Apple  OSX   87  

OS X e iCloud pueden ayudar al usuario a mantener protegida el Mac,


incluso cuando se pierda. Permite al usuario Ingresar en un portal (iCloud.com)
desde otra computadora o usar la aplicación Buscar mi iPhone en un iPhone,
iPad o iPod touch para localizar el Mac perdido en un mapa. Si el Mac no está
conectada a Internet cuando se trate de encontrar, se podrá recibir un email
en cuanto se conecte a una red Wi-Fi. También se puede mostrar un mensaje
en la pantalla del Mac, para que alguien sepa cómo devolverla. Además, hasta
que el Mac vuelva a estar en las manos del usuario, se puede configurar un
bloqueo por contraseña de forma remota, o incluso iniciar un borrado remoto
para eliminar los datos personales, y restaurar el Mac a sus ajustes de fábrica.

8.4 Estrategias de seguridad

Más maneras de mantener seguro un Mac.

Aunque ningún sistema puede ser 100 por ciento inmune a todas las
amenazas, OS X permite hacer más para proteger la información. Se puede
encontrar la mayoría de estas funcionalidades de seguridad adicionales en
el Panel de seguridad y privacidad de las Preferencias del sistema. Estas
son sólo algunas de las cosas que se pueden hacer:

• Activa firewall para prevenir que otras máquinas accedan a los servicios del
Mac.
• Controla el acceso al Mac bloqueando la pantalla después de un período de
inactividad.
• Configura el intercambio seguro de archivos.
• Elimina archivos confidenciales viejos con el comando Vaciar papelera de
forma segura.
• Usar el Asistente de contraseñas para crear contraseñas más fuertes para
utilidades locales, como Usuarios y grupos.
Sistema  Operativo:  Apple  OSX   88  

• Asegurarse de que solamente se esté ejecutando servicios para compartir


lo que realmente se necesita.

TEMA IX Tendencias Actuales

9.1 Tendencias “free” u “Open” de OSX y de Apple en general.

Apple fue una de las primeras compañías en adoptar de forma notoria el


desarrollo de código abierto como parte de su estrategia de software (no confundir
con software libre), siendo posiblemente WebKit su proyecto más conocido y de
mayor repercusión tras lograr una importante hegemonía en el panorama actual al
convertirse en el motor de renderizado de navegadores web como Safari y Google
Chrome entre otros.

Mac OS X no es una excepción y algunos de los principales componentes


del sistema operativo de la manzana está disponibles mediante diferentes tipos de
licencia de código abierto como GPL, BSD, MIT o APSL (Apple Public Source
License) permitiendo a desarrolladores y estudiantes acceder a su código fuente
para aprender de él, enviar sugerencias o realizar modificaciones.

Open Source o de código abierto, como se le conoce en Venezuela, es un


método de desarrollo de software que se basa en un proceso transparente, la
posibilidad de revisión del código colectiva por parte de todos los interesados.

Entre los requisitos, está, la disponibilidad del código para que pueda ser
estudiado, modificado y redistribuido por cualquier parte interesada (como es el
caso en el marco del movimiento del Software Libre), el Open Source busca
ofrecer mayor calidad y flexibilidad, menor costo, y un menor riesgo de
dependencia del proveedor o desarrollador original.
Sistema  Operativo:  Apple  OSX   89  

Apple, en su web oficial (www.apple.com) en sus iniciativas de código


abierto, se describe a sí misma como un miembro del grupo de grandes empresas
de informática que hacen que el desarrollo de código abierto en una parte
importante de su estrategia de software, así como los informes que sigue
aplicando y una cantidad significativa de software disponible en este modelo.

Darwin se basa en gran medida en código derivados u obtenidos de


NeXTSTEP y FreeBSD proporciona el núcleo de componentes en los que se
basan las actuales plataformas de Apple.

Los detalles sobre la arquitectura y el funcionamiento de Darwin - kernel,


controladores, sistemas de archivos, servicios de red, componentes de BSD, X11,
gestión de procesos, gestión de memoria, APIs, etc. - Se puede encontrar en este
documento de Apple para los desarrolladores interesados en Mac OS X, pero la
clave de nuestro enfoque hoy está en otra dirección: el código fuente de Darwin,
que contiene muchos de los elementos más centrales de la empresa en virtud de
una variedad de licencias libres: GPL, BSD, Apache, MIT y otros.

Apple no solo ha beneficiado a una serie de proyectos de código abierto,


sino que también contribuye a ellos. Un ejemplo es el de FreeBSD, que muchos
componentes están presentes en Darwin (y OSX e iOS): mejoras y nuevos
componentes desarrollados por Apple a menudo incluidas en su código.

Un ejemplo reciente es el de Grand Central Dispatch (GCD), API para la


ejecución de código concurrente que tiene un número de ventajas sobre el modelo
tradicional basado en hilos. Introducido desde Mac OS X 10.6 (Snow Leopard).

Hay muchos ejemplos de otros proyectos de código abierto populares en


diversas plataformas, pero se mantienen o financiados por Apple (por sus propios
intereses, por supuesto).
Sistema  Operativo:  Apple  OSX   90  

CUPS: probablemente el sistema de impresión más popular entre las


distribuciones de Linux, CUPS es un software de código abierto mantenido
directamente por Apple, que utiliza desde 2002 y adquirió los derechos para su
código en 2007 (cuando ya era muy popular en el segmento ), quedando libre
(GPL / LGPL) para los usuarios de otros sistemas y un componente clave de
OpenPrinting, así como la formación de la base del sistema de impresión de los
productos de Apple, de forma natural.

WebKit: El motor del navegador HTML Safari, OS X y iOS, también está


presente en el navegador Chrome, navegadores BlackBerry y Android, el Plasma
de KDE, el WebOS de HP y varios otros proyectos . Es un proyecto de código
abierto mantenido por Apple y originalmente derivado del componente KHTML
(KDE).

LLVM: este conjunto de herramientas de código abierto de desarrollo (el


compilador Clang, enlazador, depurador y más) entró en la academia, pero desde
2005 está patrocinado por Apple, que incluye como parte de la serie oficial de
herramientas de desarrollo de su línea de productos. Desde mediados de 2010 la
Clang ahora una característica de FreeBSD (que ahora puede ser completamente
compilado con él), y cuando este compilador, todavía en desarrollo, ha llegado a
una etapa en la que es capaz de construir una versión de trabajo del kernel de
Linux, y una máquina virtual Java, ciertamente tareas no triviales y habla de su
gran poder.

Otro ejemplo ilustrativo es el launchd, que desde 2005 es el sucesor de Mac


OS X, varios componentes históricos Unix: init, inetd, atd y crond, entre otros.
Debido a su robustez, entre otras ventajas.
Sistema  Operativo:  Apple  OSX   91  

Apple tiene una larga lista de proyectos de código abierto que se adopten y
distribuidos por él.

Esta lista de proyectos de código abierto en Apple es larga, y su preámbulo


es especialmente interesante para presentar un caso fuerte para la adopción de
código abierto, "Apple cree que el uso de la metodología de código abierto hace
que Mac OS X un sistema operativo más robusto y seguro debido a que sus
componentes centrales fueron sometidos a revisión por situaciones extenuantes
de prueba durante décadas. Cualquier problema encontrado con este software
puede ser inmediatamente identificado y tratado por Apple y la comunidad Open
Source".

La lista de proyectos de código abierto incluidos en OS X y iOS también es


bastante variada: tiene los componentes de BSD, GNU, proyectos independientes
y más. Algunos ejemplos ilustrativos:

Apache, Samba, Tomcat


Bsdmake, gnumake, autoconf, gcc
Bzip2, gzip, zip
Curl, netcat
OpenSSH, OpenSSL
Emacs, vim, nano
SQLite, Berkeley DB
Perl, PHP, Python, Bash, AWK, Tcl

9.2 Comparción de OSX, Windows y Linux


Sistema  Operativo:  Apple  OSX   92  

Windows

Con casi el 90% de la cuota de mercado de sistemas operativos, no se puede


perder de Windows. Está en edificios comerciales, instalaciones industriales, así
como los equipos domésticos.

De Windows, de haber sido introducido en 1985, es una pieza muy madura y


completa del software. Sin embargo, aun tiene sus defectos.

Pros:

Compatibilidad: Casi todas las aplicaciones, conductor o juego funcionará en


Windows.
Apoyo técnico: Tener tantos usuarios, siempre se puede encontrar a alguien (ya
sea en línea o fuera de línea) que le puede ayudar con Windows.
Enorme cantidad de función: Cuando llegas a conocer bien en Windows, te
darás cuenta de que hay tantas funciones que puede hacer casi cualquier cosa
con bastante facilidad.

Contras:

Virus: Es posible que tenga que comprar un programa antivirus, aunque existen
los libres.
Lento: Windows, especialmente Vista y 7, requiere una gran cantidad de recursos
de la computadora (memoria, procesador, espacio en disco), y por lo tanto,
funciona más lento.
Precio: Cuesta fácilmente más de cien dólares.
Sistema  Operativo:  Apple  OSX   93  

Apple OSX

Macintosh OS (Ahora OSX) de Apple es aún más antigua que Windows. Es el


primer sistema operativo basado en gráfica que jamás existió, siendo liberado un
año antes de su contraparte de Microsoft.

Pros:

Virus: En Apple OSX no se conseguirá casi ningún virus. Esto se debe


principalmente a la cuota de mercado superiores de Windows.

Fiabilidad: Apple OSX sólo se ejecuta en los computadores de Apple, por lo que
son menos propensos a hardware y software de tener problemas entre si.

Looks and Feel: Siendo realistas, la mayoría de las veces, Mac sencillamente se
ve mejor que Windows.

Contras:

Caro: Aunque ahora el SO es gratuito deberas tener una mac y eso cuesta aún
más que Windows.

Sólo disponible en los ordenadores de Apple (Aunque hay tendencias hackintosh):


Si ya tiene una computadora, no puede instalar MAC en él a menos que sea un
Apple.

Compatibilidad: Sólo unos pocos programas se pueden ejecutar en Mac, y casi


no hay juegos.
Sistema  Operativo:  Apple  OSX   94  

Linux

Linux es la respuesta de GNU para Mac y Windows. Sí, esto significa que Linux es
GRATIS! Por libre, se puede descargar, modificar y redistribuirlo sin gastar un
centavo! . Linux es un jugador más joven en el mundo del sistema operativo,
después de haber sido escrito en 1991, y está optimizado para el uso moderno
(bueno, más de Windows y Mac). Desafortunadamente, tiene algunas desventajas
también

Pros:

Precio: Linux es G-R-A-T-I-S. Puedes descargarlo, instalarlo, usarlo, modificarlo


Todo por 0 dólares.

Variedad: Linux no es un sistema operativo completo. Es sólo un kernel. Para


usar el kernel, software adicional debe ser incluido con Linux. Varios cientos de
estos paquetes (llamados "distribuciones" o simplemente "distros") existen hoy en
dia. Las más populares son Ubuntu, Mint y Fedora. Lo bueno es que, con tantos
sabores diferentes de Linux, siempre hay uno que se adapte a sus necesidades!

Los virus: A pesar de ser más vulnerables a los virus que el Mac (debido a que es
de código abierto), Linux todavía tiene muy, muy, muy pocos virus.

Contras:

Complicada: Aunque algunas distribuciones son muy fáciles de usar, la mayoría


de ellos requiere una buena dosis de conocimiento de la computadora con el fin de
llegar a trabajar.
Sistema  Operativo:  Apple  OSX   95  

Compatibilidad: Al igual que Mac, lo que representa sólo unos porcentajes de la


cuota de mercado, Linux no tiene la mayor cantidad de programas y juegos que
Windows.

Proveedores: No se encontrará una gran cantidad de vendedores que venden


ordenadores Linux. Por lo general, se va a terminar encima tener que comprar
equipo Windows, formatear el disco duro, y hacer la instalación de Linux el mismo
usuario.

TEMA X Proceso de instalación y actualización de OSX

10.1 Cómo instalar Os x Yosemite de forma segura.

La versión final de OS X Yosemite (2014), está repleta no sólo de


cambios en la interfaz y demás elementos gráficos, sino también de gran
cantidad de funcionalidades nuevas que acercan el sistema operativo de los
Mac a iOS, consiguiendo que ambos se integren de forma casi perfecta. A
continuación y según el portal web asiertejada.com en su apartado como-
instalar-os-x-yosemite en 2014, semuestran una serie de premisas a tener
en cuenta y pasos a ejecutar para lograr un instalación efectiva del sistema
operativo OSX Yosemite.

No es de extrañar que con todo el revuelo que ha creado esta última


iteración de OS X nos lancemos de cabeza e impacientes a actualizar
nuestros Mac. Sin embargo, si queremos evitar numerosos problemas,
deberemos planificar esta actualización y realizarla de una manera segura.
Sistema  Operativo:  Apple  OSX   96  

Pasos Previos:

Comprobar que Cumplimos los Requisitos del Sistema

Antes de empezar, lo primero que deberemos comprobar es que


nuestro hardware cumple con los requisitos mínimos para instalar OS X
Yosemite en él.

Si se va a actualizar desde OSX Mavericks, se puede estar tranquilo


ya que los requisitos son los mismos. Si el sistema operativo es Mountain
Lion o anterior, entonces el dispositivo deberá encontrarse en la siguiente
lista:
• iMac (Mid–2007 o posterior)
• MacBook (13“ Aluminio Late 2008 o posterior), (13” Early 2009 o
posterior)
Sistema  Operativo:  Apple  OSX   97  

• MacBook Pro (13“, Mid–2009 o posterior), (15” Mid/Late 2007 o


posterior), (17" Late 2007 o posterior)
• MacBook Air (Late 2008 o posterior)
• Mac Mini (Early 2009 o posterior)
• Mac Pro (Early 2008 o posterior)
• Xserve (Early 2009)

En cuanto a la RAM, Apple avisa de que el mínimo necesario será de


2 GB, aunque instalar Yosemite en un dispositivo con tan poca memoria no
es en absoluto recomendable y tal vez sea buen momento para
incrementarla.

Igualmente, si bien el mínimo de espacio disponible en disco debe ser


de 8 GB, deberíamos asegurarnos de disponer de por lo menos 30 GB libre
sólo para el sistema operativo, si queremos un comportamiento fluido.

Obtener una ID de Apple:

Sería muy extraño que poseyendo un Mac aun no se disponga de una


ID de Apple, requisito fundamental para descargar gratuitamente OS X
Yosemite de la Mac App Store, Pero es necesario recordarlo como paso
previo fundamental.

Actualizar las Aplicaciones (Opcional)

Este es un paso opcional pero, dado que muchos desarrolladores ya


habían actualizado sus aplicaciones antes incluso del lanzamiento de la
versión final de Yosemite, seguro que muchas de ellas ya estarán
disponibles en la pestaña de actualizaciones de la Mac App Store. Cuanto
Sistema  Operativo:  Apple  OSX   98  

más actualizado esté nuestro Mac antes de actualizar el sistema operativo


mejor.

Realizar una Copia de Seguridad

A pesar de que las actualizaciones de Mac OS X no suelen dar


problemas, siempre deberemos hacer al menos una copia de seguridad de
nuestras máquinas. Y decimis al menos porque en nuestroi caso, además
de usar Time Machine, hacemos otra copia extra en otro disco aparte que
es un clon exacto de nuestros discos duros. Para ello utilizamos la
aplicación Carbon Copy Cloner, si bien otra alternativa por la que también
optan muchos usuarios es Super Duper. Más vale prevenir que curar.

Decidir qué tipo de instalación se va a hacer

Dependiendo de lo que pretendamos, podemos elegir entre varios


tipos de actualización, y en función de nuestra elección deberemos seguir
unos un otros pasos.
• Realizar una instalación limpia: si el sistema operativo de nuestro Mac
lleva tiempo sin ser actualizado, o si hemos estado trasteando con la
versión beta en nuestro disco duro principal (no en una partición), o
simplemente si el rendimiento de nuestra máquina ha bajado
sustancialmente, esta puede ser la mejor opción.
• Actualizar encima de nuestro antiguo sistema operativo: si no se da
ninguno de los casos anteriores, podemos optar por realizar un simple
upgrade, ya que en la mayoría de los casos no suele dar problemas.

• Instalar OS X Yosemite en una partición: si crees que el nuevo


aspecto gráfico no es para ti, o intuyes que el rendimiento de tu Mac
Sistema  Operativo:  Apple  OSX   99  

puede empeorar con Yosemite, o, en definitiva, piensas que vas a


tener que volver a Mavericks en breve, esta es tu mejor opción.

Descargar el instalador de OS X Yosemite

Una vez realizados los anteriores pasos previos, que son comunes
para cualquiera que sea el tipo de instalación que hayamos decidido
realizar, llega la hora de descargarse el instalador de OS X Yosemite.

Encontrarlo no será difícil en la Mac App Store, lo que si que será


harina de otro costal será descargarlo, ya que el archivo pesa más de 5 GB,
por lo que deberemos ser pacientes mientras se descarga .

Sin embargo, una vez descargado el instalador, todavía deberemos


realizar algunos pasos extra antes de proceder con la instalación.

Poner una Copia del Instalador a Buen Recaudo

Sea cual sea la opción de actualización que vayamos a seguir,


siempre es buena idea realizar una copia del instalador fuera de la carpeta
Aplicaciones ya que una vez terminada la instalación con éxito OS X
Yosemite el instalador se autoborra de dicha carpeta.
Sistema  Operativo:  Apple  OSX   100  

Así, si queremos actualizar otros Macs o queremos crear un disco de


arranque no tendremos que volver a descargarnos los 5 GB.

Realizando una Instalación Limpia

Si elegimos esta opción, debemos tener claro que el disco en el que


vayamos a instalar OS X Yosemite será borrado y perderemos todos sus
datos, por lo que es de vital importancia realizar una copia de seguridad
previa.
A continuación los principales pasos a seguir:

Crear un Disco de Arranque con el Instalador

Igualmente, para este tipo de instalación, necesitaremos crear un


disco de arranque con el instalador de OS X Yosemite.
Sistema  Operativo:  Apple  OSX   101  

Los requisitos para crearlo serán los siguientes:


• Disponer de una copia del instalador de OS X Yosemite.
• Disponer de un disco con al menos 8 GB y con formato Mac OS Plus
(con registro) y con esquema de particiones GUID. Importante:
Aunque el disco que tengamos ya esté en este formato, el disco será
formateado durante el proceso de creación del disco de arranque.
• Disponer de privilegios de administrador en el Mac que vayamos a
usar para crearlo.
Para crearlo seguiremos los siguientes pasos:
• Formatear el disco, si es necesario, y renombrarlo como Untitled .
• Asegurarse de que el instalador está en la carpeta Aplicaciones .
• Copiar el siguiente comando para Terminal: sudo /Applications/Install\
OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia –volume
/Volumes/Untitled --applicationpath /Applications/Install\ OS\ X\
Yosemite.app --nointeraction
• Abrir una ventana de Terminal (que se encuentra en
Aplicaciones/Utilidades).
• Pegar y ejecutar el anterior comando.
• Escribir nuestra contraseña de administrador.

Si hemos seguido los pasos al pie de la letra, empezarán a salir una


lista de tareas en la ventana del Terminal:
Erasing disk: 0%... 10%... 20%...
Copying installer files to disk…
Copy complete. Making disk bootable…
Copying boot files…
Copy complete.

Una vez aparezca Copy complete. tendremos nuestro disco de


Sistema  Operativo:  Apple  OSX   102  

arranque listo.

Nota: Realizar este paso resulta más que interesante aunque no


vayamos a realizar una instalación limpia. Yo lo recomiendo hacer siempre,
ya que disponer de un disco de arranque nos puede sacar de más de un
apuro.

Reiniciar Usando el Disco de Arranque con el Instalador

Con nuestro disco de arranque conectado dispondremos dos


alternativas:
• Reiniciar como siempre y mantener pulsada la tecla Opción (⌥) y, una
vez reiniciado nuestro Mac, elegir el disco de arranque con el
instalador.
• Ir a Preferencias del Sistema/Disco de Arranque y seleccionar nuestro
disco de arranque con el instalador.

Borrar Nuestro Disco Principal

Una vez que arranquemos con este disco estaremos en el modo de


recuperación, desde el cual podremos usar las utilidades OS X.

Así, lo primero que haremos será acceder a la Utilidad de Discos y


borrar nuestro disco principal, ya que habremos realizado una copia de
seguridad de él anteriormente. Con él borrado, volveremos al menú de
utilidades y estaremos listos para instalar OS X Yosemite.
Sistema  Operativo:  Apple  OSX   103  

Actualizando Encima de una Versión Anterior de OS X

En caso de realizar directamente un upgrade, habrá que realizar


algunas tareas previas que nos ayudarán a realizar un instalación lo más
limpia posible.

Verificar y Reparar Nuestro Disco y sus Permisos

Una buena práctica antes de realizar una actualización de nuestro


sistema operativo es abrir la Utilizad de Discos (en Aplicaciones/Utilidades)
y verificar, y en caso necesario reparar posteriormente, tanto el disco desde
el que corre nuestro sistema como sus permisos. Cuanto más tiempo haya
pasado sin que hayamos hecho esta simple operación, más recomendable
es hacerla. De esta manera el instalador no encontrará problemas extraños.

Recuperar el Espacio de la Partición Usada para Probar la Beta

Si probaste la beta de Yosemite en una partición, ahora ya no la


necesitarás más y deberías borrarla y recuperar su espacio. Sin embargo,
esto no es tan sencillo como parece y hay que entrar en modo de
recuperación para conseguirlo:
Sistema  Operativo:  Apple  OSX   104  

• Reiniciar nuestro Mac, manteniendo la combinación ⌘+R durante el


reinicio.
• Abrir la Utilidad de Discos.
• Seleccionar el disco que contiene la partición a borrar.
• Pulsar sobre la pestaña Particiones.
• Seleccionar la partición a borrar.
• Eliminarla pulsando sobre el botón con el símbolo.
• Seleccionar la partición restante.
• Redimensionar la partición original bien mediante la casilla tamaño, o
bien arrastrando su contorno en el mapa de particiones.
• Pulsar el botón Aplicar.
Sistema  Operativo:  Apple  OSX   105  

De esta manera evitaremos mensajes de error y recuperaremos el


espacio de nuestro disco antes de realizar la actualización.

Vaciar la Carpeta usr/local (Sólo Desarrolladores)

En el caso de usar nuestro Mac para desarrollo con otro software


distinto a Xcode, deberemos quitar de la carpeta usr/local todo aquello que
no sea de Apple.

Instalar OS X Yosemite en una partición

Si has tomado la vía más precavida te recomiendo que visites este


artículo sobre cómo instalar Yosemite en una partición, y este otro sobre
RebootToHDD, una utilidad que te permitirá “saltar” entre particiones de una
manera ágil.
Sistema  Operativo:  Apple  OSX   106  

Instalar OS X Yosemite

Y por fin, y tras una buena cantidad de pasos previos y precauciones


estamos listos para instalar OS X Yosemite.

10.2 Proceso de Actualización de OSX

A continuación, se hace referencia a la web de Apple en su apartado de


soporte 2014 support.apple.com, esto con la intención de mostrar lo sencillo que
es este proceso en este sistema operativo. El esquema de actualización en OSX,
ha pasado de ser de pago para algunas aplicación e incluso para el Sistema
Operativo a ser gratuito con la llegada de OSX Mavericks 10.9, una estrategia útil
de Apple para ganar adeptos y para lanzar un mensaje claro sobre lo que ellos
denominan experiencia usuario, que no es mas que la suma del hardware y del
Sistema  Operativo:  Apple  OSX   107  

sistema operativo, complementándose entre ellos y haciendo a uno imprescindible


del otro.

Apple ha acuñado el término apps para referirse en plural a sus


aplicaciones y de manera singular usa el termino app, esto ha sido un asunto mas
de mercadeo para relacionar las tres primeras letras de la palabra Apple con este
acrónimo de aplicación y aplicaciones en ingles (apps/app). Esta aclaratoria se
hace porque en la mayoría de los manuales y papers encontrados a lo largo de la
investigación, se ha encontrado este termino con frecuencia.

OS X: Cómo actualizar OS X y las apps del Mac App Store

Puedes obtener actualizaciones de software para OS X y las apps del Mac


App Store. En Mountain Lion y Mavericks, utiliza el Mac App Store para las
actualizaciones de OS X.

Cómo actualizar tu software en OS X Mountain Lion y posterior

En Mountain Lion y posterior, las actualizaciones de software se realizan a


través del Mac App Store.

Notificaciones de que hay actualizaciones disponibles

Las alertas de notificación te informan de que hay actualizaciones disponibles.


Sistema  Operativo:  Apple  OSX   108  

• Haz clic en "Detalles" para abrir el Mac App Store y ver la información de
las actualizaciones disponibles.
• Si aparece el botón "Actualizar" o "Instalar", haz clic para instalar las
actualizaciones.
• Si aparece "Reiniciar", haz clic para instalar las actualizaciones de software
que ya se han descargado pero que requieren que se reinicie el ordenador.
• OS X Mavericks te permite seleccionar una hora que te venga bien para
instalar las actualizaciones. Haz clic en "Más tarde" para posponer las
actualizaciones de momento. Haz clic en el botón "Más tarde" y mantenlo
pulsado para ver más opciones.

Cuando indicas en Mavericks "Intentar esta noche", OS X instala


actualizaciones disponibles entre las 2 a. m. y las 5 a. m. Si es necesario, tu
ordenador se reinicia automáticamente como parte del proceso de actualización. A
la mañana siguiente, cuando inicies sesión, las apps y las ventanas se volverán a
abrir tal y como las dejaste. De esta forma, tu ordenador se actualiza y está listo
para que vuelvas a utilizarlo justo donde lo dejaste.

Puede que veas aparecer un distintivo con el número de actualizaciones de


software disponibles en el icono del App Store del Dock.
Sistema  Operativo:  Apple  OSX   109  

Cómo actualizar el software

Además de haciendo clic en "Actualizar" en una alerta de notificación,


puedes seguir estos pasos para obtener las actualizaciones de software más
recientes para OS X y las apps del Mac App Store.

Si desactivas Spotlight en el volumen de arranque, puede que algunas


actualizaciones no aparezcan.

• Selecciona el menú Apple () > Actualización de Software y, si se te pide,

introduce un nombre de administrador y la contraseña correspondiente.

• El App Store se abrirá y mostrará todas las actualizaciones de software


disponibles para OS X y las apps del Mac App Store. Las actualizaciones
de OS X aparecerán en la parte superior de la lista. Nota: Cuando se abre
el App Store haciendo clic en su icono del Dock, solo se muestran las
actualizaciones de las apps del Mac App Store.
Sistema  Operativo:  Apple  OSX   110  

• Haz clic en "Actualizar todo" para instalar todas las actualizaciones de


software disponibles. Si se te pide, introduce un nombre de administrador y
la contraseña y, a continuación, el ID de Apple y la contraseña.
• Haz clic en "Actualizar" para instalar actualizaciones de software concretas.
Si se te pide, introduce un nombre de administrador y la contraseña y, a
continuación, el ID de Apple y la contraseña.

Cómo controlar el progreso de la instalación de actualizaciones de software

Una vez iniciada una actualización de software, aparecerán los siguientes


indicadores de progreso:

• La barra de estado azul y las estadísticas de descarga en la app App Store


Sistema  Operativo:  Apple  OSX   111  

• La barra de estado azul bajo el icono del Launchpad en el Dock. Consejo:


Para ver el borde del Launchpad donde están las estadísticas de descarga,
pasa el puntero del cursor sobre el icono del Launchpad en el Dock.

Preferencias de Actualización de software

Puedes personalizar la forma en que OS X descarga e instala actualizaciones,


incluida la actualización automática.

• En OS X Lion y anterior, selecciona el menú Apple () > Preferencias del

Sistema… > Actualización de Software.

• En OS X Mountain Lion y posterior, selecciona el menú Apple () >

Preferencias del Sistema… > App Store.


Sistema  Operativo:  Apple  OSX   112  

Algunas de las opciones son:

• Buscar actualizaciones automáticamente: Marca esta casilla para que tu


Mac busque actualizaciones automáticamente.
• Descargar nuevas actualizaciones disponibles en segundo plano: Marca
esta casilla para que tu Mac descargue actualizaciones automáticamente
en segundo plano de forma que estén listas para instalarse.
• Instalar archivos de datos del sistema y actualizaciones de seguridad:
Marca esta casilla para que tu Mac instale archivos de datos del sistema y
actualizaciones de seguridad automáticamente.
• Descargar automáticamente las aplicaciones compradas en otros Mac:
Marca esta casilla para que tu Mac descargue las apps (del Mac App Store)
que hayas comprado en otros Mac.
• Verás el ID de Apple usado para iniciar sesión en el Mac App Store
después de iniciar sesión.
Sistema  Operativo:  Apple  OSX   113  

• Debes haber iniciado sesión con una cuenta de administrador para activar
las descargas automáticas.
• Mostrar actualizaciones o Buscar ahora: Haz clic en Mostrar actualizaciones
para abrir el Mac App Store y ver las actualizaciones disponibles. Haz clic
en Buscar ahora para buscar actualizaciones.
• Para obtener los mejores resultados, deberías instalar las actualizaciones
de OS X lo antes posible.

Conexión segura con los servidores de actualizaciones de Apple

Mountain Lion y Mavericks utilizan HTTPS para establecer una conexión


segura con los servidores de Actualización de Software de Apple. Algunas
configuraciones de proxy de web pueden impedir la conexión segura.

Cómo actualizar tu software en OS X Lion, Mac OS X v10.6 o versiones anteriores

Obtener actualizaciones inmediatamente

1 En el menú Apple (), selecciona Actualización de Software.

2 Menú Apple en Mac OS X v10.6.6


3 Actualización de Software buscará actualizaciones disponibles. En la
ventana Actualización de Software, selecciona los ítems que desees
Sistema  Operativo:  Apple  OSX   114  

4 instalar y, a continuación, haz clic en Instalar. En principio se recomienda


5 instalar todas las actualizaciones disponibles.
6 Introduce un nombre de cuenta de administrador y la contraseña.
7 Una vez finalizada la instalación, reinicia el ordenador si fuera necesario.

Puedes repetir estos pasos para ver si hay más actualizaciones disponibles.
Dado que algunas actualizaciones de software son prerrequisitos para instalar
otras, puede que tengas que repetir estos pasos varias veces para completar la
secuencia de actualización de software. Mac OS X v10.5 y posteriores pueden
ejecutar comprobaciones de Actualización de Software automáticamente en
segundo plano e informarte de cuándo hay actualizaciones disponibles para tu
ordenador.

Cómo actualizar apps compradas en el Mac App Store

Actualización de Software no muestra las actualizaciones disponibles para


las apps adquiridas en el Mac App Store. Para actualizar las apps que hayas
comprado, abre el App Store en tu Mac y, a continuación, haz clic en la vista
"Actualizaciones", en la parte superior de la ventana del App Store. Verás todas
las actualizaciones disponibles para las apps instaladas actualmente en tu Mac.
Las actualizaciones de OS X Lion proceden de Actualización de Software como se
describe arriba.

Cómo usar instaladores independientes disponibles en el Soporte técnico de Apple

A veces, un instalador independiente puede ser más útil que la función automática
Actualización de Software. Por ejemplo cuando:
• Crees que vas a necesitar el archivo más tarde.
• Tienes que instalar la actualización en varios ordenadores y necesitas un
archivo que puedas trasladar.
• Tienes disponible una conexión a Internet más rápida en otro ordenador.
Sistema  Operativo:  Apple  OSX   115  

• No dispones de conexión a Internet en un ordenador que necesita la


actualización.

Puedes obtener copias independientes de muchas actualizaciones de software


de Apple.

Lee detenidamente los requisitos del sistema antes de utilizar un instalador


independiente. Asegúrate de instalar las actualizaciones en el orden correcto, de
haberlo, o solo en ordenadores compatibles, cuando corresponda.
Versiones de referencia y actualizaciones
Mac OS X v10.1, 10.2, 10.3, 10.4, 10.5, 10.6 y OS X Lion y Mountain Lion no son
actualizaciones gratuitas, sino versiones de referencia, también llamadas mejoras.
Se pueden obtener versiones de referencia en el Mac App Store.
Sistema  Operativo:  Apple  OSX   116  

CONCLUSIONES

En la actualidad tres sistemas operativos se disputan la aceptación del


usuario de escritorio tradicional, ellos son MS Windows, GNU/Linux y Apple OSX.
Esto no necesariamente quiere decir que la cuota de mercado para cada uno de
ellos es pareja; nada mas lejos de la realidad. MS Windows ocupa cerca del 90%
de la base de sistema instalado a nivel mundial mientras que Apple mantiene
cerca del 5% en las computadoras personales. Apple Inc, ha mantenido una
estrategia de garantizar la experiencia de usuario final, y esto ha hecho que sea
mas que un desarrollador de Sistema Operativo y de aplicaciones, también es un
fabricante de hardware, lo que le permite entonar su sistema operativo al “hierro”
que lo soportará, desde nuestro punto de vista, es muy probable que la tasa de
satisfacción de usuario de Apple sea la mas elevada del mercado, dadas estas
condiciones.

El estudio del sistema operativo Apple OSX, desde la arquitectura de


hardware que lo soporta, hasta la estructura propia del sistema, su evolución, la
gestión de procesos, la gestión de memoria principal, la manipulación del
almacenamiento, la gestión de entrada y salida, y las consideraciones de
seguridad que posee Apple OSX, nos permiten sostener que aun y cuando se
trate de un sistema operativo basado en UNIX, se le ha aportado mucha
tecnología a su código fuente, para lograr su propio sabor, y representa uno de los
sistemas operativos mas avanzados de nuestros días, tanto que ha generado un
sistema operativo hijo para móviles llamado iOS y con el tiempo ha hecho que la
experiencia de usuario entre ambas plataformas sea prácticamente la misma. Ha
sabido explotar el concepto de nube y le ha dado el toque de facilidad de uso que
un usuario espera.

Su debilidad, para algunos, con respecto a la cuota de mercado está


básicamente en la forma en que está amarrado el hardware mac con el Sistema
Sistema  Operativo:  Apple  OSX   117  

Operativo, esto siempre ha permitido elucubrar y plantear hipótesis, si osx fuese


compatible con pc, seguramente seria el sistema operativo mas usado, pero
seguramente también, arrastraría con todas las penas que eso le ha traído a su
mas conocido archirrival.
Sistema  Operativo:  Apple  OSX   118  

REFERENCIAS

• Apple Computer, Inc (2004) Mac OS X. Disponible en:


http://www.apple.com/la/ne wtomac/ osx.html
• Intel® (2012) 2nd Generation CoreTM Processors for Consumer Mobile
Computing.
• Intel® (2012), iCore Technology Chapter 3 “CPU”.
• ASM Community (2008) Book “Registers”
• Intel® 64 and IA-32 Architectures (2009) Software Developer’s Manual
• Apple Inc. (2012). I/O Kit Fundamentals. Disponible en:
https://developer.apple.com/library/mac/#documentation/devicedrivers/Conc
eptual/IOKitFundamentals/Features/F eatures.html
• Barney, B (2012). POSIX Threads Programing. Disponible en:
https://computing.llnl.gov/tutorials/pthreads/#Thread.
• Levin, J. (2013). Apple OSX and IOS Internals. John Wiley & Sons, Inc.
Indianapolis. Estados Unidos de Norte América.
• Aramendi Inchauspe, Iñigo. Gestión de la memoria en Mac OS X, 2014,
recuperadoel 30/11/2014 de
http://www.cronicasdeuninformatico.com/2013/02/gestion-de-la-memoria-
en-mac-os-x.html

• Apple Inc, Kernel Programming Guide, 2013, recuperado el 25/11/2014 de


https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/
KernelProgramming/Filesystem/Filesystem.html#//apple_ref/doc/uid/TP3000
0905-CH215-BABEEHFF

• Santamaría, Pedro. OS X y la gestión de memoria RAM, 2014, recuperado


el 29/11/2014 de http://www.applesfera.com/os-x/os-x-y-la-gestion-de-
memoria-ram
Sistema  Operativo:  Apple  OSX   119  

• Zambrano, Tom. Gestión del Núcleo y los Procesos de los Sistemas


Operativos, 2014, recuperado el 29/11/2014 de http://sistemas-
operativos2011.blogspot.com/2011/06/gestion-del-nucleo-y-los-procesos-
de.html

• Wikipedia. Apple Partition Map. Disponible en: http://en.wikipedia.org/


wiki/Apple_Parti tion_Map
• Wikipedia. iOS. Disponible
en:http://es.wikipedia.org/wiki/IOS_%28sistema_operativo %29
• Wikipedia. Mac OS X. Disponible en :
http://es.wikipedia.org/wiki/Mac_OS_X
• Wikipedia. Historia de Mac OS X. Disponible en :
http://es.wikipedia.org/wiki/ Historia_de_Mac_OS_X