This is compilation of Labs “Porting Inferno OS to Raspberry Pi”. We decided to organize it as some set of small labs with very detailed steps of what is done to reach results and make everything easy to reproduce.
C Limbo HTML Assembly C++ Yacc Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DragonFly/386
FreeBSD/386
Inferno
Irix/mips
Linux
MacOSX
NetBSD/386
Nt/386
OpenBSD/386/include
Plan9
Solaris
acme
appl
dis
doc
emu
fonts
icons
include
keydb
lib
lib9
libbio
libdraw
libdynld
libfreetype
libinterp
libkern
libkeyring
liblogfs
libmath
libmemdraw
libmemlayer
libmp
libnandfs
libprefab
libsec
libtk
limbo
locale
man
mkfiles
module
opt
os
services
tools
usr/inferno
utils
.hgignore
.hgtags
CHANGES
INSTALL
NOTICE
README.md
makemk.sh
mkconfig
mkfile

README.md

This is compilation of Labs completed by LynxLine (http://lynxline.com/projects/labs-portintg-inferno-os-to-raspberry-pi/) into the source code repository.

We started a small and exciting project just for fun as “Porting Inferno OS to Raspberry Pi”. Of course we would like to run it there as native, not hosted. It was always declared that this OS is very simple for porting to new platforms, so let’s just research this and reach new distilled experiences of system programming. Also this OS is very small, simple and easy to tweak for research purposes.

We decided to organize it as some set of small labs with very detailed steps of what is done to reach results and make everything easy to reproduce.

Season 1: Road to boot…

  1. Lab 1, Compiler
  2. Lab 2, Hardware
  3. Lab 3, R-Pi Booting process
  4. Lab 4, Loading kernel
  5. Lab 5, Hello World
  6. Lab 6, Compile something
  7. Lab 7, linking, planning next
  8. Lab 8, memory model
  9. Lab 9, coding assembler part
  10. Lab 10, Bss, memory pools, malloc
  11. Lab 11, _div, testing print
  12. Lab 12, interrupts, part 1
  13. Lab 13, interrupts, part 2
  14. Lab 14, interrupts, part 3
  15. Lab 15, Eve, Hello World from Limbo!

Season 2: Close to hardware…

  1. Lab 16, Adding clocks, timers, converging to 9pi codes
  2. Lab 17, mmu init
  3. Lab 18, we have a screen!
  4. Lab 19, keyboard through serial, fixes to get Ls
  5. Lab 20, devusb, usbdwc and firq, first step to usb
  6. Lab 21, porting usbd, fixed in allocb, see usb in actions
  7. Lab 22, Usb keyboard
  8. Lab 23, hard disk or SD card
  9. Lab 24, network, part 1
  10. Lab 25, network, part 2
  11. Lab 26, floating point

Downloads:

Installation:

  1. Download latest zip package from Downloads
  2. Pepare SD card with first DOS partition for boot (about 100MB, there is a problem with dossrv and large partitions)
  3. Unzip all files to SD (boot.scr, kernel.bin, ... should in root of SD)
  4. Boot Raspberry Pi
  5. By default it starts styxlisten -A tcp!*!564 export /, so you can mount it on other host by mount -A tcp!10.0.56.101!564 /n/remote/rpi (-A means no auth, IP is for example, see what it got by DHCP)

Special thanks:

  • Charles Forsyth
  • Richard Miller
  • Peter D. Finn