Major and Minor Numbers
Char devices are accessed through names (or ``nodes'') in the
filesystem, usually located in the /dev
directory. Device
files are special files and are identified by a ``c'' in the first
column of the output of ls -l, indicating that
they are char nodes. Block devices appear in /dev
as well, but
they are identified by a ``b''; even if some of the following information
applies also to block devices, I am now focusing on char drivers.
If you issue the ls command, you’ll see two numbers (separated by a comma) on the device file entries before the date of last modification, where the file length normally appears. These numbers are the “major” and “minor” numbers for the particular device. The following listing shows a few devices as they appear on my system. Their major numbers are 10, 1, and 4, while the minors are 0, 3, 5, 64-65, and 128-129.
crw-rw-rw- 1 root root 10, 3 Nov 30 1993 bmouseatixl crw-rw-rw- 1 root sys 1, 3 Nov 30 1993 null crw-rw-rw- 1 root root 4, 128 Apr 30 13:02 ptyp0 crw-rw-rw- 1 root root 4, 129 Apr 30 13:02 ptyp1 crw-rw-rw- 1 rubini staff 4, 0 Jan 30 1995 tty0 crw-rw-rw- 1 root tty 4, 64 Jan 25 1995 ttyS0 crw-rw-rw- 1 root root 4, 65 May 1 00:04 ttyS1 crw-rw-rw- 1 root sys 1, 5 Nov 30 1993 zero
The major number identifies the driver associated
with the device. For example, /dev/null
and
/dev/zero
are both managed by driver 1, while all the tty’s and pty’s are managed by driver 4. The kernel uses the major number to associate the ...
Get Linux Device Drivers now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.