Our kernel requires a basic C interface to the chip for functions like malloc8.3, printf, stdlib functions.
In case of x86 we took the C library of OSkit and stripped it down8.4. For the other two architectures (arm & trimedia), we used the C library that came with their SDK's.
The bootstrap code is responsible for initializing the processor, loading the OS image from ROM and then start executing the OS.
For x86 we used the bootstrap code of OSkit. For the other two architecture, we didn't require a bootstrap code since we ran our OS on the simulator.
For the RTOS to do to any meaningful thing, it needs to interact with external devices, and hence would require device drivers.
For x86, we ported the device drivers for ethernet, vga and bttv frame graber card to our kernel.
For the other architecture, we only ran the producer consumer application and hence didn't require any device drivers.