
The Interim Operating System - mntmn
http://interim.mntmn.com
======
hga
From the GitHub README:

Interim

Interim OS is a radical new operating system with a focus on minimalism. It
steals conceptually from Lisp machines (language-based kernel) and Plan 9
(everything is a file system). It boots to a JITting Lisp-like REPL and offers
the programmer/user the system's resources as filesystems.

Interim runs on:

    
    
      Raspberry Pi 2 (Broadcom VideoCore4/ARMv7, Bare Metal)
      Olimex Olinuxino (Freescale IMX233/ARMv5, Bare Metal)
      ARM5+ Linux (Hosted)
      Intel/AMD x64 Linux (Hosted)

~~~
cbd1984
> Interim OS is a radical new operating system with a focus on minimalism. It
> steals conceptually from Lisp machines (language-based kernel)

These two concepts being so close together ("minimalism" and "Lisp") is
practically an oxymoron, as far as Common Belief Structures go.

Minimalism is 6502 machine code as written by someone who honestly believes
assemblers make code go slower. Don't you know that? /s

Meanwhile, this:

> It boots to a JITting Lisp-like REPL

... is basically Dalvik/Android. It's what we run on our phones, except our
phones use Java, not Lisp, because Lisp Is Slow. Dogma. Can't challenge it.
People look at you funny.

------
mntmn
Hi, author here. Thank you all for the positive feedback. This motivates me a
lot to seriously continue this project. I have a port to i386 (bare metal) in
the pipeline and a lot of clean-up to do. Also, I'd be glad to hear your ideas
for areas of use / improvements, what traps not to fall into et cetera.
Cheers!

~~~
eternalban
Just wanted to express my deep admiration for your work. All the best in
completing the work. (Loved the writeup, too.)

~~~
sternenseemann
yeah, he is kinda awesome indeed :)

------
DavidSJ
Paper here: [http://dump.mntmn.com/interim-
paper/](http://dump.mntmn.com/interim-paper/)

This seems motivated similarly to the OS Alan Kay's Viewpoints Research
Institute is working on -- an OS a single person can comprehend.

------
ised
I really enjoyed reading the paper.

The author's focus is in the right place (IMO).

Technical ability is perhaps common but having the right focus is, sadly,
rare. It's the difference between someone who says they could do or did
something many years ago versus the the person who actually does it, _now_,
when it is sorely needed.

Computing today is in dire need of _true_ minimalism, IMHO.

------
coderjames
This looks absolutely awesome. It is the kind of software I thought the RPi
was originally going to ship with.

~~~
tempodox
If it had something like that out of the box, I'd get an RPi 2 today.

~~~
sternenseemann
Creating the RPi 2 SD card is really not hard, you can just download the .tgz
from the website. I do not think that the RPi ships with a default OS
anyways?!

------
Sodel
The is the operating system that I always wanted to make, without having the
time or talent to pull it off. Just wonderful.

------
jwatte
One thing seems off in that description: If the end of the list is represented
as pointer to pair of nils then the last element of a list cannot contain nil.
The traditional LISP representation is simply a nil pointer for end. '() is
nil (NULL in C.)

~~~
ericbb
I don't immediately see why he is not just using NULL for nil but Interim is
nonetheless more conventional than it may seem. It does use nil for '() (see
[1]) and it evaluates (car nil) to nil and (cdr nil) to nil just like Common
Lisp does. The last element of a list may be nil because list elements always
appear in car positions whereas it is always the cdr position that one checks
to identify the end of the list. If you walk a list without checking for nil,
then you will appear to find a list that ends with an unending sequence of nil
elements (as is the tradition!). For example, try (third nil) in Common Lisp;
you will see a result of nil and no error.

[1]
[https://github.com/mntmn/interim/blob/master/sledge/alloc.c#...](https://github.com/mntmn/interim/blob/master/sledge/alloc.c#L301)

------
sklogic
Nitpicking: it's a VPU which runs the bootstrap blob, not the QPU (the latter
is well documented and fairly open, unlike the former).

~~~
mntmn
Thanks for that correction, will look into it and correct.

~~~
sklogic
Btw., VPU had been reverse-engineered to a degree, should be sort of possible
to roll out your own bootstrap now:
[https://github.com/hermanhermitage/videocoreiv](https://github.com/hermanhermitage/videocoreiv)

------
nathell
Related, but much much less complete:
[https://github.com/nathell/lithium](https://github.com/nathell/lithium)

~~~
mntmn
Cool! I'll check that out. Funny, I also read "An Incremental Approach to
Compiler Construction" once.

------
lsnra
There are plans to incorporate a GUI or the keyboard focus is exclusive?

------
sternenseemann
Do you already support the Raspberry's GPIOs or do you plan to do so?

~~~
mntmn
Support is planned!

~~~
sternenseemann
That is very nice! I guess that will be a filesystem interface?

------
qnaal
why do you have more pictures of your weird keyboard than screenshots from the
device?

who photographs lcds honestly

~~~
fengor
because the device is a RaspberryPI built into the keyboard?

~~~
qnaal
'built in' meaning screwed onto a piece of plastic?

wow such hacker

