2012-04-08 20 views
7

come fanno i programmi a comunicare con il kernel micro/kernel monolitico/kernel exo?come comunicare i programmi - kernel kernel kernel monolitico kernel exo

enter image description here

Ho letto molti libri che mostrano come nella foto, che i kernel monolitici comunica con il programma attraverso lo strato tavolo/filesystem chiamata di sistema.

Ma come i micro kernel e il kernel exo comunicano con il programma?

la base del micro-kernel parla direttamente con il programma e quindi il micro-kernel comunica con i server?

Aggiornamento: ho trovato questo ha risposto abbastanza bene

client-server o Microkernel sistema operativo L'avvento di nuovi concetti di progettazione del sistema operativo, microkernel, si rivolge a migrare traditionalservices di un sistema operativo fuori dal monolitico kernel nel processo a livello utente. L'idea è quella di dividere il sistema operativo in diversi processi, ciascuno dei quali implementa un singolo set di servizi, ad esempio server I/O, server di memoria, server di elaborazione, sistema di interfaccia dei thread. Ogni server esegue la modalità inuser, fornisce servizi al client richiesto. Il client, che può essere un altro componente del sistema operativo o un programma applicativo, richiede un servizio inviando un messaggio al server. Il kernel AnOS (o microkernel) in esecuzione in modalità kernel consegna il messaggio al server appropriato; il server esegue l'operazione; e microkernel consegna i risultati al client in un altro messaggio

+0

Questi libri non menzionano l'interfaccia di chiamata di sistema? In un certo senso, su sistemi * nix questo è il ** solo ** modo in cui la maggior parte dei processi comunica con il kernel. –

+0

@AdamMihalcin quindi cosa dici che il programma comunica con il kernel di base attraverso l'interfaccia di chiamata di sistema e non attraverso i server? – zeitue

+0

Anche qui in questi documenti https://docs.google.com/viewer?a=v&q=cache:P8U0Y9-4UPkJ:community.qnx.com/sf/sfmain/do/downloadAttachment/projects.core_os/wiki/Oct27_Microkernel_Innovation% 3Fid% 3Datch1222 + & hl = it & gl = us & pid = bl & srcid = ADGEESgXFLBn6HJD6f9RndRAJJikgttpH7VoD8MW-YVTg7X2AsucCnhr6m2Jj9ivbSS7DjXnqll7Z8WDyvd2Gb7cBGMWCkjb3sLcqSJinAemmdSHuA0nOJPkXw1KGO05uSJPzpSXAgXn & sig = AHIEtbSwaYInyP7NR98kM2hMJw5tsX5OrQ mostra c'è un autobus messaggio che tutta la cosa comunicare attraverso. ma non so ancora dove si trovi la tabella delle chiamate di sistema in questi microkernel. Programma – zeitue

risposta

2

Le chiamate di sistema sono il modo principale di comunicare con i kernel monolitici e micro. L'uso del kernel dell'interfaccia delle chiamate di sistema può fornire numerosi metodi IPC (come segnali, memoria condivisa, trasmissione di messaggi). A causa della natura dei microkernel, IPC è in genere la parte più importante di tale kernel e viene utilizzato per consentire ai programmi di comunicare con i server.

In altre parole, esistono chiamate di sistema che consentono ai programmi di effettuare richieste al kernel. Il kernel fornisce alcuni metodi IPC che consentono ai programmi di comunicare tra loro, inclusi i server in sistemi operativi basati su microkernel.

+0

in modo che il programma comunichi con il kernel come se fosse così programma -> libreria -> server -> kernel quindi <-, sì? – zeitue