This is mainly in my head at the moment, but would like some feedback if anyone has any thoughts on the matter.
The operating system will consist of a core kernel that basically boots, creates the environement necessary to support the managed code loader/executor. My goal would be to have all code that executes to be managed, including drivers and user application/services.
Managed drivers may be a wildcard here since a lot of them need direct access to the hardware, plus ample doses of ASM in order to speed things up, so things could change so basically everything above the kernel/driver layer would be completely managed code. The drivers in this case would have to support communication with the managed user layer if any such interaction would be required.
Additional problems with this would be that there would be no managed compilers and so forth. The positive would be that things would be pretty object oriented I would hope, so that should help make development a little more straightforward.
Lastly I would hope that the kernel portion could be kept as portable as possible so it could be ported to different CPUs in the future. One goal would be for the kernel to almost implement a virtual CPU so you could take a managed app and run it on x86 or even PPC since the virtual CPU code would not change in either place (no endian problems either as the virtual CPU would define a specific style that would be used no matter the underlying physicial CPU).
Thanks for listening to my ramblings. Comments/Questions/Suggestions welcome.
mike