Carl Sassenrath
Carl Sassenraths web page can be found here: SassenRanch (opens in a new tab)
Carl Sassenrath joined Amiga Computer Inc. in 1983, where he became Manager of Operating Systems at the small company. He designed a preemptive multi-tasking system, utilising a microkernel, based on real-time message passing, which was called EXEC, with dynamically loaded libraries and devices as optional modules. This is the heart of the Amiga operating system, usually stored in Kickstart, but which can be patched to give updates during the process of booting Workbench.
Interestingly, as Carl himself states in the video above, when he first joined Amiga Computer Inc. Jay Miner, who previously had years of experience working at Atari Inc. gave him a book about the Atari operating system, as used on the Atari 8-bit Computers (No, not the Atari game machines), and suggested Carl design something along the same lines. As Carl notes, the operating system in the Atari was very, very simple, and he decided to add a lot more features to make the job of programmers developing for the system much easier. Incidentally this was the same method Apple used with the Apple II, Lisa and Macintosh Operating Systems, where the Operating system could be utilised in order to perform specific tasks, so that the programmer didn’t have to waste their time “reinventing the wheel” to do common tasks such as clear the screen or draw a line on the screen.
As the Amiga was originally designed to be a games machine, it was vital that these functions be as efficient as possible, both in terms of execution speed and memory space, or else the programmer would just use their own method. By having these functions as part of Kickstart, this meant that they didn’t take up precious RAM, and so that wasn’t an issue, and as Carl and the other writers of the various Kickstart modules (such as RJ Mical) knew the hardware very well, they were able to write surprisingly efficient code for these functions.
It was also the Carls idea to split the Kickstart into different modules, which could be compiled independently of each other and then merged into Kickstart. Thus the Amiga, from the very start, used Dynamic Linked Libraries, a concept that is the basis for almost all modern computer systems today. This also meant that modules may need to operate simultaneously, thus it was essential for the Amiga to have multi-tasking.
To attempt to put it into simple terms, two of the modules that are in Kickstart are graphics.library and intuition.library. intuition.library makes use of input.device to get input, and makes use of graphics.library to draw things like windows and menu items. But if a programmer doesn’t want to use windows and menus, they can use input.device themselves to get the input, and use graphics.library to draw to the screen. Meanwhile the EXEC module (Carls work) is in charge of everything, ensuring that everything works as it should.
We can thank Carl Sassenrath for the wonderful multi-tasking system we came to know and enjoy on the Amiga, and don’t forget, while Unix (and many years later, Linux) may have had multi-tasking since their inception, equivalent multi-tasking capabilities didn’t come to Windows until, at the earliest, Windows NT in 1993 (8 years AFTER the Amiga), and didn’t arrive on the Apple Mac series of computers until MacOS X in 2001 (16 years AFTER the Amiga).
After the release of the Amiga in 1985, Sassenrath left Commodore-Amiga to work on other projects.