__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<!DOCTYPE html>
<html lang="en" data-content_root="../../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>2. High Level Design — The Linux Kernel documentation</title>
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../../_static/alabaster.css?v=3918102e" />
<script src="../../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../../_static/doctools.js?v=9bcbadda"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="2.1. Blocks" href="blocks.html" />
<link rel="prev" title="1. About this Book" href="about.html" />
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../../index.html">
<img class="logo" src="../../_static/logo.svg" alt="Logo of The Linux Kernel"/>
</a></p>
<h1 class="logo"><a href="../../index.html">The Linux Kernel</a></h1>
<p class="blurb">6.18.50</p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>
<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../subsystem-apis.html#storage-interfaces">Storage interfaces</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../index.html">Filesystems in the Linux kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../block/index.html">Block</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../cdrom/index.html">CD-ROM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../scsi/index.html">SCSI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../target/index.html">TCM Virtual Device</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../nvme/index.html">NVMe Subsystem</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../translations/index.html">Translations</a></li>
</ul>
</div>
<script type="text/javascript"> <!--
var sbar = document.getElementsByClassName("sphinxsidebar")[0];
let currents = document.getElementsByClassName("current")
if (currents.length) {
sbar.scrollTop = currents[currents.length - 1].offsetTop;
}
--> </script>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/filesystems/ext4/overview.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="high-level-design">
<h1><span class="section-number">2. </span>High Level Design<a class="headerlink" href="#high-level-design" title="Link to this heading">¶</a></h1>
<p>An ext4 file system is split into a series of block groups. To reduce
performance difficulties due to fragmentation, the block allocator tries
very hard to keep each file’s blocks within the same group, thereby
reducing seek times. The size of a block group is specified in
<code class="docutils literal notranslate"><span class="pre">sb.s_blocks_per_group</span></code> blocks, though it can also calculated as 8 *
<code class="docutils literal notranslate"><span class="pre">block_size_in_bytes</span></code>. With the default block size of 4KiB, each group
will contain 32,768 blocks, for a length of 128MiB. The number of block
groups is the size of the device divided by the size of a block group.</p>
<p>All fields in ext4 are written to disk in little-endian order. HOWEVER,
all fields in jbd2 (the journal) are written to disk in big-endian
order.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="blocks.html">2.1. Blocks</a></li>
<li class="toctree-l1"><a class="reference internal" href="blockgroup.html">2.2. Block Groups</a><ul>
<li class="toctree-l2"><a class="reference internal" href="blockgroup.html#layout">2.2.1. Layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="blockgroup.html#flexible-block-groups">2.2.2. Flexible Block Groups</a></li>
<li class="toctree-l2"><a class="reference internal" href="blockgroup.html#meta-block-groups">2.2.3. Meta Block Groups</a></li>
<li class="toctree-l2"><a class="reference internal" href="blockgroup.html#lazy-block-group-initialization">2.2.4. Lazy Block Group Initialization</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="special_inodes.html">2.3. Special inodes</a></li>
<li class="toctree-l1"><a class="reference internal" href="allocators.html">2.4. Block and Inode Allocation Policy</a></li>
<li class="toctree-l1"><a class="reference internal" href="checksums.html">2.5. Checksums</a></li>
<li class="toctree-l1"><a class="reference internal" href="bigalloc.html">2.6. Bigalloc</a></li>
<li class="toctree-l1"><a class="reference internal" href="inlinedata.html">2.7. Inline Data</a><ul>
<li class="toctree-l2"><a class="reference internal" href="inlinedata.html#inline-directories">2.7.1. Inline Directories</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="eainode.html">2.8. Large Extended Attribute Values</a></li>
<li class="toctree-l1"><a class="reference internal" href="verity.html">2.9. Verity files</a></li>
<li class="toctree-l1"><a class="reference internal" href="atomic_writes.html">2.10. Atomic Block Writes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#introduction">2.10.1. Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#requirements">2.10.2. Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#multi-fsblock-implementation-details">2.10.3. Multi-fsblock Implementation Details</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#handling-split-extents-across-leaf-blocks">2.10.4. Handling Split Extents Across Leaf Blocks</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#handling-journal-transactions">2.10.5. Handling Journal transactions</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#how-to">2.10.6. How to</a><ul>
<li class="toctree-l3"><a class="reference internal" href="atomic_writes.html#creating-filesystems-with-atomic-write-support">2.10.6.1. Creating Filesystems with Atomic Write Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="atomic_writes.html#application-interface">2.10.6.2. Application Interface</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#hardware-support">2.10.7. Hardware Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="atomic_writes.html#see-also">2.10.8. See Also</a></li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
©The kernel development community.
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
& <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
|
<a href="../../_sources/filesystems/ext4/overview.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| about.html | File | 10.74 KB | 0644 |
|
| allocators.html | File | 11.32 KB | 0644 |
|
| atomic_writes.html | File | 23.38 KB | 0644 |
|
| attributes.html | File | 17.68 KB | 0644 |
|
| bigalloc.html | File | 9.84 KB | 0644 |
|
| bitmaps.html | File | 9.17 KB | 0644 |
|
| blockgroup.html | File | 16.02 KB | 0644 |
|
| blockmap.html | File | 10.92 KB | 0644 |
|
| blocks.html | File | 13.03 KB | 0644 |
|
| checksums.html | File | 11.76 KB | 0644 |
|
| directory.html | File | 30.85 KB | 0644 |
|
| dynamic.html | File | 10.05 KB | 0644 |
|
| eainode.html | File | 9.04 KB | 0644 |
|
| globals.html | File | 10.3 KB | 0644 |
|
| group_descr.html | File | 15.66 KB | 0644 |
|
| ifork.html | File | 23.04 KB | 0644 |
|
| index.html | File | 11.11 KB | 0644 |
|
| inlinedata.html | File | 10.18 KB | 0644 |
|
| inode_table.html | File | 8.43 KB | 0644 |
|
| inodes.html | File | 37.98 KB | 0644 |
|
| journal.html | File | 45.16 KB | 0644 |
|
| mmp.html | File | 11.48 KB | 0644 |
|
| orphan.html | File | 10.48 KB | 0644 |
|
| overview.html | File | 12.11 KB | 0644 |
|
| special_inodes.html | File | 10.42 KB | 0644 |
|
| super.html | File | 44.31 KB | 0644 |
|
| verity.html | File | 10.07 KB | 0644 |
|