Department of Engineering

IT Services

Macintosh OS X

Mac OS X is based on Unix, but Unix is well hidden.

File structure

2 styles of file-system are offered - HFS+ (introduced as part of Mac OS 8.1) and UFS (Unix). HFS+ is recommended.

Under OS X, the hard disc and individual users' spaces are expected to have Applications and Library folders. The top-level Application folder can only be updated by a special user - the system manager. The contents are available to all. Individuals can install programs in their own Application folder in their Home Folder. When an application is needed, the individual's space is searched for libraries and fonts before the system-wide options are sought.

System Structure

OS X has various new parts and has adapted some old ones. From the bottom up this is roughly the structure

  • Unix
    • Mach - The lowest level of the Mac OS X kernel. Mach (a modular unix that has been around for quite a while) provides such basic services and abstractions as threads, tasks, ports, interprocess communicaiton (IPC), scheduling, physical and virtual address space management, virtual memory, and timers.
    • BSD - what Darwin is based on. Berkeley Software Distribution. Formerly known as the Berkeley version of UNIX, BSD is now simply called the BSD operating system. The BSD portion of Mac OS X is based on 4.4BSD Lite 2 and FreeBSD, a "flavor" of 4.4BSD.
    • Darwin - Apple's open source Unix operating system foundation. The Darwin kernel is equivalent to the Mac OS X kernel plus the BSD libraries and commands essential to the BSD Commands environment.

    You needn't know anything about Unix to use OS X, but if you're happy working with a command line, run Application/Utilities/Terminal to start a terminal window. Note that the filenames seen in the terminal window won't be the same as those on the Finder. In the terminal you'll see suffices like .app that the Finder suppresses by default.

  • Graphics Libraries
    • Quartz - a 2D graphics library based on PDF (the format the Acrobat reader uses).
    • OpenGL - a standard 3D graphics library
    • QuickTime - support for multimedia
  • APIs (Application Programming Interfaces) - these are libraries of routines that make it easier to write applications. There are various ones for application writers to choose from
    • Classic API (previously called the Mac Toolbox). Resulting applications can run under OS9.
    • Carbon API - designed to offer compatibility with Mac OS 9 while also making specific incompatible changes that make possible major benefits under Mac OS X. Carbon's changes enable preemptive multitasking, superior virtual memory, and crash protection for applications in Mac OS X. It's much easier for developers to "carbonize" an old program than to radically re-write using Cocoa. The resulting carbonized applications look much like pure OS X (Cocoa) programs - they have the Aqua look.
    • Cocoa API - for OSX. Object-orientated.
    • Java API - Java applications have a chance of working on non-Mac machines
    • Unix API - through Darwin

More Jargon

  • Bundle - A directory in the file system that stores executable code and the software resources related to that code. The finder by default will display it as a single executable file.
  • Frameworks - like Extensions or shared-libraries. Shared bits of code.