amiga history guide Supporting Amiga and compatibles since 1997
banners disclaimer faq
 
   

recent updates
amiga history
features
amiga models
magazines
technical
interviews
internet links
downloads

 

© 1997-2006
Gareth Knight
All Rights reserved

 

Status: February 13, 2002 (Status as of February 1) Ben Hermans, LL.M managing partner Hyperion Entertainment Read on...
1.0 AMIGA OS 4.0 DESIGN GOALS

- 1 - Migrate OS 3.9 from 68K to PPC
- 2 - Untie the OS from the Amiga custom chipsets
- 3 - Introduce modern functionality
- 4 - Eliminate key performance bottle-necks
- 5 - Prepare the Amiga OS as a host-OS for Amiga DE

1.1 DEVELOPMENT UPDATE

* Exec Second Generation (Exec SG)
Exec is the kernel of the AmigaOS and is currently written in 68K assembly.
Exec will be re-written for in C and new functionality will be introduced to allow the deployment of OS 4 on any suitable PPC hardware including but not limited to the Amiga One, Blizzard PPC, Cyberstorm PPC, Shark PPC from Elbox, Pegasos from bPlan etc.
The following features are planned:
Hardware abstraction layer Virtual memory New library interface Resource tracking and management Optional memory protection WarpOS backwards compatibility
The following design documents regarding Exec SG were already written and are either finalised or being discussed:
- New library model (final draft)
- Hardware abstraction layer (first draft)
- Virtual environment (first draft)
All design documents are available as PDF files.
Both Dave Haynie and Heinz Wrobel have agreed to serve as technical consultants and the design documents for the HAL and Virtual Environment are currently being re-written to take account of the relevant feedback we collected.

Development status:

Actual coding on the higher level functionality of Exec is already under way.

Most of the “high level” functionality of Exec SG is already implemented (some 50 functions) which includes all list and tag functions and most notably the memory subsystem and parts of the new library scheme.

The memory system is for now limited to the “classic” memory system i.e. the MemHeader/MemChunk functionality. A more sophisticated system is planned and VM support will also be added down the line.

All of the implemented functions and especially the memory subsystem were successfully tested and withstood torture tests without problem.

Work is currently underway on the booting process.

The plan is to adapt a remote gdb kernel so that the whole debugging process can be cross-hosted on Linux thus making debugging substantially easier.

All in all the work is around 50% done.
* 68K emulation

The 68 emulation will be key to OS 4 with many parts of the operating system still in 68K form as well as a very large base of applications and games in 68K.
Development status of the JIT emulator:
Nearly all 68040 integer instructions are now emulated and work is about to start on FPU emulation, OS integration and further performance optimisation.

Emulated opcodes:
data transfer: "move" opcodes, moveq, lea, pea, movem, movec, clr, scc arithmetics: add, addi, adda, addx, addq, sub, subi, suba, subx, subq, neg, mulu, muls, divs, divu comparing: cmp, cmpi, cmpm, cmpa shifts: asl, lsl, rol, asr, lsr, ror, roxr, roxl flow control: bra, dbra, bsr, jmp, jsr, rts, rtr conditional branches: dbcc.x, bcc.x logic opcodes: eor, eori, not, andi, and, ori, or, btst, bset, bclr, bchg, tas miscellaneous: nop, exg, swap, tst, ext, extb, link, unlk

Adressing: all addressing modes which are supported in 68020 Flag emulation: negative, overflow, carry, zero, extended
During dynamic recomplilation a low-level flag data-flow analysis allows run-time optimalisations of recompiled code.

* PPC native TCP/IP stack & PPP drivers

Early tests already suggest that this is the fastest TCP/IP stack found on the Amiga.

Features are as follows:

- implemented as a single shared library - compatible with the Amiga standard "bsdsocket" API, as defined by the AmiTCP product - enhanced API for more control over the inner workings and configuration - built-in DHCP client - Internet Superserver (inetd) - IP filtering and networking address translation - drivers for asynchronous PPP (dial-up networking) and PPP over Ethernet

