[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Questions about translators
Re: Questions about translators
Mon, 24 Mar 2003 02:32:33 +0000
They're three big questions ;)
On Sun, Mar 23, 2003 at 07:50:07PM -0500, Hiran Watson wrote:
> I have three questions about translators.
> The first is what happens when a server executes a translator?
"translators" and "servers" are two names for the same thing. The
name "translator" is very fitting sometimes but sometimes it's
> That is, is
> the translator run as a layer between the kernel and user app
Usually, yes. Everything on your system is an app, the kernel
(GNU Mach) runs as a kernel process, everything else is a user
app. There's nothing special about translators, they're just
> making system calls to accomplish things like internally opening
> files/directoris as well as using the original port for information to and
> from the user app and server)? Or is it run as a layer between the server
> and kernel (thereby making server-specific function calls to accomplish the
> same things mentioned above)?
With the knowledge that translators and servers are the same
thing, could you ask this bit again?
> Secondly, are the servers and translators run as user processes or system
> processes? What about the kernel?
only the kernel is kernelspace. Everything else is userspace.
Some applications are persistent, we usually call them servers.
Apache is a HTTP server, it handles HTTP commands.
One of the servers which makes up the GNU Hurd is called 'ext2fs'.
It is an "Ext2fs server", it handles Ext2fs commands.
Linux provides built-in support for ext2fs and can handle these
requests without the need for a userspace app. GNU Mach does not
contain support for Ext2fs, it contains the bare minimum
funtionality to allow ext2fs and other filesystems to be handled
> Thirdly, why is there a need for translators?
It depends on how you want to design your kernel. Monolithic
kernels like Linux consist of a scheduler, memory pager, device
drivers, filesystems, etc.
Microkernel architecture aims to have a kernel which does the bare
minium and provide a bunch of userspace apps that provide the
> They just seem like an extra
> layer (or "middle-man") between the user app-kernel-server connection that
> would otherwise occur.
It comes down to a trade-off. Microkernel architecture offers
much greater possibilities for security an stability since the
kernel exists as five or ten seperate apps, only one of which is
running in kernelspace. It is also possible to write faster apps
for microkernel systems by making use of the low level kernel API
that is exposed that doesn't exist in monoliths.
The GNU Hurd isn't the greatest kernel in the world yet but it's
definitly one of the most interesting. It's needs a few more
developers but it is usable as-is right now.
I'm sure this info will create as many questions as it answers,
please mail the list again.
a quick note: I used to be confused about translators because I
read somewhere that "translators can be embedded in file systems".
This is not true, a reference (i.e. the name) to a translator can
be stored (as "meta data") in most file systems.
(can someone on the list let me know if my info is correct?)