Kernel Programming

Total Page:16

File Type:pdf, Size:1020Kb

Kernel Programming Inside Mac OS X Kernel Programming November 2002 Apple Computer, Inc. NeXT and OpenStep are trademarks © 2001–2002 Apple Computer, Inc. of NeXT Software, Inc., registered in All rights reserved. the United States and other countries. No part of this publication may be Java and all Java-based trademarks reproduced, stored in a retrieval are trademarks or registered system, or transmitted, in any form or trademarks of Sun Microsystems, by any means, mechanical, electronic, Inc., registsered in the United States photocopying, recording, or and other countries. otherwise, without prior written OpenGL is a registered trademark of permission of Apple Computer, Inc., Silicon Graphics, Inc. with the following exceptions: Any Simultaneously published in the person is hereby authorized to store United States and Canada. documentation on a single computer Even though Apple has reviewed this for personal use only and to print manual, APPLE MAKES NO copies of documentation for personal WARRANTY OR REPRESENTATION, use provided that the documentation EITHER EXPRESS OR IMPLIED, WITH contains Apple’s copyright notice. RESPECT TO THIS MANUAL, ITS The Apple logo is a trademark of QUALITY, ACCURACY, Apple Computer, Inc. MERCHANTABILITY, OR FITNESS Use of the “keyboard” Apple logo FOR A PARTICULAR PURPOSE. AS A (Option-Shift-K) for commercial RESULT, THIS MANUAL IS SOLD “AS purposes without the prior written IS,” AND YOU, THE PURCHASER, ARE consent of Apple may constitute ASSUMING THE ENTIRE RISK AS TO trademark infringement and unfair ITS QUALITY AND ACCURACY. competition in violation of federal and state laws. IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, No licenses, express or implied, are INCIDENTAL, OR CONSEQUENTIAL granted with respect to any of the DAMAGES RESULTING FROM ANY technology described in this book. DEFECT OR INACCURACY IN THIS Apple retains all intellectual property MANUAL, even if advised of the rights associated with the technology possibility of such damages. described in this book. This book is intended to assist application THE WARRANTY AND REMEDIES SET developers to develop applications FORTH ABOVE ARE EXCLUSIVE AND only for Apple-labeled or IN LIEU OF ALL OTHERS, ORAL OR Apple-licensed computers. WRITTEN, EXPRESS OR IMPLIED. No Every effort has been made to ensure Apple dealer, agent, or employee is that the information in this document authorized to make any modification, is accurate. Apple is not responsible extension, or addition to this warranty. for typographical errors. Some states do not allow the exclusion or Apple Computer, Inc. limitation of implied warranties or 1 Infinite Loop liability for incidental or consequential Cupertino, CA 95014 damages, so the above limitation or 408-996-1010 exclusion may not apply to you. This Apple, the Apple logo, AppleTalk, warranty gives you specific legal rights, Cocoa, Firewire, Mac, Macintosh, and and you may also have other rights which QuickTime are trademarks of Apple vary from state to state. Computer, Inc., registered in the United States and other countries. Carbon and Quartz are trademarks of Apple Computer, Inc. Contents Figures and Tables 1 Chapter 1 About This Document 2 Who Should Read This Document 2 Road Map 3 Other Apple Publications 5 Mach API Reference 5 Information on the Web 6 Chapter 2 Keep Out 7 Why You Should Avoid Programming in the Kernel 7 Chapter 3 Security Considerations 9 Security Implications of Paging 10 Buffer Overflows and Invalid Input 11 User Credentials 12 Remote Authentication 14 One-Time Pads 15 Time-based authentication 15 Temporary Files 17 /dev/mem and /dev/kmem 17 Key-based Authentication and Encryption 18 Public Key Weaknesses 19 Trust Models 19 Sensitivity to Patterns and Short Messages 20 Using Public Keys for Message Exchange 21 1 Apple Computer, Inc. November 2002 CONTENTS Using Public Keys for Identity Verification 21 Using Public Keys for Data Integrity Checking 22 Encryption Summary 22 Console Debugging 23 Code Passing 24 Chapter 4 Performance Considerations 26 Interrupt Latency 26 Locking Bottlenecks 27 Working With Highly Contended Locks 28 Reducing Contention by Decreasing Granularity 29 Code Profiling 30 Using Counters for Code Profiling 30 Lock Profiling 31 Chapter 5 Kernel Programming Style 33 C++ Naming Conventions 33 Basic Conventions 34 Additional Guidelines 34 Standard C Naming Conventions 35 Commonly Used Functions 37 Performance and Stability Tips 38 Performance and Stability Tips 39 Stability Tips 40 Style Summary 41 Chapter 6 Mach Overview 42 Mach Kernel Abstractions 43 Tasks and Threads 44 Ports, Port Rights, Port Sets, and Port Namespaces 46 Memory Management 47 Interprocess Communication (IPC) 49 IPC Transactions and Event Dispatching 50 2 Apple Computer, Inc. November 2002 CONTENTS Message Queues 50 Semaphores 51 Notifications 51 Locks 51 Remote Procedure Call (RPC) Objects 51 Time Management 52 Chapter 7 Memory and Virtual Memory 53 Mac OS X VM Overview 53 Memory Maps Explained 55 Named Entries 57 Universal Page Lists (UPLs) 58 Using Mach Memory Maps 60 Other VM and VM-Related Subsystems 62 Pagers 62 Working Set Detection Subsystem 63 VM Shared Memory Server Subsystem 63 Allocating Memory in the Kernel 64 Allocating Memory Using Mach Routines 64 Allocating Memory From the I/O Kit 66 Chapter 8 Mach Scheduling and Thread Interfaces 67 Overview of Scheduling 67 Why Did My Thread Priority Change? 69 Using Mach Scheduling From User Applications 69 Using the pthreads API to Influence Scheduling 70 Using the Mach Thread API to Influence Scheduling 71 Using the Mach Task API to Influence Scheduling 73 Kernel Thread APIs 75 Creating and Destroying Kernel Threads 76 SPL and Friends 77 Wait Queues and Wait Primitives 77 3 Apple Computer, Inc. November 2002 CONTENTS Chapter 9 Bootstrap Contexts 81 How Contexts Affect Users 82 How Contexts Affect Developers 83 Chapter 10 I/O Kit Overview 85 Redesigning the I/O Model 86 I/O Kit Architecture 87 Families 88 Drivers 89 Nubs 89 Connection Example 90 For More Information 93 Chapter 11 BSD Overview 94 BSD Facilities 95 Differences between Mac OS X and BSD 97 For Further Reading 98 Chapter 12 File Systems Overview 100 Working With the File System 101 VFS Transition 101 Chapter 13 Network Architecture 102 Review of 4.4BSD Network Architecture 103 NKE Types 104 Modifications to 4.4BSD Networking Architecture 106 Chapter 14 Boundary Crossings 107 Security Considerations 109 4 Apple Computer, Inc. November 2002 CONTENTS Choosing a Boundary Crossing Method 109 Kernel Subsystems 110 Bandwidth and Latency 110 Mach Messaging and Mach Interprocess Communication (IPC) 111 Using Well-Defined Ports 112 Remote Procedure Calls (RPC) 113 Calling RPC From User Applications 116 BSD syscall API 116 BSD ioctl API 117 BSD sysctl API 118 General Information on Adding a sysctl 118 Adding a sysctl Procedure Call 119 Registering a New Top Level sysctl 122 Adding a Simple sysctl 123 Calling a sysctl From User Space 124 The sysctlbyname System Call 124 The sysctl System Call 125 Memory Mapping and Block Copying 126 Summary 128 Chapter 15 Synchronization Primitives 129 Semaphores 130 Condition Variables 132 Locks 132 Spinlocks 132 Mutexes 134 Read-Write Locks 136 Spin/Sleep Locks 137 Chapter 16 Miscellaneous Kernel Services 139 Using Kernel Time Abstractions 139 Obtaining Time Information 139 Event and Timer Waits 140 Using IODelay and IOSleep 141 5 Apple Computer, Inc. November 2002 CONTENTS Using Mach Absolute Time Functions 141 Using tsleep 142 Boot Option Handling 143 Queues 144 Installing Shutdown Hooks 145 Chapter 17 Kernel Extension Overview 146 Implementation of a Kernel Extension (KEXT) 147 Kernel Extension Dependencies 148 Building and Testing Your Extension 149 Debugging Your KEXT 150 Installed KEXTs 151 Chapter 18 Building and Debugging Kernels 153 Adding New Files or Modules 153 Modifying the Configuration Files 154 Adding the Files or Modules 154 Enabling Module Options 155 Modifying the Source Code Files 155 Building Your First Kernel 156 Building an Alternate Kernel Configuration 158 When Things Go Wrong: Debugging the Kernel 159 Setting Debug Flags in Open Firmware 159 Choosing a Debugger 161 Using gdb for Kernel Debugging 162 Using ddb for Kernel Debugging 165 Commands and Syntax of ddb 167 6 Apple Computer, Inc. November 2002 CONTENTS Appendix A Document Revision History 173 Bibliography 175 Glossary 183 Index 197 7 Apple Computer, Inc. November 2002 CONTENTS 8 Apple Computer, Inc. November 2002 Figures and Tables Chapter 5 Kernel Programming Style 33 Table 5-1 Commonly used C functions 37 Chapter 8 Mach Scheduling and Thread Interfaces 67 Table 8-1 Thread priority bands 68 Table 8-2 Thread policies 72 Table 8-3 Task roles 74 Chapter 10 I/O Kit Overview 85 Figure 10-1 I/O Kit architecture 91 Chapter 13 Network Architecture 102 Figure 13-1 4.4 BSD network architecture 104 Figure 13-2 NKE architecture 106 Chapter 18 Building and Debugging Kernels 153 Table 18-1 Debugging flags 160 Table 18-2 Switch options in ddb 168 Appendix A Document Revision History 173 Table A-1 Document revision history 173 1 Apple Computer, Inc. November 2002 CHAPTER 1 1 About This Document The purpose of this document is to provide fundamental high-level information about the Mac OS X core operating-system architecture. It also provides background for system programmers and developers of device drivers, file systems, and network extensions. In addition, it goes into detail about topics of interest to kernel programmers as a whole. This is not a document on drivers. It covers device
Recommended publications
  • Mac OS 8 Update
    K Service Source Mac OS 8 Update Known problems, Internet Access, and Installation Mac OS 8 Update Document Contents - 1 Document Contents • Introduction • About Mac OS 8 • About Internet Access What To Do First Additional Software Auto-Dial and Auto-Disconnect Settings TCP/IP Connection Options and Internet Access Length of Configuration Names Modem Scripts & Password Length Proxies and Other Internet Config Settings Web Browser Issues Troubleshooting • About Mac OS Runtime for Java Version 1.0.2 • About Mac OS Personal Web Sharing • Installing Mac OS 8 • Upgrading Workgroup Server 9650 & 7350 Software Mac OS 8 Update Introduction - 2 Introduction Mac OS 8 is the most significant update to the Macintosh operating system since 1984. The updated system gives users PowerPC-native multitasking, an efficient desktop with new pop-up windows and spring-loaded folders, and a fully integrated suite of Internet services. This document provides information about Mac OS 8 that supplements the information in the Mac OS installation manual. For a detailed description of Mac OS 8, useful tips for using the system, troubleshooting, late-breaking news, and links for online technical support, visit the Mac OS Info Center at http://ip.apple.com/infocenter. Or browse the Mac OS 8 topic in the Apple Technical Library at http:// tilsp1.info.apple.com. Mac OS 8 Update About Mac OS 8 - 3 About Mac OS 8 Read this section for information about known problems with the Mac OS 8 update and possible solutions. Known Problems and Compatibility Issues Apple Language Kits and Mac OS 8 Apple's Language Kits require an updater for full functionality with this version of the Mac OS.
    [Show full text]
  • Mac Keyboard Shortcuts Cut, Copy, Paste, and Other Common Shortcuts
    Mac keyboard shortcuts By pressing a combination of keys, you can do things that normally need a mouse, trackpad, or other input device. To use a keyboard shortcut, hold down one or more modifier keys while pressing the last key of the shortcut. For example, to use the shortcut Command-C (copy), hold down Command, press C, then release both keys. Mac menus and keyboards often use symbols for certain keys, including the modifier keys: Command ⌘ Option ⌥ Caps Lock ⇪ Shift ⇧ Control ⌃ Fn If you're using a keyboard made for Windows PCs, use the Alt key instead of Option, and the Windows logo key instead of Command. Some Mac keyboards and shortcuts use special keys in the top row, which include icons for volume, display brightness, and other functions. Press the icon key to perform that function, or combine it with the Fn key to use it as an F1, F2, F3, or other standard function key. To learn more shortcuts, check the menus of the app you're using. Every app can have its own shortcuts, and shortcuts that work in one app may not work in another. Cut, copy, paste, and other common shortcuts Shortcut Description Command-X Cut: Remove the selected item and copy it to the Clipboard. Command-C Copy the selected item to the Clipboard. This also works for files in the Finder. Command-V Paste the contents of the Clipboard into the current document or app. This also works for files in the Finder. Command-Z Undo the previous command. You can then press Command-Shift-Z to Redo, reversing the undo command.
    [Show full text]
  • Transport Interfaces Programming Guide
    Transport Interfaces Programming Guide Sun Microsystems, Inc. 2550 Garcia Avenue Mountain View, CA 94043-1100 U.S.A. Part No: 802-5886 August 1997 Copyright 1997 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303-4900 U.S.A. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, SunSoft, SunDocs, SunExpress, and Solaris are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. The OPEN LOOK and SunTM Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, which license also covers Sun’s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun’s written license agreements.
    [Show full text]
  • Debugging Kernel Problems
    Debugging Kernel Problems by GregLehey Edition for AsiaBSDCon 2004 Taipei, 13 March 2004 Debugging Kernel Problems by GregLehey([email protected]) Copyright © 1995-2004 GregLehey 3Debugging Kernel Problems Preface Debugging kernel problems is a black art. Not manypeople do it, and documentation is rare, in- accurate and incomplete. This document is no exception: faced with the choice of accuracyand completeness, I chose to attempt the latter.Asusual, time was the limiting factor,and this draft is still in beta status. This is a typical situation for the whole topic of kernel debugging: building debug tools and documentation is expensive,and the people who write them are also the people who use them, so there'satendencytobuild as much of the tool as necessary to do the job at hand. If the tool is well-written, it will be reusable by the next person who looks at a particular area; if not, it might fall into disuse. Consider this book a starting point for your own develop- ment of debugging tools, and remember: more than anywhere else, this is an area with ``some as- sembly required''. Debugging Kernel Problems 4 1 Introduction Operating systems fail. All operating systems contain bugs, and theywill sometimes cause the system to behave incorrectly.The BSD kernels are no exception. Compared to most other oper- ating systems, both free and commercial, the BSD kernels offer a large number of debugging tools. This tutorial examines the options available both to the experienced end user and also to the developer. In this tutorial, we’ll look at the following topics: • Howand whykernels fail.
    [Show full text]
  • Porting Codewarrior Projects to Xcode
    Porting CodeWarrior Projects to Xcode 2006-09-05 Intel and Intel Core are registered Apple Computer, Inc. trademarks of Intel Corportation or its © 2003, 2006 Apple Computer, Inc. subsidiaries in the United States and other All rights reserved. countries. Java and all Java-based trademarks are No part of this publication may be trademarks or registered trademarks of Sun reproduced, stored in a retrieval system, or Microsystems, Inc. in the U.S. and other transmitted, in any form or by any means, countries. mechanical, electronic, photocopying, recording, or otherwise, without prior OpenGL is a registered trademark of Silicon written permission of Apple Computer, Inc., Graphics, Inc. with the following exceptions: Any person PowerPC and and the PowerPC logo are is hereby authorized to store documentation trademarks of International Business on a single computer for personal use only Machines Corporation, used under license and to print copies of documentation for therefrom. personal use provided that the Simultaneously published in the United documentation contains Apple’s copyright States and Canada. notice. Even though Apple has reviewed this document, The Apple logo is a trademark of Apple APPLE MAKES NO WARRANTY OR Computer, Inc. REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS Use of the “keyboard” Apple logo DOCUMENT, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A (Option-Shift-K) for commercial purposes PARTICULAR PURPOSE. AS A RESULT, THIS without the prior written consent of Apple DOCUMENT IS PROVIDED “AS IS,” AND YOU, THE READER, ARE ASSUMING THE may constitute trademark infringement and ENTIRE RISK AS TO ITS QUALITY AND unfair competition in violation of federal ACCURACY.
    [Show full text]
  • Icem: Un’ Applicazione Per L’Iphone
    massimo cocco icem: un’ applicazione per l’iphone tesi di laurea Relatore: Prof. Paolo Baldan Università degli Studi di Padova Facoltà di Informatica Dipartimento di Scienze Matematiche Naturali MM FF NN Febbraio 2011 I’m never giving in On with the show - Queen - The Show Must Go On - Dedicato a mio nonno. INDICE 1 introduzione 1 1.1 ”Tutto cambia. Di nuovo” 1 1.2 Introduzione al progetto 2 1.2.1 Corporate Energy Mangement Application 2 1.2.2 L’azienda Autoware e iCEM 3 1.2.3 Settori sviluppati dallo studente 5 2 analisi del progetto 7 2.1 Studio di fattibilità 8 3 use case 9 3.1 Use case: Area filter 9 3.2 Use Case: Area risultati 10 3.3 Use case: Area Events 11 3.4 Use case: Dettagli Eventi 12 3.5 Ciclo di vita 13 4 il linguaggio object c 15 4.1 La struttura del linguaggio 15 5 strumenti utilizzati 19 5.1 Xcode 19 5.2 Xcode IDE 19 5.3 Interface Builder 20 5.3.1 Esempio di utilizzo di Interface Builder: Hello World 20 5.4 SQLite & SQLite Database Browser 21 6 progettazione e sviluppo dell’ icem 25 6.1 Connessione iPhone - Server 25 6.2 Database 26 6.3 Sezioni Allarmi ed Eventi 27 6.4 Tab Bar 27 6.5 Sezione Events 29 6.5.1 Area Events 29 6.5.2 Details Events 31 6.5.3 Meters of Events 32 6.6 Sezione Alarms 32 6.6.1 Area Filter 33 6.6.2 Area Set Alarm Order 36 6.6.3 Area Risultati 37 6.6.4 Area Dettagli 38 7 piano di qualifica 41 7.1 Tecniche di verifica 41 7.1.1 Analisi statica 41 7.2 Tecniche di validazione 41 v 7.2.1 Analisi dinamica 41 7.2.2 Test di unità 42 7.2.3 Test di sistema 42 8 conclusioni 43 9 glossario 45 Bibliografia 49 Lista delle Figure 51 vi 1 INTRODUZIONE 1.1 ”tutto cambia.
    [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]
  • NCSA Telnet for the Macintosh User's Guide
    NCSA Telnet for the Macintosh User’s Guide Version 2.6 • October 1994 National Center for Supercomputing Applications University of Illinois at Urbana-Champaign Contents Introduction Features of NCSA Telnet v Differences between Version 2.5 and Version 2.6 v New Features in Version 2.6 v Discontinued Features vi Bugs Fixed from Version 2.5 vi System Requirements vi Notational Conventions vi 1 Getting Started Installation Note 1-1 Beginning an NCSA Telnet Session 1-1 Opening and Closing a Connection 1-2 Opening a Connection 1-2 Logging on to Your Host 1-3 Setting the BACKSPACE/DELETE Key 1-3 Setting a VT Terminal Type 1-3 Emulating the VT Terminal Keyboard 1-4 Closing a Connection 1-4 Copying, Pasting, and Printing 1-5 Copy and Paste from the Edit Menu 1-5 Print from the File Menu 1-5 Ending an NCSA Telnet Session 1-6 2 Configuration Global Preferences 2-1 New Configuration System in Version 2.6 2-3 Default Configuration Records 2-3 Editing Configuration Records 2-3 Editing Terminal Configuration Records 2-4 Editing Session Configuration Records 2-5 Changing Configuration after Session Connected 2-9 Saved Sets 2-13 Saving a Set 2-14 Using a Saved Set 2-14 Loading a Saved Set 2-15 Macro Definitions 2-15 Reverting to Previous Macro Definitions 2-16 Saving Macros 2-16 3 Advanced Features Cursor Positioning with the Mouse 3-1 Multiple Connections 3-1 Opening More Than One Connection 3-1 Moving between Connections 3-1 Rules for Session Names 3-2 The Connections Menu 3-2 Naming Windows 3-2 Checking Session Status 3-2 Aborting Connection Attempts
    [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]
  • Pro Tools 7.0 Keyboard Shortcuts (For Pro Tools|HD, Pro Tools LE, and Pro Tools M-Powered Systems on Macintosh)
    Pro Tools 7.0 Keyboard Shortcuts (for Pro Tools|HD, Pro Tools LE, and Pro Tools M-Powered Systems on Macintosh) For increased operational speed and ease-of-use, there are many Pro Tools keyboard shortcuts to give you fast access to a wide va- riety of tasks. This guide lists these keyboard shortcuts. The shortcuts are grouped by functional area for your added convenience and quick reference. Menu commands that have a keyboard shortcut display their keyboard shortcut on-screen, to the right of the menu command. Conventions Used in This Guide Digidesign guides use the following conventions to indicate menu choices and key commands: Table 1. Global keyboard shortcuts Convention Action File > Save Session Choose Save Session from the File menu. Command+N Hold down the Command (Apple) key and press the N key Option+Plus/Minus (+/–) keys Hold down the Option key and press the Plus (+) or Minus (–) key (on numeric keypad or QWERTY, as noted). Command-click Hold down the Command key and click the mouse button. Global Keyboard Shortcuts Table 2. Global keyboard shortcuts Task Shortcut Change parameters on all similar channel strips Option+applicable function (applicable functions listed below) Change parameter on all selected similar channel Option+Shift+applicable function (applicable functions listed directly below) strips Applicable functions: Automation mode • Monitor mode • playlist enables • record, solo and mute enables • record and solo safes • inserting plug-ins • I/O, bus, send assignment • volume/peak indicator • extend Edit or Timeline
    [Show full text]
  • Introducing Xcode 5
    Introducing Xcode 5 code is Apple’s free suite of developer tools; it is used to cre- ate applications for iOS mobile devices and for Mac OS X. X Xcode 5, shown in Figure 1.1 , is the most recent version. Developer tools are complex, and Xcode has always tried to hide much of that complexity from novice developers. You can use Xcode in a very simple click-to-build way, but this simplicity can be misleading. Many developers never explore Xcode’s more advanced features and never discover how they can use them to save time, solve problems, or extend their projects with original and creative features. Xcode also includes an unexpectedly enormous selection of helper applications and developer tools. A complete guide to every ele- ment in Xcode would require a shelf of books. This book concen- trates on beginner- and intermediate-level features, but it also includes hints and pointers for advanced developers. Understanding the History of Mac Development Tools In This Chapter Before OS X, Apple’s IDE (Integrated Development Environment) was MPW (Macintosh Programmer’s Workshop). MPW is no longer Understanding the supported, but can still be found on the Internet Archive, as shown history of Mac in Figure 1.2 . development tools Moving to Xcode 5 MPW competed with a commercial development system called CodeWarrior. Both were expensive, and many would-be developers Comparing iOS and OS X were put off by the initial start-up costs. development Looking backCOPYRIGHTED at early IDEs MATERIAL CodeWarrior was based on the Metrowerks C compiler and envi- ronment.
    [Show full text]
  • Kernel Architectures
    A short history of kernels n Early kernel: a library of device drivers, support for threads (QNX) Operating System Kernels n Monolithic kernels: Unix, VMS, OS 360… n Unstructured but fast… n Over time, became very large Ken Birman n Eventually, DLLs helped on size n Pure microkernels: Mach, Amoeba, Chorus… (borrowing some content from n OS as a kind of application Peter Sirokman) n Impure microkernels: Modern Windows OS n Microkernel optimized to support a single OS n VMM support for Unix on Windows and vice versa The great m-kernel debate Summary of First Paper n How big does it need to be? n The Performance of µ-Kernel-Based Systems (Hartig et al. 16th SOSP, Oct 1997) n With a m-kernel protection-boundary crossing forces us to n Evaluates the L4 microkernel as a basis for a full operating system n Change memory -map n Ports Linux to run on top of L4 and compares n Flush TLB (unless tagged) performance to native Linux and Linux running on n With a macro-kernel we lose structural the Mach microkernel protection benefits and fault-containment n Explores the extensibility of the L4 microkernel n Debate raged during early 1980’s Summary of Second Paper In perspective? n The Flux OSKit: A Substrate for Kernel and n L4 seeks to validate idea that a m-kernel Language Research (Ford et al. 16th SOSP, can support a full OS without terrible 1997) cost penalty n Describes a set of OS components designed to be used to build custom operating systems n Opened the door to architectures like the n Includes existing code simply using “glue code” Windows
    [Show full text]