Development status:
The TCP/IP stack (“Roadshow”) and PPP drivers have been completed with the following issues outstanding:
- GUI (also required for the PPP drivers)
- SSL implementation/integration.
SSL V2 is very close to completion.

* Re-implementation of the Amiga file system (FFS2) for PPC

FFS2 is a fully backwards compatible re-implementation in C of the Fast File System. It supports media > 4 GByte, and a new variant of the file/directory name storage format which allows for long file names (up to 108 characters).
Development status:
Completed and successfully tested.
* Recovery and Salvage tools for FFS2 and SFS
Salvage, Undelete, Unformat, Repair, RDBSalv, ReOrg/Defrag, Check Integrity etc. with full support for FFS2 and SFS
Development status:

Filesystem Check, Salvage (recovery by copying to another partition), Undelete, Optimize ("ReOrg"/"Defrag"), Find Partitions and Unformat are done. The filesystem Repair function still needs some work. Localization and user documenation is not done yet.

* PPC native RTG system (Picasso 96 V3)
The RTG system allows for the use of modern graphics cards such as the Matrox and ATI cards on the Amiga.
Development status:
Permedia 2 driver: 85% completed Permedia 3 driver: 60% completed Voodoo 3 driver: 100% completed Matrox G450/G550: work in progress ATI Radeon family: work in progress

Picasso 96 V3 will subsequently be ported to PPC with the use of the new Exec SG library model for optimal performance.
An arithmetically optimised PPC native version of layers.library is planned.
* Warp3D (3D driver system)

Warp3D is a powerful yet low-level 3D API which is both available on the classic Amiga and intent/Amiga DE which allows developers to rapidly migrate 3D content between both platforms.
Development status:

Permedia 2 driver: 100% completed Permedia 3 driver: work to start upon completion of 2D drivers Voodoo 3 driver: 100% completed Matrox G450/G550: work to start upon completion of 2D drivers ATI Radeon family: work to start upon completion of 2D drivers
* OpenGL 1.3 support (Mesa 4.0)
OpenGL is a cross-platform (Mac, Linux, Windows, AmigaDE etc.) high-level 3D API originally developed by Silicon Graphics.
Support for OpenGL 1.3 will be provided by porting the open source project Mesa (which now passes all SGI compliance tests) which will sit on top of Warp3D so that graphics-card functionality not currently offered by the OpenGL API may be supported nonetheless.
Development status:
Work will start once Warp3D V5 has been completed.
* PPC native RTA system based on AHI
Developer: Martin Blom and others
A Retargetable Audio System allows the use of plug-in soundcards (PCI or Zorro II).

