<br><br><div><span class="gmail_quote">On 6/18/07, <b class="gmail_sendername">Andrew Coppin</b> &lt;<a href="mailto:andrewcoppin@btinternet.com">andrewcoppin@btinternet.com</a>&gt; 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 &#39;Titto&#39; Assini wrote:<br>&gt; I think that we should not underestimate the transforming power of dogged<br>&gt; determination.<br>&gt;<br>&gt; Think of Linux: only a terminal idiot could have conceived the plan of writing
<br>&gt; from scratch a clone of a 20 years old operating system (Unix) when everybody<br>&gt; knew that momentum was on the side of the weaker solution (Microsoft) in the<br>&gt; PC market and on the many existing commercial Unix versions in the
<br>&gt; professional market.<br>&gt;<br>&gt; Well, we all know what that stupid idea has led to. I certainly do, as I am<br>&gt; writing this message under Linux.<br>&gt;<br><br>That reminds me... Somebody should write an *OS* in Haskell! :-D
<br><br>If that happened, then maybe at last I&#39;d be able to have a choice other<br>than M$ Windows (with all it&#39;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&#39;t even support I/O? :-S</blockquote><div><br>Well, there hasn&#39;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&#39;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 &amp; that did all the fundamental interactions with the the hardware.&nbsp; The operations of H, as with IO, have to be primitives in the runtime that you&#39;re using and probably written in C or assembly.
<br></div><br></div><br>