Kernel development can be a daunting task and is very different from programming traditional user
applications. The kernel environment is more volatile and complex. Extraordinary care must be taken to
ensure that kernel code is free of bugs because any issue may have serious consequences to the stability,
security, and performance of the system. This book covers the fundamentals necessary to begin
programming in the kernel. We cover kernel development from a theoretical and practical point of view.
We cover concepts fundamental to kernel development such as virtual memory and synchronization, as
well as more practical knowledge. The book primarily focuses on Mac OS X, however the XNU kernel is
also used by iOS, and hence the theoretical material in this book will also apply to it. By far the most
common reason for doing development within the kernel’s execution environment is to implement a
device driver for controlling internal or external hardware devices. Because of this, much of the focus of
this book is centred on the development of device drivers. The primary framework for device driver
development in the XNU kernel is I/O Kit, which we cover extensively. As theory becomes boring quickly
we have provided working code samples which you can play with to learn more or use as a starting point
for your own drivers.
We hope you have as much fun reading this book as we have enjoyed writing it.
The book was written for anyone interested in Apple’s iOS and Mac OS X operating systems, with a focus
on practical kernel development, especially driver devel. Regardless of whether you are a hobbyist,
student, or professional engineer, we hope to provide you with material of interest. While the focus is on
kernel programming and development, we will cover many theoretical aspects of OS technology and
provide a detailed overview of the OS X and iOS kernel environments. The aim of the book is to provide
the knowledge necessary to start developing your own kernel extensions and drivers. We will focus in
particular on the I/O Kit framework for writing device drivers and extensions, but we will also cover
general knowledge that will give you a deeper understanding of how I/O Kit interacts with the OS. If you
are mainly interested in developing OS X or iOS user applications, this book may not be for you. We will
not cover Cocoa or any other framework used for developing end-user applications. This book covers
kernel-programming topics such as driver and kernel extension development on Apple’s OS X and iOS
Some knowledge of operating system internals will be useful in understanding the concepts
discussed in this book. Having completed an introductory computer science or engineering course will
be a helpful starting point. Additionally, knowledge of at least one programming language will be
required in order to understand examples throughout the book. Since we focus on I/O Kit, which is
written in a subset of C++ called Embedded C++, it would be highly beneficial to have some experience
with C++ (or at least C) to make the most of this book. The book does not cover general programming
topics or theory. We will briefly cover some fundamentals of OS theory to provide a context for further
Head First Physics: A learner's companion to mechanics and practical physics
Wouldn't it be great if there were a physics book that showed you how things work instead of telling you how? Finally, with Head First Physics, there is. This comprehensive book takes the stress out of learning mechanics and practical physics by providing a fun and engaging experience, especially for students who "just...
Electric and Hybrid Vehicles: Design Fundamentals
With advances driven by pressure from governments, environmental activists, and its associated industries, the subject of electric and hybrid vehicles is becoming increasingly important. Trends clearly suggest that we must educate the engineers of today and tomorrow in the technical details of these vehicles. While there are many books that...
Word 2003 Bible If Word 2003 can do it, you can do it too...
If you work in an office or own a computer you’ve probably used Word, but do you know all it can do? This comprehensive reference covers the basics for beginners and then charges right into the impressive new features of Word 2003. Discover the power of automated fields using Smart Tags, learn...
Windows 8 for Tablets Plain & Simple
This book is for people who have a Windows 8–based tablet and aren’t quite sure how to do everything with it. Windows 8 makes your tablet very intuitive and very easy to use with touch, but you’ll want a guide to help you get the most from it; that’s why you have this book in your hand. Sure, you’ll want...
Crime and Punishment: Essential Primary Sources Crime, and the issues that relate to it, arouse compelling curiosity and fervent debate. In the human psyche, crimes and their underlying motives often capture equal measures of fascination and revulsion. In the media, criminals are both condemned and granted celebrity. Accordingly, the readings and resources offered in Crime and Punishment:... The Art of the App Store: The Business of Apple Development
Wit h roughly half a mi llion active apps available for download and a current
pace of 20,000 new apps approved every month (according to 148apps.biz), the
iOS App Store has been without doubt a phenomenal success. From its launch in
2008, it’s seen exponential growth both in revenue generated and apps created,