1. Device Drivers Modeling Device Driver Effects in Real-Time Schedulability Analysis: Study of a Network Driver By Lewandowski, M. Stanovich, M.J. Baker, T.P. Gopalan, K. An-I Wang Dept. of Computer. Sci., Florida State Univ., Tallahassee, FL;
2.
3.
4. Why a device driver ? A device driver simplifies programming by acting as an abstraction layer between a hardware device and the applications or operating systems that use it The higher-level application code can be written independently of whatever specific hardware device it will ultimately control, as it can interface with it in a standard way, regardless of the underlying hardware. The device-driver accepts the generic high-level commands and breaks them into a series of low-level device-specific commands as required by the device being driven.
5. Device Drivers can provide a level of security as they can run in kernel-mode, thereby protecting the operating system from applications running in user-mode. Why a device driver ? .. [contd.] Ring 0 Kernel Ring 1 Ring 2 Ring 3 Device Drivers Device Drivers Applications Lest Privileged Most Privileged Privilege rings available
13. Case Studies A network interface controller ( NIC ), is a computer hardware component designed to allow computers to communicate over a computer network. It is both an OSI layer 1 (physical layer) and layer 2 (data link layer) device, as it provides physical access to a networking medium and provides a low-level addressing system through the use of MAC addresses. It allows users to connect to each other either by using cables or wirelessly. Network Interface Controller ( NIC ),
14.
15. The hardware preempts the currently executing thread The driver’s ISR does the minimum amount of work necessary The softirq handler does the rest of the driver’s work The Linux e1000 Driver Thread context Level 3 Softriq Level 2 Driver ISR Level 1 Generic ISR Interrupt Context