Arch Linux カーネルドキュメント¶
こちらはカーネルのドキュメントツリーの最上部です。カーネルドキュメントはカーネル自体と同じように、まだまだ発展途上です。分散しているドキュメントを整理してまとめる作業が進行しています。ドキュメントの改善提案は歓迎されます。ドキュメントの編集に参加したい場合は vger.kernel.org の linux-doc メーリングリストに参加してください。
ライセンスに関するドキュメント¶
以下のドキュメントでは Linux カーネルソースコードのライセンス (GPLv2) について説明しています。ソースツリーの個々のファイルのライセンスの宣言方法やライセンス全文へのリンクがあります。
ユーザー向けのドキュメント¶
以下のマニュアルはカーネルの「ユーザー」向けに書かれています。特定の環境で最適の結果を得たい人が対象です。
- Linux カーネルユーザー・管理者ガイド
- Linux カーネルリリース 5.x <http://kernel.org/>
- カーネルのコマンドラインパラメータ
- Linux 予約デバイス (4.x+ バージョン)
- Documentation for /proc/sys
- Hardware vulnerabilities
- バグの報告
- セキュリティバグ
- バグ退治
- バグの特定
- 汚染されたカーネル
- Ramoops oops/panic ロガー
- 動的デバッグ
- 恐ろしき "No init found." ブートフリーズメッセージについて
- Documentation for Kdump - The kexec-based Crash Dumping Solution
- Performance monitor support
- sysfs の情報にアクセスするときの規則
- 初期 RAM ディスク (initrd) を使用する
- Control Group v2
- Control Groups version 1
- Linux シリアルコンソール
- Linux 点字コンソール
- Parport
- RAID アレイ
- カーネルモジュール署名ファシリティ
- RapidIO サブシステムガイド
- Linux Magic System Request キーハック
- Unicode のサポート
- VGA のソフトウェアカーソル
- 様々な (あなたのお好きな) バイナリフォーマットのカーネルサポート v1.1
- Linux の Mono(tm) バイナリのカーネルサポート
- Linux の Java(tm) バイナリのカーネルサポート v1.03
- 信頼性・可用性・保守性
- ブロックレイヤーキャッシュ (bcache)
- The Linux RapidIO Subsystem
- ext4 一般情報
- The Android binderfs Filesystem
- CIFS
- The SGI XFS Filesystem
- IBM's Journaled File System (JFS) for Linux
- Using UFS
- 電源管理
- Thunderbolt
- Linux Security Module 使用方法
- メモリ管理
- Namespaces
- Perf Events and tool security
- ACPI Support
- ATA over Ethernet (AoE)
- btmrvl driver
- Clearing WARN_ONCE
- CPU load
- How CPU topology info is exported via sysfs
- Device Mapper
- The EFI Boot Stub
- gpio
- Notes on the change from 16-bit UIDs to 32-bit UIDs
- Linux support for random number generator in i8xx chipsets
- I/O statistics fields
- Reducing OS jitter due to per-cpu kthreads
- Laptop Drivers
- Auxiliary Display Support
- Parallel port LCD/Keypad Panel support
- LDM - Logical Disk Manager (Dynamic Disks)
- Softlockup detector and hardlockup detector (aka nmi_watchdog)
- Numa policy hit/miss statistics
- Linux Plug and Play Documentation
- Real Time Clock (RTC) Drivers for Linux
- Video Mode Selection Support 2.13
- WiMAX subsystem
- Video Output Switcher Control
- カーネルビルドシステム
アプリケーション開発者向けのドキュメント¶
ユーザースペース API マニュアルにはアプリケーション開発者が知るべきカーネルインターフェイスについて説明しているドキュメントが記載されています。
カーネル開発の始め方¶
以下のマニュアルにはカーネルの開発に関するあらゆる情報が載っています。カーネルコミュニティは数千人の開発者からなる巨大なコミュニティであり、年間を通じて開発されています。巨大なコミュニティの常、物事がどのように運用されているのか知ることで変更をマージしてもらいやすくなるでしょう。
- カーネル開発コミュニティとの共同作業
- Linux カーネルライセンス規則
- Linux カーネル開発ハウツー
- コントリビューター行動規範
- Linux カーネルにおけるコントリビューター行動規範の解釈
- カーネル開発プロセスのガイド
- パッチの投稿: あなたのコードをカーネルに取り入れるときの基本ガイド
- プログラミング言語
- Linux カーネルコーディングスタイル
- カーネルメンテナ PGP ガイド
- Linux のメールクライアント情報
- Linux Kernel Enforcement Statement
- カーネルドライバー声明
- カーネルをコンパイルするための最小要件
- Linux カーネルにドライバーを投稿する
- Linux カーネルドライバーインターフェイス
- Linux カーネル運営スタイル
- Linux の -stable リリースについて知っておくべき全てのこと
- Linux カーネルパッチ投稿チェックリスト
- Linux カーネルを書いたり理解するのに興味を持っている人のためのドキュメントの索引
- Deprecated Interfaces, Language Features, Attributes, and Conventions
- Embargoed hardware issues
- Linux カーネルにパッチを適用する
- 新しいシステムコールの追加
- Linux マジックナンバー
- なぜ "volatile" 型クラスを使ってはいけないのか
- clang-format
- カーネルの開発ツール
- カーネルドキュメントの書き方
- カーネルハックガイド
- Linux のトレース技術
- Function Tracer Design
- Notes on Analysing Behaviour Using Events and Tracepoints
- ftrace - Function Tracer
- Using ftrace to hook to functions
- Kprobe-based Event Tracing
- Uprobe-tracer: Uprobe-based Event Tracing
- Using the Linux Kernel Tracepoints
- Event Tracing
- Subsystem Trace Points: kmem
- Subsystem Trace Points: power
- NMI Trace Events
- MSR Trace Events
- In-kernel memory-mapped I/O tracing
- Event Histograms
- Hardware Latency Detector
- Intel(R) Trace Hub (TH)
- System Trace Module
- MIPI SyS-T over STP
- Coresight - HW Assisted Tracing on ARM
- Coresight CPU Debug Module
- カーネルメンテナハンドブック
- フォールトインジェクション
- カーネルライブパッチ
カーネル API ドキュメント¶
以下のブックでは、カーネル開発者の視点から、カーネルサブシステムがどのように機能しているのか詳細に説明しています。情報のほとんどはカーネルソースから直接引用されており、必要に応じて補足を追加しています (あるいは追加することができた最低限 — 必要な補足が全て揃っているとは限りません)。
- Linux ドライバー実装者の API ガイド
- Driver Model
- Driver Basics
- Device drivers infrastructure
- Early Userspace
- CPU and Device Power Management
- The Common Clk Framework
- Bus-Independent Device Accesses
- Device connections
- Buffer Sharing and Synchronization
- デバイスリンク
- Component Helper for Aggregate Drivers
- Message-based devices
- サウンドデバイス
- フレームバッファライブラリ
- Voltage and current regulator API
- Industrial I/O
- Input サブシステム
- Linux USB API
- Firewire (IEEE 1394) driver Interface Guide
- The Linux PCI driver implementer's API guide
- Serial Peripheral Interface (SPI)
- I2C と SMBus サブシステム
- IPMB Driver for a Satellite MC
- I3C subsystem
- GENERIC SYSTEM INTERCONNECT SUBSYSTEM
- High Speed Synchronous Serial Interface (HSI)
- Error Detection And Correction (EDAC) デバイス
- SCSI Interfaces Guide
- libATA 開発者ガイド
- target and iSCSI Interfaces Guide
- MTD NAND Driver Programming Interface
- パラレルポートデバイス
- 16x50 UART ドライバー
- Pulse-Width Modulation (PWM)
- Intel(R) Management Engine Interface (Intel(R) MEI)
- Memory Technology Device (MTD)
- MMC/SD/SDIO card support
- Non-Volatile Memory Device (NVDIMM)
- W1: Dallas' 1-wire bus
- The Linux RapidIO Subsystem
- Writing s390 channel device drivers
- VME デバイスドライバー
- Linux 802.11 ドライバー開発者ガイド
- The Userspace I/O HOWTO
- Linux ファームウェア API
- PINCTRL (PIN CONTROL) サブシステム
- General Purpose Input/Output (GPIO)
- RAID
- Miscellaneous Devices
- Near Field Communication
- DMAEngine ドキュメント
- Linux カーネル SLIMbus サポート
- SoundWire ドキュメント
- Thermal
- FPGA サブシステム
- ACPI Support
- Kernel driver lp855x
- A driver for a selfmade cheap BT8xx based PCI GPIO-card (bt8xxgpio)
- Kernel Connector
- Console Drivers
- Dell Systems Management Base Driver
- Usage of the new open sourced rbu (Remote BIOS Update) driver
- EDID
- EISA bus support
- IPMB Driver for a Satellite MC
- ISA Drivers
- ISA Plug & Play support by Jaroslav Kysela <perex@suse.cz>
- Generic Counter Interface
- pblk: Physical Block Device Target
- Memory Controller drivers
- MEN Chameleon Bus
- NTB Drivers
- NVMEM Subsystem
- PARPORT interface documentation
- PPS - Pulse Per Second
- PTP hardware clock infrastructure for Linux
- Generic PHY Framework
- Intel MID PTI
- Pulse Width Modulation (PWM) interface
- rfkill - RF kill switch support
- Support for Serial devices
- SM501 Driver
- Msc Keyboard Scan Expansion/GPIO Expansion device
- Linux Switchtec Support
- Sync File API Guide
- VFIO Mediated devices
- VFIO - "Virtual Function I/O"
- Xilinx FPGA
- Xillybus driver for generic FPGA interface
- Writing Device Drivers for Zorro Devices
- コア API ドキュメント
- ロック
- Accounting
- Block
- BFQ (Budget Fair Queueing)
- Notes on the Generic Block Layer Rewrite in Linux 2.5
- Immutable biovecs and biovec iterators
- Generic Block Device Capability
- Embedded device command line partition parsing
- Data Integrity
- Deadline IO scheduler tunables
- Block io priorities
- Kyber I/O scheduler tunables
- Null block device driver
- Block layer support for Persistent Reservations
- Queue sysfs files
- struct request documentation
- Block layer statistics in /sys/block/<dev>/stat
- Switching Scheduler
- Explicit volatile write back cache control
- cdrom
- Integrated Drive Electronics (IDE)
- Frame Buffer
- The Frame Buffer Device API
- arkfb - fbdev driver for ARK Logic chips
- What is aty128fb?
- Framebuffer driver for Cirrus Logic chipsets
- Understanding fbdev's cmap
- Deferred IO
- What is efifb?
- Driver for EP93xx LCD controller
- Video Attribute Flags
- Platform callbacks
- Setting the video mode
- Screenpage bug
- The Framebuffer Console
- The Frame Buffer Device
- What is gxfb?
- Intel 810/815 Framebuffer driver
- Intel 830M/845G/852GM/855GM/865G/915G/945G Framebuffer driver
- Frame Buffer device internals
- What is lxfb?
- What is matroxfb?
- Metronomefb
- modedb default video mode support
- What is pvr2fb?
- Driver for PXA25x LCD controller
- s3fb - fbdev driver for S3 Trio/Virge chips
- What is sa1100fb?
- SH7760/SH7763 integrated LCDC Framebuffer driver
- What is sisfb?
- sm501fb
- What is sm712fb?
- sstfb
- What is tgafb?
- Tridentfb
- What is udlfb?
- uvesafb - A Generic Driver for VBE2+ compliant video cards
- What is vesafb?
- VIA Integration Graphic Chip Console Framebuffer Driver
- vt8623fb - fbdev driver for graphics core in VIA VT8623 chipset
- fpga
- Human Interface Devices (HID)
- I2C/SMBus サブシステム
- I2C Device Interface
- Linux I2C and DMA
- I2C/SMBUS Fault Codes
- I2C/SMBus Functionality
- Linux I2C fault injection
- I2C Protocol
- i2c-stub
- I2C topology
- How to instantiate I2C devices
- I2C device driver binding control from user-space
- Linux I2C slave eeprom backend
- Linux I2C slave interface description
- SMBus Protocol Summary
- I2C and SMBus
- I2C Ten-bit Addresses
- Upgrading I2C Drivers to the new 2.6 Driver Model
- Writing I2C Clients
- Kernel driver i2c-mux-gpio
- I2C Bus Drivers
- Industrial I/O
- ISDN
- InfiniBand
- LEDs
- LED handling under Linux
- Flash LED handling under Linux
- One-shot LED Trigger
- LED Transient Trigger
- USB port LED trigger
- Userspace LEDs
- Leds BlinkM driver
- Kernel driver for lm3556
- Kernel driver lp3944
- Kernel driver for lp5521
- Kernel driver for lp5523
- Kernel driver for lp5562
- LP5521/LP5523/LP55231/LP5562/LP8501 Common Driver
- Kernel driver for Mellanox systems LEDs
- Linux メディアサブシステムドキュメント
- NetLabel
- Linux ネットワークドキュメント
- netdev FAQ
- AF_XDP
- batman-adv
- SocketCAN - Controller Area Network
- UCAN プロトコル
- Vendor Device Drivers
- Distributed Switch Architecture
- Devlink info versions
- Devlink Trap
- Devlink Trap netdevsim
- IEEE 802.15.4 Developer's Guide
- J1939 Documentation
- Linux ネットワークとネットワークデバイス API
- Z8530 プログラミングガイド
- MSG_ZEROCOPY
- FAILOVER
- NET_FAILOVER
- PHY Abstraction Layer
- phylink
- IP-Aliasing
- Ethernet Bridging
- SNMP counter
- Checksum Offloads
- Segmentation Offloads
- Scaling in the Linux Networking Stack
- Kernel TLS
- Kernel TLS offload
- pcmcia
- 電源管理
- APM or ACPI?
- Debugging hibernation and suspend
- Charger Manager
- Testing suspend and resume support in device drivers
- Energy Model of CPUs
- Freezing of tasks
- Power Management Interface for System Sleep
- Operating Performance Points (OPP) Library
- PCI Power Management
- PM Quality Of Service Interface
- Linux power supply class
- Runtime Power Management Framework for I/O Devices
- How to get s2ram working
- Interaction of Suspend code (S3) with the CPU hotplug infrastructure
- System Suspend and Device Interrupts
- Using swap files with software suspend (swsusp)
- How to use dm-crypt and swsusp together
- Swap suspend
- Video issues with S3 resume
- swsusp/S3 tricks
- Documentation for userland software suspend interface
- Power Capping Framework
- Regulator Consumer Driver Interface
- Regulator API design notes
- Regulator Machine Driver Interface
- Linux voltage and current regulator framework
- Regulator Driver Interface
- TCM Virtual Device
- タイマー
- High resolution timers and dynamic ticks design notes
- High Precision Event Timer Driver for Linux
- hrtimers - subsystem for high-resolution kernel timers
- NO_HZ: Reducing Scheduling-Clock Ticks
- Clock sources, Clock events, sched_clock() and delay timers
- delays - Information on the various kernel delay / sleep mechanisms
- Serial Peripheral Interface (SPI)
- 1-Wire サブシステム
- Linux Watchdog Support
- HPE iLO NMI Watchdog Driver
- Mellanox watchdog drivers
- Berkshire Products PC Watchdog Card
- The Linux Watchdog driver API
- The Linux WatchDog Timer Driver Core kernel API
- WatchDog Module Parameters
- The Linux WatchDog Timer Power Management Guide
- WDT Watchdog Timer Interfaces For The Linux Operating System
- Converting old watchdog drivers to the watchdog framework
- Linux 仮想化サポート
- Linux Input ドキュメント
- Linux Hardware Monitoring
- Linux GPU ドライバー開発者ガイド
- セキュリティドキュメント
- Credentials in Linux
- IMA Template Management Mechanism
- Kernel Keys
- Linux Security Modules: General Security Hooks for Linux
- Linux Security Module Development
- Linux Secure Attention Key (SAK) handling
- SCTP
- Kernel Self-Protection
- SipHash - a short input PRF
- HalfSipHash - SipHash's insecure younger cousin
- Trusted Platform Module ドキュメント
- Linux サウンドサブシステムドキュメント
- Linux カーネル Crypto API
- Linux ファイルシステム API
- Linux メモリ管理ドキュメント
- BPF ドキュメント
- USB サポート
- Linux ACM driver v0.16
- Authorizing (or not) your USB devices to connect to the system
- ChipIdea Highspeed Dual Role Controller Driver
- DWC3 driver
- EHCI driver
- How FunctionFS works
- Linux USB gadget configured through configfs
- Linux USB HID gadget driver
- Multifunction Composite Gadget
- Linux USB Printer Gadget Driver
- Linux Gadget Serial Driver v2.0
- Gadget Testing
- Infinity Usb Unlimited Readme
- Mass Storage Gadget (MSG)
- USB 7-Segment Numeric Display
- mtouchusb driver
- OHCI
- Diamonds Rio
- USB/IP protocol
- usbmon
- USB serial
- USB references
- Linux CDC ACM inf
- Linux inf
- USB devfs drop permissions source
- WUSB command line script to manipulate auth credentials
- Credits
- Linux PCI Bus Subsystem
- 1. How To Write Linux PCI Drivers
- 2. The PCI Express Port Bus Driver Guide HOWTO
- 3. PCI Express I/O Virtualization Howto
- 4. The MSI Driver Guide HOWTO
- 5. ACPI considerations for PCI host bridges
- 6. PCI Error Recovery
- 7. The PCI Express Advanced Error Reporting Driver Guide HOWTO
- 8. PCI Endpoint Framework
- Assorted Miscellaneous Devices Documentation
- Intel Many Integrated Core (MIC) architecture
- Linux スケジューラ
- Completions - "wait for completion" barrier APIs
- CPU Scheduler implementation hints for architecture specific code
- CFS Bandwidth Control
- Deadline Task Scheduling
- CFS Scheduler
- Scheduler Domains
- Energy Aware Scheduling
- Scheduler Nice Design
- Real-Time group scheduling
- Scheduler Statistics
- Scheduler pelt c program
アーキテクチャ個別のドキュメント¶
以下のブックでは特定のアーキテクチャの実装に関するプログラミングの詳細情報を提供しています。
- ARM アーキテクチャ
- ARM Linux 2.6 and upper
- Booting ARM Linux
- Cluster-wide Power-up/power-down race avoidance algorithm
- Interface for registering and calling firmware-specific operations for ARM
- Interrupts
- Kernel mode NEON
- Kernel-provided User Helpers
- Kernel Memory Layout on ARM Linux
- Memory alignment
- ARM TCM (Tightly-Coupled Memory) handling in Linux
- Kernel initialisation parameters on ARM Linux
- Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
- The Unified Extensible Firmware Interface (UEFI)
- vlocks for Bare-Metal Mutual Exclusion
- Porting
- SoC-specific documents
- ARM64 アーキテクチャ
- ACPI Tables
- ACPI on ARMv8 Servers
- Booting AArch64 Linux
- ARM64 CPU Feature Registers
- ARM64 ELF hwcaps
- HugeTLBpage on ARM64
- Legacy instructions
- Memory Layout on AArch64 Linux
- Pointer authentication in AArch64 Linux
- Silicon Errata and Software Workarounds
- Scalable Vector Extension support for AArch64 Linux
- AArch64 TAGGED ADDRESS ABI
- Tagged virtual addresses in AArch64 Linux
- IA-64 アーキテクチャ
- Linux kernel release for the IA-64 Platform
- Memory Attribute Aliasing on IA-64
- EFI Real Time Clock driver
- IPF Machine Check (MC) error inject tool
- Light-weight System Calls for IA-64
- IRQ affinity on IA64 platforms
- An ad-hoc collection of notes on IA64 MCA and INIT processing
- Serial Devices
- Recipe for getting/building/running Xen/ia64 with pv_ops
- m68k アーキテクチャ
- MIPS 固有のドキュメント
- Linux on the Nios II architecture
- OpenRISC アーキテクチャ
- PA-RISC アーキテクチャ
- powerpc
- The PowerPC boot wrapper
- CPU Families
- CPU Features
- Coherent Accelerator Interface (CXL)
- Coherent Accelerator (CXL) Flash
- DAWR issues on POWER9
- DSCR (Data Stream Control Register)
- PCI Bus EEH Error Recovery
- ELF Note PowerPC Namespace
- Firmware-Assisted Dump
- HVCS IBM "Hypervisor Virtual Console Server" Installation Guide
- CPU to ISA Version Mapping
- Linux 2.6.x on MPC52xx family
- PCI Express I/O Virtualization Resource on Powerenv
- PMU Event Based Branches
- Ptrace
- Freescale QUICC Engine Firmware Uploading
- Power Architecture 64-bit Linux system call ABI
- Transactional Memory support
- Protected Execution Facility
- RISC-V アーキテクチャ
- s390 アーキテクチャ
- Linux for S/390 and zSeries
- IBM 3270 Display System support
- S/390 driver model interfaces
- Linux API for read access to z/VM Monitor Records
- IBM s390 QDIO Ethernet Driver
- S390 Debug Feature
- Adjunct Processor (AP) facility
- vfio-ccw: the basic infrastructure
- The s390 SCSI dump tool (zfcpdump)
- S/390 common I/O-Layer
- ibm 3270 changelog
- ibm 3270 config3270.sh
- SuperH インターフェイスガイド
- Sparc Architecture
- x86-specific Documentation
- 1. The Linux/x86 Boot Protocol
- 2. x86 Topology
- 3. Kernel level exception handling
- 4. Kernel Stacks
- 5. Kernel Entries
- 6. Early Printk
- 7. ORC unwinder
- 8. Zero Page
- 9. The TLB
- 10. MTRR (Memory Type Range Register) control
- 11. PAT (Page Attribute Table)
- 12. Intel(R) Memory Protection Extensions (MPX)
- 13. Linux IOMMU Support
- 14. Intel(R) TXT Overview
- 15. AMD Memory Encryption
- 16. Page Table Isolation (PTI)
- 17. Microarchitectural Data Sampling (MDS) mitigation
- 18. The Linux Microcode Loader
- 19. User Interface for Resource Control feature
- 20. USB Legacy support
- 21. i386 Support
- 22. x86_64 Support
- Xtensa アーキテクチャ
ファイルシステムのドキュメント¶
このセクションでは特定のファイルシステムのドキュメントを記載しています。
日本語訳¶
この日本語訳は ArchWiki の副読本として日本 Arch Linux ユーザー会のメンテナが非公式に翻訳・編集しています。翻訳文の提案や改善は https://github.com/kusakata/linux で受け付けています。