Compilación bibliográfica – sistemas operativos MINIX, BEOS, MACH Y APPLE IOS

MINIX
El sistema operativo MINIX es un pequeño clon del sistema operativo UNIX que apareció en el año 1987 y este al principio tuvo fines educativos. Fue creado por Andrew S. Tanenbaum.
Actualmente, la versión que se encuentra disponible es Minix 3.1.5 (la versión 3 fué anunciada el 24 de Octubre de 2005). Mientras que las versiones 1 y 2 tenían el principal objetivo de enseñar a sus alumnos el funcionamiento interno de un Sistema Operativo, la versión 3 está orientada a desarrollar un Sistema Operativo que pueda ser usado en máquinas de pocos recursos y para aplicaciones que requieran gran fiabilidad en sistemas embebidos.
Algunas de las características de esta versión de MINIX son:
Compatible con POSIX
Uso de la pila de protocolos TCP/IP
Sistema de ventanas X11
Más de 650 aplicaciones UNIX
Multiusuario
La licencia empleada actualmente para la distribución del MINIX es BSD.
MINIX es un sistema operativo creado a partir del Unix. Su origen se debió fundamentalmente al deseo de Andrew S. Tanenbaum su creador en 1987, de proveer a sus alumnos de Diseño de Sistemas Operativos en la Vrije Universiteit (Universidad Libre de Ámsterdam) de un sistema con el pudiesen aprender de forma práctica los principios teóricos sobre los que se basan los sistemas operativos. Por lo que su primera versión era principalmente educacional.
El sistema MINIX está estructurado por cuatro capas, cada una de ellas con sus componentes

 

Gestión de procesos y procesador
Los procesos en MINIX pueden crear otros procesos y ellos a su vez otros más, lo cual no da un árbol de procesos, del cual init es la raíz. Los servers y los drivers son casos especiales pues algunos de ellos deben iniciarse antes de cualquier proceso de usuario, incluso antes de init.
Cuando se enciende la computadora, el hardware lee en memoria el primer sector de la primera pista del disco de arranque y ejecuta el código que encuentra allí. En un disquete este sector contiene el programa de bootstrap. Es muy pequeño, pues debe caber en un sector (512 bytes). El bootstrap de MINIX carga un programa mayor, denominado boot, cuya misión es cargar el SO en sí mismo.
El caso de los discos rígidos es diferente y requiere un paso intermedio. El disco rígido se divide en particiones, y el primer sector del disco contiene un pequeño programa y la tabla de particiones. Colectivamente a esas dos partes se las denomina master boot record. El pequeño programa del primer sector se ejecuta para leer la tabla de particiones y seleccionar lapartición activa. La partición activa tiene un bootstrap en su primer sector, el cual se carga y se ejecuta para arrancar la copia de boot en esa partición, exactamente como se hace cuando se arranca desde disquete.
Durante la fase de inicialización el kernel arranca la tarea del sistema y la tarea del reloj, y luego el PM y el FS. El PM y el FS cooperan luego para iniciar los otros servers y drivers que forman parte de la imagen de arranque, Cuando todos han funcionado y se han inicializado, se bloquean a la espera de algo para hacer.
service es la interfaz de usuario del RS. El RS arranca un programa ordinario y lo convierte en un proceso del sistema.
Las dos llamadas al sistema principales en MINIX para la gestión de procesos son fork y exec.fork es la única manera de crear un nuevo proceso. exec permite que un proceso ejecute un determinado programa. Cuando un programa se ejecuta se le asigna una porción de memoria cuyo tamaño se especifica en la cabecera del archivo del programa. El proceso mantiene como propia a dicha cantidad de memoria durante toda su ejecución, si bien la distribución entre segmento de datos, segmento de pila y espacio sin usar puede variar en el tiempo.
Gestión de memoria
Gestión de memoria en MINIX 3
Modo usuario:
No utiliza paginación
Posible activación del uso de intercambio
Comunicación por paso de mensajes
Estrategia de asignación de memoria
Gestión de la tabla de procesos y la lista de huecos
Process manager utiliza llamados al sistema: fork, wait, execve, exit, brk, getpid, signal, kill, alarm, pause, getuid, setuid, setgid.
Modo supervisor:
Implementa el mecanismo de asignación de memoria: copia de mapas de memoria.

 

SISTEMA OPERATIVO BEOS
Micro núcleo modular propio optimizado para contenidos multimedia.
Sistema operativo monousuario.
Arquitectura multi procesadores.
Ancho de banda de entrada/salida modular y un penetrante sistema multihilo para su sistema de procesos multitarea.
Flexibilidad gráfica y respuesta en tiempo real.
Sistema de archivos con índice optimizado para 64 bits llamado beFS.
Interfaz API fue escrita en C++ para simplicidad de programación.
Compatibilidad con POSIX.
Línea de comandos basada en bash.
Plataformas sobres las que trabaja
VERSION
FECHA
PLATAFORMA

DR1-DR5
OCTUBRE 1995
AT&T/HOBBIT

DR6
ENERO 1996
POWER PC

DR7
ABRIL 1996
POWER PC

DR8
SEPTIEMBRE 1996
POWER PC

ADVANCED PRESS REVIEW
MAYO 1997
POWER PC

PR1
JUNIO 1997
POWER PC

PR2
OCTUBRE 1997
POWER PC

R3
MARZO 1998
POWERPC / INTEL X86

R3.1
JUNIO 1998
POWERPC / INTEL X86

R3.2
JULIO 1998
POWERPC / INTEL X86

R4
NOVIEMBRE 1998
POWERPC / INTEL X86

R4.5 (“GENKI”)
JUNIO 1999
POWERPC / INTEL X86

R5 P.E. (“MAUI”)
MARZO 2000
POWERPC / INTEL X86

R5.1 (“DANO”)
NOVIEMBRE 2001
POWERPC / INTEL X86

 

Gestión de procesos
El sistema beOS tiene la capacidad multitarea apropiativa es decir que tiene la capacidad de realizar varios procesos al mismo tiempo.
Asigna tiempos de CPU a los procesos que se están ejecutando
Por cada núcleo de la CPU se puede ejecutar a lo sumo un proceso en cada momento.
Al proceso actual, el sistema le asigna un intervalo de tiempo para ejecutarse; una vez acabado el tiempo, el proceso queda pausado y se destina el siguiente intervalo de tiempo a un proceso distinto.
Eventualmente, el primer proceso volverá a recibir intervalos para seguir ejecutándose, hasta que finalice su ejecución, y lo mismo pasará con los demás.
El sistema dispone de un componente llamado planificador encargado de decidir a qué proceso asignar el próximo intervalo de tiempo de ejecución.
Soporte y gestión de hilos
Este es un sistema que tiene planificación en base a procesamiento en hilos intensivos (pervasive multithreading); no sólo le es posible al BeOS mantener múltiples aplicaciones corriendo: toda aplicación o componente se divide en pequeños fragmentos separados por hilos (threads), lo que optimiza al máximo el rendimiento del sistema.
Gestión de memoria
Memoria protegida y multitarea preventiva—en una época en la que ni Mac OS ni las versiones de Windows de escritorio disponían de ellas. Por su propio diseño, BeOS está particularmente bien preparado para trabajar en tiempo real, como edición de vídeo y audio.
Sistema de archivos
Contenido del directorio: B+tree
Asignación de archivos: inodes.
Límites: volumen máximo ~2 EB, máximo tamaño de archivo: ~260 Gb
Máximo número de archivos: ilimitado
Longitud de nombre de archivo máximo: 255 caracteres
Caracteres permitidos en nombres de archivos: todos en UTF-8 except “/”
SISTEMA OPERATIVO MACH
Estructura de componentes
Núcleo sencillo y extensible, centrado en los recursos de comunicación.
Servidores a nivel de usuario.
Paginadores internos y posibilidad de paginadores externos
Paradigma orientado a objetos: objetos abstractos
Abstracciones primitivas: tarea, hilo, puerto, conjunto de puertos, mensaje, objeto de memoria.
Objetos de memoria
Memoria virtual
Gestión de procesos/gestión de hilos
Una tarea puede considerarse como un proceso tradicional que no tiene un apuntador de instrucciones o un conjunto de registros.
Mach maneja tareas para administrar sus procesos.
Una tarea contiene un hilo, mach crea una tarea para emular una llamada al sistema como por ejemplo se hace en UNIX
La memoria de la tarea es el duplicado del espacio de direcciones del hilo padre.
Posibilidad de suspender o reanudar hilos
Una tarea puede distribuir sus hilos entre procesadores en paralelo.
Si existe una falla en un hilo solo se retrasa ese hilo los demás continúan con su proceso normalmente
Una operación que se aplica sobre una tarea afectara a todos sus hilos
Suspender una tarea implica suspender todos sus hilos, sin embargo la suspensión de tareas e hilos son mecanismos independientes por lo que se puede reanudar un hilo de una tarea suspendida sin reanudar la tarea.
Mach proporciona primitivas a partir de las cuales se puede construir herramientas de sincronización. Para esto se utiliza el recurso ipc de mach.
Para cada hilo existen las primitivas suspender/reanudar y cada hilo tiene un recuento de suspensiones que permite realizar varias suspensiones a un hilo.
Sincronización de hilos en c a través de rutinas: cthread-fork, cthread-exit, cthread-join, cthread-detach, cthread-yield, mutex-qlloc, mutex-free, mutex lock, mutex unlock.

Gestión de entrada y salida
Esta se realiza a través de puertos que se accede a través de interfaces llamados MIG, que es, en esencia, un compilador que toma como entrada una definición de la interfaz que se utilizara.
Gestión de comunicación y seguridad
Las dos componentes de la comunicación de la ipc de mach son los puertos y mensajes. Casi todo lo que existe en mach son objetos y referencias a los mismos que se realizan en sus puertos de comunicación, envían mensajes a estos puertos para que las rutinas que implantan sobre estos afecten operaciones sobre ellos.
Como mach depende de puertos y mensajes para la comunicación brinda autonomía de la ubicación de los objetos y seguridad en la comunicación.
La seguridad se garantiza al requerir que emisores y receptores tengan derechos. Es decir el nombre del puerto y la capacidad del mismo.

SISTEMA OPERATIVO APPLE IOS
Estructura de estructura de componentes del sistema
El sistema operativo para dispositivos móviles de Apple está estructurado en cuatro capas

 

Cocoa touch (capa superior): Es la capa superior, la que los usuarios utilizan para interactuar con las aplicaciones, es decir, la capa visible. Es la zona donde nos encontramos los componentes visuales, se trata de una capa de abstracción.
Media (capa intermedia): Se trata de una capa basada en la mezcla de lenguaje C y Objective C que contiene las tecnologías que dan acceso a ficheros multimedia relacionados con audio, gráficos, vídeos, etc.
Capa de core services
Conocida como la capa de “sevicios principales”. Esta permite al usuario acceder a todos los servicios básicos y contiene los servicios fundamentales del sistema operativo que pueden ser usados por todas las aplicaciones creadas por terceros. Muchas partes del sistema están construidas encima de esta capa.
El kernel o core OS
El nivel del sistema abarca el entorno del núcleo, los controladores y las interfaces de bajo nivel del sistema operativo UNIX. El Kernel está basado en “Mach” y es responsable de todos los aspectos del sistema operativo. Se encarga de tareas básicas de bajo nivel, como:
Gestión de memoria virtual
Gestión procesos, hilos, el manejo de la memoria y comunicación entre procesos.
Gestión del acceso a red de bajo nivel.
Gestión de procesos que interactúan directo con el hardware.
Gestión del sistema de archivos.
Gestión de procesos y del procesador
El sistema operativo iOS utiliza colas de prioridad que son un sistema donde los datos tienen un  orden de prioridad y se procesan dependiendo de ello. Cuando 2 o más procesos tienen la misma prioridad se ejecutan conforme vayan llegando. Todas las aplicaciones que son desarrolladas y ejecutadas en el mismo sistema no terminan de ejecutarse si se pasa al escritorio o se ejecuta otra aplicación, estas aplicaciones pasan a un segundo plano.
Estados de prioridad de los procesos:
Los valores de prioridad están 0 y 127. Numéricamente los valores más bajos son para las prioridades más altas.
Critico
Alto
Medio
Bajo
Cuando un proceso completa la llamada al sistema y va a retornar a modo usuario, su prioridad de planificación es configurada a su prioridad en modo usuario actual. Si esta prioridad es más baja que la de otros procesos planifícables, entonces el núcleo realizará un cambio de contexto.
Hay factor llamado factor de amabilidad que ayuda a determinar la prioridad de ejecución en modo usuario. Este factor tiene valores entre 0 y 39. Por defecto este valor se encuentra en 20.
El factor de amabilidad dependerá de cuanto uso le dé el usuario a una aplicación.
Tipos de cola:
Cola de espera
Cola de muertos
Cola de listos
Cuando un proceso que se ejecuta se suspende, el planificador recupera el control de la CPU y utiliza el algoritmo round robin para seleccionar el siguiente proceso desde una de sus cuatro colas de listos.
SOPORTE Y GESTION DE HILOS
Existen dos clases para la gestión de hilos en IOS:
NSThread
NSOperation
Creación de un hilo en IOS:

