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

Richard Nuttall richard at torch.UUCP
Tue Jun 6 20:32:30 AEST 1989


No one has yet mentioned the User Interface. I think that considering
the User Interface component of your system at the earliest stage
is essential. (Or do you intend just to give everyone VT100 emulators
and SHi    8-| ).

Points to consider:

1) What UI are software developers going to use on your system?

2) What low-level primitives could you provide in the OS that will
   make UI development easier?

3) Do you want the machine to boot up directly into a fancy graphical
   interface rather than the standard console?

4) What languages are you going to provide for the users? Will the 
   choice of languages have an impact on how you write the OS?

5) What graphics system are you going to provide? Is it going to 
   allow code to be ported to/from it?



Here are some of the answers I would like to see.

1) The system will use a widely available UI, which will be bundled
in with the system. This will consist of (e.g. X, with PEX), as a 
portability layer, and a UI style on top (MOTIF? but this would 
probably cost money :-) ).
   Something like what the NeXT machine came with.

2) If you are going for X, then there are several low-level primitives
   that would help considerably.
 
   a) Very fast context switching, so that Server and Client can 
      swap quickly. (This would obviously be of great benefit
      elsewhere).

   b) A fast IPC mechanism, that can cope with large amounts of data
      (e.g. a 1024 X 1024 X 8bits Pixmap)

3) The "average" user is not interested in the console, and wants
   to have a powerfull interface immediately available on boot up
   ("O.K., so configure the system" I hear you say). If you always
   have this interface available, the OS can use it to communicate
   with the user, i.e with popup menus, message boxes, dialog
   boxes, and configuration panels.


4) Presumably you will provide C (GCC ? ). How about G++ as standard.
   Now you can go further. How about a fully object oriented standard
   library, (with C header files for those that don't want to use C++).
   File IO, for instance can be based around the FILE object and its
   methods, this in turn has the low-level file IO object as a parent
   in the class hierarchy.
   Windows, menus, message boxes, scrollbars can all be such objects.

   Again, the NeXT machine gives you some idea of what I want. But, don't
   go as far as the Mac, in removing terminals, etc! I still want to 
   be able to type a command occasionally 8-) .

5) Using X/PEX will make things fairly portable, but, this clashes with
   my wish to have everything object oriented and in C++. I don't have
   an easy answer here. My preference would be to allow a C interface, 
   but to encourage C++ and an object oriented approach where possible.



Footnote: I know it is possible to program in an object oriented manner in C,
  but it is hard work and not very pretty (Just try writing an X11 widget!!!!!).

-- 
Richard Nuttall               |    ukc!stc!datlog!torch!richard
Torch Technology Ltd.         |    0223 841000 X 309
Cambridge England             |    



More information about the Comp.unix.wizards mailing list