JM233333's Blog
  • Programming Languages

    • C
    • Python
  • Algorithms and Data Structures

    • Data Structure
    • Fundamental Algorithms
    • Graph Theory
  • GNU Toolchain

    • Bash
    • gdb
  • Development Environment

    • Ubuntu
    • QEMU
  • Development Tools

    • Git
    • VSCode
  • Operating Systems

    • Principles of Operating Systems
    • Xv6
    • Linux Kernel
  • Software Testing and Analysis

    • Software Testing
    • Software Analysis
    • Program Verification
  • LeetCode
  • XJTUOJ
  • System

    • System Performance
  • Programming

    • ...
  • Others

    • ...
  • Paper Reading

    • Model Checking
    • Fuzzing
    • Symbolic Execution
  • 3D Game Programming

    • 3D Mathematics

JM233333

弱小可怜又无助的学术废物
  • Programming Languages

    • C
    • Python
  • Algorithms and Data Structures

    • Data Structure
    • Fundamental Algorithms
    • Graph Theory
  • GNU Toolchain

    • Bash
    • gdb
  • Development Environment

    • Ubuntu
    • QEMU
  • Development Tools

    • Git
    • VSCode
  • Operating Systems

    • Principles of Operating Systems
    • Xv6
    • Linux Kernel
  • Software Testing and Analysis

    • Software Testing
    • Software Analysis
    • Program Verification
  • LeetCode
  • XJTUOJ
  • System

    • System Performance
  • Programming

    • ...
  • Others

    • ...
  • Paper Reading

    • Model Checking
    • Fuzzing
    • Symbolic Execution
  • 3D Game Programming

    • 3D Mathematics
  • principles-of-operating-systems

  • xv6

  • linux-kernel

    • Linux Kernel 00 - Introduction
    • Linux Kernel 01 - Build and Run a Tiny Linux Kernel on QEMU
    • Linux Kernel 01 - Debug the Linux Kernel
    • Linux Kernel 01 - Kernel Configuration Overview
    • Linux Kernel 02 - Build a More Complete Small-scale Kernel
      • Prerequisites
      • Preface
      • Build the Kernel with Hard Disk Support
        • Kernel Configurations
      • References
      • Appendix
    • Linux Kernel 02 - System Calls
  • operating-systems
  • linux-kernel
JM233333
2022-08-01
853

Linux Kernel 02 - Build a More Complete Small-scale Kernel

Creative Commons

# Prerequisites


# Preface


# Build the Kernel with Hard Disk Support

# Kernel Configurations

Notice : For below-mentioned options, their name and position in menuconfig GUI (5.15.57) is given, which might be different in other versions of kernel.

Required and highly-recommanded additional options are listed below :

  • [*] Enable loadable module support --->

  • [*] Enable the block layer --->

    • [*] Block layer debugging information in debugfs
  • Device Driver --->

    • [*] PCI support ---> <TODO: does tinyconfig enable this option ?>

    • SCSI device support --->

      • <*> SCSI disk support
    • <*> Serial ATA and Parallel ATA drivers (libata) --->

      • [*] ATA SFF support (for legacy IDE and PATA)

        • [*] ATA BMDMA support

          • <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support
  • File systems --->

    • <*> The Extended 4 (ext4) filesystem

      • [*] Use ext4 for ext2 file systems

      • [*] Ext4 POSIX Access Control Lists

      • [ ] Ext4 Security Labels

      • [*] Ext4 debugging support


# References

  • QEMU Documentation - Direct Linux Boot (opens new window)

# Appendix


#操作系统#Linux#Linux 内核

← Linux Kernel 01 - Kernel Configuration Overview Linux Kernel 02 - System Calls→

最近更新
01
Linux Kernel 00 - Introduction
08-01
02
Linux Kernel 01 - Build and Run a Tiny Linux Kernel on QEMU
08-01
03
Linux Kernel 01 - Debug the Linux Kernel
08-01
更多文章>
Theme by Vdoing | Copyright © 2019-2022 JM233333 | CC BY-NC-SA 4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式