ADC Membership Technical Business Join ADC
Search Advanced Search
UNIX Development on Mac OS X
Mac OS X and the Power of UNIX
Beneath the appealing, easy-to-use interface of Mac OS X, you'll find an industrial-strength, UNIX-based foundation called Darwin. This open source core of Mac OS X is highly stable and built on mature technology:
  • A Mach 3.0 kernel with support for symmetric multiprocessing.
  • Based on 4.4BSD with networking from FreeBSD 3.2.
  • Support for most POSIX APIs.
  • Popular development tools such as gcc, gdb, vi, emacs, pico, Perl, etc.
  • Popular UNIX shell tools such as grep, chmod, ps, crontab, top, tail, etc.
In addition, Darwin provides an object-oriented device driver framework called I/O Kit which supports true plug-and-play and power management. I/O Kit also provides abstracts of most common device classes including USB, FireWire, Audio, Network, PCI, and more.

Darwin also offers an advanced stackable file system, including support for UFS, ISO 9660, FAT, NFS, WebDAV, UDF, and more.


Free Development Tools
Apple provides developers with a complete integrated development environment (IDE) for Mac OS X. To download your copy of Mac OS X Development Tools, become a free Online Member of the Apple Developer Connection.

Great Extras
In addition to basic UNIX goodies like network client tools and system services, Mac OS X offers developers easy access to an array of advanced technologies:
  • Quartz Extreme - Mac OS X's new 2D drawing API is based on the Postscript/PDF drawing model and provides full support for transparency and anti-aliasing, multiple color spaces, import and export of PDF, plus built-in ICC color management.

  • OpenGL - Mac OS X supports the industry standard OpenGL 3D graphics architecture accelerated by nVidia and ATI graphics adaptors.

  • QuickTime - Through Mac OS X, developers can access QuickTime's complete multimedia architecture including Flash 4 Support, Cubic VR, RTP/RTSP video streaming, MPEG support, and more.

  • Unicode - Developers can localize their applications into double byte languages quickly and easily using Mac OS X's support for Unicode.

  • CUPS - The Common UNIX Printing System ("CUPS") is a cross-platform Open Source printing solution for UNIX environments, and will be used as a portable printing layer for Darwin and Mac OS X. CUPS is based on the Internet Printing Protocol and provides both System V and BSD command-line printing services for PostScript and raster printers.
User Experience
Several implementations of the X Window System are available for Mac OS X including Tenon's Xtools, XFree86, and others. But to provide users with the Mac OS X Aqua user experience and gain access to advanced Quartz graphics libraries and other Mac OS X APIs, UNIX developers can factor an application to keep its core logic intact and use Cocoa's rapid application development frameworks to build a native Mac OS X interface.
News and Updates
OpenOffice 1.0 (X11) is Final Beta for Mac OS X
Today, OpenOffice.org and the OpenOffice.org Mac OS X/Darwin porting team announces the release of OpenOffice.org 1.0 X11 for Mac OS X and Darwin (Final Beta). While this release is not final and is intended to solicit public feedback, bug reports, and to attract developers to the project, it is feature-complete for our first X11 (Final) release. The main focus will be on fixing bugs in the Final Beta to allow for a full Final release in Spring 2003.[Jan 08 2003]
X11 for Mac OS X Public Beta
X11 for Mac OS X offers a complete X Window System implementation for running X11-based applications on Mac OS X. Based on the de facto-standard for X11, the open source XFree86 project, X11 for Mac OS X is compatible, fast and fully integrated with Mac OS X. It includes the full X11R6.6 technology including a window server, libraries and basic utilities such as xterm. Other X11 toolkits (e.g., openMotif, gtk) are available from OpenDarwin.org[Jan 07 2003]
New Web Rendering Frameworks
Apple is releasing the source code to two new frameworks underlying its new Safari web browser. Both are based on code derived from the KDE project - WebCore from KHTML and JavaScriptCore from kjs. Apple is releasing our enhancements as well as Objective-C++ wrappers which make them easy to integrate into Cocoa applications.[Jan 07 2003]
DarwinPorts now supports user packages
DarwinPorts is a BSD licensed software build, install, and packaging infrastructure conceived as a part of the OpenDarwin Project. Written almost entirely in TCL, DarwinPorts is designed to be easily extended, embedded in other applications, and ported to a wide variety of architectures. DarwinPorts is in active development and currently supported on Mac OS X 10.2 and Darwin 6.0.2.[Jan 07 2003]
Technical Resources
MySQL on Mac OS X
MySQL on Mac OS X is fast, stable, straightforward to learn. Not as complicated as some databases, it is nevertheless robust enough for the vast majority of web development applications -- which is probably why it has become one of the most widely used open source databases available. This article outlines the many benefits (and few drawbacks) of MySQL, and most importantly, provides detailed instructions on how to securely install it on Max OS X.
Installing Perl 5.8 on Jaguar
Want the latest version of Perl to go with the latest version of Mac OS X? Follow these step-by-step instructions to install Perl 5.8.0 on Mac OS X v10.2. Naturally, we include instructions on how to get CPAN up and running as well.

UNIX Porting Guide (pdf)
The UNIX Porting Guide provides an overview of what you need to do to bring an application from a UNIX platform to Mac OS X. It provides descriptions of many of the technologies present on Mac OS X that may be unfamiliar to UNIX application programmers.

History of Darwin
To learn details about the origin and evolution of Darwin—the open source core of Mac OS X—check out this Darwin Technology Profile posted at the Apple Developer Connection.
Fink 0.5.0a
The Fink project wants to bring the full world of Unix Open Source software to Darwin and Mac OS X. We modify Unix software so that it compiles and runs on Mac OS X (port it) and make it available for download as a coherent distribution. Fink uses Debian tools like dpkg and apt-get to provide powerful binary package management, and includes ports for everything from X11 to python to gimp.
Webmin 1.050
Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms (and Java for the File Manager module), you can setup user accounts, Apache, DNS, file sharing and so on.
Porting UNIX-based software to Mac OS X Mailing List
If you're trying to port software to Mac OS X from UNIX, Linux, or BSD, then this is the list for you. This list is for community discussions regarding all the questions people face when doing a port: What's different about Darwin? Which high-level toolkits should I use for my GUI? Is there a workaround for this problem? Has someone tried to port this before?
XFree86 4.2.0-1.1.0
XFree86, a freely redistributable open-source implementation of the X Window System that runs on UNIX(R) and UNIX-like (like Linux, the BSDs, Mac OS X (aka Darwin) and Solaris x86 series) operatingsystems and OS/2. XFree86 is the underlying software that is between the hardware and graphical user interface (aka gui) that people see and use. If you are using KDE, GNOME, Enlightenment, Blackbox, AfterStep, twm or fvwm then you are already using and running XFree86 as these run as our clients.
TweakWaves
The TweakWaves 1.0 sample application is being distributed "as is". It's solely intended to show the capabilities of Tweak Films' water simulation capabilities, the ease of porting UNIX applications to Mac OS X and the powerful graphics capabilities of the Macintosh, especially the nVidia GeForce line of products.
Mac OS X Programming: Getting Started
For those new to creating software for the Macintosh, this page provides directions to Apple's support services, documentation, tutorials, examples, tools, and business services.
Mac OS X System Architecture at a Glance
See how Mac OS X technologies fit together in the Mac OS X System Architecture diagram.

Mac OS X Intro: An Overview for Developers (pdf)
A 10 page overview of the technologies and developer opportunities presented by Mac OS X.
Mac OS X System Architecture
Packaging UNIX Software For Darwin
Many Mac OS X users are enthusiastically porting their favorite Unix tools and utilities to Mac OS X not only for themselves but also to share with the rest of the Apple science community. This HOWTO provides some guidelines for how to distribute tools you've created. While some of the email addresses and such are aimed at scientific applications, most of these tips do apply to any UNIX software.
Darwin Streaming Server 3
After a successful Public Preview period, Darwin Streaming Server 3 is ready for production environments. Enhancements include quality of service improvements, web-based administration, reliable broadcasting support, and more.
Porting UNIX-based software to Mac OS X Mailing List
If you're trying to port software to Mac OS X from UNIX, Linux, or BSD, then this is the list for you. This list is for community discussions regarding all the questions people face when doing a port: What's different about Darwin? Which high-level toolkits should I use for my GUI? Is there a workaround for this problem? Has someone tried to port this before?

Darwin Development Mailing List
An Apple mailing list is available for discussions about Darwin development.

Darwin OS Users Mailing List
Information about installing or using Darwin.



Gray line

Contact ADC |  ADC Site Map |  ADC Advanced Search
For information about Apple Products, please visit Apple.com.
Contact Apple | Privacy Notice
Copyright © 2002 Apple Computer, Inc. All rights reserved.
1-800-MY-APPLE