TweetFollow Us on Twitter

Open Source Macintosh

Volume Number: 15 (1999)
Issue Number: 8
Column Tag: Open Source

Open Source on the Macintosh

by Steve Huntsberry

How Apple developers can benefit from the Apple Public Source project

Introduction to Open Source

In March, Apple announced that they were the first mainstream operating system provider to release their source code to the public with the launch of Darwin. Some may question this statement, given the popularity of Linux and other open source operating systems, but the fact remains that there are now some components of the Mac OS that are available as open source. This article will analyze Apple's commitment to open source and how Apple developers can benefit. At the end of this article are several Internet URLs where you can find the details of many of the topics discussed.

What is Open Source? The term "open source" has become popular recently in the media due to Linux, which some consider to be a threat to Microsoft Windows. The concept of open source has been around for quite some time. The definition used by Apple comes from the Open Source Initiative, which has determined that the Apple Public Source License conforms to their definition of open source.

The Apple Public Source License (APSL) binds the users of Apple's open source code and determines what you can and cannot do with it. The complete text of the APSL is available at the Apple Public Source web site. The key points of the APSL allow you to use the code provided for whatever purposes you wish without paying Apple, but if you modify any of the Apple-supplied portions, you must submit the changes back to Apple. Therefore you can write your own code that builds on Apple open source code without needing to hand all of your code over to Apple.

There are several goals for the Apple Public Source project. Apple benefits by having a group of developers to provide it with free improvements and bug fixes for its source code. Apple will also contribute their bug fixes and incremental improvements back to the open source community. One of the Darwin engineers made a presentation at the USENIX Technical Conference in June, describing Apple's plans for using open software in their commercial operating system.

Developers benefit by obtaining a better understanding of the system to allow them to fine-tune their application performance and to reduce development time. Developers can also add specific features to Apple software that Apple might not add by itself, in order to improve their own specialized applications.

Open Source is not the same as Free Software. The Free Software Foundation (FSF) was established many years ago by Richard Stallman, president of the FSF, founder of the GNU project, and principal author of the GNU C compiler (gcc), GNU symbolic debugger (gdb), and GNU emacs. The principal project of the FSF is the GNU operating system, a free version of Unix. The FSF is dedicated to eliminating restrictions on any copying, modification, or redistribution of computer programs. They advocate that all software should be completely free, and that developers should make their living through providing support for such free software.

The GNU General Public License (GPL) uses "copyleft" (rather than copyright) protection. It requires developers using GPL-protected source code to make all of their source code available. Therefore, if you write a new compiler using code from gcc, you must publish all of the source code to your new compiler under GPL, in addition to any modifications you made to the original gcc code. Richard Stallman has written a document detailing his problems with the Apple Public Source License, since it does not conform to the GPL definition of free software.

Apple does have support for its open source project from many of the other members of the open source community. Besides the approval of the Open Source Initiative, Apple has support from FreeBSD and NetBSD, two open source Unix operating systems based on Berkeley Standard Distribution (BSD) Unix.

Microsoft is not ignoring the developments in open source. Their external party line is that they do not consider open source to be a concern, however last year in October the "Halloween Documents" appeared on the Internet. These were leaked internal Microsoft memos describing the threat posed to the traditional Windows proprietary closed source model from open source software and from Linux in particular. It will be interesting to see what transpires in this arena.

Apple Open Source Projects

Currently there are three open source projects at Apple. OpenPlay is a network abstraction layer that runs on Mac OS 8 and Windows. The Darwin Streaming Server is a QuickTime streaming server that runs on Mac OS X Server. Darwin is the Mach plus FreeBSD foundation of Mac OS X and runs as a stand-alone Unix implementation. Apple indicates there are more open source projects in the works, but they do not plan to reveal them until they actually become available.

OpenPlay was originally developed for "Myth: The Fallen Lords" from Bungie Software, to support cross-platform network games between Mac OS 8 and Windows computers. OpenPlay provides a network abstraction layer for the Open Transport and WinSock APIs. It supports TCP/IP and AppleTalk (on Macintosh). It provides a plug-in architecture to allow developers to add new protocols. It is useful for any cross-platform networking application, not just for games.

Darwin Streaming Server sends streaming QuickTime data to clients across the Internet. It uses industry standard RTP, RTCP, and RTSP protocols. RTP is the Real-time Transport Protocol, providing transport layer functionality for real-time data over multicast or unicast connections. RTCP is the Real-Time Control Protocol, using RTP to synchronize transmissions between sender and receiver. RTSP is the Real-Time Streaming Protocol, providing VCR-like controls for content delivery, such as play, stop, pause, etc. Darwin Streaming Server has some limitations in that it requires hinted QuickTime files generated by QuickTime Pro, so providing streaming content is not entirely free. It also uses reflection and not true multicast, such that it is not scalable and is limited to about 1000 receivers per transmission.

Darwin is a stand-alone Unix implementation consisting of the Mach kernel plus the FreeBSD set of Unix tools. Darwin is perhaps the most exciting piece of Apple open source in that it is the core of Mac OS X (both Client and Server), such that any improvements made to Darwin will become improvements in Mac OS X. Darwin also provides several pieces of Apple technology, including AppleTalk networking, the HFS+ file system, and NetInfo (directory services from Mac OS X Server).

Darwin is useful for developers in two ways. Because it is the core of Mac OS X, improvements can be made by developers to Darwin that will later improve their applications running on Mac OS X. Darwin is also useful by itself, as it provides a full set of Unix tools and command-line interface that work with the Macintosh file system.

In May, Sassafras Software reported they were able to add AppleTalk networking support to the Mac OS X Server version of their KeyServer license metering product within a week. Their development work was greatly assisted by access to Darwin low-level source code. The key benefit was the ability to reconcile discrepancies between documentation and implementation quickly, which reduced their debugging time dramatically.

Currently Darwin runs on PowerPC hardware, although Apple is considering making it work on Intel hardware. The original NextStep ran on Intel, so there is no technical reason preventing Darwin from running on Intel hardware. However, Apple wants to concentrate on PowerPC development, and supporting Intel hardware would require additional development work and additional testing. Such a commitment remains under consideration. If Intel support is important for you, then you may want to voice your opinion to Apple.

Other Open Source Projects

As noted above, the Apple open source project is relatively new to the world of open source. To find out more about open source, one should look into the existing open source projects. The GNU Project and the Free Software Foundation were discussed above. Perhaps the most popular open source project today is Linux, an open source Unix operating system. Red Hat, Inc. is one of the most well-known Linux distributors. Although Linux is free, Red Hat packages it with a number of useful tools and support and sells it on CD-ROM. Debian is another Linux distributor. The GNOME project is designing an open source user interface for Linux. One of the major drawbacks of any Unix-like operating system is the command-line interface, which is difficult to use for people used to a windowing environment. Some people think that once Linux has a modern user interface it will pose a real threat to Microsoft Windows. Other open source Unix operating systems include FreeBSD, NetBSD, and OpenBSD.

There also a few open source applications. The Apache project maintains an open source HTTP server that is used on over sixty percent of the Web sites on the Internet. The Mozilla project is the open source version of Netscape Communicator, the Web browser and e-mail/news client. Both of these projects invite outside developers to help to improve their respective applications.

Open Source on the Web

Apple Open Source Infrastructure

Apple has put together a number of resources to assist developers with open source on the Macintosh. The Apple Public Source web page contains a wealth of information, including open source news, developer registration, Internet mailing lists, Usenet newsgroups, etc. Soon they plan to have centralized bug tracking, most likely following the Bugzilla model used by the Mozilla project. At the Apple Worldwide Developers Conference (May 10), Apple quoted figures of 33,000 registered developers and 185,000 downloads of open source software, following its initial release on March 16.

Recently Apple announced support for source code management through Concurrent Versions System (CVS). This is a source code management system similar to SourceSafe or Perforce. CVS enables access to the very latest source code releases, change logs, and incremental updates. CVS access is not yet available, but should be soon. Mac OS 8 users can use MacCVS Pro, a CVS client sponsored by Mozilla. The Mozilla Web site is also a good source for CVS documentation.

Installing Open Source Software

Once you have registered as an open source developer and downloaded the appropriate software, you will need to get it installed. As this is a new project for Apple, installation can be tricky and frustrating. Eventually Apple plans to have a more robust installation solution, but for now you will just have to bear with them.

Installing OpenPlay is reasonably straightforward. The OpenPlay distribution consists of a StuffIt archive containing CodeWarrior projects, C source and header files, and documentation. The code files are split into folders labeled Macintosh, Windows, and Common (with cross-platform code). There is also a test application so you can see how it works. The documentation is fairly spartan, but everything seems to be there.

Installing Darwin Streaming Server is somewhat trickier. The Darwin Streaming Server distribution consists of a zipped tar archive containing C++ source and header files, along with the requisite Makefiles and a few PowerPC binary files. There is one documentation file but it merely provides an overview; for the most part you are on your own.

Installing Darwin itself is the most convoluted process. Darwin has the same hardware requirements as Mac OS X Server, namely a Power Macintosh G3 with 64 MB of RAM. The installation requires 60 MB of free disk space. After you download the 45 MB Darwin image, you need to find a blank 1 GB or larger ATA or SCSI hard drive (fast-wide SCSI is not supported). Then use the Apple Software Restore utility to install the image on the hard disk. The hard disk will end up with a 1 GB UFS partition called "Darwin Root" containing the Darwin software, with any remaining space formatted as a Macintosh HFS+ format volume. You then use the System Disk utility to select the "Darwin Root" volume and restart. Eventually you will end up with a system which can be dual-booted in either Darwin or Mac OS mode.

This article covers Darwin version 0.2, released on May 10. There are two major changes that will occur between now and the release of Mac OS X client. First is that Mach 3.0 will be replacing Mach 2.5 as the kernel. Second is that IOKit will be replacing DriverKit for drivers. Therefore if you plan to modify or use code from either one of these areas, you may want to wait until Apple releases these modifications, or write your code in such a way that the switch will not be too painful.

Darwin Project Ideas

Apple would like to see more software that runs on Darwin. Currently Darwin is limited to basic Unix tools and a few Apple technologies such as AppleTalk. Apple would like to see real installer utilities, both to install Darwin itself, as well as to install other Darwin applications. They would also like developers to implement additional device drivers and file systems so Darwin can be made more universal. Another project might be some kind of user interface beyond the command-line interface, such as X-Windows. I am under the impression the Darwin team would like to see Darwin become a living, breathing operating system that can stand on its own merits, and not merely the core of Mac OS X.

Your Next Step

Open source on the Macintosh provides a number of new opportunities for developers. You can use the supplied libraries such as OpenPlay and Darwin Streaming Server to add features to your applications without reinventing the wheel. You can work with the Darwin source code to understand and/or improve the Mac OS X core so your Mac OS X applications run better. You can design entire applications to run on Darwin to provide services to users who may want to use the Mac kernel with BSD on PowerPC hardware, but who may not want the additional overhead of the Mac OS X environment.

Open source can also help Apple to make the Mac OS a better operating system. Darwin developers can work on core OS features to improve performance and to add special features. Apple system engineers can concentrate on Apple-specific pieces of technology, such as improving the user interface, ColorSync, QuickTime, Sherlock, and speech recognition.

You must decide for yourself how to make best use of open source on the Macintosh. You may even decide that your application is outside the scope of the open source libraries provided by Apple, and that you do not want to work on the Darwin core of Mac OS X. Even so, you may find that because others are working on the Apple open source projects, the Mac OS will be improved, and it will become a better place for you, your applications, and your users to exist.


Steve Huntsberry is a Computer Scientist in the Type Engineering department at Adobe Systems Inc. He is the Technical Lead for the Macintosh Type On Call 4.2 and Adobe Type Library 2.0J products. Steve can be reached at shuntsbe@adobe.com.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

