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

Brandon S. Allbery allbery at ncoast.ORG
Thu Jun 1 08:41:59 AEST 1989


As quoted from <422 at ladcgw.ladc.bull.com> by frank at ladc.bull.com (Frank Mayhar):
+---------------
| In article <106326 at sun.Eng.Sun.COM> bitbug (James Buster) writes:
| }Security:	ACLs? Get rid of root? Security monitors? Auditing?
| }		Provably secure(A1)?
| 
| Better security is always a good thing.  Security's not my forte, so
| I'll leave it alone.
+---------------

...provably secure?  From RMS???  You dream.  (On the other hand, the lack
of security that RMS prefers would be the biggest stumbling block in getting
people to *use* GNU... whereas I, for one, would like to see a lot of tin
gods topple when GNU becomes the industry standard.  [ 1/2 ;-) ]

+---------------
| and maybe even adjustable on the fly by a privileged user.)  This
| would keep one user from starting sixteen compiles and bringing a
| system to its knees.
+---------------

...I think I'm in trouble.  ;-)

+---------------
| }Virtual Memory:	Should GNU run on non-VM machines? Algorithm ideas?
| }		How general (map *everything* into VM space, like Multics)?
| }		Shared libraries?
| 
| I like the SunOS virtual memory concept (minus the current crop of bugs, of
| course).  If you're writing a Real Operating System, why worry about machines
| that won't support virtual memory.  Hell, by the time Gnu is ready, non-VM
| machines will probably be a thing of the past anyway.  Shared libraries
| are good.  Shared instruction space (text?) is another good idea, that can
| help save on memory requirements for often-used programs.
+---------------

Aside from unburied corpses like ncoast, non-VM machines already *are* a
thing of the past.  Heck, any 386 has VM.

+---------------
| }Networking:	NFS? RFS? Something better?
| }		Interfaces: Streams? TLI? Something better?
| }		TCP/IP? OSI? SAA/SNA:-)?
| }		RPC Services? What kind?
| 
| Something better.  But don't ask me what.  NFS is OK, but it has problems.
| You would want to support TCP/IP, at least at first (maybe using the BSD
| code), but OSI is probably the way to go.  SNA makes me gag.  (Actually,
| all of IBM makes me gag. :-)
+---------------

OSI, with a TCP wrapper for compatibility with present systems.

I'd prefer Streams.  REAL Streams, not the botch that was added to System V.
(Or did V8 live in vain?)

Network file systems:  something better than NFS.  Something better than RFS.
I suspect it has to be stateful; file locking effectively ended the reign of
stateless NFS. But RFS can't handle non-UNIX filesystems *transparently*.
(On the other hand, the File System Switch helps to cure that.)

I advise mixing and matching from NFS and RFS, combined with anything else
you can come up with that would *work* (no kluges, please!!!).

+---------------
| }Overall Design:	What nice ideas from other OSes could we use?
+---------------

I'd like to see a generalized namei() which supports environment variables.
This is upwardly compatible with DEC-style logical names and also provides
something similar to symlinks -- with the kind of multiple-universe stuff
that many Unixes now have (useful if Gnu itself diverges in any appreciable
way from Berkeley Unix, and also useful to us die-hard System V users).

+---------------
| }How about this? Make everything a user process which serves
| }a resource to a client. Resources include the CPU (scheduler),
| }memory (VM), disk (file system), network (sockets, etc),
| }serial lines (terminal handlers), etc. Each server determines the access
| 
| Excellent idea!  Promotes modularity, and allows flexibility.  Almost a
| plug-and-play operating system.  One problem, though:  there would have
| to be some sort of privilege level system, so that the resource handlers
| can do things like write other user's memory, directly access devices,
| re-map memory, etc.  And you would have to provide at least minimal
| functions in each module in the initial release.  Not everybody is
| an OS developer.
+---------------

"Minimal functions"?  I think that what'll be provided is the set of servers
which implements standard GNU (and, obviously, with source -- well-commented,
I hope (hint, hint!).  --Multiple copies of these should be able to run at
the same time.  OS compatibility then becomes a non-issue; if a System V-er
gets an account, start up the System V-emulating servers, which will be
paged out unless and until that user makes a System-V-style request.

++Brandon
-- 
Brandon S. Allbery, moderator of comp.sources.misc	     allbery at ncoast.org
uunet!hal.cwru.edu!ncoast!allbery		    ncoast!allbery at hal.cwru.edu
      Send comp.sources.misc submissions to comp-sources-misc@<backbone>
NCoast Public Access UN*X - (216) 781-6201, 300/1200/2400 baud, login: makeuser



More information about the Comp.unix.wizards mailing list