One of the strengths of Unix is that users don't need to worry about the specific characteristics of devices and device I/O very often. They don't need to know, for example, what disk drive a file they want to access physically sits on. And the Unix special file mechanism allows many device I/O operations to look just like file I/O. As we've noted, the administrator doesn't have these same luxuries, at least not all the time. This section discusses Unix device handling and then surveys the special files used to access devices.
Device files are characterized by their major and minor numbers , which allow the kernel to determine which device driver to use to access the device (via the major number), as well as its specific method of access (via the minor number).
Major and minor numbers appear in place of the file size in long directory listings. For example, consider these device files related to the mouse from a Linux system:
cd /dev; ls -l *mousecrw-rw-r-- 1 root root 10, 10 Jan 19 03:36 adbmouse crw-rw-r-- 1 root root 10, 4 Jan 19 03:35 amigamouse crw-rw-r-- 1 root root 10, 5 Jan 19 03:35 atarimouse crw-rw-r-- 1 root root 10, 8 Jan 19 03:35 smouse crw-rw-r-- 1 root root 10, 6 Jan 19 03:35 sunmouse crw-rw-r-- 1 root root 13, 32 Jan 19 03:36 usbmouse
The major number for all but the last special file is 10; only the minor number differs for these devices. Thus, all of these mouse device variations are handled by the same device driver, and the minor number indicates the ...