Category Archives: Blog

Inferno-Rpi boot from dos partition

Just to simplify installation I decided to put all needed files onto fat partition and bind them in init script. So everything is much simple as all your files are on fat partition and easy accessible if you put SD into another computer to copy move etc files. No need to play with partitions and […]
Also posted in Inferno OS, Raspberry Pi, Release | 2 Comments

Inferno raspberry pi image – beta release (beta1)

We are happy to announce the beta release of native port of Inferno OS to Raspberry Pi. There are some important points reached for this stage: 1. Mouse driver 2. Working wm/wm 3. Default memory split 240/16 4. A lot of small fixes and polishing Download Link (~23MB) Repository: http://code.google.com/p/inferno-rpi/
Also posted in Inferno OS, Raspberry Pi, Release, Research | 10 Comments

Inferno raspberry pi image – alpha release (alpha1)

So, we reached the point when we are able to package some small distribution. It can: 1. Boot Kernel 2. Mount file system (kfs) 3. Init Usb subsystem 4. Load Keyboard driver (usb) 5. Load Ethernet driver (usb) 6. Initialize Net subsystem, obtain IP via DHCP 7. Start ndb/cs 8. Launch shell – console It […]
Also posted in Inferno OS, Misc, Projects, Raspberry Pi, Release, Research | 2 Comments

Lab 26, floating point

In Lab 19 we found a problem that kernel raises exception “Undefined instruction” and stops working. It happens on running JIT arm codes produced by Dis. Now it is time to have little review. In Lab 19 I just added sources used in 9pi for handling floating point exceptions but commented real call fpemu() – […]
Also posted in Inferno OS, Raspberry Pi, Research | Leave a comment

Lab 25, network, part 2

After the Lab 24 when we prepared the layout I took serious study of the ways to implement the ethernet driver. And I found that there is actual convergence of 2 ways of implementation that I saw in previous lab. Comparing to implementation of ethernet driver in C (ether.c, smsc.c) it is enough to have […]
Also posted in Inferno OS, Projects, Raspberry Pi, Research, Usb | 3 Comments

Lab 24, network, part 1

This lab will be short; we will add all network modules needed for network layout and make a roadmap how to make the Raspberry Pi ethernet driver. First have a look at other ports and inferno and find what is needed to compile with network support.
Also posted in Inferno OS, Raspberry Pi, Research | 1 Comment

Jongling models beetween threads

We know that in Qt the models are not thread-safe – they totally depend on your implementation. So what we may do to bypass model between threads? Guess that we have some models which implementation we can not adjust much or can not make thread-safe. Danger is that if some model is used somewhere (pointer […]
Also posted in Boost, C++, Models, Qt | 3 Comments

Lab 23, hard disk or SD card

Before this Lab, the only way to bypass information to our Raspberry Pi machine, was the TFTP which downloads kernel from development machine (used Mac). Because kernel also includes root filesystem, we can embed some files there to have minimal read-only filesystem which allows to run dis files and do some testing, like experimenting with […]
Also posted in Inferno OS, Raspberry Pi, Research | 2 Comments

Lab 22, Usb keyboard

In previous lab we approached very close to get working Usb devices. In this lab we will try to get Usb keyboard working:
Also posted in Inferno OS, Raspberry Pi, Research, Usb | Leave a comment

Lab 21, porting usbd, fixed in allocb, see usb in actions

From previous lab 20 we got /dev/usb connected in our system, but what to do with it? Different systems handling usb in different ways, but Inferno and Plan9 has /dev/usb just as communication filesystem which should managed not by kernel but user-space process usbd which by communication with the file server manages the connectivity and […]
Also posted in Inferno OS, Raspberry Pi, Research, Usb | Leave a comment

Small news about Inferno-Rpi Labs

Just small update: To keep track of codebase of the Inferno OS on Raspberry Pi Labs we created the google code project to keep the repository and do other stuff related to the labs managements: https://code.google.com/p/inferno-rpi/ All Labs-Commits: https://code.google.com/p/inferno-rpi/source/list
Also posted in Inferno OS, Raspberry Pi, Web | Leave a comment

Lab 20, devusb, usbdwc and firq, first step to usb

To have our Inferno to communicate with external world we need to have the USB supported as most important parts including ethernet controller and keyboard are behind the USB subsystem. I had a look what parts the Inferno already had for usb support and what was implemented in 9pi. So I decided just to compile-in […]
Also posted in Inferno OS, Raspberry Pi, Research, Usb | Leave a comment

Lab 19, keyboard through serial, fixes to get Ls

In previous Lab we got a screen working, but still no way to send commands into Raspberry computer. My guess that for time being it just simple enough to make the keyboard input coming from serial cable, so then I can play with Sh on raspberry and do some simple experiments onboard until I will […]
Also posted in Inferno OS, Raspberry Pi, Research | 1 Comment

Lab 18, we have a screen!

Before the Lab the development was going in total darkness…, um I meant using serial ftdi usb cable. But time comes to have a light screen. Amazingly it wasn’t so complicated. Yes, we just used codes from 9pi project (thanks to Richard Miller). Our expected result is:
Also posted in Inferno OS, Raspberry Pi, Research | 4 Comments

Lab 17, mmu init

What is fun about Inferno OS that our CPU may not have MMU support and still we are able to port Inferno to such architecture. That’s because Inferno OS implements Dis virtual machine and all users processes are actually Dis byte-codes interpreters on JIT compiled. So address space is virtual by software layer and it […]
Also posted in Inferno OS, Raspberry Pi, Research | Leave a comment

Qt and use of Cryptography – simple!

In the light of latest news (Snowden et all) it is very clear that all developers should really take care of safety of all communications that your application could perform. In the world of desktop application developments it is often is decided to be postponed and just use plain text protocols or so and later […]
Also posted in C++, Cryptography, Qt, Research | 7 Comments

Lab 16, Adding clocks, timers, converging to 9pi codes

We are starting new season of the labs. Season 2 will be named as “Close to hardware”. And we start from important point to have clocks and timers working. But first we made a decision to make our codes close to 9pi source codes, especially assembler parts. But we found it little complicated as UReg […]
Also posted in Inferno OS, Raspberry Pi, Research | Leave a comment

Lab 15, Eve, Hello World from Limbo!

It is our 15-th Lab and it is the time came to make birth of the process Eve, run Dis virtual machine and our first Limbo program!
Also posted in Inferno OS, Raspberry Pi, Research | 7 Comments

Lab 14, interrupts, part 3

Now we can study the C part of handling interrupts. But before we start remember that we need to install stack pointers to appropriate modes:
Also posted in Inferno OS, Raspberry Pi, Research | Leave a comment

Lab 13, interrupts, part 2

Time to write a code to process interrupts. All interrupts that happens in system use the vector of interrupts (8 of them) which is located at 0xffff0000 (high memory case). This vector contains addresses that CPU should pass execution to.
Also posted in Inferno OS, Raspberry Pi, Research | Leave a comment
Clef two-factor authentication