OS X and iOS kernel Programming

Source: Internet
Author: User
Original Title: OS X and iOS kernel programming Author: Halvorsen, O. H .) (Australia) Clarke (Clarke, D .) translator: jia wei series name: Turing Program Design Series Press: People's post and telecommunications Press ISBN: 9787115318244 Release Date: June 2013 published on: 16 open page: 1 version: 1-1 category: more about computers, Introduction to OS x and iOS kernel programming, and introduction to computer books OS x and iOS kernel programming for Mac OS X and iOS operating systems, this section introduces basic knowledge of the operating system and kernel architecture, as well as basic concepts such as memory management, thread synchronization, and I/O KIT framework. It helps readers write efficient kernel-level code in the most practical way. The authors of this book have rich experience in developing computer hardware and software as well as device drivers. under their guidance, readers can develop device drivers for USB, Thunderbolt, and other devices. If you are interested in iOS and Mac OS X operating systems, focus on kernel development practices, or you are a driver developer, this book is suitable for you to read. Different from traditional application development, the kernel environment is more complex and variable. Any problems will seriously affect the system stability, security, and performance. Therefore, ensure that there are no errors in the kernel code. This book introduces a very practical kernel development method, which is essential for xnu kernel developers ". Both the authors of OS X and iOS kernel programming are active in the computer software and hardware and driver development field and have rich practical experience. Ole Henry Halvorsen is the first developer to create Video hardware devices for USB 3.0 and Thunderbolt. Douglas Clarke has more than 15 years of experience in Macintosh computer software and hardware development. This book brings together years of practical experience and wisdom from two authors, and shows a colorful picture of xnu kernel programming and device driver development. I believe that with the guidance and easy-to-understand explanations from the author, the readers will surely be deeply attracted to the wonderful content in the book and will gradually get into the new world. Without knowing it, the readers will be able to refine the unique power of kernel development. If you are interested in iOS and Mac OS X operating systems, focus on kernel development, or you are a driver developer, you should never miss out on such a wonderful book. Operating system principles 1st role of operating system 11.1 Process Management 31.2 process address space 31.3 operating system services 41.4 virtual memory 51.5 scheduling 61.6 hardware and drivers 91.8 summary 11 Chapter 11 Mac OS X and iOS 2nd xnu kernel 172.1.1 kernel extension (kext) 182.1.2 Mach 182.1.3 BSD layer 272.1.4 I/o kit 292.2 summary 31 Chapter 31 xcode and kernel development environment 3rd language selection: c ++ 323.2 xcode 33.3.3 "Hello World" kernel extension 343.4 loading and uninstalling kernel extension 373.5 use console view output 393.6 summary 40 chapter 4th I/o kit framework 414.1 I/O kit model 414.2 object link 434.3 info. plist file 434.3.1 Driver Class 464.3.2 ioregistryexplorer 504.4 kernel Library: libkern 524.4.1 osobject 524.4.2 container class 544.5 summary 56 chapter 5th interaction between applications and drivers 575.1 I/O KIT framework 585.2 finding drivers 585.3 Observing Device removal 635.4 modifying Device Driver properties 655.5 status based interaction 685.6 driver notification 795.7 summary 83 chapter 6th memory management 846.1 memory type 846.1.1 CPU physical address 856.1.2 bus physical address 856.1.3 user and kernel virtual address 856.1.4 memory sequence: large-and small-client 866.1.5 32-bit and 64-Bit Memory addressing 876.2 memory allocation 886.2.1 underlying allocation mechanism 896.2.2 Mach memory domain distributor 896.2.3 kalloc family 896.2.4 memory allocation in BSD 906.2.5 I/O kit Memory Allocation 916.2.6 use the new operator of C ++ to allocate memory 926.3 memory descriptor 926.3.1 iobuffermemorydescriptor 946.3.2 other memory descriptor 956.4 ing memory 956.4.1 memory ing from user space task to kernel space 956.4.2 iomemorymap class 976.4.3 to the user memory ing for spatial tasks 986.4.4 map memory to the specified user space task 996.4.5 physical address ing 1006.5 summary 101 chapter 7th synchronization and thread 1027.1 synchronization primitive 1027.2 atomic operation 1047.3 lock 1077.3.1 spin lock 1077.3.2 mutex 7.3.3 condition variable 1107.3.4 read/write mutex 1127.4 synchronous asynchronous event: work ring 1137.4.1 iocommandgate 1157.4.2 timer 7.4.3 Release Work ring 1177.5 kernel thread 1187.6 summary 119 chapter 8th USB 1208.1 USB architecture 1208.1.1 USB transmission speed 1228.1.2 host controller 1238.1.3 USB protocol 1248.1.4 endpoint 1268.1.5 USB descriptor 1268.1.6 USB device Type 1278.2 I/O kit USB supports 128.2.1 USB device and driver processing 1298.2.2 loading USB driver 1308.2.3 USB prober 1328.2.4 driver example: USB high-capacity memory device driver 1338.2.5 driver start 1388.2.6 processing device remove 1388.2.7 enumeration interface 1398.2.8 enumeration endpoint 1408.2.9 executing device request 1418.2.10 executing batch endpoint and interrupt endpoint I/O 1448.3 summary 147 chapter 9th PCI 1509.1.1 in PCI Express and thunderbolt 1489.1 I/O kit: A simple PCI driver 1549.1.3 access configuration space register 1569.1.4 pci I/O memory zone 1589.1.5 processing device removed 1619.2 interrupt 1629.2.1 I/O kit interrupt mechanism 1639.2.2 register receiving interrupt 1649.2.3 enable MSI 1669.2.4 for processing master interrupt 1669.2.5 handle secondary interrupt 1689.3 Direct Memory Access 1689.3.1 convert physical address to BUS address 1709.3.2 prepare memory for DMA 1719.3.3 create distributed/clustered list 1729.3.4 iodmacommand class 1739.4 summary 175 Chapter 10th power management 17710.1 response Power status change 17910.2 request Power status change 18410.3 processing device idle 18510.4 Observing Device Power status change 18610.5 summary 18710.6 summary 191 chapter 11th serial port driver 19211.1 Mac OS X serial port Architecture Overview 19211.2 serial Port driver 19411.3 realize ioserialdriversync class 19711.4 serial port status 20011.5 serial port event 20411.6 serial data transmission 20711.7 access from user space serial port 21111.8 summary 214 chapter 12th audio driver 21512.1 digital audio and audio device introduction 21512.2 core audio 21712.3 I/o kit audio support 21812.4 implement an audio driver 21912.4.1 driver and hardware initialization 22112.4.2 register audio control 22312.4.3 implement audio engine 22512.4.4 I/O engine initialization 22612.4.5 others audio engine function 23512.5 summary 236 chapter 13th network 23813.1 network kernel extension 24213.1.1 kernel control KPI 24213.1.2 socket filter 24213.1.3 Internet protocol filter 25013.1.4 interface filter 25513.2 debugging and testing network expansion 25813.3 I/O Kit network 25913.3.1 build simple Ethernet controller driver 26113.3.2 myethernetdriver design 26213.3.3 driver initialization and start ipv13.3.4 media and status selection 26613.3.5 configure device hardware address 26813.3.6 enable and disable device 26813.3.7 transmission network group 27013.3.8 receive group listen test myethernetdriver 27413.4 summary 276 chapter 14th storage system 27714.1 transport layer driver 27814.2 ioblockstoragedevice interface 27914.3 build a RAM disk device 28214.4 partition rule 29214.4.1 implement a sample partition rule 29314.4.2 media content clue attribute 30014.5 Media

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.