DiskCatalogMaker 7.1.3 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
Together 3.8.7 - Store and organize all...
Together helps you organize your Mac, giving you the ability to store, edit and preview your files in a single clean, uncluttered interface. Together Features Smart storage. With simple drag-and-... Read more
Little Snitch 4.0.1 - Alerts you about o...
Little Snitch gives you control over your private outgoing data. Track background activity As soon as your computer connects to the Internet, applications often have permission to send any... Read more
Sparkle Pro 2.2.1 - $79.99
Sparkle Pro will change your mind if you thought building websites wasn't for you. Sparkle is the intuitive site builder that lets you create sites for your online portfolio, team or band pages, or... Read more
iWatermark Pro 2.0.0fc4 - Easily add wat...
iWatermark Pro is the essential watermarking app for professional, business, and personal use. Easily secure and protect your photos with text, a graphic, a signature, or a QR watermark. Once added... Read more
Amadeus Pro 2.4 - Multitrack sound recor...
Amadeus Pro lets you use your Mac for any audio-related task, such as live audio recording, digitizing tapes and records, converting between a variety of sound formats, etc. Thanks to its outstanding... Read more
iFFmpeg 6.4.2 - Convert multimedia files...
iFFmpeg is a comprehensive media tool to convert movie, audio and media files between formats. The FFmpeg command line instructions can be very hard to master/understand, so iFFmpeg does all the hard... Read more
EtreCheck 3.4.2 - For troubleshooting yo...
EtreCheck is an app that displays the important details of your system configuration and allow you to copy that information to the Clipboard. It is meant to be used with Apple Support Communities to... Read more
Carbon Copy Cloner 4.1.17 - Easy-to-use...
Carbon Copy Cloner backups are better than ordinary backups. Suppose the unthinkable happens while you're under deadline to finish a project: your Mac is unresponsive and all you hear is an ominous,... Read more
VueScan 9.5.81 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more

Latest Forum Discussions

See All

