Well, I have just proved it !!
I'd hardly call something which is in effect a "Hello, World!" an operating system, and it includes various assembler etc.
I have managed to write a bare-metal microkernel in Modula-2 (Wirth's next language), which relied heavily on the language's built-in coroutine support to switch between threads. Also it used an external binder to fudge descriptor tables etc.
I'm not sure that it's possible to write a useful OS from scratch in a high-level language unless you either
* Embed processor-specific assembler
or
* Have extensions to the language which might be great from the POV of the OS writer, but are definitely not the sort of thing that you'd allow most application programmers to get their hands on
or
* Have a specialist OS-builder to handle binary generation
MarkMLl