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