AmigaRulez interview with Thomas Frieden by Johan "Graak" Forsberg
Graak: Hi and thanks for taking your time to participate in this interview. Can you introduce yourself to our readers?
Thomas Frieden: "My name is Thomas Frieden, and I'm currently working for Hyperion Entertainment on AmigaOS 4. I'm 33 years old, and I live in Trier, Germany"
Graak: What made you start with the Amiga? What did/do you like about it?
Thomas Frieden: "When I first saw an Amiga running in a local store, I was amazed at the fact that it could run multiple programs at once. This was in 1988, and I still remember the Workbench 1.3 they ran on that thing, and the little demo programs (dotty, boxes, lines... old timers will surley remember these :). This really got me."
Graak: You're currently working on AmigaOS4, the new PowerPC based AmigaOS. Can you give us an overview of what it'll be like and what new features it'll have?
Thomas Frieden: "AmigaOS 4 will be the final step from the 68k based Amiga hardware up towards a PowerPC based Amiga system. The emphasis is put on portability of the system to other PowerPC hardware, including, but not limited to, the Amiga One or the SharkPPC. Of course, the old Phase 5 PPC accelerators will also be supported.
In OS4.0, the main change will be that Exec, the Amiga OS's kernel, is completely rewritten, from scratch, to run natively on PowerPC. This means that instead of emulating this vital functionality, it's completely native, and thus will deliver the best, fastest possible solution for OS4.
Along with Exec, there will be a powerful 68k emulator that will enable old 68k-based software to run on OS4, even if there's no 68k CPU present anymore. OS4 will *not* use a physical 68k CPU anymore, even though one may be present. The reason for this is simple: The 68k and PPC on current systems are alien to each other. They where never designed to work together in the same environment. In contrast to, for example, multiple PowerPC CPUs, the 68k and PPC do not share their on-chip memory caches. So, when one wants to access data written by the other (which is always the case when the PowerPC calls the operating system), these caches will have to be emptied. But these caches are one of the reasons why modern CPUs are so fast. Flushing them slows down the system, down to a point where both CPUs are working ata very low percentage of their real power. So, you see, having two CPUs in this case doesn't make it faster, only slower. So emulating the 68k makes sense, and will enable the PowerPC to show, for the first time, it's full potential.
A lot of other modules will also be PowerPC native in OS4, including such vital components like intuition, the Amiga's graphical user interface, and most of the real time-critical parts, like some devices and drivers.
We're also adding functionality. For example, intuition will get a major overhaul, as well as layers.library. The same applies to DOS, which is still a piece of code with lot's of old kludgey hacks and backwards compatibility that hasn't been used since Kickstart 2.0. A lot of stuff is also added to Exec. There will be a completely new library interface that will allow the programmer to offer different views of a library to application programmers and have libraries split up their functionality to different "interfaces". We're also hoping to be able to include real virtual memory with OS4, as well as a limited form of memory protection (full memory protection will probably break backwards compatibility). We also have plans for something called resource tracking, which is a method for programs to track what system resources (memory, files, windows, screens, etc) they have opened. So when a program crashes, the system will be able to completely remove it from memory, including all the windows/screens it opened, or files it was reading.
Additionally, a lot of new functionality in different areas will be added. One of the major enhancement is the inclusion of a USB stack, that will allow Amiga users to use USB devices such as keyboards, mice and joystick, as well as scanners, printers, and digital cameras. OS4 will also have a fully functional TCP stack which will be the fastest TCP stack available for the Amiga. Plus, there will of course be enhancements like new 3D drivers, and AmigaInput, a system for game programmers to read input devices in an abstract way, meaning they can use the same code to read mice, keyboards, joypads, PSX joypads, analog joysticks, digital joysticks and even USB joysticks, all in the same way. Thus, programmers don't have to care for every device themselves."Graak: Many people are wondering if AmigaOS4 will have that Amiga "feeling". Will it still be as quick and responsive as before?
Thomas Frieden: "Yes, it will. Basically, it will "just" be a port to PowerPC. This CPU also brings along a raw computing power that by far exceeds the 68k, even on the current Phase 5 accelerators. Add to this that the principal methods of operation from the old Exec are still in there (OS4 will, for example, use the same task scheduling algorithm as OS3), and you'll see that OS4 will be as responsive as the old one."
Graak: Some people have asked about the multitasking in OS4. Will it be the same as in OS 3.x or will it be improved, and if so, will it be something Executive-like?
Thomas Frieden: "There's really not much to be improved with the multitasking in OS3. It's very responsive, and it's also nearly real-time. In fact, it uses almost the same algorithm that's employed in a lot of realtime operating systems (like QNX).
Later, it will be possible to plug in another algorithm, but for now, the old one will remain. In fact, first tests reveal that the context switch time (the time required to switch from one running task to another one) will be extremely low (the appropriate part of the system is completely written in PowerPC assembler), so it's really fast."Graak: All earlier AmigaOS versions have been coded in C and assembler. Is OS4 coded in C and assembler as well? Some people are worried that it won't be as fast as earlier versions if it's coded in C only.
Thomas Frieden: "It's not coded in C only. There are two parts to Exec: The Exec kernel itself, and something called a hardware abstraction layer, or HAL for short. The HAL is the binding between the high-level Exec and the hardware. This HAL is nearly completely written in assembler, mostly because it touches the real low-level parts,like handling of interrupts and exceptions, cache management, etc.
But even the high-level parts, which are written in C, will be fast. It's a common misconception that assembler means fast, and C means slow. This is completely untrue. If you choose the wrong algorithm, assembler will be as slow as BASIC. Add to that the fact that modern compilers (we're using a recent version of gcc for the system) are extremely good, you'll have a hard time beating a C compiler with assembler.
Of course, there are regions of code that are highly time critical. The scheduler (task switching) is one of them, and for that reason, it's completely written in assembler. Other parts of the high-level functionality will later also be converted to assembler (for the technically minded, this includes stuff like the list handling, which is of course used very frequently...)."Graak: It says in the feature list that OS4 will have "optional memory protection". What does that mean?
Thomas Frieden: "Optional means it can be turned on or off. A lot of older programs can't run with memory protection. This is because normally, memory that is only used by one task shouldn't be used by another. But this rule has been broken many times, partially because people where not aware of this fact, partially because the documentation on this wasn't really clear (the interested might want to look up the MEMF_PUBLIC flag in the AllocMem autodoc ;), and partially because there wasn't any other way (the AmigaOS does not have the concept of "threads" like in other systems).
So, to stay backwards compatible, memory protection will be optional, i.e. you can either completely turn it off, or enable it, with the risk that some programs might run into trouble. Hopefully, OS4 will later on get programs that will make older stuff obsolete, so that memory protection can than be used to full extend."Graak: What can you tell us about the virtual memory system? Can it be turned off?
Thomas Frieden: "Yes, it can. The virtual memory sits on top of Exec's normal memory subsystem. What's even more, programs will have to specifically ask for memory that might be virtual (there's a new memory flag, MEMF_VIRTUAL). That way, programs can ensure that sensitive data will not end up in virtual memory, while "bulk" data (like graphics or geometry datain a 3D game) are handled through the virtual memory system."
Graak: Will the memory allocation/deallocation routines be improved so there will less memory fragmentation?
Thomas Frieden: "There are plans to do that, but for now, we're using the old scheme. Some functions in Exec even expose this old scheme of allocating memory, and therefore, it can not be completely dropped. If time allows, a new allocation scheme will come in."
Graak: Hyperion have stated that OS4 will have a generic pci.library, for all Amiga busboards/motherboards. Have you made any agreements with the busboard/motherboard manufacturers?
Thomas Frieden: "Yes. We are talking with Matay and Elbox about support for their appropriate hardware.
We are receiving absolutely no cooperation from DCE with respect to the GREX and the old Phase 5 accelerators despite numerous requests on our part. We recently found out that they were instructed by bPlan not to cooperate with the OS 4 development team in any way."
What hardware will it run on? Will it work on Blizzard PPCs? And what is the status on SharkPPC support?
"We are aiming at supporting "all" PowerPC hardware, i.e. as much as possible. There's also a licensing issue involved, so the current firm targets are the Amiga One and the SharkPPC, as well as the CyberStorm PPC. The Blizzard should also be supported, but lack of documentation (and willingness to give the documentation from the manufacturer) will make it difficult. In the end, I'd personally say "nothing is impossible", and we will definitely try to support the Blizzard. After all, I think it's the core Amiga market of the last two years."Graak: I know that it has been asked thousands of times, but when will OS4 be released?
Thomas Frieden: "Perhaps you know the game "Duke Nukem Forever" ? They're asked the same question for a few years now. So I will use their "default" answer here as well: When it's done ;)"
Graak: What do you think about the competing product MorphOS?
Thomas Frieden: "To be honest, I never looked at MorphOS. For me, it's not AmigaOS, even though some people would probably tell you otherwise. I'm as much interested in MorphOS as I am in, for example, BeOS.
I never saw it, so I can't and will not comment about it's technical merits. So far, though, I fail to see any plans for MorphOS except for replacing AmigaOS with something different that can run AmigaOS programs. There are no future plans, it seems, that's why I personally rather support Amiga, Inc's idea of moving from OS3.x to OS4, and onto OS5."Graak: What do you believe will happen in the future with the Amiga? Will it finally die?
Thomas Frieden: "If I would believe that the Amiga will die, I wouldn't work on it's future. We are all aware that we have a hard legacy to clean up with. The last Amigas came out in 1992, that's *10* years ago. The technology went through a lot of hands, and all of the previous owners came up with big plans that went up in a puff of smoke.
The current owners have face a constant stream of insults and attacks, but even those people should acknowledge that they already did more for the Amiga than all previous owners by allowing us to go ahead with OS4.
The Amiga will not come back over night. 10 years of neglect are impossible to cope with overnight. It's a slow process, but with the new technologies coming up now (A1, Pegasos, SharkPPC), and the possibilities that integration of AmigaDE into AmigaOS will give, the streamlined OS with it's fast response time and low overhead and most of all the dedicated users, it *is* possible..."Graak: What Amiga do you currently have?
Thomas Frieden: "Currently, I have two Amiga 4000 and two Amiga 1200, most of them PowerPC equipped. I primarily use the A4000 for development."
Graak: What do you like doing with your computer when you're not programming? What do you like doing when you're not sitting in front of a computer at all? =)
Thomas Frieden: "When I'm not programming, I play computer games. I like Role-playing games (like Baldur's Gate, and Dungeon Master), strategy games, and shooters (like Shogo).
When not in front of a computer, I like listening to music, and watching formula one racing (and I'm not a fan of Michael Schumacher ;).
I also like playing pen-and-paper roleplaying games, and Magic: The Gathering"Graak: Thank you very much for taking your time.