Kext (Kernel Extension)
The mac OS X support the idea of extending the kernel, allowing developers to support hardware/software specific calls, allowing the kext to handle relevant calls system wide from the kernel itself, sometimes replacing system calls by kext written calls.
Most of the uses for kext is what we call drivers, for hardware, protocols, etc.
Kext is written in an object oriented manner using a restricted subset of C++ language. kext is part of a model involving framework, platform, nub, and other parties that form the OS X driver model.
The kext mechanism is working in the form of plugins with hot swap capabilities, this means that you can manually or programatically load or unload code parts without the need of logout, restart or terminating a software, since it all happens in the kernel and the OS and applications calls the kernel, if the underlaying implementation has changed and being transfered to another kext to handle it then it will not effect the OS or applications.
The kext can handle hardware (ACPI, Video Cards, Camera, Audio, CPU, etc.), or across the board software calls (File Systems, Firewall, L2TP, Radius, etc.).
Kext run and lives in the kernel address space and that is why a small exception in a kext cause a kernel panic and brings the whole system to halt.
This page was last modified on 20 March 2012, at 11:06.
This page has been accessed 7,132 times.