Abstract
This chapter covers miscellaneous topics that are of interest to more advanced kernel programmers. We’ll discuss how Streaming SIMD Extensions (SSE) and floating point can be used in the kernel. (SIMD is short for Single Input Multiple Data.) We will also examine strategies for dealing with drivers for multifunction devices, and discuss the implementation of I/O Kit families. We’ll cover the kernel control KPI that can be used for user space communication with KEXTs such as Network Kernel Extensions (NKE) that does not use the I/O Kit. We also show how to work with and manipulate processes from the kernel, such as getting the process identifier (PID) of a process and sending signals to the process. Some drivers may need additional resources loaded from the file system, such as firmware images. This chapter provides a discussion of how these resources can be loaded using the OSKextRequestResource() function. The chapter concludes with a discussion of how a driver can send messages to a user space daemon using notifications.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
Rights and permissions
Copyright information
© 2011 Ole Henry Halvorsen and Douglas Clarke
About this chapter
Cite this chapter
Halvorsen, O.H., Clarke, D. (2011). Advanced Kernel Programming. In: OS X and iOS Kernel Programming. Apress. https://doi.org/10.1007/978-1-4302-3537-8_17
Download citation
DOI: https://doi.org/10.1007/978-1-4302-3537-8_17
Publisher Name: Apress
Print ISBN: 978-1-4302-3536-1
Online ISBN: 978-1-4302-3537-8
eBook Packages: Professional and Applied ComputingApress Access BooksProfessional and Applied Computing (R0)