Jongling Qt models 2, Composition Gem
We are back to models again . In Qt you may find a lot of flexibilities for Model-View programming. Especially due to proxies to do filtering, sorting or even rearranging data (see Jongling Qt models)...
View ArticleStack vs Heap, Pimpl, performance
This post is mostly about C++ but because it involves practices often used with Qt programming too, I tagged it with Qt. Also should be interesting for C++ gurus So, you know that Qt uses Pimpl...
View ArticleDesigning Undo for large-scale projects. Going deep.
That is huge architect-level article about designing undo in large-scale project, welcome under more label… Pre-requirements First it makes sense to talk about some pre requirements. It worths that...
View ArticleTrac+Perforce
People who are using Trac and have a need of possibility binding it with Perforce repository can find that appropriate plugin is dead and no support is possible. So I would like to do some refresh – I...
View ArticlePorting Inferno OS to Raspberry Pi
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...
View ArticleLab 1, Compiler
Let’s start with tools that we need to just build the OS for ARM. First clone official inferno os repository from google code repository: # hg clone https://code.google.com/p/inferno-os/ What we need...
View ArticleLab 2, Hardware
We need to have possibility of booting kernel on Raspbery Pi. Because we will not have display driver soon, we need another approach – have serial port connected to get all output from booter and then...
View ArticleLab 3, R-Pi Booting process
Now time to study the boot process on Raspberry Pi. Good source to study: R-Pi Boot process 1. Stage 1 boot is in the on-chip ROM. Loads stage2 in the L2 cache! 2. Stage 2 is bootcode.bin. Enables...
View ArticleLab 4, Loading kernel
Time to study the way how we place our kernel into the memory on R-Pi. U-Boot have usually convention to place loaded binaries at 0×8000 (32KB) and just pass control there. So, let’s compile trivial...
View ArticleLab 5, Hello World
This lab will be short but it is going to summarize all material provided in previous labs. Our target to develop simple “barebone” program which can be loaded and executed by U-Boot. It should only...
View ArticleLab 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...
View ArticleLab 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:...
View ArticleAbout 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...
View ArticleLab 8, memory model
Now time to have a look at memory model. The BCM2835 gives next picture: Actually when U-Boot pass the control, we have memory model equal to just physical addresses (middle column), so we just do not...
View ArticleLab 9, coding assembler part
Time to have assembler part of Inferno kernel to be implemented. Let’s start with routines that allows to make labels and later jump to them, they are used in kernel sources to have scheduler to switch...
View ArticleLab 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:...
View ArticleOverhead 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...
View ArticleDesigning 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...
View ArticleLab 11, _div, testing print
Interesting point we missed in lab10. Those are stubs that we have in main(): _div, _divu, _mod, _modu Amazingly, I do not know what it is , Plan9/Inferno people, can you give a help regarding purpose...
View Article
More Pages to Explore .....