We have made the RTKER extremely modular. there are a clear set of functions defined for doing jobs like thread, semaphore, scheduling management and context switching. It has a driectory based separtaion of cpu/architecture dependent code from the architecture independentt code. This modular struture also makes RTKER easily portable.
We have defined a new concept of a scheduling API. RTKER schedules threads using a scheduler object which has functions like sched_create_thread(), sched_heir_thread(). Application developer can either chose from a predefined set of schedulers (like fifo, edf) or define the scheduler object himself and thus optimize on algorithms and data structures used for scheduling.
Since RTKER caters to the demands of a real time computing environment, it should respond immediately to interrupts. This leads to a two level handling of interrupts - the (fast) immediate interrupt handling function and a second half interrupt handling function which runs with a thread context.
RTKER has borrowed oskit's device driver framework which enables it to support a large variety of devices. Presently it has drivers for VGA, EEpro100 ethernet card and BTTV Frame grabber card on the x86 architecture.