since llvm is not ready yet, i have moved on to using gcc. i am testing the core. the environment handling and scheduling is being developed now. I am studying Earliest Eligible Virtual Deadline first algorithm which is similar to the current CFS in linux. I am planning to release the event core containing only interrupt stubs, environment and scheduler. The rest will be in environment and a libOS which is most likely plan9 like. But anything can happen. I might eventually end up reinventing linux in user space.
Im moving the entire development toolchain to llvm. This is going to be used to build kernel and user space.
Bye bye gnu make! bye bye autotools!
the new build system can now build itself. The makefile fragments are written in c and it is proprocessed into a c file and compiled into an executable that is then executed to do the actual build. It is inspired by icmake and logilogi.org make.
I have restarted developement of the kernel after resolving the directed yield handling in the mit exokernel. This particular issued stymied me when i first tried to reimplement the exokernel.
I am doing test driven development this time so i can test the code in userspace as much as possible. Only the absolute minimum will be written in assembly.
The coding style is very radical. Im not using macros at all. No conditional compilation and i use #import exclusively.... read more
The gnustep based environment development is already started. Testing is being done to determine the best filesystem heirarchy which will most probably be based on nextstep.
i have restarted development of subnucleus. im reimplementing parts of the oskit tree to be able to build the lowest layers of the kernel. interrupt handling and cpu multiplexing and execution of userspace programs. no system calls. just but up initialize the cpu and userspace and run a predefined number of environments.
i have restarted development of subnucleus. im reimplementing parts of the oskit tree to be able to build the lowest layers of the kernel. interrupt handling and cpu multiplexing and execution of userspace programs. no system calls. just but up initialize the cpu and userspace and run a predefined number of environments.
Im going to take a top down approach after the failure of the bottom up approach. Instead of starting development from the kernel im going to develop from user space first. This way issues about how the kernel should present the mechanisms to userspace will be understood. Imgoing to use a linux based development environment because we want linux compatibility. The base for this development environment is linux-2.6.4 with pax and selinux. The idea is to modify linux so that functionality is exported to userspace libraries without breaking linux compatibility. That way we have immediate gratification so i can maintain focus.... read more
bootstrap and cpu initialization is already working. quarq can now setup paging and remap itself to virtual memory.
Due to basic issues, one of which is my conversion to objective-c the c++ rewrite is dropped. I will be sticking to object based c for now. The rewrite continues in c. Bootable prototypes are all I have for now and the design still not final
The code has been overhauled and rewritten in c++. Experimental kernels are being worked on to to create c++ kernel runtime support.