Commit | Line | Data |
---|---|---|
c09f3bac DW |
1 | .. SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | High Level Design | |
4 | ================= | |
5 | ||
6 | An ext4 file system is split into a series of block groups. To reduce | |
7 | performance difficulties due to fragmentation, the block allocator tries | |
8 | very hard to keep each file's blocks within the same group, thereby | |
9 | reducing seek times. The size of a block group is specified in | |
10 | ``sb.s_blocks_per_group`` blocks, though it can also calculated as 8 \* | |
11 | ``block_size_in_bytes``. With the default block size of 4KiB, each group | |
12 | will contain 32,768 blocks, for a length of 128MiB. The number of block | |
13 | groups is the size of the device divided by the size of a block group. | |
14 | ||
15 | All fields in ext4 are written to disk in little-endian order. HOWEVER, | |
16 | all fields in jbd2 (the journal) are written to disk in big-endian | |
17 | order. | |
18 | ||
19 | .. include:: blocks.rst | |
20 | .. include:: blockgroup.rst | |
21 | .. include:: special_inodes.rst | |
22 | .. include:: allocators.rst | |
23 | .. include:: checksums.rst | |
24 | .. include:: bigalloc.rst | |
25 | .. include:: inlinedata.rst | |
26 | .. include:: eainode.rst | |
84fb7ca4 | 27 | .. include:: verity.rst |