https://github.com/yshurik/inferno-rpi Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Customer Stories + White papers, Ebooks, Webinars + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} yshurik / inferno-rpi Public * Notifications * Fork 6 * Star 37 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. 37 stars 6 forks Activity Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights yshurik/inferno-rpi This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 8 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/y] Use Git or checkout with SVN using the web URL. [gh repo clone yshuri] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @yshurik yshurik Merge ... 6840399 Jun 8, 2016 Merge 6840399 Git stats * 1,740 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time DragonFly/386 Rune from ushort to uint June 8, 2013 07:14 FreeBSD/386 Rune from ushort to uint June 8, 2013 07:14 Inferno to keep the dir create by hg November 15, 2015 14:05 Irix/mips Rune from ushort to uint June 8, 2013 07:14 Linux Merge from inferno-os June 8, 2016 19:53 MacOSX update executables October 10, 2015 12:32 NetBSD/386 Rune from ushort to uint June 8, 2013 07:14 Nt/386 discard MS environ definition. issue 339. July 24, 2015 14:39 OpenBSD/386/include Rune from ushort to uint June 8, 2013 07:14 Plan9 define FPU for hardware fp March 16, 2016 21:12 Solaris Rune from ushort to uint June 8, 2013 07:14 acme updated by sys.m change of UTFmax June 5, 2013 11:40 appl Less tracings January 9, 2016 16:46 dis Less tracings January 9, 2016 16:46 doc correct definitions of several instructions March 16, 2016 21:17 emu save hardware fp status March 16, 2016 21:20 fonts add fonts that were excluded by .hgignore March 28, 2015 10:51 icons 20060303-partial December 22, 2006 20:52 include Merge from https://bitbucket.org/yshurik/inferno-os-freetype, freetyp... November 23, 2015 22:54 keydb 20060303-partial December 22, 2006 20:52 lib Merge from https://bitbucket.org/inferno-os/inferno-os/ November 15, 2015 13:50 lib9 move setfcr to lib9 July 18, 2015 12:33 libbio use va_copy if defined June 26, 2013 16:00 libdraw Was used non-updated compiler 5c/5l - reverting now May 1, 2014 14:34 libdynld remove 68000 references May 4, 2015 13:30 libfreetype Update FreeType library to 2.4.6 October 18, 2011 00:50 libinterp use lwz not lhz for 21-bit runes July 20, 2015 21:32 libkern remove 68000 references May 4, 2015 13:30 libkeyring 20100810-2306 August 10, 2010 23:06 liblogfs 20111215-1640 December 15, 2011 16:40 libmath suppress clang warnings that are well-meant and sometimes justified, ... October 10, 2015 12:09 libmemdraw 20100718-1546 July 18, 2010 15:46 libmemlayer 20080522-2354 May 22, 2008 22:49 libmp 20100810-2306 August 10, 2010 23:06 libnandfs 20111215-1640 December 15, 2011 16:40 libprefab last update for 20070202 February 2, 2007 23:50 libsec 20100307-1033 March 7, 2010 10:33 libtk 20110330-0926 March 30, 2011 09:26 limbo suppress cyclic errors by default; -y to enable them October 31, 2015 11:06 locale 20081023-0945 October 23, 2008 08:45 man refer to Limbo version April 25, 2015 19:47 mkfiles make macos version a single value, and build for 10.5 (Leopard) October 10, 2015 12:33 module Merge from https://bitbucket.org/inferno-os/inferno-os/ November 15, 2015 13:50 opt 20110516-2327 May 16, 2011 23:28 os Added dev: i2c,spi,gpio, codebase converge to 9pi January 27, 2016 21:47 services 20100722 July 22, 2010 11:56 tools use extraneous type specifier socklen_t [wwtt?] October 10, 2015 12:23 usr/inferno 20060303-partial December 22, 2006 20:52 utils define environ July 24, 2015 21:49 .hgignore a few more things to ignore April 25, 2015 19:48 .hgtags Added tag 20090630-2355 for changeset 4da6c8644b58 June 30, 2009 23:55 CHANGES 20140525-1818 May 25, 2014 18:18 INSTALL 20081024-1642 October 24, 2008 15:42 NOTICE bump date April 3, 2015 18:04 README.md README.md edited online with Bitbucket November 27, 2015 08:39 makemk.sh add -m32 to get 32-bit executable (should fix definitions so it works... April 2, 2015 00:52 mkconfig revert January 7, 2016 22:19 mkfile avoid making appl by default June 26, 2015 17:44 View code 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... 16. Lab 16, Adding clocks, timers, converging to 9pi codes 17. Lab 17, mmu init 18. Lab 18, we have a screen! 19. Lab 19, keyboard through serial, fixes to get Ls 20. Lab 20, devusb, usbdwc and firq, first step to usb 21. Lab 21, porting usbd, fixed in allocb, see usb in actions 22. Lab 22, Usb keyboard 23. Lab 23, hard disk or SD card 24. Lab 24, network, part 1 25. Lab 25, network, part 2 26. Lab 26, floating point Downloads: * https://bitbucket.org/infpi/inferno-rpi/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 About 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. Topics raspberry-pi kernel hardware os lab inferno operating-system plan9 Resources Readme Activity Stars 37 stars Watchers 5 watching Forks 6 forks Report repository Releases 1 Inferno RPI boot file 0.6 Latest Jun 16, 2021 Packages 0 No packages published Contributors 3 * @forsyth forsyth Charles Forsyth * @yshurik yshurik yshurik * @vu3rdd vu3rdd Ramakrishnan Muthukrishnan Languages * C 60.9% * Limbo 30.8% * HTML 2.8% * Assembly 1.6% * C++ 1.5% * Yacc 1.0% * Other 1.4% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.