Introduction
Technology Overview
Open Source means many things to many people. To some, it is software whose source code is available to the people who use it. To others, it is a philosophy of writing source code that can be reused freely. To still others, it is a group of software licenses that meet certain criteria for openness. In general, though, it refers to software licensed under a broad range of licenses, all sharing one common characteristic: the source code is available for anyone to see, inspect, and modify.
Mac OS X contains many open source tools and technologies, including third-party tools that are built and packaged with the operating system, as well as fundamental parts of the operating system itself. If you haven’t already done so, you should read the ADC topic page for Open Source.
Start Here
Before porting or writing open source software for Mac OS X, read Mac Technology Overview to help you understand how open source software fits into Mac OS X and to familiarize yourself with the Mac OS X environment as a whole.
If you need to familiarize yourself with the UNIX-based underpinnings of Mac OS X, read a book on system administration, such as UNIX System Administration Handbook by Nemeth and others. In addition, you may find Mac OS X Man Pages helpful in understanding the details of Mac OS X command-line tool syntax and UNIX-based C API interfaces.
Choose a Learning Path
If you are an open source developer, you need to understand the Mac OS X programming environment. If you are a high-performance/scientific computing user or developer, you need to understand what high-performance computing technologies are available to you. If you are a system administrator, you need to understand how administering Mac OS X systems differs from administering other UNIX-based systems.
Porting and Developing Applications
Before you port or develop an open source application on Mac OS X, you need to learn about the differences between Mac OS X and other operating systems that you already support. Two good starting points are Porting UNIX/Linux Applications to OS X and Porting to Mac OS X from Windows Win32 API.
If you are planning to port a 64-bit tool to Mac OS X or transition a 32-bit command-line tool to a 64-bit environment, read 64-Bit Transition Guide.
Using and Developing High-Performance and Scientific Computing Technology
If you are a high-performance computing user or developer looking for information about high-performance computing, read Tools & Languages Starting Point, then read the ADC topic page for high-performance computing.
Administering Mac OS X Workstations and Servers
If you are a system administrator interested in open source technologies in Mac OS X, you should learn about the technology areas that interest you.
If you’re looking for general information about system administration issues, look at the ADC topic page for Mac OS X Server.
If you’re interested in Apple open source technologies, look at the Apple Open Source website and the Mac OS Forge website.
If you’re interested in open source database technologies in Mac OS X, go to the web sites for SQLite and MySQL.
If you're interested in shared authentication across multiple computers, see the ADC topic page for Directory Services.
If you’re interested in Apple’s tools, including its open source tools, read Tools & Languages Starting Point.
If you're interested in security, including documentation on support for access control lists (ACLs) in Mac OS X, see Security Overview.
If you’re interested in scripting in Mac OS X, look at the ADC topic page for scripting. In addition, you can learn more about shell scripting in Shell Scripting Primer.
Next Steps
The Open Source Reference Library includes the following high-level resource pages, which can be bookmarked for easy access:
Conceptual and how-to information for open source technologies.
Sample applications demonstrating various open source technologies.
Sample applications demonstrating various open source technologies.
Mailing Lists
There are numerous mailing lists available to discuss open source topics with other developers. To get announcements of key events and milestones for Apple’s open source projects, join
, and to get announcements of open source software submissions, joinpublicsource-announce
.publicsource-modifications
In addition to these general lists, many Apple open source technologies have their own mailing lists.
To discuss Darwin (kernel, driver, and command-line) software development, join
. Other, more specialized Darwin lists of interest includedarwin-dev
(for discussion pertaining to Darwin documentation),darwin-documentation
(on Darwin hardware drivers),darwin-drivers
(on the Darwin Mach+BSD kernel,darwin-kernel
(on Darwin user-level software), anddarwin-userlevel
(on Darwin on the x86 platform).darwin-x86
For discussion on the QuickTime Streaming Server, join the mailing list for developers (
) or users (streaming-server-dev
).streaming-server-users
For software development discussion about OpenPlay and NetSprockets, join
.openplay-dev
For discussion about HeaderDoc, the Man Page Generation Language (MPGL), and other related documentation tools, join
.headerdoc-dev
For discussion of the Web Kit SDK, join the
mailing list. For discussion of potential improvements and extensions to the Web Core and JavaScript Core frameworks, joine thewebkitsdk-dev
mailing list.webcore-dev
For discussion of web development (including server and client-side scripting, page design, and so on), join the
mailing list.web-dev
For discussion of Apple's open source security technologies, join the
mailing list.apple-cdsa
For other mailing lists that may be of interest, see the Apple mailing list info page.
These additional websites may also be helpful:
Apple’s open source technologies website.
Home to a number of Apple open source technologies.
Apple’s open source topic page.
Information about FreeBSD, upon which many of the open source components of Mac OS X are based.
Documentation on UNIX standards.
Copyright © 2009 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2009-05-06