The official doc mentions the quick start dev video and the subsystems links. And it present briefly every folder.

  • accel: Infrastructure and architecture agnostic code related to the various accelerators supported by QEMU (TCG, KVM, hvf, whpx, xen, nvmm, mshv). Contains interfaces for operations that will be implemented per target
  • audio: Audio(host) support
  • authz: QEMU authorization framework
  • backends: Various backends that are used to access resources on the host (e.g. for random number generation, memory backing or cryptographic functions)
  • block: Block devices and image formats implementation
  • bsk-user: BSD User Mode
  • build: where the code built goes by default.
  • chardev: Various backends used by char devices
  • common-user: User-mode assembly code for dealing with signals occuring during syscalls
  • configs: makefiles defining configuration to build QEMU
  • contrib: Communitry contributed devices/plugins/tools
  • crypto: Cryptographic algorithms used in QEMU
  • disas: Disassembly functions used by QEMU target code
  • docs: QEMU documentation
  • dump: Code to dump memory of a running VM
  • ebpf: eBPF program support in QEMU. virtio-net RSS uses it
  • fpu: Floating-point software emulation
  • fsdev: VirtFS support
  • gdbstub: GDB support
  • host: Various architecture specific header files(crypto, atomic, memory operations)
  • linux-headers: A subset of headers imported from Linux kernel and used for implementing KVM support and user-mode
  • linux-users: User mode implementation. Contains one folder per target architecture
  • include: All headers associated to different subsystems in QEMU
  • hw: Devices and boards emulation. Devices are categorized by type/protocol/architecture and located in associated subfolder.
  • io: QEMU I/O channels
  • libdecnumber: Import of gcc library, used to implement decimal number arithmetic
  • migration: Migration framework
  • monitor: Monitor implementation (HMP & QMP)
  • nbd: QEMU NBD(Network Block Device) server.
  • net: Network (host) support
  • pc-bios: Contains pre-built fireware binaries and boot images, ready to use in QEMU without compilation
  • plugins: TCG plugins core implementation. Plugins can be found in tests and contrib folders
  • po: Translation files
  • python: Python part of our build/test system
  • qapi: QAPI implementation (json schema)
  • qobject: QEMU Object implementation
  • qga: QEMU Guest agent implementation
  • qom: QEMU Object Model implementation, with monitor associated commands
  • replay: QEMU Record/replay implementation
  • roms: Contains source code for various firmware and ROMs, which can be compiled if custom or updated version are needed
  • rust: Rust integration in QEMU. It contains the new interfaces defined and associated devices using it
  • scripts: Collection of scripts used in build and test systems, and various tools for QEMU codebase and execution traces
  • scsi: Code releated to SCSI support, used by SCSI devices
  • semihosting: QEMU Semihosting implementation
  • stats: Monitor stats commands implementation
  • storage-daemon: QEMU Storage daemon implementation
  • stubs: Various stubs (empty functions) used to compile QEMU with specific configurations
  • subprojects: QEMU submodules used by QEMU build system
  • system: QEMU system mode implementation (cpu, mmu, boot support)
  • target: Contains code for all target architectures supported (one subfolder per arch). For every arch, you can find accelerator specific implementations
  • tcg: TCG related code. Contains one subforlder per host supported arch.
  • test
  • trace: Tracing framework. Used to print information associated to various events during execution
  • ui: QEMU User interfaces
  • util: Utility code used by others pargs of QEMU