I've basically finished version 1 of the framework - I'll package the source (VC++ 2005 only
) and binaries some time later.
Version 2 is going to be a complete rewrite. I'm combining some of the knowledge I've learnt from OSDeving with game deving. My new framework will be made up of:
- The kernel: The "main" parent of the kernel. The application interacts with the framework through the kernel.
- Servers: These handle things like the scene, managing content/network requests, the GUI, Sound, etc.
- Drivers: These interact my framework with other API's (Direct3D/OpenGL, DirectInput/XInput).
- The application: The end application that uses my framework. It'll be the lease privileged level in the kernel.
When I say the application is the lease privileged level, I mean at a theoretical level. There will be certain parts of the framework it can't access. Of course I can't force the end application to abide by this restriction like in a real microkernel
My framework uses smart pointers, and as such the kernel is responsible for memory management.
And drivers will be swappable. You will be able to replace the DirectSound driver with XACT.
Also, I'm going to
try to make the framework cross-platform. I'm not promising anything but I'll sort of have a Windows driver for Windows specific code.