What types of linux device files are there?

青灯夜游
Release: 2022-06-06 14:20:49
Original
5251 people have browsed it

There are two types of Linux device files: 1. Character devices are device files that can be accessed like a byte stream. When a read or write request is issued to a character device, the corresponding IO operation occurs immediately. Common characters Devices include character terminals, serial ports, keyboards, and mice; 2. Block devices are device files that must be accessed in blocks when performing TO operations. Block devices can install file systems. Common block devices include hard disks, floppy disk drives, and Blu-rays. Reader and flash memory.

What types of linux device files are there?

#The operating environment of this tutorial: linux5.9.8 system, Dell G3 computer.

Device file overview

In Unix-like operating systems, device files or special files are the interfaces for device drivers and appear in the file system in as if it were a normal file. There are also special files in MS-DOS, OS/2 and Microsoft Windows. These special files allow an application to interact with a device using its device driver through standard input/output system calls. Using standard system calls simplifies many programming tasks and enables consistent user-space I/O mechanisms regardless of the device's features and capabilities.

Device files typically provide simple interfaces to standard devices (such as printers and serial ports), but can also be used to access specific unique resources on these devices (such as disk partitions). Additionally, device files are useful for accessing system resources that are not associated with any actual device, such as data sinks and random number generators.

Under Linux system, there are seven types of files:

  • Ordinary files (-)

  • Directory (d)

  • Soft link (character link L)

  • Socket file (S)

  • Character device (S)

  • Block device (B)

  • ##Pipe file (named pipe P)

Therefore, There are two types of device files: character devices and block devices.

(1) Character device

Character device is a device that can be accessed like a byte stream. When reading and writing to a character device Requested, the corresponding IO operation occurs immediately. Many devices in the Linux system are character devices, such as character terminals, serial ports, keyboards, mice, etc. In embedded Linux development, the most common ones are character devices and drivers.

(2) Block device

Block device is a device that must be accessed in blocks when performing TO operations in the Linux system. Block devices can install file systems. The block device driver will use a piece of system memory as a buffer, so issuing read and write accesses to the block device does not necessarily result in hardware I/O operations immediately. Common block devices in Linux systems include hard disks, floppy drives, etc.

Distinguish between block devices and character devices

  • Block devices are hardware devices that pass random (not necessarily sequential) Access fixed-size data blocks (chunk) to distinguish. A fixed-size chunk is called a block. The most common block device is the hard disk, but many other block devices also exist, such as floppy drives, Blu-ray readers, and flash memory. Note that these are devices on which file systems are mounted, and file systems are like a lingua franca for block devices.

  • Character devices are accessed through a continuous stream of data, byte after byte. Typical character devices are terminals (there are many types of terminals, both physical and virtual) and keyboards.

The easiest way to distinguish block devices and character devices is to look at the way data is accessed. Block devices can be accessed randomly to obtain data, and character devices must be accessed in byte order.

If you can read a little data here, read a little data there, and finally string it into a continuous piece of data, then this is a block device. Just like the data on the hard disk is discontinuous, it may need to be accessed through random access. method to obtain a piece of data. For example, in a slightly larger file on a disk, the first 10k data may be in contiguous data blocks or in contiguous sectors, and the next 10k data may be far away from it or even on different cylinders.

If each byte in a piece of data is in the same byte order as when accessed, that is, the byte order is completely consistent from the time of access to the final processing of the data, then This is a character device. In other words, character devices can be thought of as stream devices. Just like inputting data on a keyboard, if two keys are pressed continuously, when the byte data corresponding to these two keys is received, they must be typed first in the front and then in the back. In the same way, the terminal device works the same way. When the program outputs data to the terminal, the program first outputs the letter a and then the number 3. Then when displayed on the terminal, a must be in front and 3 in the back.

Related recommendations: "

Linux Video Tutorial"

The above is the detailed content of What types of linux device files are there?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template