OS is generally written in the lowest-level language you can (because higher-level language can introduce a lot of ‘fluff’ and opportunities for errors), however, I’d start by modeling it in a higher-level language. My language of choice is C#, and that might translate well to C++.
C++? Strong typing is for weak minds.