Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Interim Operating System (mntmn.com)
155 points by mntmn on Sept 15, 2015 | hide | past | favorite | 26 comments


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)


> 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.


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!


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


yeah, he is kinda awesome indeed :)


Paper here: 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.


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.


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


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


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?!


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


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.)


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#...


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


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


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


I think there is enough info to do a jit_vpu_raw.c, which could be a fun project!


Related, but much much less complete: https://github.com/nathell/lithium


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


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


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


Support is planned!


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


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

who photographs lcds honestly


because the device is a RaspberryPI built into the keyboard?


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

wow such hacker




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: