Difference between revisions of "Peerix"

From Organic Design wiki
m (Caretaker: Format cat links)
(organise better)
Line 1: Line 1:
 
[[Category:Peerix]]
 
[[Category:Peerix]]
 
==What's in a name?==
 
==What's in a name?==
As a person who has seen my fair share of branding in years as a graphic artist, 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.  
+
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.
 
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 the buildroot cross development enviroment", but that realy has no meaning outside a small group of specialists. The general IT communities convention is that names ending in ''ix'' refer to things based on the Unix or Linux operating systems, so the word ''Peerix'' describes a [[w:P2P|Peer-to-peer]] linux-based operating system. See [[Naming]] for details concerning the general concept of naming and its surrounding issues.
+
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 enviroment", but that realy has no meaning outside a small group of specialists.
  
=== Overview ===
+
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 [[w:P2P|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 on the [http://www.organicdesign.co.nz/peerix Organic Design] wiki. 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.
 
====Source based====
 
The source-based methodology used by the [http://www.gnu.org 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) 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.
 
====The Future====
 
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!
+
== Overview ==
====Monolithic vs Microkernel====
+
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.
The GNU component set was not actually designed for Linux in the first place, they were designed from the very beginning to run on top of a [[Wikipedia:Microkernel|microkernel]] called [[Wikipedia:Hurd|GNU Hurd]] which is still not complete enough for use (the [http://www.debian.org/ports/hurd/ 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 [[Wikipedia:Monolithic kernel|monolithic kernel]] to  take off since the GNU project had a complete Unix-like OS with only the kernel missing.
+
== Embedded Linux ==
 
+
Continuing research leads to the use of embedded linux as the base of our operating system. This is comprised of:
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.
+
*A boot loader
 
+
**[http://syslinux.zytor.com/ syslinux] (x86)
=== Embedded Linux ===
+
**[http://yaboot.ozlabs.org/ yaboot] (PPC)
Continuing research leads to the use of embedded linux as the base of our operating system. This is comprised of:  
+
**[http://ipodlinux.org/Category:Bootloaders iPod loader] (ARM)
*[http://kernel.org A linux kernel]
+
*[http://kernel.org A linux kernel (2.6.x)]
 +
*[http://uclibc.org/ uclibc] the micro c library
 
*[http://www.busybox.net/about.html Busybox] the Swiss Army multi-call binary
 
*[http://www.busybox.net/about.html Busybox] the Swiss Army multi-call binary
*[[udev]] linux 2.6 device manager
+
*[[udev]] modern linux device manager
*[http://uclibc.org/ uclibc] the micro c library
 
 
*[http://matt.ucc.asn.au/dropbear/dropbear.html Dropbear] ssh client and server.
 
*[http://matt.ucc.asn.au/dropbear/dropbear.html Dropbear] ssh client and server.
 
*[http://udhcp.busybox.net/ udhcpc] micro DHCP client
 
*[http://udhcp.busybox.net/ udhcpc] micro DHCP client
 +
*[http://fuse.sourceforge.net/ FUSE] a [[Virtual file systems|virtual file system]] API
 
*[http://buildroot.uclibc.org/ buildroot] is the system used to build the OS from source.
 
*[http://buildroot.uclibc.org/ buildroot] is the system used to build the OS from source.
*[http://fuse.sourceforge.net/ FUSE] a [[Virtual file systems|virtual file system]] API
+
 
=== We like GeeXboX ===
+
*[http://www.libsdl.org/ SDL] graphical framebuffer and IO interfaces
 +
 
 
It's worth looking at the [http://geexbox.org/en/index.html GeeXbox] media operating system as this distro has very nice approaches to many of the problems we will need to solve.  
 
It's worth looking at the [http://geexbox.org/en/index.html 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.
 
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.
  
===How we are doing this===
+
==Source based==
* buildroot can be hooked into almost any kind of existing source repository, so there is no need to fork existing projects
+
The source-based methodology used by the [http://www.gnu.org 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) 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.
* source trees can eventually be handled by nodal logic and the concept of [[w:make|make]] is a simple one to implement in a nodal way.
+
 
 +
==Monolithic vs Microkernel==
 +
The GNU component set was not designed for Linux, but for a [[Wikipedia:Microkernel|microkernel]] called [[Wikipedia:Hurd|GNU Hurd]] which is still not complete enough for use. The [http://www.debian.org/ports/hurd/ Debian GNU/Hurd] project is probably closest but is still quite a way off. It's was difficulties with the GNU/Hurd development that allowed the Linux [[Wikipedia:Monolithic kernel|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.
  
=== x86 and PPC ===
 
Current research has identified a preliminary structure for the OS.
 
  
EXTLINUX / ISOLINUX / YABOOT boot loader supplies:
+
==Mobile devices==
*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
 
  
 +
It's hard to overstate the importance of handheld and mobile devices in he worl of modern computing.
 
=== iPod ===
 
=== iPod ===
It's good to see that 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.
+
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. [http://svn.ipodlinux.org/tools/ Example here].
 
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. [http://svn.ipodlinux.org/tools/ Example here].
Line 62: Line 54:
 
*[http://homebrewhowto.com/sony-psp-homebrew-and-hacks-tutorials Homebrew HowTo]
 
*[http://homebrewhowto.com/sony-psp-homebrew-and-hacks-tutorials Homebrew HowTo]
  
=== Scripts ===
+
 
 +
==The Future==
 +
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!
 +
 
 +
 
 +
== Scripts ==
 
Some scripts that relate to the OS build process and other things. Resources required by the scripts can be downloaded from [http://www.cs.auckland.ac.nz/~rcarter/download/ my uni home page].
 
Some scripts that relate to the OS build process and other things. Resources required by the scripts can be downloaded from [http://www.cs.auckland.ac.nz/~rcarter/download/ my uni home page].
 
*[[mkinit]]
 
*[[mkinit]]
Line 72: Line 71:
 
*[[surface-test]] - [http://www.cs.auckland.ac.nz/~rcarter/download/png-test.tar.gz images (1.1MB)]
 
*[[surface-test]] - [http://www.cs.auckland.ac.nz/~rcarter/download/png-test.tar.gz images (1.1MB)]
  
=== Resources ===
+
== Resources ==
 
*[http://www.o3one.org/ Object Oriented OS]
 
*[http://www.o3one.org/ Object Oriented OS]
 
*[http://www.knoppix-std.org/doc-customize.html How to Customize Knoppix]
 
*[http://www.knoppix-std.org/doc-customize.html How to Customize Knoppix]

Revision as of 08:21, 1 November 2006

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 enviroment", 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.

Overview

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.

Embedded Linux

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

  • SDL graphical framebuffer and IO interfaces

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.

Source based

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) 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's 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.


Mobile devices

It's hard to overstate the importance of handheld and mobile devices in he worl of modern computing.

iPod

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.

PSP


The Future

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!


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