Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
External kernel interfaces are those through which regular user application software can talk to the Linux kernel. These include system calls, the UNIX file abstraction, and various other modern kernel event mechanisms that have been implemented over the past few years specifically for Linux. You totally rely upon the kernel both for your application programs to operate and to provide a stable environment through which your custom drivers can communicate with application software.
External interfaces, such as system calls, define very rigid APIs that cannot easily be changed. In fact, anything within the Linux kernel that is considered to be user facing equally cannot be changed without due notice and care in the process. For example, the kernel community voted to remove an older device filesystem (one that was responsible for creating files under /dev, much like udev now) several years ago, but it is only now that the community feels it is safe to finally remove this antiquated filesystem from the kernel without adversely impacting someone who is still relying on it.[]
[] Even then, this was only achieved because a compatible replacement was in place and had been for a sufficiently long period of time. Occasionally, vendors will add back such legacy interfaces after they've been removed from the "upstream" official Linux kernel in order to avoid forcing their customers' to update legacy software. Once again, this kind of fundamental system breakage is carefully controlled.