The Role of the Device Driver

As a programmer, you are able to make your own choices about your driver, and
choose an acceptable trade-off between the programming time required and the flexibility
of the result. Though it may appear strange to say that a driver is “flexible,” we
like this word because it emphasizes that the role of a device driver is providing
mechanism, not policy.

The distinction between mechanism and policy is one of the best ideas behind the
Unix design. Most programming problems can indeed be split into two parts: “what
capabilities are to be provided” (the mechanism) and “how those capabilities can be
used” (the policy). If the two issues are addressed by different parts of the program,
or even by different programs altogether, the software package is much easier to
develop and to adapt to particular needs.

For example, Unix management of the graphic display is split between the X server,
which knows the hardware and offers a unified interface to user programs, and the
window and session managers, which implement a particular policy without knowing
anything about the hardware. People can use the same window manager on different
hardware, and different users can run different configurations on the same
workstation. Even completely different desktop environments, such as KDE and
GNOME, can coexist on the same system. Another example is the layered structure
of TCP/IP networking: the operating system offers the socket abstraction, which
implements no policy regarding the data to be transferred, while different servers are
in charge of the services (and their associated policies). Moreover, a server like ftpd
provides the file transfer mechanism, while users can use whatever client they prefer;
both command-line and graphic clients exist, and anyone can write a new user interface
to transfer files.

Related Posts:
  • What Is IP Filtering? IP filtering is simply a mechanism that decides which types of IP packets will be processed normally and which will be dropped or rejected. By dropped we mean that the packet is deleted and completely ignored, as if it h… Read More
  • What Is a Shell? Before jumping in and discussing how to program using a shell, let’s review the shell’s function and thedifferent shells available for Linux. A shell is a program that acts as the interface between you and the Linuxsystem, e… Read More
  • TCP/IP Firewall The combined set of protocols is called the Transmission Control Protocol and Internet Protocol TCP/IPprotocol suite. As a network administrator, it is important that you understand the nature of potential attacks on co… Read More
  • What Is an Operating System? An operating system is made up of software instructions that lie between the computer hardware (disks, memory, ports, and so on) and the application programs (word processors, Web browsers, spreadsheets, and so on). At t… Read More
  • How to create update or remove symbolic or soft link Linux Symbolic links , Symlink or Soft link in Unix are very important concept to understand and use in various UNIX operating systems e.g. Linux , Solaris or IBM AIX. Symlinks gives you so much power and flexibility that you can… Read More
  • The Shell as a Programming Language Now that you’ve seen some basic shell operations, it’s time to move on to some actual shell programs. There are two ways of writing shell programs. You can type a sequence of commands and allow the shell to execute them inte… Read More
  • Linux Software websites  Linux Software websites Internet Sites Description ftp.redhat.com Red Hat distribution RPM packages rpmfind.net RPM package repository sourceforge.net Source Forge open source software reposit… Read More
  • Common Linux Features? Multiuser — Not only can you have many user accounts available on a Linux system, you can also have multiple users logged in and working on the system at the same time. Users can have their own environments arranged th… Read More
  • what is IMAP IMAP, fully documented in RFC 3501, was designed to provide a robust, mobile mail delivery and access mechanism. For more detail on the protocol and how it functions on the network layer, or for additional information on… Read More
  • Linux Port Scanning Listing your open ports and firewall configuration with netstat and iptables is a good start for staying on top of unwanted traffic, but you may want to go a step further with Nmap Network Mapper, a program that … Read More
  • Linux-Essential Root Subdirectories bin Contains binary programs also known as an executables, which are programs that are ready to run. Most of the basic Unix commands such as ls and cp are in /bin. However, some of the files in /bin are not in binary … Read More
  • The Role of the Device Driver As a programmer, you are able to make your own choices about your driver, andchoose an acceptable trade-off between the programming time required and the flexibilityof the result. Though it may appear strange to say that a d… Read More
  • mkdir and rmdir You can create and remove directories using the mkdir and rmdir system calls. #include <sys/types.h>#include <sys/stat.h>int mkdir(const char *path, mode_t mode); The mkdir system call is used for creating direc… Read More
  • What is Shell Script Normally shells are interactive. It means shell accept command from you (via keyboard) and execute them. But if you use command one by one (sequence of 'n' number of commands) , the you can store this sequence of command … Read More
  • Configuring IPv6 Networks At the beginning, IANA gave requestors an entire class A network space thereby granting requestors 16.7 million addressesmany more than necessary. Realizing their error, they began to assign class B networksagain, provid… Read More