Crafting a usable microkernel, processor, and I/O system with strict and provable information flow security