Inferno - hpaluch/hpaluch.github.io GitHub Wiki

Inferno

Inferno is another Experimental OS from Bell Labs. It is influenced by Plan9 but there are important changes:

  • system typically run "hosted" - for example build and run under 32-bit Linux for i386
  • programs run in JVM like environment (platform neutral bytecode files with extension .dis)
  • programs are written in new Limbo language (a bit similar to Go, that actually is influenced by Limbo) using .m extension (Module declarations, like .h in C) and .b - implementation

Setup

My strong recommendation: used 32-bit and rather old Linux distribution:

  • I installed Debian 9/i386 from: https://cdimage.debian.org/mirror/cdimage/archive/9.2.1/i386/iso-dvd/ it is old enough to avoid hipster gcc15 with its awful C23 standard (that breaks most of old C code).
  • but avoid too old distributions - troubles with expired GPG repository keys, etc...
  • downloaded all 3 DVDs (and supplied them as "extra CDs" when asked by installer)
  • installed XFCE environment and SSH for remote access

NOTE: If you insist on using new 64-bit Linux host, rather try 9fronts distribution of Inferno called "purgatorio" from https://git.9front.org/plan9front/purgatorio/HEAD/info.html

I used (modified) very good guide to start from: https://seh.dev/limbo-intro/

But important notes:

  • you should setup and build under inferno Unix user to avoid later /usr/USERNAME not found when you start Inferno
  • I installed following packages in Debian 9/i386:
# required;
apt-get install libx11-dev libxext-dev git-core build-essential
# optional:
apt-get install sudo mc vim

Tested archive:

Added following part to ~inferno/.profile (from seh.dev article):

export EMU='-g1024x768 -c1'
export INFERNO=/usr/local/inferno
export PATH=$PATH:$INFERNO/Linux/386/bin

And then build:

inferno$
source ~/.profile
cd /usr/local/inferno/
vim mkconfig # no change needed
./makemk.sh 
mk mkdirs
mk clean
mk install

Now ensure that you are in GUI (using XFCE) logged as inferno user and run in terminal:

source ~/.profile
emu
wm/wm   # run under emu ';' prompt

You should see new Window and Inferno's menu on left-bottom.

NOTE: If you see just blank Window it means that window is too small (cropped) so menu is not visible. Do one of:

  • increase resolution of your X11 session (in XFCE menu Settings -> Display)
  • lower resolution in EMU variable in ~/.profile, source it and try again.

NOTE: Limbo command sources are under app folder (.m and .b extensions). Compiled bytecode binaries are under dis folder and using .dis extension.

You will find docs in PDF format under doc folder.

Resources: