What kinds of things would you want in the GNU OS?

Bakul Shah bvs at light.uucp
Sat Jun 3 17:48:51 AEST 1989


In article <10357 at smoke.BRL.MIL> gwyn at brl.arpa (Doug Gwyn) writes:
>In article <1232 at pkmab.se> ske at pkmab.UUCP (Kristoffer Eriksson) writes:
>>Aren't you going to tell us what your scheme is?
>
>I'd rather not, at least not until the research types have finished
>working it over, but the basic notion is "it takes a handle to get a
>handle".  If that doesn't help, sorry -- wait until later when I have
>time to write it up (assuming it still seems like a good notion then).

Seems like you are advocating giving explicit handles for things
like root, current dir. to a user process instead of the current
`hidden' handles (which exist in the u. struct and are managed by
the kernel).  So then calls like

	open("/etc/passwd", ...)
and
	open("src/os", ...)

can be replaced by calls like

	obj_open(root, "etc/passwd", ...)
and
	obj_open(cwd, "src/os", ...)

In effect the concept of `current directory' disappears as one can
keep any number of directory handles around and walk relative to
them.  Which directories can be walked depends upon the initial
set of handles + directories reachable from this initial set.

We can generalize this behavior by replacing all Unix system calls
that depend on objects managed by the kernel on behalf of the user
with system calls that require explicit handles and let the user
handle them himself.

If this is sort of what you have in mind, I like it.

I'd go one step further and throw away the current flat system-
call interface.  Instead I'd define what kinds of objects are
implemented by a Unix like OS and define a minimum set of
operations for each kind.  Then every system call is a request for
a specific operation, made on an object whose handle is held by
the user process.  A compatibility library can be built to allow
running of standard Unix programs atop this object oriented Unix.

-- Bakul Shah <..!{ames,sun,ucbvax,uunet}!amdcad!light!bvs>



More information about the Comp.unix.wizards mailing list