tailieunhanh - Writing device drivers in Linux: A brief tutorial

In order to develop Linux device drivers, it is necessary to have an understanding of the following: • C programming. Some in-depth knowledge of C programming is needed, like pointer usage, bit manipulating functions, etc. • Microprocessor programming. It is necessary to know how microcomputers work internally: memory addressing, interrupts, etc. All of these concepts should be familiar to an assembler programmer. There are several different devices in Linux. For simplicity, this brief tutorial will only cover type char devices loaded as modules. . | Writing device drivers in Linux A brief tutorial I Free Software Published on Free Software Magazine http Writing device drivers in Linux A brief tutorial A quick and easy intro to writing device drivers for Linux like a true kernel developer By Xavier Calbet Do you pine for the nice days of when men were men and wrote their own device drivers Linus Torvalds Pre-requisites In order to develop Linux device drivers it is necessary to have an understanding of the following C programming. Some in-depth knowledge of C programming is needed like pointer usage bit manipulating functions etc. Microprocessor programming. It is necessary to know how microcomputers work internally memory addressing interrupts etc. All of these concepts should be familiar to an assembler programmer. There are several different devices in Linux. For simplicity this brief tutorial will only cover type char devices loaded as modules. Kernel will be used in particular kernel under Debian Sarge which is now Debian Stable . User space and kernel space When you write device drivers it s important to make the distinction between user space and kernel space . Kernel space. Linux which is a kernel manages the machine s hardware in a simple and efficient manner offering the user a simple and uniform programming interface. In the same way the kernel and in particular its device drivers form a bridge or interface between the end-user programmer and the hardware. Any subroutines or functions forming part of the kernel modules and device drivers for example are considered to be part of kernel space. User space. End-user programs like the UNIX shell or other GUI based applications kpresenter for example are part of the user space. Obviously these applications need to interact with the system s hardware . However they don t do so directly but through the kernel supported functions. All of this is shown in figure 1. User space and kernel space 1 Writing device

TỪ KHÓA LIÊN QUAN