---
title: Kernel
framework: Kernel
role: collection
role_heading: Framework
platforms: [macOS 10.0+]
path: kernel
---

# Kernel

Develop kernel-resident device drivers and kernel extensions.

## Overview

Overview The Kernel Framework provides the APIs and support for kernel-resident device drivers and other kernel extensions. It defines the base class for I/O Kit device drivers (IOService), several helper classes, and the families that support many types of devices.

## Topics

### Kernel Extensions

- [Implementing drivers, system extensions, and kexts](kernel/implementing_drivers_system_extensions_and_kexts.md)
- [Installing a Custom Kernel Extension](apple-silicon/installing-a-custom-kernel-extension.md)
- [Debugging a Custom Kernel Extension](apple-silicon/debugging-a-custom-kernel-extension.md)
- [Generating a Non-Maskable Interrupt](kernel/generating_a_non-maskable_interrupt.md)

### IOKit Drivers

- [IOKit Fundamentals](kernel/iokit_fundamentals.md)
- [Hardware Families](kernel/hardware_families.md)
- [Driver Support](kernel/driver_support.md)
- [libkern](kernel/libkern.md)

### BSD

- [architecture](kernel/architecture.md)
- [bsm](kernel/bsm.md)
- [hfs](kernel/hfs.md)
- [kern](kernel/kern.md)
- [Math](kernel/math.md)
- [miscfs](kernel/miscfs.md)
- [net](kernel/net.md)
- [Strings](kernel/strings.md)
- [sys](kernel/sys.md)
- [vfs](kernel/vfs.md)
- [vm](kernel/vm.md)

### Mach

- [mach](kernel/mach.md)
- [mach-o](kernel/mach-o.md)

### Utilities

- [Debugging](kernel/debugging.md)
- [AppleDSP](kernel/appledsp.md)

### Deprecated

- [Deprecated Symbols](kernel/deprecated_symbols.md)

### Additional Reference

- [Kernel Functions](kernel/kernel_functions.md)
- [Kernel Structures](kernel/kernel_structures.md)
- [Kernel Data Types](kernel/kernel_data_types.md)
- [Kernel Enumerations](kernel/kernel_enumerations.md)
- [Kernel Constants](kernel/kernel_constants.md)

### Classes

- [IOCatalogue](kernel/iocatalogue.md)
- [IOEventLink](kernel/ioeventlink.md)
- [IOEventLinkInterface](kernel/ioeventlinkinterface.md)
- [IOGuardPageMemoryDescriptor](kernel/ioguardpagememorydescriptor.md)
- [IOHIDTranslationService](kernel/iohidtranslationservice.md)
- [IOServiceStateNotificationDispatchSource](kernel/ioservicestatenotificationdispatchsource.md)
- [IOServiceStateNotificationDispatchSourceInterface](kernel/ioservicestatenotificationdispatchsourceinterface.md)
- [IOWorkGroup](kernel/ioworkgroup.md)
- [IOWorkGroupInterface](kernel/ioworkgroupinterface.md)
- [OSAction_IOHIDEventService__CopyEvent](kernel/osaction_iohideventservice_copyevent.md)
- [OSAction_IOHIDEventService__CopyEventInterface](kernel/osaction_iohideventservice_copyeventinterface.md)
- [OSAction_IOHIDEventService__SetLED](kernel/osaction_iohideventservice_setled.md)
- [OSAction_IOHIDEventService__SetLEDInterface](kernel/osaction_iohideventservice_setledinterface.md)
- [OSAction_IOHIDEventService__SetUserProperties](kernel/osaction_iohideventservice_setuserproperties.md)
- [OSAction_IOHIDEventService__SetUserPropertiesInterface](kernel/osaction_iohideventservice_setuserpropertiesinterface.md)

## See Also

### Related Documentation

- [IOKit Fundamentals](apple-archive/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/Introduction.md)
- [About This Document](apple-archive/documentation/Darwin/Conceptual/KernelProgramming/About.md)
