Monday, October 22, 2007, 09:00 am
Road to Mac OS X Leopard Server: Collaborative Info Sharing ServicesLeopard sports a series of changes both under the hood and in its user interface that improve the performance and usability of the Mac desktop for individual users, and combine to deliver new collaborative server features for networked machines in office settings. Servers and shared services are also moving into the home; here's a look at what's new in Leopard and Leopard Server related to file sharing and collaborative information services, and where the plumbing inside Mac OS X comes from.
This report goes to great lengths to explore the origins, history, and maturity of servers. For those readers with limited time or who are only interested in what's due in Leopard Server, you can skip to page 3 of this report.
The Origins of Servers
Back when computers were as big as a room, users didn't share files between computers, they shared the computer itself. In the mid 60s, General Electric and AT&T Bell Labs began work with MIT to develop an early time-sharing computer system called Multics, short for the Multiplexed Information and Computing Service. The goal was to create an operating system that could support multiple users sharing the same expensive system at once.
It ended up that the project couldn't support the number of users initially envisioned, making Multics commercially impractical because the GE computer it ran on was prohibitively expensive to operate and maintain. Ken Thompson wrote a video game for the system called Space Travel, but running it cost $75 in CPU time. AT&T decided to pull out of the Multics project by 1969.
Thompson and team of developers who had been working on Multics, including Dennis Ritchie, Doug McIlroy, and J. F. Ossanna, requested a computer they could continue their work on, but management was wary of investing in another failed project on the order of Multics. They found their way to get access to a PDP-7 minicomputer from Digital, which at around $72,000, was considered an reasonably affordable system.
Thompson ported his Multics Space Travel game to run on the new system, and developed underlying system software to support it. Those system utilities came to be called "Unics" as a word play for being an emasculated version of Multics. It was later spelled Unix. The system proved to be commercially useful within AT&T, allowing Thompson and his group lead by Ritchie to later acquire a fancier PDP-11 minicomputer (below, with Ritchie standing and Thompson seated) to continue their work.
Why Unix Worked
On the earlier PDP-7 system, Thompson had developed a programing language called B, based on the existing BCPL. For the new PDP-11, he wrote a new systems language designed to abstract the software from the hardware it ran on, so that the upper layers of UNIX could be reused to run on other systems. The 'New B' was named C, and Thompson began work rewriting Unix in C.
Unix developers at AT&T developed a design philosophy behind the system that organized components into clear and understandable functions that were easy to understand. Simple functions could be piped together to create complex workflows. Ritchie and later McIlroy also managed extensive documentation for Unix that was detailed and brutally honest, even outlining flaws in the system. This survives in man, the online manual pages in Unix that describe how functions work, frequently offering examples on how to use commands and occasionally even noting known bugs.
In 1976, Thompson took a sabbatical to teach at the Computer Science Department at the University of California-Berkeley, where his presentation of Unix operating system technology generated an enthusiastic response. Students and professors at Berkeley contributed additional software for use with Unix--in particular networking code--under a liberal license agreement called the Berkeley Standard Distribution. Among the contributors to BSD were Bill Joy, who later left to found Sun Microsystems. Sun sold server hardware running the SunOS, based on Unix licensed from AT&T and BSD.
The open accessibility and large community of contributors to Unix--particularly in academia--made the system so popular that many customers of Digital's affordable VAX minicomputers (the 32-bit descendant of the PDP-11) installed AT&T's Unix to run on the system, along with BSD's networking code, in place of Digital's own VMS operating system.
The Personal Computer Creates a New Market Underneath Unix
When the market for home microcomputers erupted in the late 70s, individual manufacturers commonly wrote their own simple system and utility software. Word processors, spreadsheets, and other programs supplied most of their core functionality--such as printing and file management-- themselves. Simple disk operating systems, such as CP/M and Apple DOS, only handled basic drive support. In 1979, Microsoft licensed Unix from AT&T for sale on microcomputers under then name XENIX, but found a limited market for it.
Apple began developing its own operating systems, starting with SOS (Sophisticated Operating System), which made use of extensible device drivers. SOS failed to save the ill fated Apple III it was designed for in 1980, but was later adapted for use on new Apple II models under the name ProDOS. SOS also influenced file system development in the system software for the Lisa and Macintosh. Those systems expanded the concept of System Software beyond a simple DOS to include an entire graphical operating environment that managed printing, graphics drawing, type rendering, and other functions historically performed by individual apps themselves.
While Microsoft only found tepid sales of XENIX, it was launched into the DOS market after it acquired a CP/M clone and licensed it for sale with IBM's 1981 PC. Microsoft continued development of DOS with IBM through the mid 90s, and continued selling it as the foundation of its consumer systems until Windows ME in 2000. In 1985, IBM and Microsoft began work on the new OS/2 as a replacement to the simplistic MS-DOS, and Microsoft subsequently sold off its XENIX product to SCO, which ported it to the 386 PC and started a Unix business on PCs.
The existing DOS PC market offered little in terms of server or networking sophistication. That problem was addressed by Novell, which introduced NetWare in 1983 as a file sharing solution for DOS PC users. NetWare was commonly referred to as a "Network Operating System."
The Windows PC Arrives
In 1990, Microsoft abandoned its OS/2 partnership with IBM after it found that it could duplicate Apple's Mac user environment on top of DOS and license the result profitably under the name Windows 3.0. Microsoft was intimately familiar with the architecture of Apple's system, as it had been an early Mac developer with inside access since 1982. While intentionally different in superficial ways, the core architecture of the Windows graphical environment and its drawing engine were patterned directly after the Macintosh.
Microsoft subsequently announced plans to replace the MS-DOS underpinnings of Windows by rolling out a new modern operating system of its own with Unix-like features under the name NT. After hiring a core team of OS developers from Digital, Microsoft shipped Windows NT in 1993 as its new DOS replacement, but its heavy system requirements made it unable to sell to consumer PC users. NT shared many core OS features in common with Digital's VMS, which rivaled AT&T's Unix in the workstation and minicomputer market.
Meanwhile, Apple licensed Unix from AT&T and by the late 80s was selling it under the name A/UX. As noted in the article Steve Jobs and 20 Years of Apple Servers, after Apple management balked at porting its Mac desktop to Unix directly, Jobs left the company and started NeXT. There, NeXTSTEP surfaced as an advanced development and operating environment on top of a core OS based on code licensed from AT&T and BSD. That powerful combination led to pioneering third party server developments including the WorldWideWeb in 1990.
Unix Haves vs Unix Have Nots
In 1990, while NeXT was standing on the shoulders of giants to deliver Unix as the proven core operating system technology in its NeXTSTEP, Apple was still working to retrofit its classic Mac System Software. Unlike Unix, the classic Mac System was hard coded to run on specific hardware, making it difficult to port and problematic to maintain. Apple investigated porting its code to the PC in the Star Trek project, but abandoned the plans because of the effort required to rewrite Mac application software; like the operating system, Mac apps of the time had never been designed with the potential to run on different hardware.
Apple continued to struggle with maintaing its Mac software until its plans fell apart entirely in 1995 with the failure of Copland, as described in The Secrets of Pink, Taligent and Copland. Along the way, efforts to deliver serious server products were stymied by the weak underpinnings of its Mac operating system. The company experimented with selling MAS and MAE, which put the Mac user interface on top of Unix workstations from Sun and HP. It also integrated the Mac interface on top of A/UX 3 on Mac hardware in 1992 (below), but the company never delivered strong server sales, largely because it had limited itself to a niche market of graphic designers and other creative users.
Jean-Louis Gassée, who replaced Jobs as the Mac product manager after his departure, left Apple in 1990 to develop the BeBox. It ran an entirely new operating system called the BeOS. While delivering some impressive technical features, it too was limited by its unique design, which drew upon principles from Unix without maintaining code compatibility. That meant the BeOS couldn't easily incorporate modern work being done on Unix.
On page 2 of 3: The Unix Wars; A Unix Peace; Prelude to Mac OS X Server; and Mac OS X Server Releases (Mac OS X Server 10.2 Jaguar, Mac OS X Panther Server 10.3, and Mac OS X Tiger Server 10.4).