[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