On 6/18/07, Creighton Hogg <wchogg@gmail.com> wrote:


On 6/18/07, Andrew Coppin <andrewcoppin@btinternet.com > wrote:
Creighton Hogg wrote:
> Well, since we're on the subject and it's only the Cafe list, what is
> it that you find messy about Linux that you would want to be solved by
> some hypothetical Haskell OS?

This is drifting off-topic again, but here goes...

Yeah, so I'll just split this off into a different thread.

There are lots of things to like about Linux. It doesn't cost money.
It's fast. It's reliable. It's flexible. It's secure.

Okay, I'm not sure if I'd agree with the reliable & secure points.  I mean, relative to what could be done.  I'm a rank amateur when it comes to OS work but when I've looked at recent papers Linux really isn't that cutting edge.  I mean, it may be reliable in comparison to Windows 98 & has less known exploits than any Windows system, but in terms of how good it *could* be I think there's an awful lot of room for growth. 

However,
unfortunately it's still Unix. In other words, it's a vast incoherant
mess of largely incompatible ad-hoc solutions to individual problems
implemented independently by unrelated hackers over the 40+ years of
history that this software has been around. New software has to emulate
quirks in old software, and client programs work around the emulated
quirks in the new software to get the functionallity it actually wants.
One vast tangled mess of complexity and disorder. Exhibit A: Package
managers exist. Exhibit B: Autoconf exists. I rest my case.

Okay, but these don't seem to really be design flaws so much as the inevitable results of age and the need for backwards compatibility.  I'm looking more for technical problems that you would want to see fixed in our magical UberOS.

An operating system should have a simple, clear, consistent design. Not
unlike a certain programming language named after a dead mathematition,
come to think of it...

(Have you ever programmed in C? You can certainly see where Unix gets
its features from - terse, cryptic and messy.)

This is another thing we're just going to disagree on.  I think C++ is a pretty messy language, but feel that straight up C is rather simple and elegant.  I had only used C++ before, but a friend rather easily convinced me that C is in fact a very sexy language when used in its intended design space.

Still, I don't have the skill to write a functioning operating system -
much less one that's "ready for the desktop" - so that's that I suppose...

(I did seriously investigate the task once. Indeed, I got as far as
writing a bootloader. It worked too!)

Would you mind sharing the code?  I'd be interested.



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


While this isn't an operating system written in a functional programming language it is quite an important part of one.
"NixOS is an experiment to see if we can build an operating system in which software packages, configuration files, boot scripts and the like are all managaed in a purely functional way, that is, they are all built by deterministic functions and they never change after they have been built.", from http://nix.cs.uu.nl/nixos/index.html

One thing microsoft has being doing which is interesting is singularity. It is a research OS done in .NET and is completely managed. It will be interesting to see the effects of a managed runtime environment and quite possibly open the door for a functional language to target the runtime.

I think operating systems, and software design in general, will be headed towards integrating functional techniques from languages like Haskell into C and C++. Google's map/reduce paper is an excellent example but so is Tim Sweeney's talk on the future of video game design.

I suppose more importantly.. would haskell kernel be done as a microkernel or a monolithic kernel ;-) Marketing it would be hard. Who would want to buy a lazy os?

--Ryan Dickie