What's in a name?
I feel that the new technology brand will be invisible. Academics call this "ubiquitous computing" - where the technology does not have an identity separate from it's function.
A toaster cooks toast, we do not refer to it in terms of it's microcontroller, it's clock speed or it's user interface. It's toasts, that is all that matters. Modern computer systems will be the same.
The reason for the use of the name Peerix is born of the necessity to simply describe our operating system in conversational terms. We could say that "it's a linux 2.6 kernel running a uclibc c library with GNU C sources, built by a cross development environment", but that realy has no meaning outside a small group of specialists.
The IT community's convention is that names ending in ix refer to things based on the Unix or Linux operating systems, so the word Peerix describes a Peer-to-peer linux-based operating system. See Naming for details concerning the general concept of naming and its surrounding issues.
Peerix is still in the early stages of development. It is a UNIX-like operating system designed specifically for the Nodal Reduction environment. It uses the set of GNU UNIX-like components for low-level hardware integration operations such as memory-management. The nodal environment is used for high-level network and resource allocation layers, and to provide the user interface.
Continuing research leads to the use of embedded linux as the base of our operating system. This is comprised of:
- A boot loader
- A linux kernel (2.6.x)
- uclibc the micro c library
- Busybox the Swiss Army multi-call binary
- udev modern linux device manager
- Dropbear ssh client and server.
- udhcpc micro DHCP client
- FUSE a virtual file system API
- buildroot is the system used to build the OS from source.
- SDL graphical framebuffer and IO interfaces
- DRI and Mesa 3D
It's worth looking at the GeeXbox media operating system as this distro has very nice approaches to many of the problems we will need to solve.
Of note are the auto-configuration scripts that provide a more user friendly experience with a range of hardware. However GeeXbox does not abstract the control flow, and relies on shell scripting to perform many of the operations that would be nodally executed.
The source-based methodology used by the GNU linux community means that the operating system can work on a wide range of computer hardware available now and in the future. The PC (x86) and Mac (PPC/x86) platforms are the most common, but many others are supported. It should be possible to have the Peerix operating system work in a similar way on Mac, PC, Palm, even iPod and PSP.
Monolithic vs Microkernel
The GNU component set was not designed for Linux, but for a microkernel called GNU Hurd which is still not complete enough for use. The Debian GNU/Hurd project is probably closest but is still quite a way off. It was difficulties with the GNU/Hurd development that allowed the Linux monolithic kernel to become popular since the GNU project had a complete Unix-like OS with only the kernel missing.
In a microkernel environment, the kernel only handles the lowest level operations such as memory management, threading and process communications. All higher level functions are handled by specific daemons, which makes it much easier to replace certain specific functionality while re-using others.
It's hard to overstate the importance of handheld and mobile devices in the world of modern computing.
The smaller and more embedded the system gets, the simpler the OS required to drive it. As this software is usually written in C, we can take useful bits from different projects and combine them into the most suitable form.
iPod linux is built on ucLinux which does not have a dynamic loader by default. The iPod linux project has provided a dynamic loader for the enviorment. Example here.
To allow the nodal environment to integrate more tightly with the hardware, some of the core UNIX-like components could also be modified. One of these modifications would be to the filesystem making it a part of the nodal network which unifies the filespace with the runtime object space and the global nodal space.
The ultimate goal for Peerix would be for it to use a kernel based on nodal reduction, but replacing the Linux kernel would be a very tall order since it's extremely complex and is composed of over 6 million lines of code!
Some scripts that relate to the OS build process and other things. Resources required by the scripts can be downloaded from my uni home page.
- ide-detect.pl - half baked
- ansi-color-test - displays coloured text in the console in perl
- ansi colour in sh
- mkui SVGs - process svg into png
- surface-test - images (1.1MB)