Home of the Zeta Virtual Architecture
Zeta is the name of a virtual platform, or architecture.
There are specifications (see the handbook), and a basic, not-yet-optimised emulator (cpu, ram, clock, mainboard). The architecture is simple, barely having the minimum needed to run linux with MMU.
The purpose is to play with the toolchain and the linux kernel, to learn more about those core technologies. Binutils and gcc are already ported at 80%25. (No static lib nor PIC code yet, userland compilation untested.) Using those tools (as "cross-compilers"), the real work can now begin : porting linux to Zeta. This is still work in progress. This kernel is called ZetaLinux.
Zeta is designed and written by "Thomas Capricelli":http://www.freehackers.org/thomas/feedback/
Zeta 0.6 was released in july 2007. The toolchain and the kernel were updated to latest version, and the handbook has been improved.
Version of external tools used
BINUTILS_VERSION = 2.17
GCC_VERSION = 4.1.2
KERNEL_VERSION = 2.6.22
The whole chain was tested on i386 and amd64 host platforms.
h2. Get the code
All the code can be found on http://sources.freehackers.org/ : you can either download tarballs or clone the repositories using "mercurial":http://en.wikipedia.org/wiki/Mercurial_(software) ("homepage":http://mercurial.selenic.com/wiki) if you know what this is.
There are 4 repositories:
* Zeta-binutils is a port of binutils to Zeta
* Zeta-gcc is a port of gcc to Zeta
* Zeta-linux is a port of the linux kernel to Zeta
* Zeta is the main repository, with specification, documentation, test cases and the emulator.
The whole code of the Zeta project is released under the GNU General Public License version 2 (GPL).
h2. Release checklist
* export/compile/install/boot on at least three computers (berlioz,verdi,autre)
* change gcc/gcc/version.c
* change binutils/bfd/configure.in:AM_INIT_AUTOMAKE
* change handbook/main.tex ("Release" and "History")
h2. Goals for 0.7
* latest binutils/gcc/kernel
* mercurial repository for kernel port
h2. Goals for 0.8
* Zeta Handbook
* memory userspace access stuff for kernel
* mmu : specs/emulator implementation/kernel code
* documentation for tests in the handbook
* opie, etc..