![]() ![]() ![]() This feature not only adds flexibility to the user, but it has proven invaluable to the device driver development effort. Linux is structured as a monolithic kernel with a well-defined interface for adding and removing device driver modules dynamically after boot time. Unlike some other operating systems, Linux has the capability to add and remove kernel components at runtime. It provides the basis for the familiar UNIX/Linux convention that everything must be represented as a file. The device driver provides a consistent user interface to a large variety of hardware devices. The device driver handles the details and isolates the user from the complexities and perils of hardware device programming. The user simply opens a file and issues a write command. ![]() For example, a program that wants to write data to the hard disk need not care if the disk drive uses 512-byte or 1024-byte sectors. Furthermore, a well-written device driver hides the complexity and variability of the hardware device from the user. One of the fundamental purposes of a device driver is to isolate the user's programs from ready access to critical kernel data structures and hardware devices. The introduction of virtual memory and kernel space versus user space frequently introduces complexity that is not familiar to experienced embedded developers. This is because many popular legacy real-time operating systems do not have a similar architecture. Many experienced embedded developers struggle at first with the concepts of device drivers in a virtual memory operating system. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |