Introducere în minix 3

Cât de des v-ați resetat televizorul în ultimul an? Probabil mult mai puțin decât calculatorul. Desigur, pentru aceasta există mai multe „motive“, dar tot mai mulți utilizatori, non-tehnici, și nu vor să audă despre ele. Doresc doar ca computerul să funcționeze bine tot timpul și nu refuză. Minix 3 este un proiect pentru a dezvolta un sistem de operare fiabil ca un televizor, pentru sisteme integrate și aplicații critice, cum, de altfel, și pentru viitoarele single-chip de laptop-uri de 50 de dolari și uz general pentru desktop. Astăzi, acest sistem de operare mic, simplu și fiabil există deja. Și vă rugăm să rețineți: aceasta este ultima publicație din discuția pe tema OS alternativă.







Dezavantaj istoric

renaștere

Diferite studii arată că software-ul conține în general aproximativ 6 ÷ 16 erori la 1000 de linii de cod și că driverele de dispozitiv au de 3-7 ori mai multe erori decât restul sistemului de operare. Dacă adăugați faptul că 70% din sistemul de operare tipic constă în drivere de dispozitive, devine clar că driverele de dispozitive sunt cea mai mare sursă de erori. Pentru Windows XP, de exemplu, 85% din defecțiuni se datorează erorilor din driver-ele de dispozitive. Evident, pentru a face sistemul de operare sigur, trebuie să faceți ceva cu acești șoferi de dispozitiv "rău intenționat". Construirea sistemului, de încredere, în ciuda existenței inevitabile a erorilor în șoferi, a fost principalul motiv pentru apariția MINIX 3.

desen

Abordarea utilizată în MINIX 3 pentru a obține o fiabilitate ridicată se bazează pe izolarea erorilor. În special, spre deosebire de sistemul tradițional de operare în care întregul cod este combinat într-un singur program executabil imens care rulează în modul kernel, doar o mică parte a codului funcționează în MINIX 3 în modul kernel - aproximativ 4.000 de linii de cod. Acest cod servește la întreruperi, procesarea dispecerizării și comunicarea interprocesă (IPC). Restul sistemului de operare funcționează ca un set de procese în spațiul utilizatorilor, fiecare dintre ele fiind protejat de controlerul de memorie hardware (MMU) și niciuna dintre ele nu are privilegii superutilizatoare. Unul dintre aceste procese, numit serverul de reîncarnare. stochează tabelele tuturor celorlalte procese și când unul dintre aceste procese începe să funcționeze incorect sau eșuează, serverul de reîncarnare îl înlocuiește automat cu o copie nouă. Deoarece multe erori sunt instabile și neașteptate, în majoritatea cazurilor, repornirea unei componente eșuate rezolvă problema și permite sistemului să se recupereze fără repornire și fără ca utilizatorul să-l observe deloc. Această proprietate se numește "auto-vindecare" (sau "auto-medicație" - care este mai mult - comentariul traducătorului) și este absent în sistemele tradiționale.

Structura MINIX 3 este prezentată în Fig. 1. Este conceput ca un design pe mai multe nivele. În partea de jos este microkernel care funcționează în mod kernel și constă din aproximativ 3'000 de linii de cod în C și 800 de linii de cod în asamblare. Deasupra este nivelul driverelor de dispozitiv și fiecare driver este un proces separat în spațiul utilizatorului pentru a facilita înlocuirea acestuia în cazul în care acesta nu reușește. Apoi vin serverele care alcătuiesc nucleul sistemului de operare. Acestea includ serverul de reîncarnare menționat mai sus, serverul de fișiere, managerul de proces etc., inclusiv serverul X, depozitul de date și multe altele. Și, în cele din urmă, există procese de utilizator în partea de sus. Deși din interior, MINIX 3 este complet diferit de alte sisteme asemănătoare UNIX, suportă o interfață standard de aplicație bazată pe POSIX, astfel încât software-ul UNIX obișnuit să poată fi ușor ported.







Introducere în minix 3

Fig. 1. Arhitectura MINIX 3

