HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mntmn
interim
C2015–2025
mntmn / interim

interim

The Interim Operating System

11Distinct people
12Mentions
0Explicit recommenders
1.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Interim Operating System

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year12 dated mentions

Observed mentions: 2015-09-01 21:04:25 UTC to 2025-07-01 13:06:55 UTC.

0123452015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 5 mentions; 3 submissions, 2 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC532
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC110
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC110
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC211
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC101
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

12 sources
> we need the “lisp machine” of the future Totally agree. Here's my idea: stick a bunch of NVRAM DIMMs into a big server box, along with some ordinary SDRAM. So, say, you get a machine with the first, say, 16GB of RAM is ordinary RAM, and then the 512GB or 1TB of RAM above that in the memory map is persistent RAM. It keeps its contents when the machine is shut off. That is it. No drives at all. No SSD. All its storage is directly in the CPU memory map. Modify Interim or Mezzano to boot off a USB key into RAM and store a resume image in the PMEM part of the memory map, so you can suspend, turn off the power, and resume where you were when the power comes back. https://github.com/froggey/Mezzano https://github.com/mntmn/interim Now try to crowbar SBCL into this, and as many libraries and frameworks as can be sucked in. All of Medley/Interli
Read the rest
sp, and some kind of convertor so SBCL can run Interlisp. You now have an x86-64 LispM, with a whole new architectural model: no files, no disks, no filesystem. It's all just RAM. Workspace at the bottom, disposable. OS and apps higher up where it's nonvolatile. I fleshed this out a bit here: https://archive.fosdem.org/2021/schedule/event/new_type_of_c... And here... https://www.theregister.com/2024/02/26/starting_over_rebooti...
In The Medley Interlisp Project: Reviving a Historical Software System [pdf]
> However, one question that I have about Smalltalk and historical Lisp machine environments is whether there has been any work done on implementing support for other languages Today's open source Smalltalk VMs are developed in and with Smalltalk itself. To do this, they use a subset of Smalltalk that can easily be translated to C called Slang [1]. Additionally, there are several parsing and parser generator tools designed to allow people to compose DSLs or other languages that can run in the Smalltalk context, including OMeta [2] which let to Ohm [3], PetitParser [4], and SmaCC [5]. One could also imagine a mechanism by which a "Smalltalk Machine" could have an optional method for executing instructions and interacting with memory (at a low level) that is similar to the way the C world wants, and to compile C code into this format -- ima
Read the rest
gine it encapsulated by some special Smalltalk context object or something. > There's something very appealing about these "turtles-all-the-way-down" environments where all of the objects in the system are live and can be inspected by using a REPL, and how system behavior can be changed on-the-fly. I am of the belief that a whole new personal computing system -- from the hardware on up -- designed around these principles would be of great benefit to all. It would run directly counter to the current culture of computing, which says that there are developers and users (scribes and plebs!) and nothing in between. In fact, the people who had the greatest qualitative input into the development of personal computing specifically thought that users would be programmers, and therefore programming would need to be something a bit different than it had been up until that time, and so would the computing environment and all the rest (some of these people invented Smalltalk). The major impediments to doing such a thing are time, money, and worldview. Most developers today, or "computer people" who should presumably be in the know, likely aren't very familiar with, if at all, these environments. There is a very ingrained idea about "how things should be done" that is mistakenly equivocated with "how things have to be done." There is also limited funding for these endeavors. The business world is not set up to make these kinds of leaps these days (short-termism and shareholder primary have dominated enterprize thinking since the late 70s). I've said before on here that FOSS is also not the solution: you need long periods of time and lots of money to make something like this (as history shows), and people doing things in their free time isn't going to cut it. Case in point: FOSS is for the most part premised on Unix, because that's what was around and available for free when the movement started. All "new OSes" are some form of Unix because it is impossible for people to think outside of that context given the limited resources available to them. I will end this rant (sorry) with a couple of refs. The first is to the CogNOS project, which was at one point an effort to get the OpensmalltalkVM running on bare metal [6]. I do now know the current status. The second is to Lukas Hartmann's Reform laptop project. Notable for being an entirely open hardware and software platform, he began the project because he wanted to build a custom machine for his own Lisp OS called Interim [7]. When I last asked him about it, he said that he still has a goal of getting Interim to run on the machine. But, of course, it's taken him years of work to even get to the point he's at now. [1] http://wiki.squeak.org/squeak/slang [2] https://en.wikipedia.org/wiki/OMeta [3] http://wiki.squeak.org/squeak/4878 [4] http://scg.unibe.ch/research/helvetia/petitparser [5] https://github.com/SmaCCRefactoring/SmaCC [6] https://github.com/nopsys/CogNOS [7] https://github.com/mntmn/interim
In Multi-Language Support in Smalltalk and Historical Lisp Environments
The concept here is fairly profound and you could make the analogy of power to something like Lisp. Lisp everything is a symbol, in Plan9 everything is a file and all namespaces are mutable. This concept is combined in the Interim OS experiment[1]. The idea of everything is a file is very literal and very serious compared to say, unix. It's worth noting that 9p, while a filesystem protocol, is closer in concept to a REST api than something like say ext4. In Plan9, the kernel could be thought of as a 9p connection router/multiplexer and all system resources and all servers must express themselves as 9p filesystems. The tooling 9p provides allows you to take trees of named objects (filesystems) and rearrange them however you please and place child processes under rules for modifying their own trees and how they can break scope, if at all. F
Read the rest
orking is more dynamic as provided by rfork[2] where you can give a child a specific subset of your process's namespace. So you could make a child who can only see specific files, executables, or resources and make it so that the child can't mount, unmount, etc. [1] Interim OS: https://github.com/mntmn/interim [2] http://man.cat-v.org/9front/2/fork Some cool manuals: - http://man.cat-v.org/9front/1/bind - http://man.cat-v.org/9front/1/ns - http://man.cat-v.org/9front/3/proc - http://man.cat-v.org/9front/5/intro
In Inferno Operating System
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#...
In The Interim Operating System

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.