Category Archives: Research

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 Blog, Inferno OS, Raspberry Pi, Usb | 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 Blog, Inferno OS, Raspberry Pi, 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, C++, Cryptography, Qt | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi | Leave a comment

Lab 12, interrupts, part 1

Time to create content of io.h with references to control registers, irq nums etc:
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Lab 11, _div, testing print

Interesting point we missed in lab10. Those are stubs that we have in main(): _div, _divu, _mod, _modu
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Designing tree-like models

We found that developers are often confused about implementing tree-like models using Qt classes. Now we can show some tricks and considerations about the way of designing them. First for some refreshment, let’s remind what you have for addressing the elements in the model. This is QModelIndex, which have pointer to model that created the […]
Also posted in Blog, C++, Models, Qt | 2 Comments

Overhead cost of using Qt models

I decided to run very simple test to have glance on performance of Qt models and overhead cost of using them. Something very simple as make 1M random strings with random size (note: rnd_str(int) return some random string with specified size)
Also posted in Blog, C++, Models, Qt | 3 Comments

Lab 10, Bss, memory pools, malloc

Time to have a look at initial memory initializations. First we need to initialize BSS (more details: http://en.wikipedia.org/wiki/.bss), statically-allocated variables. We do it in next way:
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Lab 9, coding assembler part

Time to have assembler part of Inferno kernel to be implemented
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Lab 8, memory model

Now time to have a look at memory model. The BCM2835 gives next picture: Actually
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

About Boost Multi-index Containers

I really like Qt Template Library (QTL), but still have lack of some important functionality which is usually called multi-index. Anyway there is very powerful implementation existing in Boost. I really need these templates to establish relations between different data structures. I often use it as internal “engine” for different Proxy models that I use […]
Also posted in Blog, Boost, C++, Models, Qt | 3 Comments

Lab 7, linking, planning next

As we have the kernel almost compiled now it is time to check what is missing to have it linked. By checking header files and adding stubs into main.c we will get linked with very small changes as:
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Lab 6, Compile something

Now it is lab 6 and it is time to compile “something” – kernel of inferno, but we are going to compile without worrying that it would not work (even would not link). We just need inferno kernel which can be compiled okay for R-Pi using a lot of stabs. Files/Folders structure: inferno-os/ |-os/ | […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment
Clef two-factor authentication