executables: COFF

Francois-Rene Rideau rideau@clipper
Tue, 13 Dec 94 22:44:05 +0100


   I'd like to use this as the starting ground for writing OS code that
   will set up its own tables for segmentation, paging, exceptions,
   tasks, etc. then load in the a.out kernel image of the operating system.

   DJGPP under DOS sounds like a reasonable cross-compiler, no? I mean,
   you can tell it to not include the standard library or other startup
   material when it creates the a.out file.

   Such things already have been done: see the VSTa operating system (look at
ftp.cisco.com:/pub/vandys/vsta, ftp.cygnus.com:/pub/embedded/vsta, or
ftp.ibp.fr, or mail to the author vandys@cisco.com, or to the mailing-list
vsta@cisco.com (un)subscribes being on vsta-request.
   As of strictly COFF and a.out formats, you may find useful information
in the bfd package from GNU, or in the sources of the Linux kernel.

   VSTa is some microkernelish operating system written in C, with enough
device drivers to be serious, and a somewhat unix-like interface, with
many ideas from plan9 and qnx. It's compiled using gcc, and works with
GCC versions under DOS (DJGPP), VSTa, or any Unix (including Linux).
You may want to have a look at it (whether you'll actually use it and
hack it or just have a look at the sources). It currently boots from a
DOS program (that takes over control of the whole machine).

   Now, if you're an OS hacker with original ideas, and interested in
participating in a project, I'm also maintaining a mailing list project
for some completely new kind of OS, which would be persistent (objects
exist exactly as long as they are needed; no such thing as explicitly
saving/restoring/checking objects from raw binary files), distributed,
unified (some unique object/function/whatever concept to manipulate),
fine-grained (tiny objects may be manipulated; not only huge ones)
high-level (the underlying virtual machine does not allow programs to
crash the system; thus no need to isolate usual programs in separate
address spaces), etc. 
   The most difficult problem to solve (the same happens to all OSes that
want to be something different than Unix) is the language: C definitely
sucks, and if you use it, you end up with hugeware, and specific,
ad-hoc-ware. To produce an OS that will actually be useful, we need
abandon C and its facilities. Perhaps you may not like it (but I think
that anyone knowing lots of languages will agree with me -- don't worry,
I myself was a C freak when I first discovered it).
   So, if you're interested, you may mail me, or subscribe directly:
mail listserv@ens.fr <<END
sub tunes Kazimir
END
(subscription address from "From:" field, I believe).


   If you wanna contact other people who have done or are writing
"their own" OS (so they give you some advice), I have some addresses
too...

   Hope this helps...