For the Absolute Beginner
From OS X Scientific Computing
My Attempt at a Zero Assumptions Introduction
If you are coming to OS X for the first time, things can be a little bit baffling. Here is an attempt to clear the muddied waters.
What is OS X?
OS X is Apple computer's current operating system, introduced in 2001. It is a type of unix operating system. The main difference, which is usually an advantage to users, is that it attempts to completely shield novice users from the command-line interface while making it freely available to those who want or need to use it (many Linux systems also attempt to do this now). It is unique in the Unix world, however, in that it uses a windowing system (Quartz) that is completely new, PDF-based, and aesthetically much more pleasing than the standard X11 interface usually associated with unix and linux.
What is Darwin?
Darwin is the name given to the unix operating system (or "subsystem" as Apple calls it, to distinguish it from the GUI stuff that sits on top) that comprises Mac OS X. It is a variant of freeBSD unix but is now a fully mature "flavor" of unix in its own right (just as is irix, linux, solaris, etc). Darwin also is not a unix emulator. It is the real thing. There is no need to install Linux on your computer (although you can do so if you wish.) What you need either comes with OS X or can be added on comparatively easily.
More on OS X Darwin has been written here.
Is it Linux, or do I have to install Linux?
Darwin (and freeBSD, from which it is derived) is not the same as Linux, but is in essence a fellow traveler. Phenotypically, it is similar but not identical. In terms of the nuts and bolts, at the kernel level, it is rather different. But almost all software that you can compile and run on Linux or other flavors of unix you can compile and run on Mac OS X's Darwin. There is no reason you should need to install Linux or any other unix-like operating system (although you can if you want).
How do I access it?
In /Applications/Utilities, you will find a program called Terminal.app. When you launch that program, it opens a terminal session using one of four unix shells (bash by default, or tcsh or zsh or ksh if you should so choose). I've put a lot more information about this on the Unix and OS X: The Absolute Essentials page.
What's the deal with X11?
Apple has its own windowing system called Quartz, so it doesn't need X11 for "OS X native" applications. However, many unix programs that invoke a GUI will assume that an X11 windowing system, such as that found on SGIs, Linux, and every other flavor of unix I can think of, will be present.
For that reason, Apple distributes an X11 server in the form of X11.app. It gets installed by default on 10.5, and is an optional install on 10.4 and earlier. There is a whole lot more about this on this wiki's X11 page.
For 10.5, you can (and should) get the latest update to X11 from the X11 Xquartz page.
Where are the compilers?
Apple doesn't distribute gcc, g++, make and so forth by default. You need to install the Xcode Developer Tools that come on the OS X installation DVD or Apple's website. Both are described on our Xcode wiki page, and that page has further links, including the one that takes you to Apple's download site.
The compilers then get installed in /usr/bin and about a gigabyte of stuff gets installed in /Developer. If you are short on space, install everything, and then move /Developer to a DVD. You don't need it once the install has been completed.
Is there a simple way to install third-party unix software?
You can always install third-party unix software in /usr/local/bin and then add that you your path. Many people prefer a package management system like Linux has.
One option, that I very much favor, is using the fink package management system. It is based upon the debian package management system that is distributed with Ubuntu and other Debian-type Linux operating systems. It is not, however, identical, but simply makes use of many of their tools.
What else do you suggest?
- Make use of the fink packages that I have pre-compiled to save yourself a lot of time and effort.
- Carefully read all of Section 3 of this wiki entitled "General Topics." It is a more detailed version of this overview.
- Find unix editor you will be comfortable with.
- Change your unix shell to what you are comfortable with. If you currently use tcsh, change to that using the command
chsh -s /bin/tcsh
and if you are feeling frustrated with bash (which behaves kind of oddly on OS X) and would like something a little more powerful and pleasant but syntactically compatible with bash, or miss ksh (which is present, by the way), consider switching to ZSH on OS X.
chsh -s /bin/zsh
zsh is to unix shells what OS X is to operating systems.
What does it look like?
Here's a screenshot of my iMac running 10.5.2. I am using coot (2oeu is displayed), an iTerm session is open, and the Finder is displaying my home directory. I have some extra stuff in the menu bar that allows me to monitor cpu consumption, memory, and a few other things.
Click on the image to see a full-size screenshot.