Mach (nucli)

De Viquipèdia
Dreceres ràpides: navegació, cerca
Mach
Autor original Carnegie Mellon University
Versió estable 3.0
Lloc web www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach

Mach és un projecte de disseny de sistemes operatius iniciat a la Universitat Carnegie Mellon amb l'objectiu de desenvolupar un micronucli.

Objectiu[modifica | modifica el codi]

Mach és un nucli de sistema operatiu desenvolupat a la Carnegie-Mellon University (CMU) per suportar la recerca de sistemes operatius, principalment computació distribuïda i paral·lela. El projecte en CMU es va executar des de 1985 fins a 1994.

Mach es va desenvolupar amb la premissa que tots els sistemes operatius moderns comparteixen una sèrie de característiques en comú, o són desitjades si és que no les tenen encara. Aquestes inclouen:

  • Suport per a múltiples aplicacions usant multitasca.
  • Fils, els quals poden ser pensats com les parts d'una aplicació, o mini-aplicacions quan hi ha multitasca.
  • Suport multi-processadors, en una màquina única o sobre una xarxa.
  • Comunicacions interprocesos, enviant missatges directament entre aplicacions.
  • Protecció i seguretat de memòria.

Història[modifica | modifica el codi]

Per l'època, a inicis de la meitat dels 80, diversos projectes van estar intentant resoldre un d'aquests problemes. Això típicament significar prendre un sistema operatiu existent - sovint BSD (UNIX) - modificant parts del mateix. Després de cada modificació el sistema operatiu era compilat, la màquina reiniciada, i es provava el nou canvi. Hi havia una sèrie de problemes amb aquest enfocament, fins i tot els més insignificants errors causarien que la màquina sencera es pengés.

Mach explora el concepte a què ara ens referim com micronucli. En comptes de tenir tot el codi per al sistema operatiu en un gran programa únic (anomenat nucli), la majoria del codi estaria ubicat en programes més petits coneguts com a servidors, els quals s'executarien com qualsevol altre programa. El treball del nucli es redueix essencialment a "ser" el sistema operatiu, a mantenir els servidors i programar el seu accés al maquinari.

En teoria això significa que els canvis al S.O. requeririen res més que una recàrrega d'aquest únic programa servidor, concepte oposat a reconstruir el sistema operatiu i reiniciar la màquina. Només treballar en el nucli Mach en si mateix requeriria un reinici i en teoria això hauria de ser un fet inusual.

Mach no és un sistema operatiu en si mateix, i és bastant inútil sense un conjunt de servidors (aquests servidors no existeixen). De manera que per obtenir un sistema útil i executant-, els autors de Mach van portar el Unix BSD al nucli Mach de forma ràpida i simple: en comptes de separar BSD en diferents parts i construir cadascuna d'elles com un servidor, simplement compilar el nucli sencer en un servidor i el van executar. El resultat era conegut com a POE.

Amb POE executant (efectivament) entre les altres aplicacions, el rendiment va ser pèssim. Cada trucada d'una aplicació d'usuari, diguem per obtenir l'hora, requeria que el missatge fos enviat al nucli (una operació simple coneguda com a canvi de context), el qual enviaria la comanda a la llibreria Unix amb un altre canvi de context i després repetir tot de nou per la resposta ... No obstant això, Mach, tot i que no era un error propi, era considerat molt poderós, però increïblement lent.

Durant la dècada següent, el treball es va orientar a millorar el funcionament d'aquests missatges diverses vegades, fins al punt que el rendiment d'aquests sistemes operatius basats en Mach fos sovint millor que el dels BSD en què estaven basats. No obstant això per aquest temps el món acadèmic havia perdut en gran part interès en la investigació de SSOO, i la promesa de Mach's va seguir sense complir-se.

En l'Actualitat[modifica | modifica el codi]

A finals del segle XX s'ha pensat que el Mach assumiria lentament el control de l'univers sencer de sistemes operatius, però això no ha succeït. Potser la raó més gran del fracàs de Mach pot ser la "ganduleria": a tots els semblava que era el treball d'un altre lliurar la biblioteca basada en el SO, i no ho va fer ningú. L'esforç més gran fins ara és GNU Hurd, però GNU Hurd ara al voltant d'una dècada d'endarreriment. Diversos sistemes operatius propietaris han estat més encertats, incloent QNX que sembla complir totes les promeses de Mach.

El treball al capdamunt del Mach es va dur durant diversos anys a la CMU, per quedar finalment inactiu quan molts dels desenvolupadors van deixar l'acadèmia per treballar a la indústria. El Mach va ser breument reviscut a la Universitat de Utah a mitjans dels 90s i va produir el Mach 4 (http://www.cs.utah.edu/flux/mach4/html/Mach4-proj.html) que tenia millores significatives, abans d'una altra vegada tornar inactiu.

Mentrestant diversos venedors van prendre enfocaments pràctics per utilitzar Mach. La capa del BSD (i altres) va ser executada directament dins el nucli (el que evita així intercanvis de context) el que va donar lloc a un rendiment raonable mentre que encara conservava els avantatges del multiprocés i d'un model de fils fàcil d'utilitzar. No obstant això fins i tot aquests avantatges s'han erosionat tant com el fet que diversos venedors de Unix que han treballat per a proporcionar als seus propis productes.

Relacions amb Altres sistemes operatius[modifica | modifica el codi]

Els sistemes operatius basats en aquest concepte del Mach van ser OSF/1, NextStep, i IBM OS/2 per les màquines basades en RS/6000 - cap dels quals ja usat àmpliament -. Altres sistemes operatius volien migrar a aquesta classe de sistema també, com Pink d'Apple, Workplace OS de IBM i diversos més.

Apple va seleccionar OpenStep per a ser la base per al successor del seu clàssic Mac OS. Es va convertir en API Cocoa Mac OS X. OpenStep és de fet una versió actualitzada de NextStep, que va utilitzar el Mach 2.5. Com a tal, l'amalgama de Mach/BSD de OpenStep és la base per al sistema operatiu Mac OS X d'Apple.

El desenvolupador líder en el projecte Mach, Richard F. Rashid, ha estat treballant a Microsoft des 1991 en les diverses posicions a nivell superior en la divisió de la recerca de Microsoft, Microsoft Research. El Windows NT de Microsoft, precursor del Windows XP, va començar amb un model basat en un micronucli similar al de Mach. Un altre dels desenvolupadors originals de Mach, Avie Tevanian, va ser abans cap de programari en NeXT i fins maig del 2006 va ser director de l'Oficina de Tecnologia de programari a Apple.

Vegeu també[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]