Mach (nucleu)

Mach este un microkernel care a fost dezvoltat 1985-1994 ca parte a unui proiect finanțat de DARPA la Universitatea Carnegie Mellon (CMU). Scopul de proiectare pentru Mach a fost un sistem de operare compatibil Unix, dar nucleul poate fi în principiu utilizat pentru diferite sisteme de operare . Până la versiunea 2, un nucleu complet 4.3BSD făcea parte din Mach, dar putea fi eliminat în Mach 3.0. Nucleul original CMU Mach3 a fost dezvoltat în continuare pentru sistemul de operare OSF / 1 și adoptat de alte implementări Mach ale altor sisteme de operare, cum ar fi Open Software Foundation Mach Kernel sau OSF MK pe scurt . La Universitatea din Utah , Flux Research Group a lucrat la Mach 4 până în 1996, care a servit ca bază pentru implementarea gratuită a GNU Mach .

Mach este acum considerată prima generație de microcerneluri. L4 microkernel a eliminat aproape cea mai mare slăbiciune Mach, procesul de intercomunicare prea lent, și este considerat a fi a doua generație de microkernel. Acesta este motivul pentru care uneori Mach este denumit învechit.

dezvoltare

Mach a fost dezvoltat sub conducerea lui Richard Rashid la Universitatea Carnegie Mellon , CMU pe scurt , în 1985 ca succesor al Accent . Accent a fost, de asemenea, dezvoltat de Rashid la CMU între 1979 și 1981 și a rulat acolo pe computerele companiei până în 1985, dar a fost în cele din urmă învechit de succesul Unix .

Mach ar inițial au însemnat MUCK, pentru engleza M ultiprocessor U niform C circulatie K ernel . Denumirea finală „Mach” nu mai exista, dar obiectivele esențiale ale dezvoltării erau atât de clare: capacitatea multiprocesorului , portabilitatea ușoară și utilizarea comunicării interproces (IPC, prescurtare pentru comunicare în engleză ). Ca microkernel, Mach ar trebui să rămână foarte mic și să îndeplinească doar cele mai necesare funcții. Conceptul de comunicare interproces pentru procesarea mesajelor Mach pentru gestionarea proceselor individuale care rulează pe acesta a fost adoptat de Accent, dar gestionarea memoriei virtuale , precum și procesul și gestionarea firelor sunt noi dezvoltări.

La începutul dezvoltării, 4.2BSD -Unix a fost folosit ca bază pentru un sistem de operare Mach . Componentele Mach au fost încorporate treptat în acest kernel BSD existent pentru a înlocui funcțiile kernel existente sau - așa cum a fost planificat mai târziu - pentru a construi aceste funcții pe abstractizarea din microkernelul Mach. Deși era vorba în principal de microkernel, scopul era să menținem compatibilitatea Unix de la început. Ulterior s-a planificat ca alte sisteme de operare existente să ruleze și pe Mach ca nucleu, inclusiv System V , VMS și chiar MS-DOS .

Sistemul de operare Mach a fost actualizat la 4.3BSD când a devenit disponibil în 1986. Până la prima versiune lansată în același an, Mach 1.0, s-au depus eforturi pentru a îmbunătăți viteza față de nucleul monolitic existent. În 1988, cu Mach 2.0, nucleul rulează deja pe arhitecturile DEC VAX , IBM-RT -PC și Sun  3 . B. de către BBN Advanced Computers Inc., Divizia de computere Evans și Sutherland, Encore Computers și NeXT pentru sistemele de operare Unix vândute comercial, printre altele. utilizat pe arhitecturile computerelor IBM RP3, Sequent Balance, Macintosh II , IBM 370 și Intel 80386 . Până la Mach 2.6, părți mari ale nucleului BSD în sine erau încă incluse, făcând Mach mai mare decât un nucleu BSD pur, dar și pe deplin compatibil cu acesta. Cu Mach 3.0 din 1989, toate componentele BSD au fost externalizate, iar Mach a devenit microkernel, obiectivul inițial de dezvoltare. Restul nucleului µ pur a fost mai ușor de utilizat pentru alte sisteme de operare. După ce CMU a lansat Mach3, µ-Kernel a fost dezvoltat în continuare de OSF Research Institute ca parte a sistemului de operare OSF / 1. Datorită numeroaselor îmbunătățiri, acest nucleu a primit numele OSF MK.

MkLinux a fost dezvoltat pe OSF MK, nucleul Mach3 îmbunătățit, din 1995 și OSF MK a fost portat pe platforma PowerPC în același timp. MkLinux este conceput ca un singur server , ceea ce înseamnă că Linux este executat ca un singur proces ( sarcină în limba engleză ) pe microcernelul Mach3. Nucleul XNU utilizat în Rhapsody și macOS se bazează, de asemenea, pe OSF MK , dar este conceput ca un nucleu hibrid și, prin urmare, nu mai corespunde doar conceptului de microkernel al lui Mach.

