[FreeBSD] Mikro vagy nem mikro

Hajdu Zoltan hajduzoltan at bsd.hu
2001. Már. 21., Sze, 15:30:06 CET


MONO. 

Mert a kernel egy nagy kernel modban futó process. S ezen nem változtat az sem, 
hogy vannak futás közben betölthetõ modulok. A mikrokerneles oprendszereknel 
(pl. QNX) a kernel szinte semmit nem tud, pl. csak process schedule-t, stb. Minden 
más - a lemezkezelés, a net, de még a memóriakezelés is - egy user level 
process. Persze itt egy kicsit más a kernel level/user level jelentése.  

Egy részlet a QNX user guide-ból:

The microkernel includes only a small set of core services within the kernel, 
including thread services, message passing, mutexes, condition variables, 
semaphores, signals, and scheduling. The kernel can be extended by dyamically 
plugging in service-providing processes, such as file systems, networking, POSIX 
message queues, and device drivers.

Mivel minden process saját memory protected address space-ben fut, 
elképzelhetõ olyan állapot is, hogy a memóriakezelés, a lemezkezelés már kihalt, 
de egyes service-ok tovább futnak. Persze ez ritka, mert ha a kernel érzékeli, hogy 
valami behalt, megpróbálja visszaállítani. Mono kerneleknél ha valami bukik, rántja 
az egész rendszert. 

Az NT-re azt mondják, hogy mikrokerneles, de ott olyan speciális megoldásokat 
használ a Microsoft, hogy ha valami behal, az csak magával rántson mindent, mert 
mégis csak ciki lenne, ha a kék halál után a rajta futó apache még mindig aktívan 
dobálná  a 'powered by apache' képeket és egyéb lapokat :-) 

Üdv:

Hajdú Zoltán
Miskolci Egyetem, stb, stb...  





További információk a(z) BSD levelezőlistáról