Componentele interacționează între ele prin trimiterea de mesaje de lungime fixă. De exemplu, un proces utilizator solicită un fișier, trimiterea unui server de fișiere, care, la rândul său, verifică memoria cache și, dacă blocul necesar lipsește, procesul trimite un mesaj la driverul de disc pentru a porni unitatea de primire. Și, deși trimiterea mesajului adaugă un pic de timp suplimentar la durata procesului de schimb (aproximativ 500 ns-3 GHz Pentium 4), sistemul rămâne destul de rapid. De exemplu, un ansamblu complet al sistemului, care necesită mai mult de 120 de compilații, se încadrează în 10 secunde.

Punctul de vedere al utilizatorului

Din punctul de vedere al utilizatorului, MINIX 3 arată ca UNIX, dar nu atât de umflat. Acesta conține sistemul X Window și peste 400 de programe standard UNIX, inclusiv:
Procesoare de comandă (cochilii): cenușă, bash, pdksh, rsh
  • Limbi de programare (instrumente de limbă): cc, gcc, g ++, bizon, flex, perl, python, yacc
  • Instrumente de programare: cdiff, make, patch, tar, touch
  • Instrumente de rețea: ssh, telnet, ftp, lynx, mail, rlogin, wget, pin
  • Utilități de fișiere: cat, cp, bzip2, compresie, mv, dd, uue, utilitare GNU
  • Utilitare de text: grep, cap, pastă, pregătire, sortare, vrajă, coadă
  • Administrare: adduser, cron, fdisk, mknod, mount, cvs, rcs
  • Jocuri: Dungeon, nethack

  • În prezent, numai X este interfața cu utilizatorul, dar în timp, o interfață grafică (GUI) poate fi adăugată dacă se găsește o interfață grafică adecvată. Aici puteți vedea capturi de ecran.

    disponibilitate

    Dragă ediție. Munca nu mănâncă nimic.

    > De exemplu, lucrul (orice) pe toate distribuțiile> pe care l-am folosit (aproximativ 10), mănâncă mereu> mult mai mult timp CPU decât același lucru în Windows.

    Dragă ediție. Munca nu mănâncă nimic.

    > De exemplu, lucrul (orice) pe toate distribuțiile> pe care l-am folosit (aproximativ 10), mănâncă mereu> mult mai mult timp CPU decât același lucru în Windows.

    și Venda - domnește.

    Sistemul de operare Minix, ideea de profesorul Andrew Tenenbaum de la Universitatea Vrije olandez, a primit un grant de la Consiliul European pentru Cercetare (Consiliul European de Cercetare), în valoare de 2,5 mil. euro. Banii vor fi cheltuite pentru cercetări ulterioare în dezvoltarea sistemului de operare, care în sine ar putea găsi vulnerabilități în codul său și ulterior să le elimine.

    Erori în software nu vor fi niciodată complet eradicate, a scris Tanenbaum în prezentarea la proiect. Dar astfel de sisteme de operare precum Windows și Linux sunt inițial concepute fără a acorda atenția cuvenită stabilității codului. Industria de software este mult mai iresponsabil abordare verificarea calității produsului finit decât, de exemplu, industria de automobile, în cazul în care identificarea unui defect de un detaliu poate duce la retragerea tuturor gama de autoturisme. Soluția la această problemă poate fi crearea unui sistem de operare securizat, care ar impune cerințe mai stricte asupra codului executabil.

    Conceptul de microkernels, în jurul căruia este construit Minix, impune anumite restricții asupra interacțiunii proceselor dintre nuclee. Acest lucru vă permite să minimalizați situațiile în care un driver periferic care rulează instabil sau orice alt cod care rulează în kernel cauzează un accident de sistem. Conform conceptului lui Tanenbaum, instabilitatea ar trebui să fie localizată în interiorul microkernelului, iar interacțiunea cu procesul a făcut ca acesta să fie blocat.

    Fondurile alocate ar trebui să fie suficiente pentru a plăti pentru activitatea a trei cercetători și doi programatori în următorii cinci ani.







    Articole similare

    Trimiteți-le prietenilor: