Difference between revisions of "Peerix"

From Organic Design wiki
m (Packages)
(cut more old stuff)
Line 43: Line 43:
 
*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)
 
*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]]
 
*[[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.
 
*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
 
*[[Unified Boot]] - the ability to provide a universal binary to boot a linux operating system on a range of hardware
 
Linux Kernel supplies:
 
Linux Kernel supplies:
 
*Built in support for [[HotPlug devices]], Hardware autodetection, network
 
*Built in support for [[HotPlug devices]], Hardware autodetection, network
*Ultimately a custom made kernel will be compiled - 2.6 version
+
*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 ===
 
=== iPod ===

Revision as of 03:15, 16 August 2006


Overview

Peerix is a name for the unix-like operating system designed specifically for the Nodal Reduction environment. 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 and PSP.

The aim is to use the unix-like features for hardware and other low-level services such memory-management. The nodal environment would be used for high-level network and resource allocation layers, and to provide the user interface.

To allow the nodal environment to integrate more tightly with the hardware, some of the core nix-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!

The set of unix-like components developed by GNU weren't actually desgined for Linux in the first place, they were designed from the very beginning to run on top of 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's was these difficulties with the GNU/Hurd development that allowed the Linux monolithic kernel to take off 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.

Embedded Linux

Continuing research leads to the use of embedded linux as the base of our operating system. This is comprised of:

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. However, even GeeXbox does not abstract the control flow, and still relies on shell scripting to perform many of the operation that would be nodally executed.

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
  • The packages are available for a range of architectures

Solutions:

  • buildroot can be hooked into almost any kind of existing source repository, so there is no need to fork existing projects
  • source trees can eventually be handled by nodal logic and the concept of make is a simple one to implement in a nodal way.

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
  • 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
  • A custom made kernel will be compiled - 2.6 version

iPod

PSP

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