Eden: Renaissance (Games)
Eden: Renaissance 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Eden: Renaissance is a thrilling turn-based puzzle adventure set in a luxurious world, offering a deep and moving... | Read more »
Glyph Quest Chronicles guide - how to ma...
Glyph Quest returns with a new free-to-play game, Glyph Quest Chronicles. Chronicles offers up more of the light-hearted, good humored fantasy fun that previous games featured, but with a few more refined tricks up its sleeve. It's a clever mix of... | Read more »
Catch yourself a Lugia and Articuno in P...
Pokémon Go Fest may have been a bit of a disaster, with Niantic offering fans full refunds and $100 worth of in-game curency to apologize for the failed event, but that hasn't ruined trainers' chances of catching new legendary Pokémon. Lugia nad... | Read more »
The best deals on the App Store this wee...
There are quite a few truly superb games on sale on the App Store this week. If you haven't played some of these, many of which are true classics, now's the time to jump on the bandwagon. Here are the deals you need to know about. [Read more] | Read more »
Realpolitiks Mobile (Games)
Realpolitiks Mobile 1.0 Device: iOS Universal Category: Games Price: $5.99, Version: 1.0 (iTunes) Description: PLEASE NOTE: The game might not work properly on discontinued 1GB of RAM devices (iPhone 5s, iPhone 6, iPhone 6 Plus, iPad... | Read more »
Layton’s Mystery Journey (Games)
Layton’s Mystery Journey 1.0.0 Device: iOS Universal Category: Games Price: $15.99, Version: 1.0.0 (iTunes) Description: THE MUCH-LOVED LAYTON SERIES IS BACK WITH A 10TH ANNIVERSARY INSTALLMENT! Developed by LEVEL-5, LAYTON’S... | Read more »
Full Throttle Remastered (Games)
Full Throttle Remastered 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Originally released by LucasArts in 1995, Full Throttle is a classic graphic adventure game from industry legend Tim... | Read more »
Stunning shooter Morphite gets a new tra...
Morphite is officially landing on iOS in September. The game looks like the space shooter we've been needing on mobile, and we're going to see if it fits the bill quite shortly. The game's a collaborative effort between Blowfish Studios, We're Five... | Read more »
Layton's Mystery Journey arrives to...
As you might recall, Layton's Mystery Journey is headed to iOS and Android -- tomorrow! To celebrate the impending launch, Level-5's released a new trailer, complete with an adorable hamster. [Read more] | Read more »
Sidewords (Games)
Sidewords 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Grab a cup of coffee and relax with Sidewords. Sidewords is part logic puzzle, part word game, all original. No timers. No... | Read more »

Price Scanner via MacPrices.net

PHOOZY World’s First Thermal Capsules to Summ...
Summer days spent soaking up the sun can be tough on smartphones, causing higher battery consumption and overheating. To solve this problem, eXclaim IP, LLC has introduced the PHOOZY Thermal Capsule... Read more
2018 Honda Ridgeline with Android Auto and Ap...
The 2018 Honda Ridgeline is arriving in dealerships nationwide with a Manufacturer’s Suggested Retail Price (MSRP1) starting at $29,630. The 2017 Honda Ridgeline was named North American Truck of the... Read more
comScore Ranks Top 15 U.S. Smartphone Apps fo...
comScore, Inc. recently released data from comScore Mobile Metrix, reporting the top smartphone apps in the U.S. by audience reach for June 2017. * “Apple Music,” as it appears in comScore’s monthly... Read more
13-inch 3.1GHz MacBook Pros on sale for $100...
B&H Photo has the new 2017 13″ 3.1GHz Space Gray MacBook Pros in stock today and on sale for $100 off MSRP including free shipping. B&H charges sales tax in NY and NJ only: – 13″ 3.1GHz/256GB... Read more
Apple refurbished Mac minis available startin...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: – 1.4GHz Mac mini: $419 $80 off MSRP – 2.6GHz Mac... Read more
Apple’s 2017 Back to School Promotion: Free B...
Purchase a new Mac using Apple’s Education discount, and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free. As part... Read more
Clearance 2016 13-inch MacBook Pros available...
B&H Photo has clearance 2016 13″ MacBook Pros in stock today for up to $220 off original MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: – 13″ 2.9GHz/512GB Touch Bar... Read more
Apple Move Away from White Label Event Apps C...
DoubleDutch, Inc., a global provider of Live Engagement Marketing (LEM) solutions, has made a statement in the light of a game-changing announcement from Apple at this year’s WWDC conference.... Read more
70 Year Old Artist Creates Art Tools for the...
New Hampshire-based developer Pirate’s Moon has announced MyArtTools 1.1.3, the update to their precision drawing app, designed by artist Richard Hoeper exclusively for use with the 12.9-inch iPad... Read more
Sale! New 2017 13-inch 2.3GHz MacBook Pros fo...
Amazon has new 2017 13″ 2.3GHz/128GB MacBook Pros on sale today for $150 off MSRP including free shipping. Their prices are the lowest available for these models from any reseller: – 13″ 2.3GHz/128GB... Read more

Jobs Board

*Apple* Solutions Consultant (ASC) - Poole -...
Job Summary The people here at Apple don't just create products - they create the kind of wonder that's revolutionised entire industries. It's the diversity of those Read more
SW Engineer *Apple* TV - Apple Inc. (United...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more Read more
Frameworks Engineering Manager, *Apple* Wat...
Frameworks Engineering Manager, Apple Watch Job Number: 41632321 Santa Clara Valley, California, United States Posted: Jun. 15, 2017 Weekly Hours: 40.00 Job Summary Read more
Product Manager - *Apple* Pay on the *Appl...
Job Summary Apple is looking for a talented product manager to drive the expansion of Apple Pay on the Apple Online Store. This position includes a unique Read more
*Apple* Retail - Multiple Positions - Apple...
SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.