Category Archives: Research

SQLite tree structures and queries to get sub-trees

SQLite is wonderful! Just today I found that SQLite support queries with a recurse to get the inner sub-trees: CREATE TABLE els ( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE ,pid INTEGER DEFAULT NULL REFERENCES els ,name TEXT ); INSERT INTO els (id, pid, name) VALUES (1, NULL, 'top'); INSERT INTO els (id, pid, […]
Also posted in Blog, Ideas, Misc, SQLite | Leave a comment

Ru: Archive: Делаем свою Time Machine для Линукса (2012)

После интенсивного пользования time machine на маках и пару ситуаций когда она реально пригодилась (были варианты когда пришлось поставить систему из бэкапов и варант когда пришлось откатывать назад после проблем), возникла мысль а собственно почему такой удобной системы нет на линуксе. После исследования вопроса и опроса знакомых линуксоидов оказалось что: 1. сделать такую систему можно
Also posted in Blog, Gentoo, Ideas, Misc, Ru, Tutorial | Leave a comment

Ru: Archive: Небольшой эксперимент сетевой независимости (2013)

Где-то год назад я решил для себя провести небольшой эксперимент. Я заметил что привязка к облачным сервисам становится всё более проникающей, и подумал проверить — что собственно нужно для того, чтобы немного отвязаться от серверов разных корпораций бобра. Задача была в том чтобы попробовать насколько мощное или простое железо нужно для небольшего домашнего сервера
Also posted in Blog, Gentoo, Ideas, Misc, Ru, Web | Leave a comment

Wrong size of memory pools – dumb

Occasionally I had a look at /dev/memory: What I saw there? ; cat /dev/memory 2282656 14018478 2314496 14149 6246 18 11735810 main 492768 7009239 499488 110133 106946 4 6516459 heap 4960 14018478 4960 8 1 1 14013506 image ; What? I run my Inferno just on 14+7+14 = 33MB memory? (yep and it still runs […]
Also posted in Blog, Inferno OS, Misc, Raspberry Pi | Leave a comment

Thinking about user interfaces, part 3

Part 1 Part 2 Now interesting question, are there user interfaces which based on “verbs”. Well, I know at least one called drakon-editor: http://drakon-editor.sourceforge.net/ That is extremely powerful tool or a user interface which allow to design algorithms: So you can see, that looks as really totally verb-based user interface. It is very efficient but […]
Also posted in Blog, Ideas, Inferno OS | Leave a comment

Thinking about user interfaces, part 2

Part 1 Now have a look at existing command line interface: What really human see on the screen? A specialist would say that from bottom (from input/cursor) to up the human sees a story of computer operations. My correction would be that human sees a story of his mental activities shown on the screen. These […]
Also posted in Blog, Ideas, Inferno OS | 1 Comment

Thinking about user interfaces

Had some time to look into implementation of gui in inferno and take some thoughts. First maybe about history of graphics user iterfaces and how they brought us to the current situation. How a computer iteracts to an user? Very first implementations of are just clones of typewriting process – user types on keyboard and […]
Also posted in Blog, Ideas, Inferno OS, Misc | 2 Comments

Performance

I continue testing the performance. I made a SD card with 100MB partition and changed config.txt to boot directly kernel. And WOW! It looks like the whole OS is loaded up to wm/wm in just 1 sec! ps. for some reason mice does not work, probably need some adjustments for usb mice driver…
Also posted in Blog, Inferno OS, Raspberry Pi, Usb | Leave a comment

Performance, loop 4, solution

I decided to make some simple and temporal solution (but maybe permanent? :) ) In os/port/dis.c in vmachine() have static var indicates when GC was completed last time and start new routine of GC only when at least 500 msecs passed: void vmachine(void*) { Prog *r; Osenv *o; int cycles; static ulong lastgcmsec =0; startup(); […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Performance, loop 3

When look deeper into tracing what happens when print() is casted I tried to minimize all codes – copied code of sieve into rpiinit.b, removed everything extra, so whole rpi start does only math/sieve. Then if press ^T^Tp (Ctrl+T,Ctrl+T,p) I see in console list of processes (not dis progs, but processes): idleticks:0 f3e148: 1: interp […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

Performance, loop 2

There are still problem with performance, after some experiments i distilled it to next case: Execution of time math/sieve 1000000 >/dev/null takes about 170 secs Execution of modified math/sieve with commented print() takes only about 3 secs. So there is a real problem of using syscalls which operates with filesystems. (because even print()/fprint() leads to […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

JIT is ON

My research about JIT in inferno-rpi is ended. The cause was obvious but until you does not know about and search through sources, doing debugging, tracing, experimenting – you would not know what it is. So it is simple – DIS op codes are compiled into ARM machine routines and when compilation is finished it […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

JIT is off

I decided to have a look at the problem of speed – it is really visible that inferno os on raspberry is slow. My fisrt opinion was about probably disabled caches, but I was wrong – it works fine. After keeping searching I realized that Inferno-Rpi is actually has JIT off. Oops! That is controlled […]
Also posted in Blog, Inferno OS, Raspberry Pi | Leave a comment

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 Blog, Inferno OS, Raspberry Pi, Release | 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 Blog, Inferno OS, Misc, Projects, Raspberry Pi, Release | 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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Projects, Raspberry Pi, 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 Blog, Inferno OS, Raspberry Pi | 1 Comment

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 Blog, Inferno OS, Raspberry Pi | 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 Blog, Inferno OS, Raspberry Pi, Usb | Leave a comment
Clef two-factor authentication