> gil wrote:
> > How can a modular operating system be written so that a user can write
and
> > install system functions (from core, tertiary, whatever), in a manner
that
> > any software including the kernel may call it.
>
> Dynamic linking. Basically, memory can be allocated for text/data where
> module files are loaded from disk and then they export their symbol table.
> Any modern Unix does this. Windows does this.
I've gotten that far.. I did not want to raise the ugly head of the
"dll" file since I
probally would have gotten flames out of my ears over the "non-elks" nature
of the
subject. So rather then get pointed at a windows message base I posted in
a naive manner.
I contend that such a mechanism would be beneficial enough to add the
capability to the kernel so that the system will not always have to be
recompiled
and it will lend a powerful and managable edge to the entire system.
That said, a possible example would be in library of graphics
primitives. The
standard library could be interrupt driven and basically portable among
8086s.
If the user decided to rewrite these procedures it could be done simply
since the
functions would all be documented (grin), and each routines parameters would
be
known. It would then be simple matter to install a new library
assembly-based
library and thus any program that used the old functions would be mapped on
to
the faster, more efficient user defined system.
Other uses would include networking abstraction, so the application
programmer
doesn't have to worry about the type of network that is being used.
Finally the important part, my questions.
How can such a system be written?
Do I have to make additions to the compiler so it will generate
dynamically
linkable files? If not how do I get a application to compile
without static
linking occuring?
How is it possible to actually due the linking? Is it done with a look
up table?
How can I get the file's symbol table, and relate it to the application
calls?
Again I thank you, for your reply.. If anyone is brave enough. (woooo)
Thanks also go out to Alistair Riddoch for all his work and Luke(boo) Farrar
for
his work on the networking code (which I cannot wait to see)