Difference between revisions of "Peerix"

From Organic Design wiki
(iPod)
m ({{legacy}})
 
(79 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== PC ==
+
{{legacy}}
Current research has identified a preliminary structure for the OS.
+
The unix-like operating system designed for the [[nodal model]]. See [[:Category:Peerix]] for all peerix-related articles.
  
SYSLINUX / ISOLINUX boot loader supplies:
+
<table class=expandable title="System architecture diagram"><tr><td>
*Hardware specific binary code residing in the boot sector of a device (CD, HD, USB stick, Flash card)
+
[[image:System-architecture.png]]
*Bootstrap application to mount and execute the linux kernel (ext2 filesystem) and mount the main filesystem (ISO9660 in the case of ISOLINUX, fat in the case of SYSLINUX)
+
</tr>
*[[CD to boot both Mac and PC]]
+
</table>
*[[Initialise framebuffer]]
+
== What's in a name? ==
*Take care of aesthetic considerations such as hiding/logging boot messages and displaying an initial startup image on framebuffer.
+
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.  
  
Linux Kernel supplies:
+
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.
*Built in support for [[HotPlug devices]], Hardware autodetection, network
 
*Ultimately a custom made kernel will be compiled - 2.6 version
 
  
Debian distro provides:
+
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.
*Software Package management (apt-get)
 
*Kernel package management and customising (kpackage, makeconf)
 
*Framebuffer support and graphics abstraction layer
 
**directfb, svgalib, fbcon
 
**SDL, GD, rsvg
 
**SDL::Perl
 
**Perl-based network layer
 
**Perl-based GUI connecting to SDL
 
  
== iPod ==
+
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.
 +
 
 +
== 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:
 +
*A boot loader
 +
**[http://syslinux.zytor.com/ syslinux] (x86)
 +
**[http://yaboot.ozlabs.org/ yaboot] (PPC)
 +
**[http://ipodlinux.org/Category:Bootloaders iPod loader] (ARM)
 +
*[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
 +
*[[udev]] modern linux device manager
 +
*[http://matt.ucc.asn.au/dropbear/dropbear.html Dropbear] ssh client and server.
 +
*[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://www.libsdl.org/ SDL] graphical framebuffer and IO interfaces
 +
*[http://jonsmirl.googlepages.com/graphics.html DRI and Mesa 3D]
 +
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.
 +
 
 +
== 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/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 [[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 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.
 +
 
 +
== Mobile devices ==
 +
It's hard to overstate the importance of handheld and mobile devices in the world 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. [http://svn.ipodlinux.org/tools/ Example here].
 
*[http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2004/10/28/ipoditunes_hcks.html?page=3 ucLinux on iPod]
 
*[http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2004/10/28/ipoditunes_hcks.html?page=3 ucLinux on iPod]
 +
*[http://www.ipodlinux.org/ www.ipodlinux.org]
 +
 +
=== PSP ===
 +
*[http://homebrewhowto.com/sony-psp-homebrew-and-hacks-tutorials Homebrew HowTo]
 +
 +
== 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].
 +
*[[mkinit]]
 +
*[[ide-detect.pl]] - half baked
 +
*[[io-test.pl]]
 +
*[[ansi-color-test]] - displays coloured text in the console in perl
 +
*[[ansi colour in sh]]
 +
*[[mkui]] [http://www.cs.auckland.ac.nz/~rcarter/download/svg-test.tar.gz SVGs] - process svg into png
 +
*[[surface-test]] - [http://www.cs.auckland.ac.nz/~rcarter/download/png-test.tar.gz images (1.1MB)]
  
 
== Resources ==
 
== Resources ==
Links:
+
*[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]
 
*[http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/ How to make a USB memory stick bootable with Knoppix]
 
*[http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/ How to make a USB memory stick bootable with Knoppix]
 
*[http://www.uclinux.org/ Embedded linux]
 
*[http://www.uclinux.org/ Embedded linux]
 
+
*[[Useful URLs|More Links]]
[[Useful URLs|More Links]]
+
[[Category:Peerix]][[Category:Legacy Projects]]

Latest revision as of 02:58, 23 April 2020

Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, this is only useful for a historic record of work done. You may find a link to the currently used concept or function in this article, if not you can contact the author to find out what has taken the place of this legacy item.

The unix-like operating system designed for the nodal model. See Category:Peerix for all peerix-related articles.

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.

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:

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/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.

Mobile devices

It's hard to overstate the importance of handheld and mobile devices in the world 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