Devon's Linux kernel feature: 03 Driver "Go"

Source: Internet
Author: User
Tags dio error handling session id xen hypervisor

Transferred from: http://www.lai18.com/content/432194.html

Drivers are small programs that enable the kernel to communicate and manipulate hardware or protocols (rules and standards). Without drivers, the kernel does not know how to communicate with the hardware or deal with the protocol (the kernel actually sends instructions to the BIOS first, and then the BIOS passes the hardware). The kernel code for Linux contains many drivers in the driver folder as source code. Each folder in the drive folder is described below. This helps you understand the driver when you configure and compile the kernel. Otherwise, users may add unnecessary or missing important drivers at compile time. The driver code typically contains a single-line comment to indicate the purpose of the drive. For example, the TC driver code, a line of comments that is used for the TURBOchannel bus. Because of these documents, users should look at the comments that drive the first few lines to understand their purpose.
There are a few terms you should already know, so the following information should be clear. An I/O device refers to an input/output device. such as modems and network cards, they send and receive data. The monitor is an output device-only information comes out. The keyboard, mouse, and joystick are data entry systems. Storage devices are used to store data, such as SD cards, hard disks, CDs, memory cards, and so on. The CPU (processor) is the computer's "brain" or "heart", and without it, the computer will not function. The motherboard is a printed circuit board that connects different components on the board. The motherboard and individual components are the basis of the computer's operation. Many computer users say the motherboard is the heart of the computer (there is CPU on the motherboard). The motherboard contains a port for connecting peripherals, including input, output, and storage devices. The bus is the circuit of the motherboard, which connects the peripherals. A network device is used for connections between two or more computers. A port is a device that a user can insert into another device or cable, for example, a user can insert a FireWire memory stick into a FireWire port, and an Ethernet cable into an Ethernet port. Optical discs are read using lasers to read data from a reflective surface of a laser that can be scattered or reflected, and a common disc is a DVD. Many systems say they are 32-bit or 64-bit, which refers to the number of bits in a register, address bus, or data bus. For example, on a 64-bit motherboard, the data bus (silver wire between components) has 64 lines that are side-by-end. Memory addresses are addressed in memory in the form of bits (0 and 1), so a 32-bit storage address contains 32 0 and one that represents an address on the storage.



