Inside the Mac OS X Kernel Debunking Mac OS Myths 24Th Chaos Communication Congress 24C3, Berlin 2007

Total Page:16

File Type:pdf, Size:1020Kb

Inside the Mac OS X Kernel Debunking Mac OS Myths 24Th Chaos Communication Congress 24C3, Berlin 2007 Lucy <whoislucy(at)gmail.com> Inside the Mac OS X Kernel Debunking Mac OS Myths 24th Chaos Communication Congress 24C3, Berlin 2007 Many buzzwords are associated with Mac OS Mac OS Successor X: Mach kernel, microkernel, FreeBSD kernel, As Apple was in bitter need of a successor for C++, 64 bit, UNIX... and while all of these ap- Mac OS, they decided to buy an operating sys- ply in some way, “XNU”, the Mac OS X ker- tem and build Mac OS compatibility into it. nel is neither Mach, nor FreeBSD-based, it's Despite negotiations with the company behind not a microkernel, it's not written in C++ and BeOS, Apple finally decided to buy NEXT, the it's not 64 bit - but it is Open Source (with res- company Steve Jobs had founded just after ervations) and it's UNIX... but just since re- having left Apple in 1985, and to convert cently. NEXTSTEP/OpenStep into the next Mac OS: This paper intends to clear up the confusion Mac OS X. by presenting details of the Mac OS X kernel Mach architecture, its components Mach, BSD and I/ The NEXTSTEP operating system was heav- O-Kit, what's so different and special about this ily based on Mach. Mach was an operating sys- design, and what the special strengths of it are. tem project at the Carnegie Mellon University that was started in 1985 in response to the ever- History increasing complexity of the UNIX and BSD Unlike many other operating systems, the de- kernels. As one of the first microkernels, it only sign of Mac OS X has never been strictly included code for memory management (ad- planned and implemented from scratch, in- dress spaces, tasks), scheduling (threads; a stead, it is the result of code from very differ- concept unknown to UNIX at that time) and ent sources put together over the last decades. inter-process communication (IPC) - all other Mac OS functionality typically found in an operating Mac OS started its life in 1984 on the original system kernel, like filesystems, networking, 128KB Macintosh as a mouse-operated graphi- security and device drivers, had to be imple- cal operating system that, due to memory con- mented in so-called “servers” in user space. straints, did not support multitasking. It wasn't This could be a very big plus for reliability, until 1988 that Mac OS supported a very sim- since a crash in a driver didn't necessarily bring ple form of cooperative multitasking (“Multi- the system down, as well as maintainability, Finder”). In the mid-90s, Apple ended up hav- since it imposed strict rules on the interface ing a ten year old code base designed for a between the core kernel functionality and the single-tasking system on a Motorola 68000 that userland servers. Unlike in UNIX, operating now ran on PowerPC CPUs. Parts of the kernel system components couldn't just call each code ran in a 68K emulator, and it still did not other arbitrarily (“The big mess” - Tanen- support memory protection. There was no way baum). Another advantage of a microkernel to compete even with Windows 95, which is like Mach is the possibility to have several per- why Apple started the Copland project in 1994 sonalities, each of which is a set of userspace in order to design and implement a new and servers. This way, a Mach-based system could, modern operating system that would have the for example, run UNIX and Windows applica- Mac OS API and user interface - much like tions at the same time. Having a minimal piece Microsoft did with Windows NT. But although of code running in privileged mode that ab- Copland had been heavily advertised with de- stracts the hardware and allows different oper- velopers, programming books had been pub- ating systems to run on top of it is basically the lished and Betas had been given out, the pieces same approach implemented by virtualization of Copland never fit together, and the unbeara- today. But the typical configuration of a Mach bly unstable operating system was scrapped in operating system was to have a single BSD 1996. server in user mode, i.e. the majority of the BSD kernel with memory management and API renamed to Cocoa, the Mac OS 9 API scheduling stripped out, and process manage- “Toolbox” ported as a compatibility API (now ment built on top of Mach tasks. named “Carbon”), “carbonized” versions of the The problem with the Mach design was that OS 9 Finder and QuickTime technologies, plus the kernel was slower than a traditional mono- a VMware-like Virtual Machine called Blue- lithic kernel because of the extra kernel/user Box (“Classic”) that runs OS 9 and its applica- context switches when a server communicated tions unmodified. with the kernel or servers communicated with each other. On a monolithic kernel, these were Architecture just simple function calls. The simplest solu- The Mac OS X kernel, named “XNU” (“X is tion for this problem is “co-location”: The per- not UNIX”) consists of three main compo- sonality servers run in kernel mode, and com- nents: Mach, BSD and I/O-Kit. munication is fast again. While it somewhat Mach defeats the original idea of a microkernel, it Being the only operating system that still uses still has the advantage of well-partitioned ker- Mach code (not counting GNU/HURD), Mac nel components and a more modern core ker- OS X has evolved from the original code base nel: The Mach memory management code was quite a bit, but the architecture is basically un- later integrated into BSD. changed. Mach (“osfmk” in the kernel source NEXTSTEP tree, which stands for “OSF microkernel”) NEXTSTEP, which was released in a 1.0 ver- calls address spaces “tasks”, and one task can sion in 1989, chose to go with this design. contain zero or more threads. Being policy- NEXT had removed the core kernel parts from free, there is little information associated with the 4.3BSD kernel and layered it on top of a task, so, for example, there is no UNIX-style Mach, in kernel mode. This way, NEXT was current working directory or environment as- many years ahead of the competition with sociated with it. While there are few surprises NEXTSTEP being the first desktop/GUI oper- in the memory management code compared to ating system that supported preemptive multi- other modern operating systems, the key dis- tasking, memory protection and UNIX com- tinctive feature of Mach is Mach Messaging. A patibility. At first NEXTSTEP only ran on their task can have any number of “ports”, which are own Motorola 68K-based machines, but was interprocess communication (IPC) endpoints. later ported to SPARC, PA-RISC and i386, One task can subsequently send a message when NEXT started licensing it under the name from its originating port to its peer port, and “OpenStep” to other hardware manufacturers, Mach will take care of security, enqueueing, so it was highly portable. When Apple acquired dequeueing, network opacity (ports can be on NEXT in 1997, they added PowerPC support different machines) and, if necessary, byte and removed support for all architectures other swapping. For programming convenience, the than i386; the latter would serve as the fallback Mach Interface Generator (“MIG”) can gener- solution when Apple switched from PowerPC ate stub code from interface definitions, so that to i386 in 2005/2006. two processes can talk to each other using sim- Rhapsody and OS X ple function calls, but internally, this will be With Apple’s acquisition of OpenStep, many translated into Mach messages. more changes were made to the operating sys- BSD tem which now had the interim name “Rhap- The BSD part of the kernel implements sody”: They replaced the “DriverKit” driver UNIX processes on top of Mach tasks, and model with the new “I/O-Kit” system, updated UNIX signals on top of Mach exceptions and Mach 2.5 with the Mach 3.0 codebase, updated Mach IPC. UNIX filesystem semantics are im- the BSD part with 4.4BSD and FreeBSD code plemented here just like TCP/IP networking. and added support for the HFS filesystem and And while the VFS (virtual filesystem) compo- Apple networking protocols to the kernel. In nent allows plugging in BSD-style filesystems, userland, Mac OS X is pretty much the /dev infrastructure plugs right into I/O-Kit. NEXTSTEP/OpenStep, with the native “NS” BSD exports all the semantics that an applica- tion expects from a UNIX/BSD/POSIX com- XML description of dependencies and the parts patible operating system, like “open()” and of the kernel it links against. “fork()”, through the syscall interface. Since there are basically two kernels in XNU Other interesting details - Mach with its message passing API and BSD The following sections describe some other with the POSIX API - there are two kinds of interesting details of or around the Mac OS X syscalls. While both use a single int 0x80/ kernel. sysenter/sc entry point, negative syscall num- Booting bers will be routed to Mach, while positive While PowerPC-based Macs use OpenFirm- ones go to BSD. Note that, just like on Win- ware, Intel-based machines use EFI (“Extensi- dows NT, applications may not use int 0x80/ ble Firmware Interface”). Both kinds of firm- sysenter/sc directly, as this is a private inter- ware are a lot more powerful than the 16 bit face. Instead, applications must call through BIOS still shipping on PCs. While EFI can libSystem, which is the equivalent of libc on boot off USB and supports GPT partitioning OS X.
Recommended publications
  • Porting Darwin to the MV88F6281 Arming the Snowleopard
    Porting Darwin to the MV88F6281 ARMing the SnowLeopard. Tristan Schaap 1269011 Apple Inc. Platform Technologies Group Delft University of Technology Dept. of Computer Science Committee: Ir. B.R. Sodoyer Dr. K. van der Meer Preface! 3 Introduction! 4 Summary! 5 Building a new platform! 6 Booting iBoot! 7 Building the kernelcache! 8 Booting the kernel! 10 THUMBs down! 16 Conclusion! 18 Future Work! 19 Glossary! 20 References! 21 Appendix A! 22 Appendix B! 23 Skills! 23 Process! 26 Reflection! 27 Appendix C! 28 Plan of Approach! 28 2 Preface Due to innovative nature of this project, I have had to limit myself in the detail in which I describe my work. This means that this report will be lacking in such things as product specific- and classified information. I would like to thank a few people who made it possible for me to successfully complete my internship at the Platform Technologies Group at Apple. First off, the people who made this internship possible, John Kelley, Ben Byer and my manager John Wright. Mike Smith, Tom Duffy and Anthony Yvanovich for helping me through the rough patches of this project. And the entirety of Core OS for making my stay an unforgettable experience. 3 Introduction About the Platform Technologies Group As it was described by a manager: “We do the plumbing, if we do our jobs right, you never see it.”. The Platform Technologies Group, a subdivision of the Core OS department, works on the embedded platforms that Apple maintains. Here, platforms are brought up and the embedded kernel and lower level support for the platforms is maintained.
    [Show full text]
  • Linux on the Road
    Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser <wehe[AT]tuxmobil.org> Linux Mobile Edition Edition Version 3.22 TuxMobil Berlin Copyright © 2000-2011 Werner Heuser 2011-12-12 Revision History Revision 3.22 2011-12-12 Revised by: wh The address of the opensuse-mobile mailing list has been added, a section power management for graphics cards has been added, a short description of Intel's LinuxPowerTop project has been added, all references to Suspend2 have been changed to TuxOnIce, links to OpenSync and Funambol syncronization packages have been added, some notes about SSDs have been added, many URLs have been checked and some minor improvements have been made. Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes.
    [Show full text]
  • Cocoa Touch & Iphone
    Music Appreciation 243: Introduction to Rick Astley Evan Doll [email protected] Alan Cannistraro [email protected] Thursday, April 2, 2009 Thursday, April 2, 2009 Welcome to CS193P: iPhone Application Development Evan Doll [email protected] Alan Cannistraro [email protected] Thursday, April 2, 2009 Staff • Lecturers ■ Evan Doll [email protected] ■ Alan Cannistraro [email protected] • Student TAs ■ Troy Brant [email protected] ■ Paul Salzman [email protected] • “Professor Emeritus” ■ Paul Marcos [email protected] Thursday, April 2, 2009 How many of you... • Are familiar with object-oriented programming? • Have developed software with Mac OS X? • Have developed apps for the iPhone? Thursday, April 2, 2009 Lectures, Sections, Office Hours • Lectures ■ 320-105, Monday & Wednesday 3:15 – 4:30 PM • Optional Section ■ 200-205, Friday 3:15 – 4:05 PM as announced ■ Guest speakers, additional topics ■ First one will be next Friday 4/10 • Office Hours ■ Troy and Paul will be holding office hours ■ Time & location TBD, check website for details Thursday, April 2, 2009 Requirements • Prerequisite: CS 106B/X • Recommended Book: None, we’ll use Apple documentation • You must have access to an Intel-based Macintosh ■ Running Mac OS X 10.5 Leopard ■ iPhone SDK (Not available on cluster computers!) • Owning an iPhone or iPod Touch is not required ■ Assignments may be done with the iPhone Simulator ■ Loaner iPod Touches should be available, more details to come Thursday, April 2, 2009 Enrollment • Response has been phenomenal again
    [Show full text]
  • Mac OS X Server Administrator's Guide
    034-9285.S4AdminPDF 6/27/02 2:07 PM Page 1 Mac OS X Server Administrator’s Guide K Apple Computer, Inc. © 2002 Apple Computer, Inc. All rights reserved. Under the copyright laws, this publication may not be copied, in whole or in part, without the written consent of Apple. The Apple logo is a trademark of Apple Computer, Inc., registered in the U.S. and other countries. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may constitute trademark infringement and unfair competition in violation of federal and state laws. Apple, the Apple logo, AppleScript, AppleShare, AppleTalk, ColorSync, FireWire, Keychain, Mac, Macintosh, Power Macintosh, QuickTime, Sherlock, and WebObjects are trademarks of Apple Computer, Inc., registered in the U.S. and other countries. AirPort, Extensions Manager, Finder, iMac, and Power Mac are trademarks of Apple Computer, Inc. Adobe and PostScript are trademarks of Adobe Systems Incorporated. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Netscape Navigator is a trademark of Netscape Communications Corporation. RealAudio is a trademark of Progressive Networks, Inc. © 1995–2001 The Apache Group. All rights reserved. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd. 062-9285/7-26-02 LL9285.Book Page 3 Tuesday, June 25, 2002 3:59 PM Contents Preface How to Use This Guide 39 What’s Included
    [Show full text]
  • Programming Java for OS X
    Programming Java for OS X hat’s so different about Java on a Mac? Pure Java applica- tions run on any operating system that supports Java. W Popular Java tools run on OS X. From the developer’s point of view, Java is Java, no matter where it runs. Users do not agree. To an OS X user, pure Java applications that ignore the feel and features of OS X are less desirable, meaning the customers will take their money elsewhere. Fewer sales translates into unhappy managers and all the awkwardness that follows. In this book, I show how to build GUIs that feel and behave like OS X users expect them to behave. I explain development tools and libraries found on the Mac. I explore bundling of Java applications for deployment on OS X. I also discuss interfacing Java with other languages commonly used on the Mac. This chapter is about the background and basics of Java develop- ment on OS X. I explain the history of Java development. I show you around Apple’s developer Web site. Finally, I go over the IDEs commonly used for Java development on the Mac. In This Chapter Reviewing Apple Java History Exploring the history of Apple embraced Java technologies long before the first version of Java on Apple computers OS X graced a blue and white Mac tower. Refugees from the old Installing developer tan Macs of the 1990s may vaguely remember using what was tools on OS X called the MRJ when their PC counterparts were busy using JVMs. Looking at the MRJ stands for Mac OS Runtime for Java.
    [Show full text]
  • App Frameworks #WWDC16
    App Frameworks #WWDC16 Improving Existing Apps Using modern best practices Session 213 Woody L., � to the Knowledge © 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. Agenda Reduce Technical Debt Asset Catalogs Dependency Injection Live Playgrounds Cycle of Development You down with ‘Dub-DC? Yeah, you know me. Lots of Requests Your boss More Requests Your customers Technical Debt //TODO: Write and clean up Customer’s Perspective Actuality Duarte requesting hi-res photo AppStore New API zsh AppKit CF AirPortUtility PreferencesApp iCal Foundation AVFoundation AirPortAssistant AirPortSettings AirPortAssistant OpenCL GameKit Dock Mail MapKit MobileMusicPlayer xnu AppKit AppStore MobileSafari zsh QuickTime udf WebKit BlueToothSettings cups Messages Dock ActivityMonitor MobileSafari bash Mail AccessibilitySettings GameKit GameKitServices MediaPlayerUI MediaPlayer MediaStream MobileMail Swift 3 Source code compatibility New and Updated Platforms A Dev’s Run Loop Bug Fixes Technical Debt New and Platforms ♽Updated APIs Customer Roadmap A Dev’s Run Loop Bug Fixes Technical Debt New and Platforms ♽Updated APIs Customer Roadmap A Dev’s Run Loop Bug Fixes Technical Debt New and Platforms ♽Updated APIs Customer Roadmap The Essentials A very good place to start Earlier iOS 8 5% 11% Minimum Deployment of iOS 8 • 95% of Devices iOS 9 84% As measured by the App Store on May 9, 2016 Pick a Deployment Target Latest update of previous release Deprecated API Deprecated API Treat Warnings
    [Show full text]
  • Master Boot Record Vs Guid Mac
    Master Boot Record Vs Guid Mac Wallace is therefor divinatory after kickable Noach excoriating his philosophizer hourlong. When Odell perches dilaceratinghis tithes gravitated usward ornot alkalize arco enough, comparatively is Apollo and kraal? enduringly, If funked how or following augitic is Norris Enrico? usually brails his germens However, half the UEFI supports the MBR and GPT. Following your suggested steps, these backups will appear helpful to restore prod data. OK, GPT makes for playing more logical choice based on compatibility. Formatting a suit Drive are Hard Disk. In this guide, is welcome your comments or thoughts below. Thus, making, or paid other OS. Enter an open Disk Management window. Erase panel, or the GUID Partition that, we have covered the difference between MBR and GPT to care unit while partitioning a drive. Each record in less directory is searched by comparing the hash value. Disk Utility have to its important tasks button activated for adding, total capacity, create new Container will be created as well. Hard money fix Windows Problems? MBR conversion, the main VBR and the backup VBR. At trial three Linux emergency systems ship with GPT fdisk. In else, the user may decide was the hijack is unimportant to them. GB even if lesser alignment values are detected. Interoperability of the file system also important. Although it hard be read natively by Linux, she likes shopping, the utility Partition Manager has endeavor to working when Disk Utility if nothing to remain your MBR formatted external USB hard disk drive. One station time machine, reformat the storage device, GPT can notice similar problem they attempt to recover the damaged data between another location on the disk.
    [Show full text]
  • ® Apple® A/UXTM Release Notes Version 1.0 Ii APPLE COMPUTER, INC
    .® Apple® A/UXTM Release Notes Version 1.0 Ii APPLE COMPUTER, INC. UNIBUS, VAX, VMS, and VT100 are trademarks of Digital © Apple Computer, Inc., 1986 Equipment Corporation. 20525 Mariani Ave. Cupertino, California 95014 Simultaneously published in the (408) 996-1010 United States and Canada. Apple, the Apple logo, APPLE'S SYSTEM V AppleTalk, ImageWriter, IMPLEMENTATION A/UX LaserWriter, Macintosh, RELEASE 1.0 RUNNING ON A MacTerminal, and ProDOS are MACINTOSH II COMPUTER registered trademarks of Apple HAS BEEN TESTED BY THE Computer, Inc. AT&T-IS' SYSTEM V VERIFICATION SUITE AND Apple Desktop Bus, A!UX, CONFORMS TO ISSUE 2 OF EtherTalk, and Finder are AT&T-IS' SYSTEM V trademarks of Apple Computer, INTERFACE DEFINITION Inc. BASE PLUS KERNEL Ethernet is a registered EXTENSIONS. trademark of Xerox Corporation. IBM is a registered trademark, and PC-DOS is a trademark, of International Business Machines, Inc. - ITC Avant Garde Gothic, ITC Garamond, and ITC Zapf Dingbats are registered trademarks of International Typeface Corporation. Microsoft and MS-DOS are registered trademarks of Microsoft Corporation. NFS is a registered trademark, and Sun Microsystems is a trademark, of Sun Microsystems, Inc. NuBus is a trademark of Texas Instruments. POSTSCRIPT is a registered trademark, and TRANSCRIPT is a trademark, of Adobe Systems Incorporated. UNIX is a registered trademark of AT&T Information Systems. Introduction to A/UX Release Notes, Version 1.0 These release notes contain late-breaking information about release 1.0 of the A!UXI'M software for the Apple® Macintosh® II computer. This package contains two kinds of materials: o Specific information that was not available in time to be incorporated into the printed manuals.
    [Show full text]
  • Chapter 1. Origins of Mac OS X
    1 Chapter 1. Origins of Mac OS X "Most ideas come from previous ideas." Alan Curtis Kay The Mac OS X operating system represents a rather successful coming together of paradigms, ideologies, and technologies that have often resisted each other in the past. A good example is the cordial relationship that exists between the command-line and graphical interfaces in Mac OS X. The system is a result of the trials and tribulations of Apple and NeXT, as well as their user and developer communities. Mac OS X exemplifies how a capable system can result from the direct or indirect efforts of corporations, academic and research communities, the Open Source and Free Software movements, and, of course, individuals. Apple has been around since 1976, and many accounts of its history have been told. If the story of Apple as a company is fascinating, so is the technical history of Apple's operating systems. In this chapter,[1] we will trace the history of Mac OS X, discussing several technologies whose confluence eventually led to the modern-day Apple operating system. [1] This book's accompanying web site (www.osxbook.com) provides a more detailed technical history of all of Apple's operating systems. 1 2 2 1 1.1. Apple's Quest for the[2] Operating System [2] Whereas the word "the" is used here to designate prominence and desirability, it is an interesting coincidence that "THE" was the name of a multiprogramming system described by Edsger W. Dijkstra in a 1968 paper. It was March 1988. The Macintosh had been around for four years.
    [Show full text]
  • Mac OS X: an Introduction for Support Providers
    Mac OS X: An Introduction for Support Providers Course Information Purpose of Course Mac OS X is the next-generation Macintosh operating system, utilizing a highly robust UNIX core with a brand new simplified user experience. It is the first successful attempt to provide a fully-functional graphical user experience in such an implementation without requiring the user to know or understand UNIX. This course is designed to provide a theoretical foundation for support providers seeking to provide user support for Mac OS X. It assumes the student has performed this role for Mac OS 9, and seeks to ground the student in Mac OS X using Mac OS 9 terms and concepts. Author: Robert Dorsett, manager, AppleCare Product Training & Readiness. Module Length: 2 hours Audience: Phone support, Apple Solutions Experts, Service Providers. Prerequisites: Experience supporting Mac OS 9 Course map: Operating Systems 101 Mac OS 9 and Cooperative Multitasking Mac OS X: Pre-emptive Multitasking and Protected Memory. Mac OS X: Symmetric Multiprocessing Components of Mac OS X The Layered Approach Darwin Core Services Graphics Services Application Environments Aqua Useful Mac OS X Jargon Bundles Frameworks Umbrella Frameworks Mac OS X Installation Initialization Options Installation Options Version 1.0 Copyright © 2001 by Apple Computer, Inc. All Rights Reserved. 1 Startup Keys Mac OS X Setup Assistant Mac OS 9 and Classic Standard Directory Names Quick Answers: Where do my __________ go? More Directory Names A Word on Paths Security UNIX and security Multiple user implementation Root Old Stuff in New Terms INITs in Mac OS X Fonts FKEYs Printing from Mac OS X Disk First Aid and Drive Setup Startup Items Mac OS 9 Control Panels and Functionality mapped to Mac OS X New Stuff to Check Out Review Questions Review Answers Further Reading Change history: 3/19/01: Removed comment about UFS volumes not being selectable by Startup Disk.
    [Show full text]
  • Building an Openstep Application by Michael Rutman, Independent Consultant
    Building an OpenStep Application by Michael Rutman, independent consultant Is it really as easy to program in OpenStep OpenStep and NEXTSTEP In 1985, Steve Jobs left Apple and formed NeXT. He found the latest technologies and brought together a team of developers to turn the newest theories into realities. To verify the new technologies, during development Steve would often stop development and have the entire team use the system they were creating. Several existing apps were created during these day or week long kitchens. More importantly, each developer knew how the framework would be used. If developers had a hard time using an object during a kitchen, they knew they had to rework that object. The system they created was called NEXTSTEP. NEXTSTEP has several layers, and each layer was state of the art in 1985. In the 12 years since Steve picked these technologies, the state of the art may have moved, but not advanced. The underlying OS is a Mach mini-kernel running a unix emulator. For practical purposes, Mach is a flavor of BSD unix. However, the Mach mini-kernel offers programmers a rich set of functionality beyond what unix provides. Most of the functionality of Mach is wrapped into the NEXTSTEP framework, so programmers get the power and flexibility of Mach with the ease of use of NEXTSTEP. Sitting on top of Mach is Display Postscript. Postscript, the language of printers, is a nice graphics language. NeXT and Adobe optimized Postscript for displaying on the screen and produced a speedy and powerful display system. NeXT's framework hides most of the Postscript, but if a programmer wants to get into the guts, there are hooks, called pswraps, to work at the Postscript level.
    [Show full text]
  • Carbon Copy Cloner Documentation: English
    Carbon Copy Cloner Documentation: English Getting started with CCC System Requirements, Installing, Updating, and Uninstalling CCC CCC License, Registration, and Trial FAQs Trouble Applying Your Registration Information? Establishing an initial backup Preparing your backup disk for a backup of Mac OS X Restoring data from your backup What's new in CCC Features of CCC specific to Lion and greater Release History Carbon Copy Cloner's Transition to a Commercial Product: Frequently Asked Questions Credits Example backup scenarios I want to clone my entire hard drive to a new hard drive or a new machine I want to backup my important data to another Macintosh on my network I want to backup multiple machines or hard drives to the same hard drive I want my backup task to run automatically on a scheduled basis Backing up to/from network volumes and other non-HFS volumes I want to back up my whole Mac to a Time Capsule or other network volume I want to defragment my hard drive Backup and archiving settings Excluding files and folders from a backup task Protecting data that is already on your destination volume Managing previous versions of your files Automated maintenance of CCC archives Advanced Settings Some files and folders are automatically excluded from a backup task The Block-Level Copy Scheduling Backup Tasks Scheduling a task and basic settings Performing actions Before and After the backup task Deferring and skipping scheduled tasks Frequently asked questions about scheduled tasks Email and Growl notifications Backing Up to Disk Images
    [Show full text]