I wrote a toy OS (not for Amiga obviously), it was fun. My target was an emulator that emulates a fake computer based on the SuperH SH-2 cpu (which has no mmu). This architecture is well supported by the current GNU toolchain as well as by the newlib C library which made it relatively easy to get unix software running on the OS. Before I got bored I got GCC running and the OS was able to recompile it's own kernel. The emulator had deep hooks into the OS so the emulator was able to do memory checking.
Doing an OS without starting with a well supported toolchain and C library would be an interesting challenge, that's for sure.