Most devices in Linux are represented by device nodes, in accordance with the Unix philosophy that everything is a file (except network interfaces, which are sockets). A device node may refer to a block device or a character device. Block devices are mass storage devices such as SD cards or hard drives. A character device is pretty much anything else, once again with the exception of network interfaces. The conventional location for device nodes is the directory /dev
. For example, a serial port may be represented by the device node /dev/ttyS0
.
Device nodes are created using the program mknod
(short for make node):
mknod <name> <type> <major> <minor>
name
is the name of the device node that you want to create, type
is either, c
for character devices, and b
for block. They each have a major number and a minor number which is used by the kernel to route file requests to the appropriate device driver code. There is a list of standard major and minor numbers...