Nucleu monolitic
Acest articol sau această secțiune are bibliografia incompletă sau inexistentă. Puteți contribui prin adăugarea de referințe în vederea susținerii bibliografice a afirmațiilor pe care le conține. |
![](http://178.128.105.246/content-http-upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Kernel-monolithic.svg/220px-Kernel-monolithic.svg.png)
Un nucleu monolitic este o arhitectură de nucleu în care întregul nucleu se rulează în spațiul nucleului și în mod administrator. Spre deosebire de micronucleu în care sunt implementate minimul necesar de funcții pentru rularea acestuia, în nucleul monolitic toate driverele sunt compilate împreună pentru a forma un singur program. Avantajele acestuia sunt optimizarea codului realizată de către compilator. Dezavantajele sunt spațiul de memorie comun; o eroare în unul dintre drivere poate bloca întregul nucleu.
Module încărcabile
[modificare | modificare sursă]Majoritatea sistemelor de operare monolitice moderne, cum ar fi OpenVMS, Linux, BSD și variante UNIX cum ar fi FreeBSD, NetBSD; SunOS(d) și AIX, MULTICS pot încarca (și descărca) dinamic module executabile în timpul rulării. Acest caracter modular al nucleului este la nivelul binar (imagine) și nu la nivelul arhitecturii nucleului. Nucleele monolitice modulare sunt diferite la nivel arhitectural de modularitatea prezentă în micronuclee (și derivate numite nuclee hibride). Încărcarea dinamică a modulelor este o metodă mai flexibilă de manipulare a imaginii nucleului în timpul rulării și se opune repornirii cu o imagine diferită de nucleu. Modulele permit extinderea facilă a capabilităților nucleului. Modulele încărcabile dinamic implică o complexitate minimă, comparativ cu modulele compilate în imaginea nucleului. În unele cazuri, încărcarea dinamică a modulelor ajută la minimalizarea cantității codului ce rulează în spațiul nucleului, spre exemplu pentru a minimaliza dimensiunile sistemului de operare pentru dispozitive embedded cu resurse hardware limitate. Un modul descărcat nu trebuie să fie stocat în RAM.
Sisteme de operare care au nuclee monolitice:
- Linux
- BSD (FreeBSD, NetBSD, OpenBSD)
- Solaris
- MS-DOS
- Microsoft Windows 9x (Windows 95, Windows 98, Windows Me
- Mac OS până la Mac OS 8.6
- OpenVMS(d)
- XTS-400(d)
Module încărcabile
[modificare | modificare sursă]Sistemele de operare modulare precum OS-9 și cele mai moderne sisteme de operare monolitice precum OpenVMS, Linux, BSD, SunOS, AIX și MULTICS pot încărca și descărca în mod dinamic module executabile.
Această modularitate a sistemului de operare este la nivel binar și nu la nivel de arhitectură. Sistemele de operare monolitice modulare nu trebuie confundate cu cele cu nivelul arhitectural de modularitate inerent sistemelor de operare server-client (și derivatele sale comercializate uneori ca nucleu hibrid) care utilizează microkernel-uri și servere.
Practic, încărcarea dinamică a modulelor este pur și simplu o modalitate mai flexibilă de a gestiona imaginea sistemului de operare în timpul execuției, spre deosebire de repornirea cu o imagine diferită a sistemului de operare. Modulele permit extinderea ușoară a capabilităților sistemelor de operare, după cum este necesar. [1] Modulele care se pot încărca dinamic implică o mică suprasarcină în comparație cu construirea modulului în imaginea sistemului de operare.
Cu toate acestea, în unele cazuri, încărcarea modulelor în mod dinamic ajută la menținerea cantității de cod care rulează în spațiul kernel la un nivel minim; de exemplu, pentru a minimiza amprenta sistemului de operare pentru dispozitivele încorporate sau cele cu resurse hardware limitate. Un modul descărcat nu trebuie să fie stocat în memoria cu acces aleatoriu limitat.