In traditional UNIX®, the term device refers to hardware components, such as disk drives, tape drives, printers, keyboards, pseudo devices (such as the console, error special file and null special file), and so on. In AIX, these devices are referred to as kernel devices, which have device drivers and are known to the system by major and minor numbers.
AIX device drivers are a type of AIX kernel extensions. Kernel extensions run within a protected domain of a kernel. They can be loaded into kernel during system start or run time and removed at run time. User-level code can access registered device driver code only through system calls. Device drivers add extensibility, configurability and ease of system administration to AIX.
To understand basic kernel extension development, refer to the IBM developerWorks article, Writing AIX kernel extensions.
Device drivers use core kernel services exported by AIX kernel "/unix" by referring to /usr/lib/kernex.exp. "kernex.exp" contains a list of symbols exported by kernel. These exported symbols are essentially kernel functions and storage locations (kernel global data structure). The linker program (ld) uses this information while linking the compiled device driver code.