MultiFinder was the name of an extension software for the Apple Macintosh, introduced on August 11, 1987 and included with System Software 5. It added the ability to co-operatively multitask between several applications at once – a great improvement over the previous systems, which could only run one application at a time. With the advent of System 7, MultiFinder became a standard integrated part of the operating system. It remained a part of the operating system until Mac OS X.
History before the MultiFinder
To allow some degree of freedom, the original Macintosh included Desk Accessories, such as a calculator, that could be run concurrently. However, these were deliberately limited so that they would not use up too much of the available RAM. In fact, they were device drivers which took advantage of the limited multitasking system designed for hardware peripheral support. Although the system software did little to specifically support them, the popularity of Desk Accessories led many application developers to ensure good cooperative multitasking support even from the early days.
In 1986, Apple released the Mac Plus which came standard with 1 MB of RAM. This amount of memory was sufficient to support some form of multitasking, which was first implemented by Andy Hertzfeld in his Switcher program, demoed in January 1985 on a Macintosh 512k, and released as a beta in April 1985. Switcher worked by designating a number of fixed "slots" in memory, into which applications could be loaded. The user could then switch between these applications by clicking a small button on the top of the menu bar. The current application would horizontally slide out of view, and the next one would slide in. Despite its awkwardness, this approach did fit well with the existing system's memory management scheme, and applications needed no special programming to work with Switcher. This early work on Switcher led to the development of MultiFinder by Apple system software engineers Erich Ringewald and Phil Goldman.
MultiFinder, introduced on August 11, 1987, extended the system in a number of significant ways. In addition to giving each application CPU time, it provided a way for windows from different applications to co-exist by using an application layering model. When an application was activated, all of its windows were brought forward as a single layer. This approach was necessary for backward compatibility with many of the windowing data structures that were already documented. It also provided a way for applications to supply their memory requirements ahead of time, so that MultiFinder could allocate a chunk of RAM to each according to need. This scheme, while functional, turned out to have severe limitations which caused many problems for users (see Mac OS memory management for more details).
With the release of System 7, the MultiFinder extension was integrated with the operating system, and it remained so in Mac OS 8 and Mac OS 9. However, the integration into the OS did nothing to fix MultiFinder's inherent idiosyncrasies and disadvantages. These problems were not overcome until MultiFinder was abandoned with the move to a modern preemptive multitasking UNIX-based OS in Mac OS X.
- Folklore.org — Andy Hertzfeld himself on how the Switcher idea was born