AHI by Martin Blom is currently the de facto standard on the Amiga and a PPC native version will be offered with support for a wide variety of soundcards including but not limited to all current Amiga soundcards and the Soundblaster 128 and Live (EMU10K1) cards.
Development status:
Martin Blom has started work on the Soundblaster Live drivers.
* PPC native Intuition and Reaction
* Reaction is the BOOPSI based GUI system for the Amiga, introduced in OS 3.5 and extended in OS 3.9.
The functionality of Reaction will be extended by providing more classes and be integrating Reaction better within the OS.
The addition of the following classes is being contemplated:
-application.class - name not finalized. This class will be a "parent" and likely unify window class and arexx class management together, ease management of multi-window applications and support easy creation of applications as commodities.
-speedhint.class - a new help display class based on the speenthint code from window.class, however this will allow for a more powerful API and future growth path.
-popwin.gadget - similar to chooser.gadget but allows a popup display containing most any other gadget as a child - most useful for a popup listview. For this gadget to function, Intuition needs to gain some new ability. The safety of making these changes and therefore including the gadget will need to be evaluated via beta testing.
- prefs.class - a new baseclass that allows for custom plug-in preferences modules for any of the ReAction classes. Subclasses need to be written for the existing ReAction classes and supported in ReActionPrefs.
The following functionality will also be implemented:
Drag and Drop support.
New “ghosted” look
* Intuition will sport the following new features:
New DrawInfo pens, Enhanced window borders Resolution-adaptive system gadgets User-selectable styles for system glyphs and 3D frames with support for external plug-ins Configurable look for proportional gadgets New-style (3D recessed) “disabled” look for gadgets where applicable Gad-Tools enhancements (pop-up capability for cycle gadgets etc.) Full-user control of Workbench palette
Development status:
Work is expected to be completed in time for release of OS 4.0 with more work already planned for subsequent updates of the OS 4.0.
* SCSI drivers for onboard (UW) SCSI controllers
The current SCSI drivers for the onboard SCSI controllers of the Cyberstorm PPC and the BlizzardPPC are written in 68K code which cannot be emulated due to the usage of MMU instructions and the different MMU pagesizes of the 68K and PPC line of CPU’s.
It is therefore necessary to replace these drivers.
Support for other SCRIPTS based PCI-based SCSI controllers is planned to allow an easy migration of SCSI hardware to non-SCSI systems such as the AmigaOne.
Development status:
The SCSI driver framework is completed with work in progress on implementing the actual driver for the Cyberstorm PPC onboard SCSI controller.
Good progress is being made and the driver is expected to be finished in time.
* WarpInput API
WarpInput is an API for multimedia controller devices (akin to DirectInput on Windows) which allows a programmer to provide support through one API for a wide variety of input-devices such as keyboard, mouse, joysticks(analog and digital), track-ball, Playstation controller etc.
The design document is in its second draft and implementation has started.
Development status:
Work is underway to re-implement lowlevel.library in C.
* Minimal USB stack
A minimal USB stack would allow for the use of USB based keyboards and mice which would effectively aid in untying the OS from the custom chipsets.
Development status:
Design documents are drafted and implementation work is underway.
* PPC native datatypes
PPC native datatypes for common formats such TIFF, JPEG, PNG and BMP.
Development status:
Completed but still need to be recompiled for OS 4.
* New HDToolbox
HDToolbox is a utiliy which allow for the formatting and partitioning of storage devices.
The new incarnation of HDToolbox will offer substantially more functionality than the current version.
Development status:
- Lowlevel part ('the Engine'):
Some 80% of the written code was tested with a total of about 85% written. Succesfully tested code includes: removing/adding partition and filesystem, moving and sizing partition, saving RDB back to disk or to a file. The automatic error reporting and correction of RDB structures is still missing. This is the last remaining major item which remains to be implemented in the Engine.
- Highlevel part (GUI):
The partitioning window is 100% complete owing to a new gadget designed by Massimo Tantignone. So is the filesystem selection window barring the gadgets related to the correction/error reporting of RDB values. Two windows remain to be fully managed: the Installation window (already working but incomplete) and the lowlevel SCSI utilities window which is fully designed but not yet working. Also missing is a complete test of the GUI layout functionalities: the GUI will try to open a custom screen if the current screen is not big enough but this is not tested yet.
Still to do: support for localization and user documentation.
Overall the development status is estimated to be 85% completed.
* Support for TrueType/OpenType fonts
Currently the AmigaOS does not support TrueType fonts which is a serious deficiency.
A new font-engine as well as a reworked version of the bullet API, bullet.library, diskfont.library is called for.
Development status:
Work on the initial version for OS 4 is around 95% completed.

BACK

 


Latest updates to the Amiga History Guide. (more)


· Amigart
· Amiga Hardware
· Amiga History.de
· Amiga-news(en)(de)
· Amiga.org
· Amiga University
· Czech Amiga News
· Commodore Retrobits
· Dave Haynie archive
· morphos-news.de


Other interesting items in the archive!


 

home · changes · amiga history · features · amiga models
magazines · technical · interviews · internet links · downloads