Microkernel in OperaSistem de tingere: Architectură, Avantaje

Înainte de a învăța MicroKernel, să înțelegem:

Ce este Kernel?

Un nucleu este o parte importantă a unui sistem de operare care gestionează resursele sistemului. De asemenea, acționează ca o punte între software-ul și hardware-ul computerului. Este unul dintre primele programe care se încarcă la pornire după bootloader. Kernel-ul este, de asemenea, responsabil pentru oferirea de acces securizat la hardware-ul mașinii pentru diferite programe. De asemenea, decide când și cât timp o anumită aplicație folosește hardware specific.

Ce este Microkernel?

micro nucleu este un software sau un cod care conține cantitatea minimă necesară de funcții, date și caracteristici pentru implementarea unui sistem de operare. Oferă un număr minim de mecanisme, ceea ce este suficient de bun pentru a rula cele mai de bază funcții ale unui sistem de operare. Permite implementarea altor părți ale sistemului de operare, deoarece nu impune multe politici.

Microkernel-urile și mediile lor de utilizator sunt de obicei implementate în C++ or limbaje de programare C cu un pic de asamblare. Cu toate acestea, alte limbaje de implementare sunt posibile cu o codificare de nivel înalt.

Ce este un nucleu monolitic?

Monolithic Kernel rulează toate serviciile de bază ale sistemului, cum ar fi administrarea procesului, Gestionarea memoriei, comunicarea I/O și gestionarea întreruperilor, sistemul de fișiere etc. în spațiul kernel.

În acest tip de abordare Kernel, întregul sistem de operare rulează ca un singur program în modul kernel. Sistemul de operare este scris ca o colecție de proceduri care sunt legate între ele într-un program binar executabil mare.

micro nucleu Architectură

Un microkernel este cea mai importantă parte pentru implementarea corectă a unui sistem de operare. Puteți vedea în diagrama de mai jos că Microkernel îndeplinește operațiuni de bază precum memoria, mecanismele de programare a proceselor și comunicarea între procese.

micro nucleu Architectură
Bazat pe microkernel Operating System

Microkernel este singurul software care se execută la nivel privilegiat. Celelalte funcționalități importante ale sistemului de operare sunt eliminate din modul kernel și rulează în modul utilizator. Aceste funcționalități pot fi drivere de dispozitiv, aplicații, servere de fișiere, comunicații între procese etc.

Componentele Microkernelului

Un microkernel cuprinde doar funcționalitățile de bază ale sistemului. O componentă este inclusă în Microkernel numai dacă punerea ei în exterior ar întrerupe funcționalitatea sistemului. Toate celelalte componente neesențiale ar trebui să fie puse în modul utilizator.

Funcționalitățile minime necesare în Microkernel sunt:

  • Managementul memoriei mecanisme precum spațiile de adrese ar trebui incluse în Microkernel. Conține și funcții de protecție a memoriei.
  • Mecanismele de programare a procesorului ar trebui să conțină programatori de procese și fire.
  • Comunicarea între procese gestionează serverele care rulează propriile spații de adrese.

Diferența dintre Microkernel și Monolithic Kernel

parametrii Miez monolitic MicroKernel
pachet de bază Este un proces mare care rulează într-un singur spațiu de adrese Poate fi împărțit în procese separate numite servere.
Cod Pentru a scrie un nucleu monolitic, este necesar mai puțin cod. Pentru a scrie un microkernel, este necesar mai mult cod
Securitate Dacă un serviciu se prăbușește, întregul sistem se prăbușește într-un nucleu monolitic. Dacă un serviciu se blochează, nu afectează niciodată funcționarea unui microkernel.
Comunicarea Este un singur fișier binar static Serverele comunică prin IPC.
Exemplu Linux, BSD-uri, Microsoft Windows (95,98, eu), Solaris, OS-9, AIX, DOS, XTS-400 etc. L4Linux, QNX, SymbianK42, Mac OS X, Integrity, Etc

Avantajele Microkernelului

Iată avantajele/beneficiile utilizării Microkernel

  • Arhitectura microkernel-ului este mică și izolată, prin urmare poate funcționa mai bine.
  • Microkernel-urile sunt sigure deoarece sunt incluse doar acele componente care perturbă funcționalitatea sistemului altfel.
  • Extinderea sistemului este mai accesibilă, astfel încât poate fi adăugată la aplicația de sistem fără a deranja Kernel-ul.
  • Microkernel-urile sunt modulare, iar diferitele module pot fi înlocuite, reîncărcate, modificate fără a atinge măcar Kernel-ul.
  • Mai puține blocări ale sistemului în comparație cu sistemele monolitice.
  • Interfața Microkernel vă ajută să impuneți o structură de sistem mai modulară.
  • Fără recompilare, adăugați funcții noi
  • Defecțiunea serverului este, de asemenea, izolată ca și defecțiunea oricărui alt program utilizator.
  • Sistemul Microkernel este flexibil, deci strategii și API-uri diferite, implementate de diferite servere, care pot coexista în sistem.
  • Securitatea și stabilitatea sporite vor duce la o cantitate redusă de cod care rulează în modul kernel

Dezavantajul Microkernelului

Iată dezavantajele/dezavantajele utilizării Microkernelului:

  • Furnizarea de servicii într-un sistem microkernel este costisitoare în comparație cu sistemul monolitic normal.
  • Schimbarea contextului sau un apel de funcție este necesar atunci când driverele sunt implementate ca proceduri sau, respectiv, procese.
  • Performanța unui sistem microkernel poate fi indiferentă și poate duce la unele probleme.

Rezumat

  • Un nucleu este o parte importantă a unui sistem de operare care gestionează resursele sistemului.
  • Un microkernel este un software sau un cod care conține cantitatea minimă necesară de funcții, date și caracteristici pentru implementarea unui sistem de operare.
  • În abordarea Monolithic Kernel, întregul sistem de operare rulează ca un singur program în modul kernel
  • Un microkernel este cea mai importantă parte pentru implementarea corectă a unui sistem de operare.
  • Un microkernel cuprinde doar funcționalitățile de bază ale sistemului.
  • Un nucleu monolitic este un proces mare care rulează într-un singur spațiu de adrese, în timp ce Microkernel poate fi împărțit în procese separate numite servere.
  • Arhitectura microkernel-ului este mică și izolată, prin urmare poate funcționa mai bine
  • Furnizarea de servicii într-un sistem microkernel este costisitoare în comparație cu sistemul monolitic normal