La clase NSOperationQueue es la encargada de ejecutar las operaciones que le indiquemos. Esta actúa como una cola de operaciones y puede realizar más de una operación de forma concurrente.
El número de operaciones concurrentes que se desea que se realicen se indica con el parámetromaxConcurrentOperationCount.
La clase NSOperationQueue actuará como un servicio de cola estricto, es decir, sólo se ejecutará un proceso si el anterior ha finalizado. Por defecto, el máximo número de operaciones concurrentes está definido en el máximo permitido y lo gestionará el sistema.
La clase NSInvocationOperation es una subclase de NSOperation y es la encargada de gestionar una tarea en concreto, un método. Existe otra subclase de NSOperation que está diseñada para ejecutar bloques o blocks. Los blocks en Objective-C son porciones de código similares a funciones o métodos que realizan alguna tarea determinada. Son muy útiles a la hora de implementar callbacks, es decir, código después de la ejecución de alguna tarea asíncrona como por ejemplo llamadas a un servicio web.
Sistema de archivos
Sistema de archivos APFS desde la versión 10.3

El sistema de archivos se puede usar en dispositivos con cantidades relativamente pequeñas o grandes de almacenamiento. Utiliza números de inodo de 64 bits y permite un almacenamiento más seguro. El código APFS, como el código HFS +, usa el comando TRIM, para una mejor administración y rendimiento del espacio. Puede aumentar las velocidades de lectura y escritura en iOS y macOS, y espacio en dispositivos iOS, debido a la forma en que APFS calcula los datos disponibles.
Características:
Clones:
Un archivo duplicado no ocupa espacio adicional y si se realizan cambios al archivo original estos se guardan aparte y los bloques no modificados del archivo se siguen compartiendo. Esto reduce en gran medida el espacio que utilizan las APPS para sus archivos ya que se comparten entre sí.
Cifrado:
De forma nativa soporta toda la encriptación del disco y la encriptación de archivos con las siguientes opciones
No encriptación
Cifrado de una sola clave
Cifrado multi clave, donde cada archivo cifrado tiene su clave
Snapshots:
Se permite tomar un “snapshot” del estado actual del sistema. Esto con el propósito de que en caso de que haya un fallo en el futuro se pueda volver a ese estado anterior del sistema.
Aumento del número máximo de archivos:
Como el IOS tiene soporte inode de 64 bits puede tener alrededor de 9 quintillones de archivos en un solo volumen.
Creado con SSD en mente:
Soporte para el mantenimiento de discos de estado solido
Espacio compartido:
Capacidad de tener varias unidades lógicas (denominadas Volúmenes) en el mismo contenedor donde el espacio libre está disponible para todos los volúmenes en ese contenedor.

Crahs protection:
En lugar de sobrescribir los registros de metadatos existentes en su lugar, escribe registros completamente nuevos, señala los nuevos y luego los suelta. Esto evita los registros dañados que contienen datos parciales nuevos y parciales causados ​​por un bloqueo que ocurre durante una actualización.

 

 

 

 

 

 

 

 

 

 

 

Conclusiones