Many drivers are generic drivers, which means that a universal keyboard driver allows the kernel to handle almost any keyboard. However, some drivers are dedicated drivers, such as Apple and Commodore, which have specialized hardware for Apple computers and Amiga systems. The Linux kernel already contains many drivers for smartphones, apples, Amiga Systems, PS3, Android tablets, and many other devices.
Note that some device drivers are not in this directory. For example, RF drivers are in the net and media folders.
Accessibility-These drivers provide support for some assistive devices. In Linux 3.9.4, only one driver in this folder is the Braille device driver.
ACPI-Advanced Configuration and Power Interface (acpi:advanced configuration and Power Interface) drivers are used to manage power usage.
Amba-Advanced Microcontroller Bus architecture (amba:advanced microcontroller bus Architecture) is a protocol for management and interconnection with on-chip systems (SoC). A SOC is a chip that contains many or all of the necessary computer components. The Amba driver here allows the kernel to run on top of it.
ATA-This directory contains drivers for PATA and SATA devices. Serial ATA (SATA) is a computer bus interface that connects a host bus adapter to a memory like a hard disk. Parallel ATA (PATA) is used to connect storage devices, such as hard drives, floppy disk drives, and optical drive standards. PATA is what we call the IDE.
ATM-Asynchronous communication pattern (atm:asynchronous Transfer mode) is a communication standard. Here are various drivers that receive PCI bridges (they are connected to the PCI bus) and Ethernet controllers (IC chips that control Ethernet communication).
Auxdisplay-This folder provides three drivers. LCD frame buffer (framebuffer) driver, LCD controller driver and an LCD driver. These drivers are used to manage the LCD display-the LCD displays ripples when pressed. Note: The press will damage the screen, so do not poke the LCD screen hard.
Base-This is an important directory that contains basic drivers such as firmware, System bus, and virtualization capabilities.
BCMA-These drivers are used with the AMBA protocol-based bus. Amba was developed by Bo Tong Corporation.
Block-These drivers provide support for block devices such as floppy drives, SCSI tapes, TCP network block devices, and so on.
bluetooth-Bluetooth is a secure wireless personal area network standard (pans). Bluetooth driver is in this folder, it allows the system to use a variety of Bluetooth devices. For example, a Bluetooth mouse does not use a cable, and the computer has an electronic dog (a small USB receiver). The Linux system must be able to know the signal to enter the E-dog, otherwise the Bluetooth device will not work.
Bus-This directory contains three drivers. A conversion OCP interface protocol to the SCP protocol. One is the interconnection driver between devices, and the third is for handling error handling in the interconnect.
CDROM-This directory consists of two drivers. One is CD-ROM, including DVD and CD read and write. The second one is Gd-rom (GB CD only), the GD disc is a 1.2GB capacity disc, which is like a larger CD or smaller DVD. GD is usually used in the Sega game console.
Char-Character device drivers are right here. A character device transmits data transfer one character at a time. Drivers in this folder include printers, PS3 flash drives, Toshiba SMM drivers, and random number generator drivers.
CLK-These drivers are used for the system clock.
Clocksource-These drivers are used as timers for the clocks.
connector-These drivers enable the kernel to know when the process is fork and use the proc connector to change the UID (user ID), GID (group ID), and SID (Session ID). The kernel needs to know when the process fork (runs multiple tasks in the CPU) and executes. Otherwise, the kernel may be inefficient in managing resources.
Cpufreq-These drives change the power consumption of the CPU.
Cpuidle-These drivers are used to manage idle CPUs. Some systems use multiple CPUs, and one driver can make these CPU loads comparable.
Crypto-these drivers provide encryption capabilities.
DCA-Direct cache access (Dca:direct cache access) driver allows the kernel to access the CPU cache. The CPU cache is like the RAM built into the CPU. The CPU caches faster than RAM. However, the capacity of the CPU cache is much smaller than RAM. The CPU stores the most important and executed code on this caching system.
Devfreq-This driver provides a general-purpose dynamic voltage and frequency adjustment (Dvfs:generic-Voltage and Frequency Scaling) framework that can change CPU frequency to conserve energy as needed. This is known as CPU power.
Dio-the digital input/output (Dio:digital input/output) bus driver allows the kernel to use the DIO bus.
DMA-Direct Memory Access (DMA) drivers allow the device to directly access memory without the CPU. This reduces the load on the CPU.
EDAC-Fault detection and correction (Error Detection and Correction) drivers help reduce and correct errors.
EISA-Extended industry standard structure bus (Extended industry standardized Architecture) driver provides kernel support for EISA bus.
Extcon-The external connector (EXTernal connectors) driver is used to detect changes in device insertion. For example, Extcon detects if the user is plugged into a USB drive.
FireWire-These drivers are used to control USB-like FireWire devices made by Apple.
firmware-These drivers are used to communicate with the firmware of the device such as the BIOS (basic input and output system firmware of the computer). The BIOS is used to boot the operating system and control hardware and device firmware. Some BIOS allows the user to overclock the CPU. Overclocking is to make the CPU run at a faster speed. CPU speed is measured in MHz (hertz) or GHz. A 3.7 GHz CPU is significantly faster than a 700Mhz processor.
Gpio-Universal input/output (gpio:general Purpose input/output) is the pin of the chip that can be controlled by the user. The driver here is to control the Gpio.
GPU-These drives control VGA, GPU, and direct rendering management (Drm:direct Rendering manager). VGA is a 640*480 analog computer display or a simplified resolution standard. The GPU is a graphics processor. DRM is a UNIX rendering system.
hid-This driver is used to support USB HMI devices.
HSI-This driver is used for kernel access to cellular modems like Nokia N900.
HV-This driver is used to provide a key-value pair (Kvp:key value pair) function in Linux.
Hwmon-Hardware monitoring driver for the kernel to read information on the hardware sensor. For example, there is a temperature sensor on the CPU. The kernel can then track the temperature changes and adjust the fan speed accordingly.
Hwspinlock-The hardware lock driver allows the system to use two or more processors at the same time, or use two or more cores on a single processor.
I²c-The I²c driver enables the computer to use the I²C protocol to handle low-speed peripherals on the motherboard. The System Management Bus (Smbus:system Management bus) drives the management SMBus, a Two-wire bus for lightweight communications.
IDE-These drivers are used to handle these pata/ide devices like CDROM and hard drives.
Idle-This driver is used to manage the idle functionality of Intel processors.
Iio-The industrial I/O core driver is used to process a digital-to-analog converter or A/D converter.
InfiniBand-InfiniBand is a high-performance port for use in enterprise data centers and some supercomputers. The drivers in this directory are used to support InfiniBand hardware.
input-There are many drivers that are used for input processing, including joystick, mouse, keyboard, game port (Legacy joystick interface), remote control, touch, Headset button, and many other drivers. Today's joystick uses a USB port, but in the 80 and 90 's, the joystick was plugged into the game port.
Iommu-the input/Output memory management unit (Iommu:input/output Management Unit) driver is used to manage IOMMU in the memory snap-in. The IOMMU connects the DMA IO bus to memory. Iommu is a bridge where devices directly access memory without the help of the CPU. This helps reduce the load on the processor.
Ipack-Ipack stands for industrypack. This driver is a virtual bus that allows operation between the carrier and the splint.
irqchip-These drivers allow the hardware interrupt request (IRQ) to be sent to the processor, temporarily suspending a running program to run a special program (called an interrupt handler).
ISDN-These drivers are used to support the Integrated Services Digital Network (ISDN), which is the communication standard used to synchronize the digital transmission of voice, video, data, and other network services using traditional telephony networks.
LEDs-Drive for LEDs.
lguest-Lguest is used to manage interrupts for the client system. Interrupts are hardware or software signals that the CPU is interrupted by an important task. The CPU then gives the hardware or software some processing resources.
Macintosh-The drive of the Apple device is in this folder.
Mailbox-The driver in this folder (PL320-PCI) is used to manage the connection of the mailbox system.
MD-Multi-device drivers are used to support disk arrays, a system that shares or replicates data between multiple drives.
Media-Media drivers provide support for radios, tuners, video capture cards, DVB-Standard digital TVs, and more. The driver also provides support for different multimedia devices that are plugged in via USB or FireWire ports.
Memory-Important driver for memory support.
Memstick-This driver is used to support Sony memory sticks.
message-These drives are used to run LSI Fusion MPT (a messaging technology) firmware for LSI PCI chips/adapters. LSI Large-scale integration, which represents the integration of tens of thousands of transistors on each chip,
MfD-Multi-purpose device (MFD) drivers provide support for multi-purpose devices that can provide functions such as e-mail, fax, copiers, scanners, and printers. The driver here also provides a universal multimedia communication port (MCP) layer to the MFD device.
Misc-This directory contains a variety of drivers that do not fit in other directories. Just like a light sensor driver.
MMC-the MMC card driver is used to process the flash memory card used for the MMC standard.
MTD-The Memory Technology device (Mtd:memory technology devices) driver is used for Linux and flash memory interactions, which is like a layer of flash transfer. Drivers for other block devices and character devices do not map with how flash devices operate. Although USB memory cards and SD cards are flash devices, they do not use this driver because they are hidden behind the system's block device interface. This driver is used for general purpose flash drive drivers for new flash memory devices.
Net-Network drivers provide network protocols like AppleTalk, TCP, and others. These drivers also provide support for modems, USB 2.0 network devices, and RF devices.
NFC-This drive is the interface between Texas Instruments shared transport layer and the NCI core.
NTB-An opaque bridging drive provides an opaque bridging in the PCIe system. PCIe is a high-speed expansion bus standard.
NuBus-NuBus is a 32-bit parallel computing bus. Used to support Apple devices.
of-This driver provides the assistant for creating, accessing, and interpreting programs in the device tree. A device tree is a data structure used to describe hardware.
Oprofile-This driver is used to evaluate the entire system from the drive to the user space process (applications running in the user state). This helps developers find performance issues
Parisc-These drives are used by HP-produced PA-RISC architecture devices. Pa-risc is a processor for a special instruction set.
Parport-the same port driver provides support for the port in Linux.
PCI-These drivers provide the PCI bus service.
PCMCIA-These are PC card drivers for notebooks
Pinctrl-These drivers are used to handle the PIN control device. PIN controllers can disable or enable I/O devices.
Platform-this folder contains different computer platforms such as Acer, Dell, Toshiba, IBM, Intel, Chrombooks, and so on.
PnP-Plug and Play drivers allow users to plug in a USB-like device immediately without having to manually configure the device.
Power-Power Drive allows the kernel to measure battery power, detect chargers and power management.
pps-The Pulse-per-second driver is used to control the current pulse rate. This is used for timing.
PS3-This is Sony's game console driver-PlayStation3.
PTP-The Picture Transfer Protocol (PTP) driver supports a protocol for transferring pictures from a digital camera.
PWM-Pulse width modulated (PWM) drives are used to control the current pulses of the device. Mainly used to control like a CPU fan.
RapidIO-The RapidIO driver is used to manage the RapidIO architecture, which is a high-performance packet-switched, interactive technology for interactive chips on the board, as well as a circuit board for mutual use of the backplane.
Regulator-Calibration drivers are used to calibrate the calibration hardware for current, temperature, or other possible system presence.
Remoteproc-These drivers are used to manage remote processors.
rpmsg-This driver is used to control the remote processor communication bus (RPMSG) that supports a large number of drives. These buses provide messaging facilities that facilitate the client driver to write its own connection protocol messages.
RTC-Real-time clock (RTC) driver allows the kernel to read the clock.
s390-Drives for 31/32-bit mainframe architectures.
Sbus-for managing SPARC-based bus drivers.
SCSI-Allows the kernel to use SCSI standard peripherals. For example, Linux will use SCSI drivers when transferring data to and from SCSI hardware.
SFI-The Simple Firmware Interface (SFI) driver allows the firmware to send an information sheet to the operating system. The data for these tables is called an SFI table.
SH-This driver is used to support the Superhway bus.
SN-This driver is used to support the IOC3 serial port.
SPI-These drives handle the serial Device Interface bus (SPI), which is a synchronous serial data link standard running at full duplex. Full duplex means that two devices can send and receive information at the same time. Duplex refers to bidirectional communication. The device communicates in master/slave mode (depending on the device configuration).
SSB-The SSB (Sonics Silicon backplane) driver provides support for the mini-bus used on different Broadcom chips and embedded devices.
Staging-This directory contains many subdirectories. All the drivers here also need to be more developed before joining the main kernel.
Target-SCSI Device driver
TC-These drives are used for Turbochannel,turbochannel, a 32-bit open bus developed by digital device companies. This is mainly used for Dec workstations.
Thermal-The thermal drive keeps the CPU at a lower temperature.
TTY-The TTY driver is used to manage physical terminal connections.
UiO-The driver allows the user to compile a drive that runs in user space rather than kernel space. This allows the user to drive without causing the kernel to crash.
USB-The USB device allows the kernel to use a USB port. Flash drives and memory cards already contain firmware and controllers, so these drivers allow the kernel to use USB ports and with USB devices.
UWB-Ultra-wideband drives ultra-low power RF devices for managing short-range, high-bandwidth communications
Vfio-Vfio driver that allows the device to access user space.
Vhost-This is the Virtio server driver used in the host kernel. Used in virtualization.
Video-This is the video driver used to manage the graphics card and monitor.
Virt-These drivers are used for virtualization.
Virtio-This driver is used to use the Virtio device on a virtual PCI device. Used in virtualization.
Vlynq-This driver controls the proprietary interface developed by Texas Instruments. These are broadband products like WLAN and modems, VoIP processors, audio and digital media signal processing chips.
VME-Wmebus was originally developed as a bus standard for the Motorola 68000 series processors
W1-These drivers are used to control the One-wire bus.
watchdog-The driver manages the watchdog timer, which is a timer that can be used to detect and recover anomalies.
Xen-The driver is the Xen hypervisor system. This is a software or hardware that allows a user to run multiple operating systems on a single computer. This means that Xen code will allow users to run two or more Linux systems on a single computer at the same time. Users can also run Windows, Solaris, FreeBSD, or other operating systems on Linux.
Zorro-The driver provides Zorro Amiga bus support.

via:http://www.linux.org/threads/the-linux-kernel-drivers.4205/
Translator: GEEKPI Proofreading: Wxy
This article by LCTT original translation, Linux China honors launch

Devon's Linux kernel feature: 03 Driver "Go"

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.