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

Peter da Silva peter at ficc.uu.net
Sat May 27 13:56:09 AEST 1989


In article <1049 at snjsn1.SJ.ATE.SLB.COM>, johnb at aconcagua (John R. Bashinski) writes:
> When you open a
> file, you establish a connection to some kind of object. It may be
> implemented by kernel code or by user-mode code. You can send data to it,
> read data from it, maybe seek it, and maybe map it into your address space.
> What it does with your data is type-specific.

So, you want a file to be an object that responds to messages like 'read',
'write', 'attach', etc...

> type-specific commands, using something like ioctls, but more general;
> perhaps typed reads and writes.

More messages...

> It can generate events that wake you up
> and/or signal (or something better than signal!) you when it has data for
> you.

Best to fork a thread that does a wait on the fd/message-port. Make wait
accept a list or mask of events to wait on. Each thread itself has a port,
when it exits a 'died' message goes back. Parent can wait on that port and
get that message... or you can send a fake death message early...

> It should be possible for user-mode code to "get behind" mount points,
> and maybe even disk "files" and "directories", and provide services. It
> should be possible to have the trailing part of a pathname passed to
> whatever implements a "directory" for further processing.

Just have a process attached to the file system at that point, and have it
understand file messages on its port. namei() can send it such a message...

> There probably also needs to be some kind of unique object
> identifier that can be a successor to the inode.

Just another message port.

> My personal desires: Definitely TCP/IP. Definitely NFS. Maybe RFS. Maybe OSI.
> Make it easy to add stuff. Use Streams/TLI (perhaps somewhat extended) for
> the real networking code, but provide a socket emulation library.

Streams are pretty wimpy compared to a general message structure like this.
-- 
Peter da Silva, Xenix Support, Ferranti International Controls Corporation.

Business: uunet.uu.net!ficc!peter, peter at ficc.uu.net, +1 713 274 5180.
Personal: ...!texbell!sugar!peter, peter at sugar.hackercorp.com.



More information about the Comp.unix.wizards mailing list