Bazat pe CMU Mach3, a fost la Universitatea din Utah , la scurt timp UU, în Flux Grupul de Cercetare al Departamentului de Informatica ( limba engleză Departamentul de Informatică a lucrat) până în 1996 , versiunea 4 Mach. Mach4 ar fi trebuit să servească drept kernel pentru un sistem de operare ca parte a proiectului Flux, dar după puțin timp nu a mai fost dezvoltat și abandonat în favoarea OSKit. OSKit conține straturile de compatibilitate ( cod de lipici în limba engleză ) dezvoltate inițial pentru Mach4 pentru a putea porta driverele Linux și componentele Unix pe alte sisteme de operare cu un efort relativ mic.

Mach4 a servit ca bază pentru implementarea gratuită a GNU Mach, care este utilizat în sistemul de operare GNU . Bazându-se pe microkernel-ul Mach, GNU Hurd oferă componenta sistemului de operare compatibilă cu Unix (analog BSD-Unix cu CMU Mach). În anii 1990, Linux a fost folosit ca un nucleu ( monolitic ), ceea ce a dus la GNU / Linux ca sistem de operare temporar GNU până când propriul nucleu al GNU - GNU Hurd - a fost utilizabil. (A se vedea disputa numelui GNU / Linux .)

proprietăți

Obiectivele de proiectare ale lui Mach includeau, de asemenea, multitasking și protecția memoriei . Ca microkernel, Mach ar trebui să implementeze cât mai puține funcții tradiționale ale nucleului cât mai mult posibil și, în același timp, atât cât este necesar. Acest lucru a dus la aceste patru sarcini principale:

  • Managementul proceselor și thread-urilor, sarcini și thread-uri în limba engleză
  • Comunicare interproces, IPC
  • memorie virtuala
  • Programare

Ca o abstracție minimă, Mach oferă în cele din urmă următoarele componente ale sistemului, care se bazează în mare măsură pe comunicarea interproces (IPC):

  • sarcină : un proces care poate conține unul sau mai multe fire
  • thread : cea mai mică unitate de execuție care face parte dintr-un proces
  • port : un mecanism simplu de referință a obiectelor Mach implementat de mecanismul Mach IPC
  • set de porturi : un grup de porturi care partajează o coadă de mesaje comună
  • mesaj : o metodă de bază de comunicare inter-thread
  • obiect de memorie : un obiect de memorie care poate fi folosit de procese

Exemple

Link-uri web

Dovezi individuale

  1. Jason Wu, Dan Williams, Hakim Weatherspoon: Microkernels: Mach și L4. (PDF; 1,6 MB) p. 2 , accesat la 12 august 2018 (engleză).
  2. Portarea Hurd pe un alt microkernel. În: GNU Mach. GNU, 17 februarie 2015, accesat la 12 august 2018 (în engleză): „... presupunând că Mach nu mai este considerat de ultimă generație ...”
  3. Începuturi timpurii. În: Istoria GNU Mach. GNU, 18 decembrie 2016, accesat 12 august 2018 .
  4. Amit Singh: Ce NeXT? Factorul mach. Do. În: kernelthread.org. Februarie 2004, accesat pe 12 august 2018 (engleză): „Richard Rashid povestește că, după o serie de încercări nereușite de denumire, a venit cu numele MUCK (Multiprocessor Universal Communication Kernel). Unul dintre colegii săi, Dario Giuse, care era italian, a pronunțat din greșeală MUCK drept „Mach”, iar numele a rămas ".
  5. Joseph Boykin, Alan Langerman: Mach / 4.3BSD: O abordare conservatoare a paralelizării. (PDF; 1,5 MB) În: Computing Systems, Vol. 3. Encore Computer Corporation, 1990, p. 2 , accesat pe 12 august 2018 (engleză): „Proiectanții Mach intenționează să producă un kernel compact și eficient deasupra dintre care pot fi interfețe stratificate pentru sisteme de operare tradiționale precum 4.3BSD, System V, MS-DOS, VMS etc. "
  6. Richard Rashid și colab. : Mach: un nucleu software de sistem. (PDF; 13 kB) Universitatea Carnegie Mellon, Departamentul de Informatică, noiembrie 1988, p. 3 , accesat la 7 octombrie 2018 (engleză, secțiunea 4. Starea actuală ).
  7. ^ François Barbou des Places, Nick Stephen, Franklin D. Reynolds: Linux pe microkernelul OSF Mach3. OSF Research Institute, Grenoble și Cambridge, accesat la 5 octombrie 2018 (engleză): „Institutul de cercetare OSF a făcut îmbunătățiri și extensii semnificative la microcernelul CMU Mach3.0 original, iar rezultatul, numit OSF MK, este încă disponibil pentru gratuit. "
  8. ^ Sistemul Mach. (PDF; 826 kB) Anexa B. În: necunoscut. Accesat pe 12 august 2018 .
  9. OS / 2 Warp, PowerPC Edition. Aventura PowerPC - de departe cea mai exotică versiune de OS / 2. În: Muzeul OS / 2. Accesat pe 14 decembrie 2018 : „(Prezentare generală a sistemului OS / 2 pentru PowerPC-uri) Produsul se baza pe microkernel-ul IBM, care reprezenta un rafinament al microcernelului Carnegie Mellon University Mach. Microkernelul nu avea nicio asemănare cu kernel-ul Intel OS / 2 și era, de asemenea, foarte diferit de majoritatea celorlalte sisteme de operare ale vremii (NeXTSTEP se baza și pe microcernelul Mach). "