House , hOp - the Haskell Operating System

Bored by those lemmings who use wildly popular operating systems such as the HURD?
Wondering how Arrows might improve operating system design now that monads are ho-hum?
Looking for an opportunity to write a purely functional network driver?

If this sounds familiar, hOp, and now House is the project for you!


hOp is 'Haskell on the Bare Metal' It consists of the Glasgow Haskell Compiler runtime system booting from grub. hOp was inspired by jNode and other Language/OS projects.

hOp features VGA screen text and PS2 keyboard support, House adds a PS2 mouse driver and linear framebuffer graphics support.

Reserve your copy of hOppix today!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Other language/os projects

Besides jNode, and Tunes, what other attempts have been made to build an OS in/as an operating environment for languages other than C?

I guess SqueakNOS must count

There is apparently now a SqueakNOS bootable ISO.

Lisp; Newton

Well, there were the Lisp Machines. And the Newton had its own language. And the original MacOS was built around Pascal; though the results are substantially similar to an OS built around C, except that the programmers are more irritable.

Oh, and NeXTStep is built around Objective C. I smell a pattern in this orchard. ;-)

Python

http://unununium.org/

Haven't tried it -- it sounds more unusual than useful so far.

Forth

Forth has always been an OS in addition to a programming language. A lot of old machines boot into BASIC.

From the Tunes project

I was reading up on tunes and found these blurbs:

We feel that the distinction between programming language and operating system is most unwelcome, and mostly a lie:

one never programs in a programming language independently from an operating system, or in a operating system independently from a language (be it universal or limited to end-user interaction).

Language-independence and system-independence are myths: whatever the language, to communicate with other people and programs, it will have to go through the only services provided by the system, with the sole mutual invariants that are expressible in the standard system-interfacing language.

and

To sum up the main features in technical terms, TUNES is a project to replace existing Operating Systems, Languages, and User Interfaces by a completely rethought Computing System, based on a fully reflective architecture with standard support for unification of system abstractions, security based on formal proofs from explicit negociated axioms, higher-order functions, self-extensible syntax, fine-grained composition, distributed networking, orthogonally persistent storage, fault-tolerant computation, version-aware identification, decentralized (no-kernel) communication, dynamic code regeneration, high-level models of encapsulation, hardware-independent exchange of code, migratable actors, yet (eventually) a highly-performant set of dynamic compilation tools (phew).

I mean like, uhm, wow! ;-) That site is a nice read.

Thanks

Thanks. We do try to expand peoples' thinking about software, even if our goals are technically too challenging for an unfunded group (especially considering how much needs to be proven and explored).

I always recommend our Wiki to LtU readers, which collects a lot of information from here and information we were interested in and surveyed years before this weblog. And assistance in editing is always welcome (not to say funding, but we all know how likely that is).

Our current effort is on Slate, mentioned on this forum before; the point of it isn't to revolutionize language design, but to allow the TUNES project to port and consolidate a multitude of experiments in UI architecture, libraries, and environment organization into one clean system, with the eventual aim of further upward migration being eased (I have detailed plans on this, but I don't share them automatically).

While I have continually pushed the TUNES project and Slate project enthusiasts away from thinking of systems software before getting the environment adequately specified and made useful (the dreaded LispOS pitfall [sic]), there are project members who are so motivated to write such software that they'll eventually do it. (We've already forked off one bare-metal forth project.)

As for the site's main content, my recommendation is to read the whole thing from end-to-end, survey many language paradigm examples and dive into them, and then read the site again. I read it once a month for a few years (the project's been around since 1995) until I was sickened by the lack of progress, so I joined and pushed hard to become the editor and then re-wrote the majority of what you see there. So now the digestion time should be somewhat shorter than a few years for the average programmer, a couple of months for the average LtU commenter, and an unpredictable amount of time for people with Computer Science PhD's, as they generally have a varying degree of prejudice (no offense, but the topic is about generality in software systems, not pursuing specific ends or theses).

Another project

Arjen van Weelden is also researching functional programming and operating systems, see Arjen's home page for a synopsis and papers.

Merlin OS, on top of Self PL

The Merlin OS, based on Self/R programming language, is another one. Judging by the home page, Merlin's development seems to have stopped.

Also, wasn't the NeXT OS written in Objective C? That's still "something other than C". I wonder how much of that code is still present in Mac OS X.

Enough that native OS X apps

Enough that native OS X apps are (supposed to be) written in Objective C.

Tangent on NeXT, Mac OS X, and ObjC

Most of the NeXT kernel was written in straight C. It was based on the Mach micro-kernel (Avie Tevanian was a part of the team that created Mach; he has been Apple's director of software since 1997 or so.)

If by "OS" you mean "OpenStep", well, that was the GUI layer libraries (originally called "NextStep") -- the Foundation and AppKit libraries, now collectively called "Cocoa". Those were indeed written in Objective C. "Native OS X apps" that use Cocoa interfaces can be written in several languages; the languages best supported there are Objective C, C++, and Java.

I worked on compilers at Apple, never on their NeXT-based kernel, but as far as I know, the only Objective C part of what is traditionally called the "OS" (meaning "Operating System" here) was in their device drivers. This was supported by a framework called the "IOKit", which had a nice, somewhat plugin-like class structure enabled by the dynamic nature of Objective C's classes.

During the creation of Mac OS X, a C++-based IOKit interface was created -- I don't recall whether it replaced the Obj-C-based IOKit, or was an additional interface. At any rate, the complexity of C++'s object model, as implemented within a pre-3.0 gcc, made some compiler tweaks necessary, and still didn't really achieve the sort of binary compatibility that was desired.

Oberon

It is a Pascal like programming language and an OS.
There are at least two versions:
Bluebottle
Native Oberon

You may be able to find more

You may be able to find more information in your local university library if you like Wirthian horror.

Movitz

Movitz is a new operating system kernel written entirely in Common Lisp.

OCaml

Desert Spring-Time is a project I started that uses the OCaml native compiler and runtime environment to create an OS.

Currently uses same approach as House to get into graphics mode, but isn't quite as far as House is in terms of running apps.

RMoX

RMoX, the "Raw Metal occam Experiment", is qn experimental OS built around the modern incarnation of occam. Right now it has pretty limited functionality, but there are plans to expand it into a full-fledged OS at some point.

House Source released

Source for House has been released. The Gadgets gui part is "freeware for academic-use only" but the rest has a nice open license.

----

Shae Erisson - www.ScannedInAvian.org

House is Wired.

House has gained a TCP/IP stack recently.

--Shae Erisson - ScannedInAvian.com