Whats bad about a High Flex Modular Operating System.
I read a bunch about people wanting to take the object oriented approach to the system, mainly this is great so i dont redefine many of my own ideas that stray very close to some of you guys own, but a major aspect in my operating system i am developing is speed. The modular glue for a modular system is the most important aspect when considering speed. For example:
If you are using a method of references objects though-out your system, mabye as a URL type deal.
/system1/board/agp/video1
/system1/sys/user/kevin
/system1/board/fdc/fd1
This glue is in reference to the code that resolves these references into actual address's of where the data or device is and what type of address it is. The problem, being quite relavent here in terms of speed is that..
A. Every time a program accesses a device using the URL like scheme the reference is resolved though a global table or code of some sort.
B. The references are resolved before run-time, excluding, the glue code during run-time.
B, seems harder but would shift the speed drag from run-time to load-time and i think anyone would rather have a load-time than run-time if they thought about it really hard.
Flexibile, Can the system run with the GUI stripped down to almost nothing or in full 32 bit brillant color.
Are you able to unmount/mount FS while processes and threads are operating from them. Causing them to freeze and then resume when it is remounted. Early, extended, and enhanced network support made possibly by the extreme modular approach allowing distributed processing and networking over a USB, SERIAL, and many other communication methods to a host computer providing the TCP/IP and/or ethernet layer. All made possible by the extreme orginizational and modular supported structor of the kernel.
Just for a example, and a look-inside at the pssiblity of making a vga driver work with a ethernet driver to provide native low-level remote displays..
Expand drivers into sub-modular levels, yet seperate from each other. (controller=driver)
-> Serial Ether Interface Controller
-> USB Ether Interface Controller
-> Remote Ether Interface Controller
-> Ne2000 Compatible Controller
-> Ethernet Controller
Remote Bus Interface Controller
Bus Interface Controller
Bus Controller
-> ISA Controller
-> PCI Controller
-> AGP Controller
-> VGA/SVGA Controller
-> VGA/SVGA Interface Controller
-> Remote VGA/SVGA Interface Controller
The system could mount up using the second best, since the choosen one "remote vga/svga" is not able to be loaded and use the normal vga/svga interface. Later, the system automaticly checks it pending controller list and configures the system to use the remote vga controller. Also, providing the ability to load a VGA/SVGA interface for multiple moniters. You could load a
VGA/SVGA Interface Controller
Remote VGA/SVGA Interface Controller
At the same time, since both of these run under the
VGA/SVGA Controller - providing some interesting results of being able to switch the system between them. Of course, problems could arise, so give the kernel is own native low-down vga driver internally to provide a ctrl+alt+del interface to reseting witch interface is being used if a problem occurs. This is called flexibility.
Multiple mouse cursors on the screen, if you have two hooked up? Who would need that? but the point is does the system have the potential to do so.
Mabye using more than one USB and two serial connections to complete a distrubuted processing system between two or more computers. Also allowing one computer to crash and not crash or cause a reset to be forced between all the systems.
http://hf-mos.members.easyspace.com