man, uite povestea este cam asa, mi-a explicat-o si mie un programator de 
kernel linux
exista doua tipuri de kernel, dinamic si monolitic (a nu se confunda ce 
discut aici cu compilarea in kernel a driverelor sau ca module la kernelul 
de linux, au acelasi termen dar este altceva)
un kernel dinamic este bazat pe un microkernel care este incarcat la 
inceput si peste el este incarcat kernelul propriuzis. fiecare procesor are 
trei moduri de executie, 1 mod kernel, 2 mod utilizator si 3 nefolosit. 
mikrokernelul ruleaza in mod 1 pe cand kernelul ruleaza in mod 2. teoretic 
astfel de kernel este cel mai performant, dar alocarea si realocarea 
ontinua a spatiului de memorie si adreselor de executie la trecerea de la 
un mod la altul in face nu asa de performant. o astfel de arhitectura iti 
permite absolut totul in proces, pana si driverele, ceea ce se nmeste 
threaduri la nivel de kernel. daca un driver ti s-a infipt nu ai kernel 
panic sau sistemul blocat ca la linux, il killarsti si pleci mai departe. 
procesele (threadurile) din kernelul propriuzis sunt in spatiul utilizator 
si nu au nimic de-a face cu threadurile din microkernel. de fapt icrokenlul 
este un server si kernelul este un client al microkernelului si 
intercationeaza intre ele printr-o tehnologie client server. sper sa fi 
intele ceva pana aici. astfel de sisteme exista deja si sunt MAC OS X, 
Solaris 2.x si HURD.
de cealalta parte avem Linuxul cu kernel monolitic (a se citi dintr-o 
bucata) care se incarca tot odata si este executat in spatiul uilizator, 
iar cand kernelul trece procsorul in mod 1 sa excute cod de drivere scrise 
prost sau care dau erori se poate produce chiar inghetarea sistemului. cu 
kernel 2.5 se incearca si chiar au reusit threaduri native la nivel de 
kernel pe modelul monolitic, dar alocarea memoriei si a spatiului de 
adresare este o chstie e finete si trebuie mult tstat ca este foarte 
complex. Linus insista pe modelul asta ca este cel mai performant la 
momentul actual, chiar daca teoretic celalalt este mai kool.
cam ata este diferenta intre HURD si Linux Kernel, primul este bazat pe 
arhitectura microkernel si microcod, iar al doilea est monolitic, dintr-o 
bucata, aici intrand si *BSD si chiar si AIX.
sper s fi inteles ceva din ce am scris eu aici, tipului i- luat o ora sa-mi 
explice chestia, dar mi-a explicat-o beton.


---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui