According to Jordan Hubbard, Apple’s manager of BSD technologies, Apple is working hard to make Mac OS X as seamless a change as possible to the many UNIX users out there. Most importantly, Apple wants this strong core of programmers to be able to bring their applications from the college mainframe home to the Mac and back without any hassle.
|<?php virtual(“/includes/boxad.inc”); ?>|
“Since most of the Mac OS diehards now acknowledge at least the inevitability of Mac OS X,” Hubbard said, “Apple is focusing on what to do to bring UNIX users to the Macintosh.”
As it stands, UNIX users should find themselves in a familiar place when using Mac OS X. However, there are subtle differences between the two operating systems that can make moving applications from one to the other complicated.
Mac OS X’s compiler is GCC, the compiler built into most UNIX projects. Mac OS X is capable of using C, C++, Objective-C, Objective-C++, Java (1.3.1), Perl (5.60, Hubbard said that Apple is waiting for a point release before upgrading to 5.8), Tcl, PHP, Python and Ruby. UNIX programmers may also use third party compilers such as those from Metrowerks or AbSoft. Finally, UNIX users may download working compilers for G77 (Fortran), GNAT (Ada), Lisp and many others.
The GCC in Mac OS X got an upgrade with Jaguar, from 2.95.2 to 3.1. Hubbard said that 2.95.2 still ships with 10.2 for compatibility reasons. UNIX developers can shift over to the older version with a series of commands if need be. UNIX users can also easily enable AltiVec and other features of the G4 or the PowerPC in their Mac OS X builds.
One of the reasons that UNIX applications can operate on hardware such as a Mac and a university mainframe is through adherence to the Portable Operating System Interface (POSIX) standard. Hubbard said that Apple implemented most of the POSIX standard, and that he wants all of the components to be there.
“If you find something that’s not in POSIX, please contact us,” Hubbard said.
C++ remains the language of choice for working with the I/O Kit in Mac OS X. UNIX users can also implement system calls that allow you to combine XWindows and the Aqua interface on the same desktop.
Hubbard said that Apple has been aggressively adding man pages, the UNIX and Linux equivalent of readme’s, to all of the undocumented portions of Mac OS X. In the Jaguar release alone, Hubbard said that over 1,000 man pages were added. Apple has also been asking other developers to add man pages to their portions of code.
Other friction areas that Hubbard noted included many differences between the way Mac OS X packages and saves files versus the way UNIX does. Mac OS X also differs from UNIX in how the system is administered and the way that authorizations work.
Future UNIX goals at Apple include staying current with FreeBSD commands and libraries, adopting some kind of uniform package system and making UNIX applications more portable by continuing to round out APIs and other issues to make porting from UNIX to Mac OS X a “no brainer.”