Mach (núcleo)

Maches un proyecto de diseño desistemas operativosiniciado en laUniversidad Carnegie Melloncon el objetivo de desarrollar unmicronúcleo.
Mach es unnúcleode sistema operativo desarrollado en laCarnegie Mellon University(CMU) para soportar la investigación desistemas operativos, principalmentecomputación distribuiday paralela. El proyecto en CMU se ejecutó desde 1985 hasta 1994.
Mach se desarrolló con la premisa de que todos los sistemas operativos modernos comparten una serie de características en común, o son deseadas si es que no las tienen aún. Estas incluyen:
Por la época, a inicios de la mitad de los '80, varios proyectos estuvieron intentando resolver uno de estos problemas. Esto típicamente significó tomar unsistema operativoexistente – a menudoBSD(UNIX)- modificando partes del mismo. Después de cada modificación el sistema operativo eracompilado, la máquina reiniciada, y se probaba el nuevo cambio. Había una serie de problemas con este enfoque, incluso los más insignificantes errores causarían que lamáquinaentera se colgara.
Mach explora el concepto al que ahora nos referimos comomicronúcleo. En vez de tener todo el código para el sistema operativo en un gran programa único (llamado núcleo), la mayoría del código estaría ubicado en programas más pequeños conocidos como servidores, los cuales se ejecutarían como cualquier otro programa. El trabajo delnúcleose reduce esencialmente en "ser" el sistema operativo, a mantener losservidoresyprogramarsu acceso alhardware.
En teoría esto significa que los cambios al S.O. requerirían nada más que una recarga de ese únicoprograma servidor, concepto opuesto a reconstruir el Sistema Operativo y reiniciar la máquina. Solo trabajar en el núcleo Mach en sí mismo requeriría un reinicio, y en teoría eso debería ser un hecho inusual.
Mach no es un sistema operativo en sí mismo, y es bastante inútil sin un conjunto de servidores (estos servidores no existen). De modo que para obtener un sistema útil y ejecutándose, los autores de Mach portaron el Unix BSD al núcleo Mach de forma rápida y simple: en vez de separarBSDen distintas partes y construir cada una de ellas como un servidor, simplemente compilaron el núcleo entero en un servidor y lo ejecutaron. El resultado era conocido comoPOE.
Con POE ejecutándose (efectivamente) entre las otras aplicaciones, el rendimiento fue pésimo. Cada llamada de una aplicación de usuario, digamos para obtener la hora, requería que el mensaje fuera enviado al núcleo (una operación simple conocida comocambio de contexto), el cual enviaría el pedido a la libreríaUnixcon otro cambio de contexto y luego repetir todo de nuevo para la respuesta... Sin embargo, Mach, a pesar de que no era un fallo propio, era considerado muy poderoso, pero increíblemente lento.
Durante la década siguiente, el trabajo se orientó a mejorar el funcionamiento de estos mensajes varias veces, hasta el punto de que el rendimiento de estos sistemas operativos basados en Mach fuera a menudo mejor que el de los BSD en los que estaban basados. Sin embargo por ese tiempo el mundo académico había perdido en gran parte interés en la investigación de SSOO, y la promesa de Mach's siguió sin cumplirse.
A finales del sigloXXse ha pensado que el Mach asumiría lentamente el control del universo entero de sistemas operativos, pero esto no ha sucedido. Quizás la razón más grande del fracaso de Mach puede ser la "holgazanería": a todos les parecía que era el trabajo de otro entregar la biblioteca basada en el SO, y no lo hizo nadie. El esfuerzo más grande hasta la fecha esGNU Hurd, pero GNU Hurd está ahora alrededor de una década de atraso. Varios sistemas operativos propietarios han sido más acertados, incluyendoQNXque parece cumplir todas las promesas de Mach.
El trabajo sobre Mach se llevó durante varios años en la CMU, para quedar finalmente inactivo cuando muchos de los desarrolladores dejaron la academia para trabajar en la industria. El Mach fue brevemente revivido en la Universidad de Utah a mediados de los 90s y produjo el Mach 4 (http://www.cs.utah.edu/flux/mach4/html/Mach4-proj.html) que tenía mejoras significativas, antes de otra vez volverse inactivo.
Mientras tanto varios vendedores tomaron enfoques prácticos para usar Mach. La capa delBSD(y otras) fue ejecutada directamente dentro del núcleo (lo que evita así intercambios de contexto) lo que dio lugar a un rendimiento razonable mientras que todavía conservaba las ventajas del multi-procesamiento y de un modelo de hilos fácil de usar. Sin embargo incluso estas ventajas se han erosionado tanto como el hecho de que varios vendedores deUnixque han trabajado para proporcionarlas en sus propios productos.
Los sistemas operativos basados en este concepto del Mach fueronOSF/1,NeXTSTEP, eIBM OS/2para las máquinas basadas enRS/6000– ninguno de los cuales es ya usado ampliamente -. Otros sistemas operativos querían migrar a esta clase de sistema también, como Pink de Apple,Workplace OSdeIBMy varios más.
AppleseleccionóOPENSTEPpara ser la base para el sucesor de su clásico Mac OS. Se convirtió en API Cocoa Mac OS X. OPENSTEP es de hecho una versión actualizada de NeXTSTEP, que utilizó el Mach 2.5. Como tal, la amalgama de Mach/BSD de OPENSTEP es la base para el sistema operativo Mac OS X de Apple.
El desarrollador líder en el proyecto Mach,Richard F. Rashid, ha estado trabajando en Microsoft desde 1991 en las varias posiciones a nivel superior en la división de la investigación deMicrosoft, Microsoft Research. ElWindows NTde Microsoft, precursor delWindows XP, comenzó con un modelo basado en un micronúcleo similar al de Mach.
Otro de los desarrolladores originales de Mach,Avie Tevanian, fue antes jefe de software enNeXTy hasta mayo del 2006 fue director de la Oficina de Tecnología de Software en Apple.