A pesar de ser poco conocido el sistema operativo MINIX es uno de los sistemas operativos más usados a nivel mundial ya que este se encuentra en cada procesador de la marca Intel.
Los sistemas microkernel o micronucleo permiten centrarse en las actividades de mayor importancia de un sistema operativo haciendo que este funcione de una manera más óptima y no tenga tantos fallos, además permite que el resto de tareas se puedan realizar por fuera de este núcleo y aproveche mejor el procesador y los demás componentes de hardware.
Los sistemas micrikernel tienen como ventajas: portabilidad, hay colaboración entre procesos, flexibilidad de diseño, minimiza el contenido del kernel, extensibilidad y son menos complejos.
Un sistema operativo con propósitos investigativos permite conocer más a fondo el alcance que pueden tener este tipo de sistemas sobre todo permiten a los fabricantes de hardware como actualizar sus componentes para los sistemas que puedan llegar al mercado.
También permite conocer de una forma segura como debe funcionar software para diferentes maquinas como por ejemplo las súper computadoras.
La seguridad en las comunicaciones de un sistema operativo son un punto crítico ya que es a través de esta que un sistema se puede ver expuesto a ataques. Por eso sistemas como el IOS de Apple tienen varios protocolos de seguridad que buscan salvaguardar la información de los usuarios.
Además de varios protocolos de seguridad se puede pensar en que la comunicación entre dispositivos de un sistema operativo solo se puede realizar con otros de esa misma marca o por lo menos implementar procedimientos de autenticación de dos pasos.
Los sistemas operativos modulares o por capas permiten que cada capa se ocupe de sus tareas específicas y que las integre para mejorar notablemente el rendimiento del computador o dispositivo en el que se encuentra.
BIBLIOGRAFIA
Minix
https://www.ecured.cu/Minix
http://wiki.inf.utfsm.cl/index.php?title=Ejemplos_detallados_de_sistemas_operativos_con_microkernel
https://es.wikipedia.org/wiki/MINIX#Estructura_de_Minix
http://elblogdepicodev.blogspot.com.co/2010/11/guia-instalacion-minix.html
http://vicentehdez.blogspot.com.co/2010/10/25-perspectiva-general-de-procesos-en.html
https://groups.google.com/forum/#!topic/comp.os.minix/LngtkbR0Od0

http://slideplayer.es/slide/4085690/
https://hardzone.es/2018/01/03/estadisticas-hardware-software-steam-amd-pierde/
beOS
https://groups.google.com/forum/#!topic/comp.os.minix/LngtkbR0Od0
https://www.ecured.cu/BeOS
https://beos.wikispaces.com
https://es.wikipedia.org/wiki/BeOS
https://www.youtube.com/watch?v=ZjwsKl6R-Q8 (proceso instalacion beOS en una maquina virtual)
https://es.wikipedia.org/wiki/Multitarea_apropiativa
http://retrowiki.es/viewtopic.php?style=14&t=803
https://es.wikipedia.org/wiki/Reentrancia_(informática)
https://en.wikipedia.org/wiki/Be_File_System
Mach
http://sod-ingenieria-lasallepachuca.blogspot.com.co/p/mach.html
https://www.alipso.com/monografias/tarbajoiplacorregido1/#_
IOS
https://es.wikipedia.org/wiki/IOS
https://www.techopedia.com/definition/27562/cocoa-touch-ios
http://eve-ingsistemas-u.blogspot.com.co/2012/04/sistemas-operativos-moviles-ios.html
https://sistemasoperativosunah.wordpress.com/2017/10/13/planificacion-de-procesos-en-sistemas-operativos/
http://ocw.innova.uned.es/ocwuniversia/Ing_tecnico_infor_sistemas/SO_II/contenidos_html/ims_import_5/tema_6_03.htm
http://www.jtech.ua.es/dadm/restringido/serv-ios/sesion03-apuntes.html#Gestión+de+hilos+en+iOS
https://www.pixybit.es/curso/desarrollo-apps-ios/capitulo-9.html
https://en.wikipedia.org/wiki/Apple_File_System
https://www.apple.com/es/business/docs/iOS_Security_Guide.pdf
https://www.apple.com/co/icloud/
https://www.apple.com/es/shop/accessories/all-accessories/homekit
https://www.ipadizate.es/2017/08/10/estadisticas-confiar-iphone/
http://latam.pcmag.com/sistemas-operativos-moviles/18490/news/el-996-del-mercado-movil-le-pertenece-a-android-y-ios

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s