[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Questions about translators

From: Hiran Watson
Subject: Re: Questions about translators
Date: Mon, 24 Mar 2003 14:06:24 -0500

If this is a repeat email, I apologize, but I think I forgot to actually send the reply before (I accidentally signed out of Hotmail...oops). Anyway, I'm still not sure though what happens when the end-user app sends a message on a port. Does the message get sent to the kernel which then sends it to the server? Or does the message get sent directly to the server? Also, if the message gets sent directly to the server, then what does the kernel do, since a program will get (upon startup) the port of the root filesystem, and then any calls made that require other servers will be handled by the root filesystem server? Thanks again.

God bless

From: "M. Gerards" <>
To: Hiran Watson <>
Subject: Re: Questions about translators
Date: Mon, 24 Mar 2003 10:58:37 +0100
MIME-Version: 1.0
Received: from ([]) by with Microsoft SMTPSVC(5.0.2195.5600); Mon, 24 Mar 2003 01:58:40 -0800 Received: from ( [])by (Postfix) with ESMTPid AC6FF80A1; Mon, 24 Mar 2003 10:58:39 +0100 (CET) Received: from ( [])by (Postfix) with ESMTPid 4146917808; Mon, 24 Mar 2003 10:58:39 +0100 (CET) Received: from ( [])by (Postfix) with ESMTPid EA267807F; Mon, 24 Mar 2003 10:58:38 +0100 (CET) Received: from ( [])by (Postfix) with ESMTPid D9F8CC045; Mon, 24 Mar 2003 10:58:38 +0100 (CET) Received: by (Postfix, from userid 48)id 95AAD7871; Mon, 24 Mar 2003 10:58:38 +0100 (CET) Received: from ( [])as user by with HTTP;Mon, 24 Mar 2003 10:58:37 +0100
X-Message-Info: JGTYoYF78jEHjJx36Oi8+Q1OJDRSDidP
Message-ID: <>
References: <>
In-Reply-To: <>
User-Agent: Internet Messaging Program (IMP) 3.1
X-Virus-Scanned: by AMaViS
X-OriginalArrivalTime: 24 Mar 2003 09:58:41.0225 (UTC) FILETIME=[F2C2B390:01C2F1EB]

> Secondly, what happens when an end-user app makes a system call (ie, open
> some file, or read, or write, etc.)? Does the call get caught by the kernel > which passes it onto the appropriate server? If so, then the layers would be
> end-user apps on top; they're connected to the kernel; and the kernel is
> connected to the servers; and finally the servers are connected to physical > hardware? If so, what about servers that don't actually mess with hardware?

Mach is used for communication with the server. Ports are used for IPC and
messages can be passed around using systemcalls. So the kernel is only used for
communication, it does not understand what is in the messages.

When a program is started it gets a few portright from its parent, for example
the port of the root filesystem. This port can be used to access files and
other stuff like the socket servers.

The interface for the filesystem is defined here:

The routine dir_lookup is used to lookup a file. A port right is returned by
this routine to access the file.

The interface for IO is defined here:

All these operations can be implemented for files, for example io_read.

Every server can implement more interfaces. This is used for sockets, the
password server, etc.

If the filesystem wants to read a block from disk currently mach is used. Mach has interfaces that can be used for hardware access. In the future, when L4 is
used instead of Mach this will be done in userspace too :)

Perhaps I made some mistakes(like mach terminoligy), but this is how it
generally works :). I don't implement servers directly on mach, the Hurd has
some cool libraries that made me lazy ;). Feel free to ask more questions if
something is not clear yet.



Help STOP SPAM with the new MSN 8 and get 2 months FREE*

reply via email to

[Prev in Thread] Current Thread [Next in Thread]