mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
[ѷ] 03 The Linux Kernel--Drivers
This commit is contained in:
parent
2f88e19491
commit
b628f901ab
@ -1,237 +0,0 @@
|
||||
translating-------------------geekpi
|
||||
|
||||
03 The Linux Kernel: Drivers
|
||||
================================================================================
|
||||
Drivers are small programs that enable the kernel to communicate and handle hardware or protocols (rules and standards). Without a driver, the kernel does not know how to communicate with the hardware or handle protocols (the kernel actually hands the commands to the BIOS and the BIOS passes them on the the hardware). The Linux Kernel source code contains many drivers (in the form of source code) in the drivers folder. Each folder within the drivers folder will be explained. When configuring and compiling the kernel, it helps to understand the drivers. Otherwise, a user may add drivers to the kernel that they do not need or leave out important drivers. The driver source code usually includes a commented line that states the purpose of the driver. For example, the source code for the tc driver has a single commented line that says the driver is for TURBOchannel buses. Because of the documentation, users should be able to look at the first few commented lines of future drivers to learn their purpose.
|
||||
|
||||
There are different terms that should be understood so that the information below is understandable. An I/O device is an Input/Output device. A modem and network card are examples of this; they send and receive data. A monitor is an output device - information only comes out. A keyboard, mouse, and joystick are input only - data goes into the system. Storage devices store data. Examples of these include SD cards, Hard-drives, CD-roms, memory cards, etc. The CPU (also called a processor) is the "brain" or "heart" of the computer. Without this single processing chip, the computer cannot function. A motherboard (mainboard) is a small board with printed circuits that connect to the components that are on the board. The board and the components are essential to the functionality of a computer. Many computer users say that the motherboard is the heart of the computer (the motherboard holds the CPU). The motherboard contains ports for peripherals. Peripherals include the input, output, and storage devices. A bus is the circuitry of the motherboard and connection to peripherals. Network devices deal with the connection of two or more computers. Ports are devices that users can plug another device or cable into. For example, users would plug a FireWire memory stick into a FireWire port; an Ethernet cable would go into an Ethernet port. Optical discs are read using lasers that read off of reflective surfaces that will either scatter or reflect the laser light. A common optical disk is the DVD. Many systems are 32-bit or 64-bit systems; this refers to the number of bits of registers, address buses, or data buses. For instance, on a 64-bit motherboard, the data buses (the silver lines going between components) have sixty-four lines running parallel to the same destination. Memory addresses are addresses to the memory in the form of bits (ones and zeros). So, a 32-bit memory address contains thirty-two ones and zeros that give the location of a spot on the memory.
|
||||
|
||||
Many of the drivers are generic driver meaning that a generic keyboard driver will allow the kernel to handle nearly every keyboard. However, some drivers are specialized. Apple and Commodore, for instance, have made specialized hardware for their Apple computer and Amiga system, respectively. The Linux kernel contains drivers for many devices like Smartphones, Apples, Amiga systems, Sony's Playstation3, Android tablets, and many others.
|
||||
|
||||
Notice that some drivers overlap categories. For instance, radio drivers exist in the net folder and the media directory.
|
||||
|
||||
**accessibility** - These drivers offer support for accessibility devices. In Linux kernel 3.9.4, only one driver is in this folder, and that is the braille device driver.
|
||||
|
||||
**acpi** - The Advanced Configuration and Power Interface (ACPI) drivers manage power usage.
|
||||
|
||||
**amba** - Advanced Microcontroller Bus Architecture (AMBA) is a protocol for the management and interconnection in a System-on-Chip (SoC). A SoC is a single chip that contains many or all essential components of a computer in one chip. The AMBA drivers in this folder allow the kernel to run on these chips.
|
||||
|
||||
**ata** - This directory contains drivers for PATA and SATA devices. Serial ATA (SATA) is a computer bus interface that connects host bus adapters to storage devices like hard-drives. Parallel ATA (PATA) is a standard for connecting storage devices like hard-drives, floppy drives, and optical disc drives. PATA is commonly known as IDE.
|
||||
|
||||
**atm** - Asynchronous Transfer Mode (ATM) is a standard for telecommunications. There are a variety of drivers in here from PCI bridges (they connect to PCI buses) and Ethernet controllers (integrated circuit chip that controls Ethernet communications).
|
||||
|
||||
**auxdisplay** - This folder provides three drivers - LCD framebuffer driver, LCD Controller driver, and a LCD driver. These drivers manage Liquid Crystal Display monitors. LCD monitors are the screens that ripple when pressed. NOTE: The screen can be damaged when pressed, so do not poke of push on LCD screens.
|
||||
|
||||
**base** - This is an important directory that contains essential base drivers for firmware, the system bus, hypervisor abilities, etc.
|
||||
|
||||
**bcma** - These are drivers for buses that use a protocol that are based on the AMBA protocol. These new buses are made by Broadcom.
|
||||
|
||||
**block** - These drivers provide the kernel with support for block devices like floppy-disk readers, SCSI tapes, block devices over TCP, etc.
|
||||
|
||||
**bluetooth** - Bluetooth is a secure wireless standard for Personal Area Networks (PANs). The bluetooth drivers are in this folder and allow the system to use the different bluetooth devices. For example, a bluetooth mouse lacks a cable, and the computer has a dongle (small USB receiver). The Linux system must be able to understand the mouse signals that are coming in through the dongle. Otherwise, the bluetooth device would not work.
|
||||
|
||||
**bus** - This directory contains three drivers. One converts the ocp interface protocol to scp protocol. The other is a driver for interconnection between devices and the third driver is error handling for interconnection.
|
||||
|
||||
**cdrom** - Two drivers exist in this directory. One is for cd-roms - this includes reading and writing DVDs and CDs. The driver second is for gd-roms (Gigabyte Disc Read-Only Memory). A GD is an optical disc with a 1.2GB storage capacity. This is like a large CD or small DVD. GDs are commonly used in Dreamcast game consoles.
|
||||
|
||||
**char** - Character device drivers are stored here. Character devices transmit data one character at a time. Some included drivers in the folder are printers, PS3 flash ROM storage driver, Toshiba SMM drivers, and random number generator driver.
|
||||
|
||||
**clk** - These drivers are for the system clock.
|
||||
|
||||
**clocksource** - These drivers use the clock as a timer.
|
||||
|
||||
**connector** - These drivers supply the kernel with the ability to know when processes fork and execute as well as changing the UID (User ID), GID (Group ID), and SID (session ID) using what is called a proc connector. The kernel needs to know when process fork (run multiple tasks in the CPU) and execute. Otherwise, the kernel may have inefficiencies in managing resources.
|
||||
|
||||
**cpufreq** - These drivers control the CPU by changing power consumption.
|
||||
|
||||
**cpuidle** - These drivers manage the idleness of the CPU/s. If the system uses multiple CPUs, then one of the drivers will try to keep the idleness the same.
|
||||
|
||||
**crypto** - These drivers provide cryptographic features like encryption.
|
||||
|
||||
**dca** - Direct Cache Access drivers allow the kernel to access the CPU cache. The CPU cache is like a RAM storage built into the CPU chip. The CPU cache is faster than the RAM chip. However, the CPU cache has a much lower space capacity than the RAM. The CPU stores the most important and executed code on this cache system.
|
||||
|
||||
**devfreq** - This driver provides a Generic Dynamic Voltage and Frequency Scaling (DVFS) Framework which changes the CPU frequency as needed to conserve energy. This is known as CPU throttling.
|
||||
|
||||
**dio** - The Digital Input/Output bus drivers allow the kernel to use DIO buses.
|
||||
|
||||
**dma** - The Direct memory access (DMA) driver allows devices to access without needing the CPU. This reduces the load on the CPU.
|
||||
|
||||
**edac** - The Error Detection And Correction drives help reduce and correct errors.
|
||||
|
||||
**eisa** - The Extended Industry Standard Architecture drivers provide EISA bus support to the kernel.
|
||||
|
||||
**extcon** - The EXTernal CONnectors driver detects changes in the ports when a device is plugged in. For instance, extcon will detect if a user plugs in a USB drive.
|
||||
|
||||
**firewire** - These drivers control FireWire devices which are USB-like devices made by Apple.
|
||||
|
||||
**firmware** - These drivers communicate with the firmware of the device like the BIOS (the Basic Input Output System firmware of a computer). The BIOS is used to boot up the operating system and control the hardware and firmware of the device. Some BIOS systems allow user's to overclock the CPU. Overclocking is making the CPU operate at a faster speed. The CPU speed is measured in MHz (Mega-Hertz) or GHz. A CPU with a clock speed of 3.7GHz is significantly faster than a 700MHz processor.
|
||||
|
||||
**gpio** - General Purpose Input/Output (GPIO) is a generic pin on a chip whose behavior can be controlled by the user. The drivers here control GPIO.
|
||||
|
||||
**gpu** - The drivers in this folder control the Video Graphics Array (VGA), Graphics Processing Unit (GPU), and Direct Rendering Manager (DRM). VGA is the 640×480 resolution analog computer displays or simply the resolution standard. A GPU is a processor for graphics. DRM is a rendering system for Unix systems.
|
||||
|
||||
**hid** - These drivers provide support for USB Human Interface Devices.
|
||||
|
||||
**hsi** - This driver offers the kernel the ability to access the cellular modem on the Nokia N900.
|
||||
|
||||
**hv** - These drivers provide Key Value Pair (KVP) functionality to Linux systems.
|
||||
|
||||
**hwmon** - The HardWare MONitoring drivers allow the kernel to get the readings from sensors in the hardware. For example, the CPU has a thermometer. The kernel can then keep track of the temperature and change the fan speed accordingly.
|
||||
|
||||
**hwspinlock** - The hardware spinlock drivers allow systems to use two or more processors that are different or a single processor with two or more different cores.
|
||||
|
||||
**i2c** - I2C drivers enable the I2C protocol which handle low-speed peripherals attached to the motherboard. The System Management Bus (SMBus) driver manages SMBuses which is a single two-wire bus for lightweight communication.
|
||||
|
||||
**ide** - These drivers are for PATA/IDE devices like cdroms and hard-drives.
|
||||
|
||||
**idle** - This driver manages the idleness of Intel processors.
|
||||
|
||||
**iio** - The Industrial I/O core drivers handle analog to digital or digital to analog converters.
|
||||
|
||||
**infiniband** - Infiniband is a high-performance port used by enterprise datacenters and some supercomputers. The drivers in this directory support Infiniband hardware.
|
||||
|
||||
**input** - This directory contains many drivers. All of the drivers deal with input and some include drivers for joysticks, mice, keyboards, gameport (old joystick connectors), remotes, haptic controllers, headphone buttons, and many others. Joysticks today use USB ports, but in the 1980s and 1990s, joysticks plugged into gameports.
|
||||
|
||||
**iommu** - Input/Output Memory Management Unit (IOMMU) drivers manage the IOMMU which is a form of Memory Management Unit (MMU). The IOMMU connects a DMA-capable I/O bus to the RAM. The IOMMU is the bridge between devices and access to the RAM without help from the CPU. This helps to reduce the processors load.
|
||||
|
||||
**ipack** - Ipack stands for IndustryPack. This driver is for a virtual bus that allows operations between carrier and mezzanine boards.
|
||||
|
||||
**irqchip** - These drivers allow interrupt requests (IRQ) which are hardware signals sent to the processor that temporarily stop a running program for a special program(called an interrupt handler) to run instead.
|
||||
|
||||
**isdn** - These drivers support Integrated Services Digital Network (ISDN) which is a set of communication standards for simultaneous digital transmission of voice, video, data, and other network services using traditional circuits of the telephone network.
|
||||
|
||||
**leds** - These drivers support LEDS.
|
||||
|
||||
**lguest** - The lguest drivers manage interrupts that are used with guest operating system. Interrupts are hardware or software signals that interrupt the CPU for important tasks. The CPU then gives the hardware or software some processing resources.
|
||||
|
||||
**macintosh** - Drivers for Apple devices belong in this directory.
|
||||
|
||||
**mailbox** - The driver in this folder (pl320-pci) manages connections for mail systems.
|
||||
|
||||
**md** - The Multiple Devices driver supports RAID (Redundant Array of Independent Disks) - a system of many hard-drives sharing or replicating data.
|
||||
|
||||
**media** - The media drivers offer support in radios, tuners, video capturers, DVB standards for digital television, etc. The drivers also support various media devices that plug in through USB or FireWire ports.
|
||||
|
||||
**memory** - This important driver supports the RAM.
|
||||
|
||||
**memstick** - This driver supports Sony memorysticks.
|
||||
|
||||
**message** - These drivers are to be used with LSI PCI chip/adapter(s) running LSI Fusion MPT (Message Passing Technology) firmware. LSI stands for Large-Scale Integration which are integrated circuits with tens of thousands of transistors per chip.
|
||||
|
||||
**mfd** - MultiFunction Device (MFD) drivers provide support for multifunction devices which are devices that provide multiple services like email, fax, copy machine, scanner, and printer. The drivers in here also add a generic MCP (Multimedia Communications Port) layer which is a protocol for MFDs.
|
||||
|
||||
**misc** - This directory contains miscellaneous drivers that do not fit in any other category like light sensor drivers.
|
||||
|
||||
**mmc** - MultiMediaCard (MMC) drivers handle the MMC standard that is used in flash memory cards.
|
||||
|
||||
**mtd** - Memory technology devices (MTD) are drivers used in Linux for interacting with flash memory like a Flash Translation Layer. Other block and character drivers do not map the same way flash memory devices operate. Although USB memory cards and SD cards are flash drives, they do not use this driver because they are hidden from the system behind a block device interface. This driver is a generic flash drive driver for new flash devices.
|
||||
|
||||
**net** - The network drivers provide network protocols like Appletalk, TCP, and others. The drivers also support modems, USB 2.0 Ethernet Devices, and radio devices.
|
||||
|
||||
**nfc** - This driver is the interface between Texas Instrument's Shared Transport Layer and NCI core.
|
||||
|
||||
**ntb** - The Non-Transparent Bridging driver provides non-transparent bridging in PCI express (PCIe) systems. PCIe is a high-speed expansion bus standard.
|
||||
|
||||
**nubus** - NuBus is a 32-bit parallel computer bus. The driver supports this Apple device.
|
||||
|
||||
**of** - This driver provides OF helpers which are procedures for creating, accessing and interpreting the device tree. The Device Tree is a data structure for describing hardware.
|
||||
|
||||
**oprofile** - This driver profiles the whole system from drivers to user-space processes (applications running under the user's name). This helps developers find performance problems.
|
||||
|
||||
**parisc** - These drivers are for PA-RISC devices which are made by HP. PA-RISC is a specific instruction set for processors.
|
||||
|
||||
**parport** - The Parport drivers provides parallel-port support under Linux.
|
||||
|
||||
**pci** - These drivers offer PCI bus services.
|
||||
|
||||
**pcmcia** - These are laptop motherboard drivers.
|
||||
|
||||
**pinctrl** - These drivers handle pin control devices. Pin controllers can disable and enable I/O devices.
|
||||
|
||||
**platform** - This directory contains drivers for the different computer platforms like Acer, Dell, Toshiba, IBM, Intel, ChromeBooks, etc.
|
||||
|
||||
**pnp** - The Plug-aNd-Play drivers allow users to plug in a device, like a USB device, and use it immediately without the need to manually configure the device.
|
||||
|
||||
**power** - The power drivers allow the kernel to measure the battery power, detect chargers, and power management.
|
||||
|
||||
**pps** - Pulse-Per-Second drivers control an electrical pulse rate that is used for time keeping.
|
||||
|
||||
**ps3** - These are the drivers for Sony's game console - Playstation3.
|
||||
|
||||
**ptp** - Picture Transfer Protocol (PTP) drivers support a protocol for transferring images from digital cameras.
|
||||
|
||||
**pwm** - Pulse-width modulation (PWM) drivers control the pulse of the electricity to devices, mainly motors like the CPU fan.
|
||||
|
||||
**rapidio** - RapidIO drivers manage the RapidIO architecture which is a high-performance packet-switched, interconnect technology for interconnecting chips on a circuit board, and also circuit boards to each other using a backplane.
|
||||
|
||||
**regulator** - The regulator drivers regulate the electricity, temperature, and any other regulator hardware that may exist on a system.
|
||||
|
||||
**remoteproc** - These drivers manage remote processors.
|
||||
|
||||
**rpmsg** - These drivers control Remote Processor MeSsaginG buses which can support a number of drivers. These buses supply the messaging infrastructure, facilitating client drivers to write their own wire-protocol messages.
|
||||
|
||||
**rtc** - The Real Time Clock (RTC) drivers allow the kernel to read the clock.
|
||||
|
||||
**s390** - The drivers are for the 31/32-bit mainframe architecture.
|
||||
|
||||
**sbus** - The SPARC-based buses are managed by these drivers.
|
||||
|
||||
**scsi** - SCSI drivers allow the kernel to use the SCSI standard with peripheral devices. For instance, Linux would be using a SCSI driver when it transmits data with a SCSI hard-drive.
|
||||
|
||||
**sfi** -The Simple Firmware Interface (SFI) drivers allow firmware to send tables of information to the operating system. These tables of data are called SFI tables.
|
||||
|
||||
**sh** - These drivers are for SuperHyway buses.
|
||||
|
||||
**sn** - These drivers add support for IOC3 serial ports.
|
||||
|
||||
**spi** - These drivers handle the Serial Peripheral Interface Bus (SPI bus) which is a synchronous serial data link standard that operates in full duplex mode. Full duplex mode is seen when two devices can both send and receive information at the same time. Duplex refers to two-way communication. Devices communicate in master/slave mode (device configuration).
|
||||
|
||||
**ssb** - Sonics Silicon Backplane drivers provide support for a mini-bus used on various Broadcom chips and embedded devices.
|
||||
|
||||
**staging** - This directory contains numerous subdirectories with many drivers. All of the contained drivers are drivers that need more development before being added to the mainstream kernel.
|
||||
|
||||
**target** - These are drivers for SCSI targets.
|
||||
|
||||
**tc** - These are drivers for TURBOchannel. TURBOchannel is a 32-bit open bus developed by the Digital Equipment Corporation. These buses are commonly used in DECstations.
|
||||
|
||||
**thermal** - The thermal drivers make sure that the CPU stays cool.
|
||||
|
||||
**tty** - The tty drivers manage the connection to a physical terminal.
|
||||
|
||||
**uio** - This driver allows the user to make drivers that run in the user space instead of the kernel space. This keeps the user's driver from causing the kernel to crash.
|
||||
|
||||
**usb** - The USB drivers allow the kernel to use USB ports. Flash drivers and memory cards already contain firmware and a controller, so these drivers allow the kernel to use the USB ports and talk to the USB device.
|
||||
|
||||
**uwb** - The Ultra-WideBand driver manages very low energy level radio devices for short-range, high-bandwidth communications.
|
||||
|
||||
**vfio** - The VFIO driver allows devices to access the userspace.
|
||||
|
||||
**vhost** - This driver is for a virtio server in the host kernel. This is used for virtualization.
|
||||
|
||||
**video** - Video drivers are needed to manage the graphics card and monitor.
|
||||
|
||||
**virt** - These drivers are for virtualization.
|
||||
|
||||
**virtio** - This driver allows virtio devices to be used over a virtual PCI device. This is used for virtualization.
|
||||
|
||||
**vlynq** - This driver controls a proprietary interface developed by Texas Instruments. These are broadband products, like WLAN and modems, VOIP processors, and audio and digital media processor chips.
|
||||
|
||||
**vme** - VMEbus is a bus standard originally developed for the Motorola 68000 line of processors.
|
||||
|
||||
**w1** - These drivers control one-wire buses.
|
||||
|
||||
**watchdog** - This driver manages the watchdog timer which is a timer that is used to detect and recover from malfunctions.
|
||||
|
||||
**xen** - This driver is for the Xen hypervisor system. A hypervisor is software or hardware that allows users to run multiple operating systems on a single computer. This means that the xen code would allow users to have two or more Linux system running on one computer at the same time. Users could also run Windows, Solaris, FreeBSD, or some other operating system on the Linux system.
|
||||
|
||||
**zorro** - This driver offers support for the Zorro Amiga buses.
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.linux.org/threads/the-linux-kernel-drivers.4205/
|
||||
|
||||
译者:[译者ID](https://github.com/译者ID) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
235
translated/The Linux Kernel/03 The Linux Kernel--Drivers.md
Executable file
235
translated/The Linux Kernel/03 The Linux Kernel--Drivers.md
Executable file
@ -0,0 +1,235 @@
|
||||
03 Linux : 驱动
|
||||
================================================================================
|
||||
驱动是使内核能够交流和处理硬件或协议(规则和标准)的小程序。没有驱动程序,内核不知道如何与硬件交流或者处理协议(内核实际上先发送指令给BIOS然后BIOS传给硬件) 。 Linux内核代码在驱动程序文件夹中以源代码的形式包含了许多驱动程序。 驱动文件夹中的每个文件夹会在下面说明。在配置和编译内核时,它有助于了解驱动程序。否则,用户可能会在编译时加入不必要的或者遗留重要的驱动。驱动代码通常会包含一行注释行来指出驱动的目的。 比如,tc的驱动代码,有一行的注释说是用于TURBOchannel总线。由于这些文档,用户应该看驱动前几行的注释来了解它们的目的。
|
||||
|
||||
有几个术语应该已经知道所以以下信息是可以理解的。一个I / O设备指的是输入/输出设备。调制解调器和网卡就是这样的例子,他们发送和接收数据。监视器是一个输出设备 - 只有信息出来。键盘,鼠标和游戏杆是数据输入系统。存储设备存储数据。这方面的例子包括SD卡、硬盘、光盘、存储卡等等。 CPU (也称为处理器)是计算机的“大脑”或“心脏” 。如果没有这一块处理芯片,电脑无法运作。 主板是一块连接板上不同组件的印刷线路板。主板和各个组件的一台计算机不可缺少的功能。许多计算机用户说主板是电脑的心脏(主板上有CPU ) 。该主板包含了用于连接外设的端口。外设包括输入,输出和存储设备。总线上主板的电路并且它连接着连接外设。网络设备处理两台或多台计算机之间的连接。端口是用户可以插入另外一台设备或一根电缆的设备。例如,用户将插入一根火线记忆棒插入一个火线端口;以太网电缆插入入一个以太网端口。光碟的读取是利用激光从可以散射或反射的激光的反射面上读出。一个常见的光盘是DVD 。许多系统是32位或者64位系统,这指的是寄存器的,地址总线或数据总线的位数。例如,在一块64位的主板上,数据总线(组件之间的银线)有64根并排到目的的线。存储器地址以位(0和1)的形式在存储器中编址。因此,一个32位存储地址包含32位的0和1来表示存储器上的某处地址。
|
||||
|
||||
许多驱动程序是通用驱动程序这意味着一个通用键盘驱动可以使内核可以处理几乎所有的键盘。然而,有些驱动是专用驱动。像苹果和Commodore分别为苹果电脑和Amiga系统制造了专门的硬件。 Linux内核中已经包含了许多诸如智能手机、苹果、Amiga系统、PS3、Android平板,和许多其他设备的驱动程序。
|
||||
|
||||
注意有些设备不在本目录中。比如,射频驱动在net和media文件夹下。
|
||||
|
||||
**accessibility** - 这些驱动提供支持一些辅助设备。在Linux 3.9.4中,这个文件夹中只有一个驱动就是盲文设备驱动。
|
||||
|
||||
**acpi** - 高级配置和电源接口(ACPI)驱动用来管理电源使用。
|
||||
|
||||
**amba** - 高级微控制器总线架构(AMBA)是与片上系统(SoC)的管理和互连的协议。SoC是一块包含许多或所有必要的计算机组件的芯片。这里的AMBA驱动让内核能够运行在这上面。
|
||||
|
||||
**ata** - 该目录包含PATA和SATA设备的驱动程序。串行ATA(SATA)是一种连接主机总线适配器到像硬盘那样的存储器的计算机总线接口。并行ATA(PATA)用于连接存储设备,如硬盘驱动器,软盘驱动器,光盘驱动器的标准。PATA就是我们所说的IDE。
|
||||
|
||||
**atm** - 异步通信模式(ATM)是一种通信标准。这里有各种接到PCI桥的驱动(他们连接到PCI总线)和以太网控制器(控制以太网通信的集成电路芯片)。
|
||||
|
||||
**auxdisplay** - 这个文件夹提供了三个驱动。LCD帧缓存驱动、LCD控制器驱动和一个LCD驱动。这些驱动管理液晶显示器。液晶显示器会在按压时显示波纹。注意:按压会损害屏幕,所以请不要用力戳LCD显示屏。
|
||||
|
||||
**base** - 这是个重要的目录包含了固件、系统总线、虚拟化能力等基本的驱动。
|
||||
|
||||
**bcma** - 这些驱动是用于使用基于AMBA协议的总线协议。AMBA是由博通公司开发。
|
||||
|
||||
**block** - 这些驱动提供对块设备的支持,像软驱、SCSI磁带、TCP块设备等等。
|
||||
|
||||
**bluetooth** - 蓝牙是一种安全的无线个人区域网络标准(PANs)。蓝牙驱动就在这个文件夹,它允许系统使用不同的蓝牙设备。例如,一个蓝牙鼠标缺少电缆,并且计算机有一个电子狗(小型USB接收器)。Linux系统必须能够知道进入电子狗的信号。否则,蓝牙设备无法工作。
|
||||
|
||||
**bus** - 这个目录包含了三个驱动。一个转换ocp接口协议到scp协议。一个是设备间的互联驱动,第三个是用于处理互联中的错误处理。
|
||||
|
||||
**cdrom** - rom(只读GB盘)。GD光盘是1.2GB容量的光盘。这像一个更大的CD或者更小的DVD。GD通常用于世嘉游戏机中。
|
||||
|
||||
**char** - 字符设备驱动就在这里。字符设备每次传输数据传输一个字符。这个文件夹里的驱动包括打印机,PS3闪存驱动、东芝SMM驱动和随机数发生器驱动。
|
||||
|
||||
**clk** - 这些驱动用于系统时钟。
|
||||
|
||||
**clocksource** - 这些驱动使用时钟作为定时器。
|
||||
|
||||
**connector** - 这些驱动使内核知道当进程fork并使用proc连接器更改UID(用户ID),GID(组ID),和SID(会话ID)。内核需要知道什么时候进程fork(CPU中运行多个任务)并执行。否则,内核可能会低效管理资源。
|
||||
|
||||
**cpufreq** - 这些驱动改变CPU的电源功率。
|
||||
|
||||
**cpuidle** - 这些驱动用来管理空闲的CPU。一些系统使用多个CPU,那么其中一个会尝试保持空闲。
|
||||
|
||||
**crypto** - 这些驱动提供加密功能。
|
||||
|
||||
**dca** - 直接缓存访问驱动允许内核访问CPU缓存。CPU缓存就像CPU内置的RAM。CPU缓存的速度比RAM更快。然而,CPU缓存的容量比RAM小得多。CPU在这个缓存系统上存储了最重要的和执行的代码。
|
||||
|
||||
**devfreq** - 这个驱动程序提供了一个通用的动态电压和频率调整(DVFS)框架,可以根据需要改变CPU频率来节约能源。这就是所谓的CPU节流。
|
||||
|
||||
**dio** - 数字输入/输出总线驱动允许内核可以使用DIO总线。
|
||||
|
||||
**dma** - 直接内存访问(DMA)驱动允许设备无需CPU访问内存。这减少了CPU的负载。
|
||||
|
||||
**edac** - 错误检测和校正驱动帮助减少和纠正错误。
|
||||
|
||||
**eisa** - 扩展工业标准结构总线驱动提供内核对EISA总线的支持。
|
||||
|
||||
**extcon** - 外部连接器驱动用于检测设备插入时的变化。例如,extcon会检测用户是否插入了USB驱动器。
|
||||
|
||||
**firewire** - 这些驱动用于控制苹果制造的类似于USB的火线设备。
|
||||
|
||||
**firmware** - 这些驱动用于和像BIOS(计算机的基本输入输出系统固件)这样的设备的固件通信。BIOS用于启动操作系统和控制硬件与设备的固件。一些BIOS允许用户超频CPU。超频是使CPU运行在一个更快的速度。CPU速度以MHz(百万赫兹)或GHz衡量。一个3.7 GHz的CPU的的速度明显快于一个700Mhz的处理器。
|
||||
|
||||
**gpio** - 通用输入/输出(GPIO)是由用户控制行为的芯片的管脚。这里的驱动就是控制GPIO。
|
||||
|
||||
**gpu** - 直接渲染管理(DRM)。VGA是640*480的模拟计算机显示器或是简化的分辨率标准。GPU是图形处理器。DRM是一个Unix渲染系统。
|
||||
|
||||
**hid** - 这驱动用于对USB人机界面设备的支持。
|
||||
|
||||
**hsi** - 这个驱动用于内核可以访问像Nokia N900这样的蜂窝式调制解调器。
|
||||
|
||||
**hv** - 这个驱动用于提供Linux中的键值对(KVP)功能。
|
||||
|
||||
**hwmon** - 硬件监控驱动用于内核读取硬件传感器上的信息。比如,CPU上有个温度传感器。那么内核就可以追踪温度的变化并相应地调节风扇的速度。
|
||||
|
||||
**hwspinlock** - 硬件自旋锁驱动允许系统同时使用两个或者更多的处理器而不是使用一个处理器上的两个或更多的核心。
|
||||
|
||||
**i2c** - I2C驱动可以使计算机用I2C协议处理主板上的低速外设。系统管理总线(SMBus)驱动管理SMBus,这是一种用于轻量级通信的two-wire总线。
|
||||
|
||||
**ide** - 这些驱动用来处理像CDROM和硬盘这些PATA/IDE设备。
|
||||
|
||||
**idle** - 这个驱动用来处理空闲的Intel处理器。
|
||||
|
||||
**iio** - 工业I/O核心驱动程序用来处理AD或DA转换器。
|
||||
|
||||
**infiniband** - Infiniband是在企业数据中心和一些超级计算机中使用的一中高性能的端口。这个目录中的驱动用来支持Infiniband硬件。
|
||||
|
||||
**input** - 耳机按钮,和许多其他的驱动。如今的操纵杆使用USB端口,但是在1980年代和1990年代,操纵杆是插在gameport中。
|
||||
|
||||
**iommu** - 输入/输出内存管理单元(IOMMU)驱动用来管理内存管理单元中的IOMMU。IOMMU连接DMA IO 总线到内存上。IOMMU是设备在没有CPU帮助下直接访问内存的桥梁。这有助于减少处理器的负载。
|
||||
|
||||
**ipack** - Ipack代表的是IndustryPack。 这个驱动是一个虚拟总线,允许在载体和夹板之间操作。
|
||||
|
||||
**irqchip** - 这些驱动程序允许硬件的中断请求(IRQ)发送到处理器,暂时停止一个正在运行的程序而去运行一个特殊的程序(称为一个中断处理程序)。
|
||||
|
||||
**isdn** - 这些驱动用于支持综合业务数字网(ISDN),这是用于同步数字传输语音、视频、数据和其他网络服务使用传统电话网络的电路的通信标准。
|
||||
|
||||
**leds** - 用于LED的驱动。
|
||||
|
||||
**lguest** - lguest用于管理客户机系统的中断。中断是CPU被重要任务打断的硬件或软件信号。CPU接着给硬件或软件一些处理资源。
|
||||
|
||||
**macintosh** - 苹果设备的驱动在这个文件夹里。
|
||||
|
||||
**mailbox** - 这个文件夹(pl320-pci)中的驱动用于管理邮箱系统的连接。
|
||||
|
||||
**md** - 多设备驱动用于支持磁盘阵列,一种多块硬盘间共享或复制数据的系统。
|
||||
|
||||
**media** - 媒体驱动提供了对收音机、调谐器、视频捕捉卡、DVB标准的数字电视等等的支持。驱动还提供了对不同通过USB或火线端口插入的多媒体设备的支持。
|
||||
|
||||
|
||||
**memory** - 只是支持内存的重要驱动。
|
||||
|
||||
**memstick** - 这个驱动用于支持Sony记忆棒。
|
||||
|
||||
**message** - 这些驱动用于运行LSI Fusion MPT(一种消息传递技术)固件的LSI PCI芯片/适配器。LSI大规模集成,这代表每片芯片上集成了几万晶体管、
|
||||
|
||||
**mfd** - 多用途设备(MFD)驱动提供了对可以提供诸如电子邮件、传真、复印机、扫描仪、打印机功能的多用途设备的支持。这里的驱动还给MFD设备提供了一个通用多媒体通信端口(MCP)层。
|
||||
|
||||
**misc** - 这个目录包含了不适合在其他目录的各种驱动。就像光线传感器驱动。
|
||||
|
||||
**mmc** - MMC卡驱动用于处理用于MMC标准的闪存卡。
|
||||
|
||||
**mtd** - 内存技术设备(MTD)驱动程序用于Linux和闪存的交互,这就就像一层闪存转换层。其他块和字符驱动程序不会以闪存设备的操作方式来做映射。尽管USB记忆卡和SD卡是闪存设备,但它们不使用这个驱动,因为他们隐藏在系统的块设备接口后。这个驱动用于新型闪存设备的通用闪存驱动器驱动。
|
||||
|
||||
**net** - 网络驱动提供像AppleTalk、TCP和其他的网络协议。这些驱动也提供对调制解调器、USB 2.0的网络设备、和射频设备的支持。
|
||||
|
||||
**nfc** - 这个驱动是德州仪器的共享传输层之间的接口和NCI核心。
|
||||
|
||||
**ntb** - 不透明的桥接驱动提供了在PCIe系统的不透明桥接。PCIe是一种高速扩展总线标准。
|
||||
|
||||
**nubus** - NuBus是一种32位并行计算总线。用于支持苹果设备。
|
||||
|
||||
**of** - 此驱动程序提供设备树中创建,访问和解释程序的OF助手。设备树是一种数据结构,用于描述硬件。
|
||||
|
||||
**oprofile** - 这个驱动用于从驱动到用户空间进程(运行在用户态下的应用)评测整个系统。这帮助开发人员找到性能问题
|
||||
|
||||
**parisc** - 这些驱动用于HP生产的PA-RISC架构设备。PA-RISC是一种特殊指令集的处理器。
|
||||
|
||||
**parport** - 并口驱动提供了Linux下的并口支持。
|
||||
|
||||
**pci** - 这些驱动提供了PCI总线服务。
|
||||
|
||||
**pcmcia** - 这些事笔记本主板驱动
|
||||
|
||||
**pinctrl** - 这些驱动用来处理引脚控制设备。引脚控制器可以禁用或启用I/O设备。
|
||||
|
||||
**platform** -这个文件夹包含了不同的计算机平台的驱动像Acer、Dell、Toshiba、IBM、Intel、Chrombooks等等。
|
||||
|
||||
**pnp** - 即插即用驱动允许用户在插入一个像USB的设备后可以立即使用而不必手动配置设备。
|
||||
|
||||
**power** - 电源驱动是内核可以测量电池电量,检测充电器,和电源管理。
|
||||
|
||||
**pps** - Pulse-Per-Second驱动用来控制电流脉冲速率。这用于计时。
|
||||
|
||||
**ps3** - 这是Sony的游戏控制台驱动- PlayStation3。
|
||||
**ptp** - 图片传输协议(PTP)驱动支持一种从数码相机中传输图片的协议。
|
||||
|
||||
**pwm** - 脉宽调制(PWM)驱动用于控制设备的电流脉冲。主要用于控制像CPU风扇。
|
||||
|
||||
**rapidio** - RapidIO驱动用于管理RapidIO架构,它是一种高性能分组交换,用于电路板上交互芯片的交互技术,也用于互相使用底板的电路板。
|
||||
|
||||
**regulator** - 校准驱动用于校准电流、温度、或其他可能系统存在的校准硬件。
|
||||
|
||||
**remoteproc** - 这些驱动用来管理远程处理器。
|
||||
|
||||
**rpmsg** - 这个驱动用来控制支持大量驱动的远程处理器通讯总线(rpmsg)。这些总线提供消息传递设施,促进客户端驱动程序编写自己的连接协议消息。
|
||||
|
||||
**rtc** - 实时时钟(RTC)驱动使内核可以读取时钟。
|
||||
|
||||
**s390** - 用于31/32位的大型机架构的驱动。
|
||||
|
||||
**sbus** - 用于管理基于SPARC的总线驱动。
|
||||
|
||||
**scsi** - 允许内核使用SCSI标准外围设备。例如,Linux将在与SCSI硬件传输数据时使用SCSI驱动。
|
||||
|
||||
**sfi** -简单固件接口(SFI)驱动允许固件发送信息表给操作系统。这些表的数据称为SFI表。
|
||||
|
||||
**sh** - 该驱动用于支持SuperHway总线。
|
||||
|
||||
**sn** - 该驱动用于支持IOC3串口。
|
||||
|
||||
**spi** - 这些驱动处理串行设备接口总线(SPI),它是一个在在全双工下运行的同步串行数据链路标准,。全双工是指两个设备可以同一时间同时发送和接收信息。双工指的是双向通信。设备在主/从模式下通信(取决于设备配置)。
|
||||
|
||||
**ssb** - ssb(Sonics Silicon Backplane)驱动提供对在不同博通芯片和嵌入式设备上使用的迷你总线的支持。
|
||||
|
||||
**staging** - 该目录含有许多子目录。这里所有的驱动还需要在加入主内核前经过更多的开发工作。
|
||||
|
||||
**target** - SCSI设备驱动
|
||||
|
||||
**tc** - 这些驱动用于TURBOchannel,TURBOchannel是数字设备公司开发的32位开放总线。这主要用于DEC工作站。
|
||||
|
||||
**thermal** - thermal驱动使CPU保持较低温度。
|
||||
|
||||
**tty** - tty驱动用于管理物理终端连接。
|
||||
|
||||
**uio** - 该驱动允许用户编译运行在用户空间而不是内核空间的驱动。这使用户驱动不会导致内核崩溃。
|
||||
|
||||
**usb** - USB设备允许内核使用USB端口。闪存驱动和记忆卡已经包含了固件和控制器,所以这些驱动程序允许内核使用USB接口和与USB设备。
|
||||
|
||||
**uwb** - Ultra-WideBand驱动用来管理短距离,高带宽通信的超低功耗的射频设备
|
||||
|
||||
**vfio** - 允许设备访问用户空间的VFIO驱动
|
||||
|
||||
**vhost** - 这是用于宿主内核中的virtio服务器驱动。用于虚拟化中
|
||||
|
||||
**video** - 这是用来管理显卡和监视器的视频驱动。
|
||||
|
||||
**virt** - 这些驱动用来虚拟化。
|
||||
|
||||
**virtio** - 这个驱动用来在虚拟PCI设备上使用virtio设备。用于虚拟化中。
|
||||
|
||||
**vlynq** - 这个驱动控制着由德州仪器开发的专有接口。这些都是宽带产品,像WLAN和调制解调器,VOIP处理器,音频和数字媒体信号处理芯片。
|
||||
|
||||
**vme** - WMEbus最初是为摩托罗拉68000系列处理器开发的总线标准
|
||||
|
||||
**w1** - 这些驱动用来控制one-wire总线。
|
||||
|
||||
**watchdog** - 该驱动管理看门狗定时器,这是一个可以用来检测和恢复异常的定时器。
|
||||
|
||||
**xen** - 该驱动是Xen管理程序系统。这是个允许用户运行多个操作系统在一台计算机的软件或硬件。这意味着xen的代码将允许用户在同一时间的一台计算机上运行两个或更多的Linux系统。用户也可以在Linux上运行Windows、Solaris、FreeBSD、或其他操作系统。
|
||||
|
||||
**zorro** - 该驱动提供Zorro Amiga总线支持。
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.linux.org/threads/the-linux-kernel-drivers.4205/
|
||||
|
||||
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
Loading…
Reference in New Issue
Block a user