What kinds of things would you want in the GNU OS?
Bakul Shah
bvs at light.uucp
Wed Jun 7 16:57:15 AEST 1989
In article <40062 at cmcl2.NYU.EDU> edler at cmcl2.UUCP (Jan Edler) writes:
>In article <1989Jun3.004854.18111 at light.uucp> bvs at light.UUCP (Bakul Shah) writes:
>> open("/etc/passwd", ...)
>>and
>> open("src/os", ...)
>>
>>can be replaced by calls like
>>
>> obj_open(root, "etc/passwd", ...)
>>and
>> obj_open(cwd, "src/os", ...)
>>
>
>We considered extending the kernel/user interface in something like
>this way, but tentatively rejected it.
[edited]
>We decided that it was better to extend the pathname notion, than to
>extend all system calls taking pathnames so they take a handle too.
>The reason for this preference ... was the
>desire to treat handle+path specifications as simple strings that can
>be used exactly the same way pathnames have always been used.
> ...
> My current preference is to say that "/@" at the beginning
>of a pathname, followed by a file descriptor number (as a string of
>digits) and a "/", means to take the object referred to by the file
>descriptor as the search starting point.
[edited out a list of relevant issues/problems]
>Any comments?
1. If the goal in introducing the ``/@nnn/foo/bar'' syntax is to
efficiently reference files in any of several frequently-used
directories, then the number of new problems introduced by the
new notation seems like too heavy a price to pay for it.
2. I am not sure I understand the benefit of keeping handle + path
spec. as simple strings. I am hoping for something stronger
than ``that is how pathnames have always been used''.
3. A naming scheme like yours can be implemented on top of a
simpler scheme (like obj_open) and entirely in user mode. IMHO
this is a Good Thing (atleast until you iron out all the
problems in your scheme :-)
4. You need not objectify all system calls. If all you want is the
convinience of multiple current working directories, you can
simply add a new syscall for obj_open() and replace open()
syscall by open() library routine.
At this point I am not too keen about any new feature that
*increases* the size of a kernel. Sys V / 4.3 BSD kernels are
already too big and still, they are limited. In their place I would
like to see a simple kernel that I can completey understand and keep
in my head without having to flush out everything else. This kernel
should implement a small set of very simple mechanisms from which
existing interfaces and more can be built. I believe an object
kernel + a user-level shared library for compatibility can meet this
goal. Now all I need is some time and resources to prove this....
-- Bakul Shah <..!{ames,sun,ucbvax,uunet}!amdcad!light!bvs>
More information about the Comp.unix.wizards
mailing list