Peerix

From Organic Design wiki
Revision as of 11:11, 11 April 2006 by Rob (talk | contribs) (update bootloaders)

Peerix is a name for the unix-like operating system that allows the distributed nodal space to execute and make use of a range of computer hardware. Peerix is based on Linux and uses a linux kernel. The source-based methodology used by the GNU linux community means that we can design an operating system that can work on a range of computer hardware. The PC (x86) and Mac (PPC) platforms are the most common, but many others are supported.

It should be possible to have our operating system work in a similar way on Mac, PC, Palm, even iPod. The current focus of development is the x86 and PPC architectures.

Packages

  • Building from source is complex and time-consuming
  • Building from source gives software that is better optimised for the hardware of a specific machine
  • Versioning can be a nightmare
  • We've decided to let someone else take care of all this and use an existing repository of binary packages (debian)
  • The packages are available for a range of architectures

Perl packages

Perl packages (from CPAN for example) usually come as a source distribution. They are a combination of perl scripts and c-like source code that must be compiled. The CPAN perl module takes care of building the packages, but requires a C development enviroment with the correct compiler and all the usual dependancies/problems that entails. It should be possible to build perl binary packages that install in a similar way to Debian packages; no compilation is required, as the package contains a generic binary for that architecture.

A way to achieve this is to build a working file system complete with the perl modules and gnu progams that are required and image the filesystem using tar. Provided that the compiled perl binaries play nicely on a range of hardware within their architecture a fairly generic system could be imaged easily. This image would form the main file system of the OS distribution, for either live CD or install-to-hard-disk use.

x86 and PPC

Current research has identified a preliminary structure for the OS.

EXTLINUX / ISOLINUX / YABOOT boot loader supplies:

  • Hardware specific binary code residing in the boot sector of a device (CD, HD, USB stick, Flash card)
  • Bootstrap application to mount and execute the linux kernel (ext2 filesystem) and mount the main filesystem (ISO9660 in the case of ISOLINUX, ext2 in the case of EXTLINUX)
  • CD to boot both Mac and PC
  • Initialise framebuffer
  • Take care of aesthetic considerations such as hiding/logging boot messages and displaying an initial startup image on framebuffer.
  • Unified Boot - the ability to provide a universal binary to boot a linux operating system on a range of hardware

Linux Kernel supplies:

  • Built in support for HotPlug devices, Hardware autodetection, network
  • Ultimately a custom made kernel will be compiled - 2.6 version

Debian distro provides:

  • Software Package management (apt-get)
  • Kernel package management and customising (kpackage, makeconf)
  • Framebuffer support and graphics abstraction layer
    • directfb
    • SDL, GD, imagemagick, other RIPs
    • SDL::Perl
    • Perl-based network layer
    • Perl-based GUI connecting to SDL

iPod

Scripts

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.

Resources