D-Bus is a software framework for inter-process communication. It is integral to the operation of modern Linux. At present, its performance is suspect.
The attached document (draft version 0.9.9) summarises a series of experiments and benchmarks which were performed to characterise the performance of D-Bus.
This article lists the top 10 most used Haskell packages and summarizes each.
IPC frameworks on Linux come in two varieties: complicated and nonexistent. This article presents the design for a very fast IPC framework that uses shared memory and supports multicast messaging. The design is flexible and not complicated.
**Position Independent Code**
When you compile a shared library (with
-fPIC, in the case of
gcc), you are specifying that you want the compiler to generate *position independent code*.
Position independent code never uses straightforward machine addressing modes to access global variables, static variables, or non-static functions. Instead, position independent code accesses these kinds of data indirectly.
**PLTs and the GOT**
Copy *n* bytes of data, and it takes *t* time. Copy *2n* bytes of data, and it takes *2t* time, right? Not necessarily.
In-memory data-copying performance is not so straightforward. This article explains how the *rate* of data copying changes with the amount of data copied.
This article describes how I created a Windows XP virtual machine on a physical box which runs Xen 3.2. The dom0 for Xen is a Linux distro - Debian "Lenny". The physical box has an AMD Athlon X2 64-bit dual-core processor with 4GB of RAM. Xen's HVM emulation functionality is used to create the Windows domU.
This article might equally well be used to model how to use Xen HVM to boot any operating system for which you have an installation CD.
Mozilla's "Electrolysis" project is re-structuring Firefox into a multi-process architecture. A side effect is that Mozilla developers must learn to program in an environment where inter-process communication (IPC) is necessary. To ease this development burden, Mozilla has devised "IPDL", the Inter-process Protocol Definition Language. Developers are meant to specify their IPC protocol via IPDL, and have the IPDL compiler provide C++ code for their use.
This article investigates the functionality provided by the C++ classes generated by the IPDL compiler. Developers should never have to modify the generated code, but understanding how it works will help to explain what responsibilities developers of IPDL protocols have.
This documents my efforts to produce a 32-bit Debian Lenny image for Xen with a 64-bit Debian Lenny dom0.
- arch: AMD64 Athlon X2
- os: Xen 3.2 (via Debian Lenny's install)
- dom0: Debian Lenny 64-bit
- domU: Debian Lenny 32-bit (desired)
This documents how I built a Debian development environment capable of building the Mozilla source code. I believe that it is minimal — all of the installed Debian packages are necessary, and they are sufficient.