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 and remained until the introduction of 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 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.
Microsoft endorsed Switcher, shipping it with Excel and stating that using multiple applications with Switcher was preferable to integrated software like Lotus Symphony. By 1987 Compute!'s Apple Applications reported that "many Macintosh owners are comfortable only when using more than one application at a time. Switcher and desk accessories are the two most common examples of that philosophy". MultiFinder, introduced on August 11, 1987, further 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
- MultiFinder Announced
- Macintosh: System Software Version History, Apple
- Switching Mac Applications
- A Software Developer's Guide to Switcher
- Pournelle, Jerry (September 1985). "PCs, Peripherals, Programs, and People". BYTE. p. 347. Retrieved 20 March 2016.
- "Information On A Card". Compute!'s Apple Applications. 1987-12. p. 6. Retrieved 18 August 2014. Check date values in:
- MultiFinder, First Mac Multitasking Operating System