I have been teasing around with the idea of writing virtual peripherals for more than a year now. However, I have only recently gotten started on it. The reason for doing it is to improve the performance of my processor.
However, I have recently begun to play around with the idea of writing a micro-kernel too, for layering a kernel on top. You see, although my processor is multi-threaded, there is little software support for it. However, if I can abstract this away at the micro-kernel level, the operating system software can go about running as if it is on a single-threaded processor.
Now, taking both these ideas together, I might feasibly combine the virtual peripherals and the micro-kernel. In essence, I will be writing a sort of virtual-machine that virtualises both the processor hardware and its peripherals. This is a massive undertaking and I don’t see myself finishing it anytime soon. Maybe it is time to solicit some help from some other developers.