tomo facilitates communication and information sharing in a dynamic environment with severe constraints and intense challenges: deep space and the astral plan with the companion application << star cult >> https://source.heropunch.luxe/dist/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
romina k a2affb2d9d basic init for qwm desktop 6 months ago
AIX/power add AIX/power port 5 years ago
DragonFly/386 Rune from ushort to uint 9 years ago
FreeBSD/386 Rune from ushort to uint 9 years ago
Inferno to keep the dir create by hg 6 years ago
Irix/mips Rune from ushort to uint 9 years ago
Linux remove modified files 7 months ago
MacOSX recompiled for MacOSX sierra 5 years ago
NetBSD NetBSD/arm: initial support 11 months ago
Nt/386 recompiled versions of Windows executable (root set to C:/inferno as before) 5 years ago
OpenBSD/386/include Use pthreads instead of rthreads on OpenBSD and add back FPU support 4 years ago
Plan9 define FPU for hardware fp 6 years ago
Solaris Rune from ushort to uint 9 years ago
acme incorporate mjl- authsrv9(8) 6 months ago
appl incorporate mjl- authsrv9(8) 6 months ago
dis basic init for qwm desktop 6 months ago
doc incorporate mjl- torrent client and support libs 6 months ago
emu merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
fonts merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
icons replace default toolbar icon 7 months ago
include merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
keydb 20060303-partial 15 years ago
lib basic init for qwm desktop 6 months ago
lib9 remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libbio remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libdraw merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
libdynld remove 68000 references 7 years ago
libfreetype Update FreeType library to 2.4.6 10 years ago
libinterp remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
libkern remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libkeyring update NOTICEs and other legal bits to reflect changes to Plan 9's licence and confirm MIT-template for Inferno base and revisions 8 months ago
liblogfs remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
libmath remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libmemdraw remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libmemlayer remove obsolete NOTICE files superceded by /NOTICE 9 months ago
libmp update NOTICEs and other legal bits to reflect changes to Plan 9's licence and confirm MIT-template for Inferno base and revisions 8 months ago
libnandfs remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
libprefab remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
libsec update NOTICEs and other legal bits to reflect changes to Plan 9's licence and confirm MIT-template for Inferno base and revisions 8 months ago
libtk merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
limbo remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
locale remove obsolete NOTICE files superceded by /NOTICE 9 months ago
man basic init for qwm desktop 6 months ago
mkfiles Merged in feature/NetBSD/arm (pull request #13) 9 months ago
module incorporate mjl- torrent client and support libs 6 months ago
opt 20110516-2327 11 years ago
os merge changes from upstream bitbucket:inferno-os/inferno-os 7 months ago
services add small version of image 3 years ago
tools remove LGPL licences and convert remaining GPL/LGPL licences including /NOTICE to MIT form 9 months ago
usr/inferno 20060303-partial 15 years ago
utils update NOTICEs and other legal bits to reflect changes to Plan 9's licence and confirm MIT-template for Inferno base and revisions 8 months ago
.dockerignore add Docker support 2 years ago
.env.Alpine commit linux env file 1 year ago
.env.Linux trying to fix linker errors on musl 1 year ago
.hgignore incorporate mjl- authsrv9(8) 6 months ago
AUTHORS sign oath 1 year ago
CHANGES 20140525-1818 8 years ago
CONTRIBUTING sign oath 1 year ago
COPYING link COPYING to NOTICE to make srht happy 1 year ago
Dockerfile add Docker support 2 years ago
INSTALL add 32bit build env note 7 months ago
NOTICE update NOTICEs and other legal bits to reflect changes to Plan 9's licence and confirm MIT-template for Inferno base and revisions 8 months ago
OATH sign oath 1 year ago
README.md Merge branch 'master' into feature/pull-from-upstream 1 year ago
bitbucket-pipelines.yml enable bitbucket pipelines for Linux/386 5 years ago
makemk-AIX.sh add AIX/power port 5 years ago
makemk.sh Removed erroneous -m32 compiler switch for MIPS 11 months ago
mkconfig document release process, update mkconfig 7 months ago
mkfile replace default toolbar icon 7 months ago
tomo-dev.sh move todos to dev board 6 months ago

README.md

tomo el fuego

tomo el fuego is a 9family operating system derived from a series of labs which had the aim of porting the system to a raspberry pi. tomo continues the tradition of blending os research and educational resources together.

tomo represents services and resources in a file-like name hierarchy. Programs access them using only the file operations open, read/write, and close. 'Files' are not just stored data, but represent devices, network and protocol interfaces, dynamic data sources, and services. The approach unifies and provides basic naming, structuring, and access control mechanisms for all system resources. A single file-service protocol (the same as Plan 9's 9P) makes all those resources available for import or export throughout the network in a uniform way, independent of location. An application simply attaches the resources it needs to its own per-process name hierarchy ('name space').

Inferno can run 'native' on various ARM, PowerPC, SPARC and x86 platforms but also 'hosted', under an existing operating system (including AIX, FreeBSD, IRIX, Linux, MacOS X, Plan 9, and Solaris), again on various processor types.

origins

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