The Linux Kernel
6.5.0-rc7
Quick search
Contents
A guide to the Kernel Development Process
Submitting patches: the essential guide to getting your code into the kernel
Code of conduct
Kernel Maintainer Handbook
All development-process docs
Core API Documentation
Driver implementer's API guide
Kernel subsystem documentation
Human interfaces
Storage interfaces
Filesystems in the Linux kernel
Block
CD-ROM
SCSI Subsystem
TCM Virtual Device
Driver implementer's API guide
Core API Documentation
Locking
Accounting
CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
FPGA
I2C/SMBus Subsystem
Industrial I/O
ISDN
InfiniBand
LEDs
NetLabel
Networking
PCMCIA
Power Management
Timers
Serial Peripheral Interface (SPI)
1-Wire Subsystem
Watchdog Support
Virtualization Support
Hardware Monitoring
Compute Accelerators
Security Documentation
Crypto API
Memory Management Documentation
BPF Documentation
USB support
PCI Bus Subsystem
Assorted Miscellaneous Devices Documentation
Scheduler
MHI
PECI Subsystem
WMI Subsystem
Locking in the kernel
Linux kernel licensing rules
How to write kernel documentation
Development tools for the kernel
Kernel Testing Guide
Kernel Hacking Guides
Linux Tracing Technologies
fault-injection
Kernel Livepatching
Rust
The Linux kernel user's and administrator's guide
The kernel build system
Reporting issues
User-space tools
The Linux kernel user-space API guide
The Linux kernel firmware guide
Open Firmware and Devicetree
CPU Architectures
Unsorted Documentation
Translations
This Page
Show Source
ext4 Data Structures and Algorithms
ΒΆ
1. About this Book
1.1. License
1.2. Terminology
1.3. Other References
2. High Level Design
2.1. Blocks
2.2. Layout
2.3. Flexible Block Groups
2.4. Meta Block Groups
2.5. Lazy Block Group Initialization
2.6. Special inodes
2.7. Block and Inode Allocation Policy
2.8. Checksums
2.9. Bigalloc
2.10. Inline Data
2.10.1. Inline Directories
2.11. Large Extended Attribute Values
2.12. Verity files
3. Global Structures
3.1. Super Block
3.2. Block Group Descriptors
3.3. Block and inode Bitmaps
3.4. Inode Table
3.5. Multiple Mount Protection
3.6. Journal (jbd2)
3.6.1. Layout
3.6.2. External Journal
3.6.3. Block Header
3.6.4. Super Block
3.6.5. Descriptor Block
3.6.6. Data Block
3.6.7. Revocation Block
3.6.8. Commit Block
3.6.9. Fast commits
3.6.10. Fast Commit Replay Idempotence
3.6.11. Journal Checkpoint
3.7. Orphan file
4. Dynamic Structures
4.1. Index Nodes
4.1.1. Inode Size
4.1.2. Finding an Inode
4.1.3. Inode Timestamps
4.2. The Contents of inode.i_block
4.2.1. Symbolic Links
4.2.2. Direct/Indirect Block Addressing
4.2.3. Extent Tree
4.2.4. Inline Data
4.3. Directory Entries
4.3.1. Linear (Classic) Directories
4.3.2. Hash Tree Directories
4.4. Extended Attributes
4.4.1. Attribute Name Indices
4.4.2. POSIX ACLs