<br><br><div><span class="gmail_quote">On 6/18/07, <b class="gmail_sendername">Andrew Coppin</b> <<a href="mailto:andrewcoppin@btinternet.com">andrewcoppin@btinternet.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Pasqualino 'Titto' Assini wrote:<br>> I think that we should not underestimate the transforming power of dogged<br>> determination.<br>><br>> Think of Linux: only a terminal idiot could have conceived the plan of writing
<br>> from scratch a clone of a 20 years old operating system (Unix) when everybody<br>> knew that momentum was on the side of the weaker solution (Microsoft) in the<br>> PC market and on the many existing commercial Unix versions in the
<br>> professional market.<br>><br>> Well, we all know what that stupid idea has led to. I certainly do, as I am<br>> writing this message under Linux.<br>><br><br>That reminds me... Somebody should write an *OS* in Haskell! :-D
<br><br>If that happened, then maybe at last I'd be able to have a choice other<br>than M$ Windows (with all it's well-documented faults), and Unix (with<br>its legendary unfriendliness and unecessary complexity).
<br><br>OTOH... how the heck do you write an operating system in a language that<br>doesn't even support I/O? :-S</blockquote><div><br>Well, there hasn't been a lot of work done on the subject but you probably should look at
<br><a href="http://programatica.cs.pdx.edu/House/">http://programatica.cs.pdx.edu/House/</a><br>Now if you're seriously asking how one would do it, the basic approach taken in the paper was to create a monad H that was a controlled subset of IO & that did all the fundamental interactions with the the hardware. The operations of H, as with IO, have to be primitives in the runtime that you're using and probably written in C or assembly.
<br></div><br></div><br>