A functional approach to memory-safe operating systems (2011) [pdf]
pdxscholar.library.pdx.edu
pdxscholar.library.pdx.edu
http://4e.iwp9.org/papers/usecsys.pdf
All very much over my head, of course, but always interesting to see paradigms prove robust all the way up and down the software stack.
luu, could you say a few words on what you found interesting about this thesis? The first chapter sounds impressive, but later it only seems to be defining a monad around typical operating system tasks. That means you still have to deal with GC, and I would not call that approach "well integrated with purely functional programming", as it essentially defines an imperative DSL. But I have only looked at this briefly and I would appreciate deeper insight.
https://www.microsoft.com/en-us/research/project/singularity...
https://en.wikipedia.org/wiki/Midori_(operating_system)
None are functional but as noted in other comments, you end up needing to do everything in a monad anyway if you try to do an OS in an FP language. An OS is all about managing a large and fundamentally imperative block of hardware state so pure FP isn't an obvious fit.
Another older procedural approach would be Solo with Concurrent Pascal. http://pascal.hansotten.com/per-brinch-hansen/superpascal/