TetraPower 970MP (CANCELED) Project
Plan 9 port + PPC compiler updates and optimizations

in category Operating Systems
proposed by lyndon on 28th June 2006
Project Proposal
Plan 9 is a distributed operating system developed at Bell Labs as a follow-on to UNIX. The system is designed to be small, fast, and portable. It sees use as a research operating system, and in various incarnations to control devices ranging from small routers and firewalls to large central office telephone switches.

The current Plan 9 release contains limited PPC support. The kernel has support for the Motorola MTX embedded motherboard fitted with a 604e processor. Anecdotally, the kernel has previously run on RS/6000 servers, and on an internally developed (at Bell Labs) embedded system based on the MPC850 processor. And while Plan 9 is fully architected for SMP, the PPC port is currently restricted to a single CPU.

PPC (and other) architecture support has atrophied, primarily do to the wide availability and low cost of i386 systems. In order to ensure the ongoing viability of Plan 9\'s multi-architecture support it is important to exercise the non-i386 code paths. The OSW platform, being openly documented, simplifies the initial port bootstrap, and then provides a reference platform for future PPC ports. As a multi-CPU system, it allows for full SMP kernel support to be exercised.

Plan 9 provides a seamless cross-architecture development environment, thus an existing i386 (or other) Plan 9 system can be used to compile software for the new architecture, and act as a network boot server for the new hardware.

Porting would roughly follow this path:

1) Write an OF bootstrap loader.

2) Write trampoline from OF to kernel native device drivers.

3) Kernel additions for MMU and northbridge support.

4) Bring up native drivers for ethernet and disk.

At this point we should have a fully self-hosted and self-installing system running in 32 bit mode. This system should also be ready for use on embedded PPC boards (modulo needing some board-specific device drivers written).

5) Extend the PPC compiler and loader to support the 64 bit PPC instructions. Update the existing 32 bit compiler to make better use of the available registers, and to perform more aggressive code and scheduling optimizations.

6) Begin work on extending the kernel to natively support 64 bit architectures.

At this stage we\'re beyond the scope of just the PPC architecture. Providing a native 64 bit environment will require invasive changes to the kernel and applications, and will affect all architectures. We will, however, have a working reference platform upon which to continue this work with the entire Plan 9 community.

References:

Plan 9 From Bell Labs

Adding Application Support for a New Architecture in Plan 9

The Various Ports

Project Blog Entries

No blog entries for this project
Genesi Network: Genesi - Main Site Power2People PowerDeveloper