AmigaOS 4.0 Status Report
Date 8-Jun-2004 22:02:54
|By Hans-Jörg Frieden, Hyperion Entertainment|
With the Developer Pre-release finally out, the time is right for a status report on the current state of AmigaOS 4.0. The huge amount of work invested into the project by a lot of dedicated developers means that there has already been substantial progress since the pre-release.
Some of the 68k components of the pre-release have in the meantime been ported to PowerPC code. The most prominent of these are Picasso96 and MUI. While Picasso96 is still in alpha test among the developers, the PPC version of MUI is being beta-tested right now, and is expected to be stabilized soon.
The kernel has also seen some updates. Among other things, it now supports a special resource called the performance monitor. The performance monitor is a hardware profiler within the CPU that allows the programmer extremely fine-tuned profiling of code, even including counting cache hits and misses,instruction timing, pipeline stalls, number of instructions patched, instruction throughput, and a lot of other factors. The performance monitor is controlled via performancemonitor.resource, which offers an easy-to-use API that wraps all this functionality into a few functions.
Further improvements of the kernel include support for the Altivec unit. The Altivec unit is a SIMD vector processing unit. SIMD stands for "single instruction multiple data", meaning that a series of instructions is executed in parallel on multiple streams of data items. Altivec has a lot of uses, most prominently in 3D graphics, but also in image processing, signal processing, compression/decompression, and all general computing applications that inherently work by executing the same instructions on large datasets. Altivec support in the kernel isn't 100% stable yet, but is expected to be fully functional very soon.
Moovid, the well-known media player, has now also been ported to PowerPC, and the results are quite spectacular. An Altivec-enabled version is also in the works. Moovid plays a wide range of movie codecs, including DivX.
A lot of progress has also been made on the shared C library, newlib, and the static C library, clib2.
Subsequently, there is now a new gcc compiler suite that runs up to six times faster than the compiler included in the SDK. Furthermore, since the final release of GNU C 3.4.0 has emerged, it has also been successfully ported to AmigaOS 4.0, and is now used for most components and programs. GCC 3.4.0 features a much better code generator than previous versions, much better support for ANSI C++, and implements the Motorola 'vector' extension for Altivec (meaning you can use types like 'vector unsigned char x' in your program to signify a vector for Altivec).
One program that has seen a tremendous speed boost is AmiPDF. The new PowerPC version of AmiPDF is, depending on input, up to 60 times faster than the original version on the prerelease.
Furthermore we expect a working serial device and floppy support soon.
The USB stack is shaping up as well. It now supports HID devices like keyboards and mice as well as HID joysticks and steering wheels, and USB mass storage devices like USB sticks, flash card readers, 7-in-1 card readers and cameras.
The A1 IDE device now has working UDMA support. Also, interrupts are no longer polled but delivered properly. This means that the device does not require any CPU time for transfers.
Currently, work concentrates on performance optimization. Results look quite good already, and stress tests have shown the device to be 100% reliable - no data corruption occurs
This material will in due course be released for download to registered users of the Developer Pre-release on our web site at: