A. Computer Topic : Macintosh OS X
|
Website |
apple.com/macosx |
|
Company / Developer |
Apple Inc. |
|
OS family |
Unix |
|
Source model |
Closed source |
|
Latest stable release |
10.5.2 on February 11, 2008 |
|
Supported platforms |
x86, x86-64, PowerPC (32-bit & 64-bit) |
|
Kernel type |
Hybrid |
|
User interface |
Aqua GUI |
|
License |
Proprietary EULA |
|
Working state |
Current |
Mac OS X is a line of graphical operating systems developed, marketed, and sold by Apple Inc., the latest of which is pre-loaded on all currently shipping Macintosh computers. Mac OS X is the successor to the original Mac OS, which had been Apple’s primary operating system since 1984. Unlike its predecessors, Mac OS X is a Unix-based operating system built on technology developed at NeXT from the second half of the 1980s until early 1997, when Apple purchased the company.
The first version released was Mac OS X Server 1.0 in 1999, which retained the earlier Mac operating system’s “platinum” appearance and even resembled OPENSTEP in places. The desktop-oriented version, Mac OS X v10.0, followed in March 2001 sporting the new Aqua user interface. Since then, five more distinct “end-user” and “server” versions have been released, most recently Mac OS X v10.5 in October 2007. Releases of Mac OS X are named after big cats; for example, Apple calls Mac OS X v10.5 “Leopard”.
The server edition, Mac OS X Server, is architecturally very similar to its desktop counterpart but usually runs on Apple’s line of Macintosh server hardware. It includes workgroup management and administration software tools that provide simplified access to key network services, including a mail transfer agent, a Samba server, an LDAP server, a domain name server, and others.
Apple also produces customized versions of OS X for use on three of its consumer devices, the Apple TV, the iPhone and the iPod touch. The iPhone and the iPod touch versions of Mac OS are called iPhone OS. The modified OS only contains what is needed for that particular device (un-needed drivers and components are removed), though certain sources have reported that simple hacks could install features in the Mac OS to the stripped down version.
Mac OS X is based on the Mach kernel and is derived from the Berkeley Software Distribution (BSD) implementation of Unix in Nextstep. Nextstep was the object-oriented operating system developed by Steve Jobs’s company “NeXT” after he left Apple in 1985. While Jobs was away from Apple, Apple tried to create a “next-generation” OS through the Taligent and Copland projects, with little success.
Eventually, NeXT’s OS—then called OPENSTEP—was selected to be the basis for Apple’s next OS, and Apple purchased NeXT outright. Steve Jobs returned to Apple as interim CEO, and later became CEO again, shepherding the transformation of the programmer-friendly Openstep into a system that would be welcomed by Apple’s primary market of home users and creative professionals. The project was first known as Rhapsody, and was later renamed to Mac OS X.
With each new version, Mac OS X evolved away from a focus on backward compatibility with the earlier versions of Mac OS, toward an emphasis on “digital lifestyle” applications such as the iLife suite, enhanced business applications (iWork), and integrated home entertainment (the Front Row media center). Each version also included modifications to the general interface, such as the brushed metal appearance added in version 10.2, the non-pinstriped titlebar appearance in version 10.4, and in 10.5 the removal of the previous aqua and brushed metal styles in favor of the Unified interface.
Mac OS X was a radical departure from previous Macintosh operating systems; its underlying code base is completely different from previous versions. Its core is a Unix-like operating system (OS) built on top of the XNU kernel, with standard Unix facilities available from the command line interface (Apple released this core as a free and open source operating system named Darwin). Over this core, Apple layered a number of components, including the Aqua interface and the Finder, to complete the GUI-based operating system which is Mac OS X.
Mac OS X included a number of features intended to make the OS more stable and reliable than Apple’s previous OS. For example, pre-emptive multitasking and memory protection improved the system’s ability to run multiple applications simultaneously without them interrupting or corrupting each other. Many aspects of Mac OS X’s architecture are derived from Openstep, which was designed to be portable—to ease the transition from one platform to another. For example, Nextstep was ported from the original 68k-based NeXT workstations to x86 and other architectures before NeXT was purchased by Apple, and Openstep was later ported to the PowerPC architecture as part of the Rhapsody project.
The most visible change was the Aqua theme. The use of soft edges, translucent colors, and pinstripes—similar to the hardware design of the first iMacs—brought more texture and color to the user interface compared to OS 9’s “Platinum” appearance had offered. Many users of the older versions of the operating system decried the new look as “cutesy” and lacking professional polish. But, others found Aqua to be a bold and innovative step forward in a time when user interfaces were seen as “dull and boring”. Despite the controversy, the look was different; third-party developers started producing skins for customizable applications for Mac and other operating systems which mimicked the Aqua appearance. To some extent, Apple has used the successful transition to this new design as leverage, at various times threatening legal action against people who make or distribute software with an interface the company claims is derived from its copyrighted design.
Mac OS X includes its own software development tools, most prominently an integrated development environment called Xcode. Xcode provides interfaces to compilers that support several programming languages including C, C++, Objective-C, and Java. For the Apple-Intel Transition, it was modified so that developers could easily create a universal binary to remain compatible with both the Intel-based and PowerPC-based Macintosh.
The APIs that Mac OS X inherited from Openstep are not backward compatible with earlier versions of Mac OS. These APIs are now referred to by Apple as Cocoa. This heritage is highly visible for Cocoa developers, since most Cocoa class names begin with the “NS” prefix, standing variously for Nextstep, NeXT/Sun. Apple’s Rhapsody project would have required all new development to use these APIs, causing much outcry among existing Mac developers. All Mac software that did not receive a complete rewrite to the new framework would run in the equivalent of the Classic environment. To permit a smooth transition from Mac OS 9 to Mac OS X, the Carbon Application Programming Interface (API) was created. Applications written with Carbon can be executed natively on both systems.
Mac OS X used to support the Java Platform as a “preferred software package”—in practice this means that applications written in Java fit as neatly into the operating system as possible while still being cross-platform compatible, and that graphical user interfaces written in Swing look almost exactly like native Cocoa interfaces. Traditionally, Cocoa programs have been mostly written in Objective-C, with Java as an alternative. However, on July 11, 2005, Apple announced that “features added to Cocoa in Mac OS X versions later than 10.4 will not be added to the Cocoa-Java programming interface.”
Since Mac OS X is based on UNIX, most software packages written for BSD or Linux can be recompiled to run on it. Projects such as Fink, MacPorts and pkgsrc provide pre-compiled or pre-formatted packages. Since version 10.3, Mac OS X has included X11.app, Apple’s version of the X Window System graphical interface for Unix applications, as an optional component during installation. Up to and including Mac OS X v10.4 (Tiger), Apple’s implementation was based on the X11 Licensed XFree86 4.3 and X11R6.6. All bundled versions of X11 feature a window manager which is similar to the Mac OS X look-and-feel and has fairly good integration with Mac OS X, also using the native Quartz rendering system. Earlier versions of Mac OS X (in which X11 has not been bundled) can also run X11 applications using XDarwin.
For the early releases of Mac OS X, the standard hardware platform supported was the full line of Macintosh computers (laptop, desktop, or server) based on PowerPC G3, G4, and G5 processors. Later versions discontinued support for some older hardware; for example, Panther does not support “beige” G3s, and Tiger does not support systems that pre-date Apple’s introduction of FireWire ports. The latest version of Mac OS X, Leopard, has dropped support for all PowerPC G3 processors and for PowerPC G4 processors with clockspeeds below 867 MHz. With the introduction of the MacBook Air, which lacks any FireWire ports, Leopard does not require a FireWire port. However, tools such as XPostFacto and patches applied to the installation disc have been developed by third parties to enable installation of newer versions of Mac OS X on systems not officially supported by Apple, including some pre-G3 systems. Except for features requiring specific hardware (e.g. graphics acceleration, DVD writing), the operating system offers the same functionality on all supported hardware.
PowerPC versions of Mac OS X prior to Leopard retain compatibility with older Mac OS applications by providing an emulation environment called Classic, which allows users to run Mac OS 9 as a process within Mac OS X, so that older applications run as they would under the older operating system. Classic is not supported on Intel-based Macs or in Mac OS X v10.5 “Leopard”.
A few early adopters experienced a surprise: Mac OS X was supported on Mac OS machines that came with a G3 or later processor from the factory—not machines with third-party processor cards. For example, a Power Mac 7300 whose CPU chip failed could be easily upgraded with a G3 processor on a “daughter card,” which often cost nearly the same as an exact replacement of the original chip. The user could then go to the same store and buy the Mac OS X upgrade on CD-ROM. This is not guaranteed to work, however.
- Aqua GUI – A fluid graphical user interface with water-like elements.
- Anti-aliasing of widgets, text, graphics and window elements.
- ColorSync color matching built into the core drawing engine, for print and multimedia professionals.
- Drop shadows around window and isolated text elements to provide a sense of depth.
- A Dock holding file/folder shortcuts as well as minimized windows.
- Full-color, scalable icons up to 512×512 pixels
- Human interface guidelines followed by almost all applications, giving them consistent user interface and keyboard shortcuts.
- New interface elements including sheets (document modal dialog boxes attached to specific windows) and drawers.
- OpenGL composites windows onto the screen to allow hardware-accelerated drawing. This technology (introduced in version 10.2) is called Quartz Extreme.
- Quartz’s internal imaging model correlates well with the Portable Document Format (PDF) imaging model, making it easy to output PDF to multiple devices. PDF viewing is built in.
- Automator – an application designed to create an automatic workflow for different tasks (introduced in version 10.4).
- Dashboard – A full-screen group of small applications called desktop widgets that can be called up and dismissed in one keystroke (introduced in version 10.4).
- Exposé – A feature which includes three functions to help accessibility between windows and desktop. Its functions are to instantly display all open windows as thumbnails for easy navigation to different tasks, display all open windows as thumbnails from the current application, and hide all windows to access the desktop (introduced in version 10.3).
- Finder – A file browser allowing quick access to all areas of the computer (modified throughout subsequent releases). (The Finder found in Mac OS X Jaguar had been criticized for violating the concept of spatial interface.)
- Quick Look allows dynamic previews of files (including videos and multi-page documents) without opening their parent applications (introduced in 10.5).
- Spotlight search technology allows rapid real-time searches of data files, mail messages, photos, and other information, based on item properties (meta data) and/or content (introduced in version 10.4).
- FileVault – Optional encryption of the user’s files with Advanced Encryption Standard (AES) (128-bit keys introduced in version 10.3, 256-bit keys on version 10.5).
- Front Row – A media viewer interface accessed by the Apple Remote (introduced in 10.4).
- Global application services – spell checker, special characters palette, color picker, font chooser and dictionary.
- Integrated Sync Services – A system which allows applications to access a centralized extensible database for various elements of user data, including calendar and contact items. The operating system manages conflicting edits and data consistency (introduced in version 10.4).
- Spaces – Desktop organization tool which can create and manage multiple virtual desktops and display them in an Exposé-like interface (introduced in 10.5).
- Cover Flow – is a three-dimensional graphical user interface included with iTunes, the Finder, and other Apple Inc. products for visually skimming through files and digital media libraries via cover artwork (introduced in 10.5).
- Time Machine – Automatic backup technology that allows users to view and restore previous versions of files and application data (introduced in 10.5).
Mac OS X version 10.5 “Leopard” is the sixth major release of the Mac OS X operating system for Apple’s Mac line of personal computers, and is the successor to Mac OS X v10.4 “Tiger”. Leopard was released on October 26, 2007, and is available in two variants: a desktop version suitable for personal computers, and a server version, Mac OS X Server. Apple offers a reduced-cost upgrade to people that purchased new Apple computers after October 1, 2007 that do not already have Mac OS X v10.5 pre-installed or a Leopard upgrade DVD included. Steve Jobs stated at MacWorld 2008 that over 20% of Mac users currently use Leopard as their operating system.
According to Apple, Leopard contains over 300 changes and enhancements, covering core operating system components as well as included applications and developer tools. Leopard introduces a significantly revised desktop, with a redesigned Dock, Stacks, a semitransparent menu bar, and an updated Finder that incorporates the Cover Flow visual navigation interface first seen in iTunes. Other notable features include support for writing 64-bit graphical user interface applications, an automated backup utility called Time Machine, support for Spotlight searches across multiple machines, and the inclusion of Front Row and Photo Booth, which were previously only included with some Mac models.
Apple missed Mac OS X v10.5’s release time frame as originally announced by Apple’s CEO Steve Jobs. When first discussed in June 2005, Jobs had stated that Apple intended to release Leopard at the end of 2006 or early 2007. A year later, this was amended to “Spring 2007″; however on April 12, 2007, Apple issued a statement that its release would be delayed until October 2007 because of the development of the iPhone.
- Native support by many libraries and frameworks for 64-bit applications, allowing 64-bit Cocoa applications. Existing 32-bit applications using those libraries and frameworks should continue to run without the need for emulation or translation.
- Leopard offers the Objective-C 2.0 runtime, which includes new features such as garbage collection. Xcode 3.0 supports the updated language and was itself rewritten with it.
- A new framework, Core Animation, allows a developer to create complex animations while specifying only a “start” and a “goal” space. The main goal of Core Animation is to enable the creation of complex animations with small amounts of program code.
- Apple integrates DTrace from the OpenSolaris project and adds a graphical interface called Instruments (previously Xray). DTrace provides tools that users, administrators and developers can use to tune the performance of the operating system and the applications that run on it.
- The new Scripting Bridge allows programmers to use Python and Ruby to interface with the Cocoa frameworks.
- Ruby on Rails is included in the default install.
- Leopard’s OpenGL stack has been updated to version 2.1, and uses LLVM to increase its vertex processing speed. Apple has been working to get LLVM integrated into GCC; LLVM’s use within other operating system facilities has not been announced.
- The Graphics and Media State of the Union address confirmed many other features are possible because of Core Animation, such as live desktops, improvements to Quartz Composer with custom patches, a new PDF Kit for developers, and improvements to QuickTime APIs.
- Leopard includes a read-only implementation of the ZFS file system.
In mid-December 2006 a pre-release version of Leopard appeared to include support for Sun’s ZFS. Jonathan Schwartz, CEO and President of Sun Microsystems, stated on June 6, 2007 that ZFS has become “the file system” for Leopard. However, the senior project marketing director for Mac OS X stated on June 11, 2007 that the existing HFS+, not ZFS, will be used in Leopard. Apple later clarified that a read-only version of ZFS would be included.
- Leopard includes drivers for UDF 2.5, necessary for reading HD DVD and Blu-ray discs using third-party drives, but the included DVD Player software can only play HD DVD disks authored by DVD Studio Pro.
- Leopard includes a framework implementing latent semantic mapping for classifying (e.g. textual) data.
- Leopard is certified as fully UNIX compliant. Certification means that software following the Single UNIX Specification can be compiled and run on Leopard without the need for any code modification. The certification only applies to Leopard when run on Intel processors.
- Leopard removes support for Classic applications. Classic will not run on Intel-based Macs in any case.
New security features intend to provide better internal resiliency to successful attacks, in addition to preventing attacks from being successful in the first place.
Library Randomization
Leopard implements library randomization, which randomizes the locations of some libraries in memory. Vulnerabilities that corrupt program memory often rely on known addresses for these library routines, which allow injected code to launch processes or change files. Library randomization is presumably a stepping stone to a more complete implementation of address space layout randomization at a later date.
Application Layer Firewall
Leopard ships with two firewall engines: the original BSD IPFW, which was present in earlier releases of Mac OS X, and the new Leopard Application Layer Firewall. Unlike IPFW, which intercepts and filters IP datagrams before the kernel performs significant processing; the Application Layer Firewall operates at the socket layer, bound to individual processes. The Application Layer Firewall can therefore make filtering decisions on a per-application basis. Of the two firewall engines, only the Application Layer Firewall is fully exposed in the Leopard user interface. The new firewall offers less control over individual packet decisions (users can decide to allow or deny connections system wide or to individual applications, but must use IPFW to set fine-grained TCP/IP header level policies). It also makes several policy exceptions for system processes: neither mDNSResponder nor programs running with superuser privileges are filtered.
Sandboxes
Leopard includes kernel-level support for role-based access control (RBAC). RBAC is intended to prevent an application like Mail from editing the password database.
Application Signing
Leopard provides a framework to use public key signatures for code signing to verify, in some circumstances, that code has not been tampered with. Signatures can also be used to ensure that one program replacing another is truly an “update”, and carry any special security privileges across to the new version. This reduces the number of user security prompts, and the likelihood of the user being trained to simply clicking “OK” to everything.
Secure Guest Account
Guests can be given access to a Leopard system with an account that the system erases and resets at logout.
Apple states the following basic Leopard system requirements, although, for some specific applications and actions (such as iChat) an Intel processor is required:
- Processor must be any Intel, PowerPC G5 or G4 (at least 867 MHz or faster)
- DVD drive (for installation of the operating system)
- At least 512 MB of RAM (additional RAM (1 GB) is recommended for development purposes)
- At least 9 GB of disk space available
Leopard’s retail version was not released in separate versions for each type of processor, but instead consisted of one universal release that could run on both PowerPC and Intel processors. Leopard drops support for slower G4 and all G3 processors. Versions of Leopard shipping with computers, however, were Intel only, as is Apple’s entire Mac product line.