How microsoft/wsl2-linux-kernel works
This repository is the source for the WSL2 Linux kernel: a general-purpose operating-system kernel, not a standalone WSL application. Its runtime spans kernel startup, architecture support, device drivers, media and crypto processing, and filesystems. The README describes the WSL2 purpose but not host-to-kernel runtime wiring. The graph therefore shows that relationship as unverified; other links are limited to calls or reads visible in sampled excerpts.
Main entry points: f_mass_storage.h Mass storage interface · ccp-dmaengine.c CCP DMA driver · adf_accel_engine.c QAT engine · ptdma-dmaengine.c AMD PTDMA
Components 24
Kernel and architecture
- Kernel startup
init/main.c - Alpha support
arch/alpha/kernel/setup.c - ARM support
arch/arm/kernel/devtree.c - ARC support
arch/arc/kernel/setup.c
Crypto and DMA
- Crypto engine
crypto/crypto_engine.c - CCP DMA driver
drivers/crypto/ccp/ccp-dmaengine.c - CCP device state
drivers/crypto/ccp/ccp-dev.h - QAT engine
drivers/crypto/intel/qat/qat_common/adf_accel_engine.c - QAT device state
drivers/crypto/intel/qat/qat_common/adf_accel_devices.h - DMA framework
drivers/dma/dmaengine.c - DMA API
drivers/dma/dmaengine.h - AMD PTDMA
drivers/dma/amd/ptdma/ptdma-dmaengine.c - PTDMA state
drivers/dma/amd/ptdma/ptdma.h
Device and media
- i915 engines
drivers/gpu/drm/i915/gt/intel_engine_cs.c - i915 context
drivers/gpu/drm/i915/gt/intel_context.h - Xe engines
drivers/gpu/drm/xe/xe_hw_engine.c - AtomISP pipeline
drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c - AtomISP pipeline API
drivers/staging/media/atomisp/pci/runtime/pipeline/interface/ia_css_pipeline.h
USB and filesystems
- USB mass storage
drivers/usb/gadget/function/f_mass_storage.c - Mass storage interface
drivers/usb/gadget/function/f_mass_storage.h - Storage common
drivers/usb/gadget/function/storage_common.h - RomFS storage
fs/romfs/storage.c
Other components
- WSL2 host
- Block device
Connections 9
- WSL2 host → Kernel startup: hosts (unverified)
- QAT engine → QAT device state: uses device state
drivers/crypto/intel/qat/qat_common/adf_accel_engine.c - CCP DMA driver → CCP device state: uses device state
drivers/crypto/ccp/ccp-dmaengine.c - AMD PTDMA → PTDMA state: uses device state
drivers/dma/amd/ptdma/ptdma-dmaengine.c - i915 engines → i915 context: uses context
drivers/gpu/drm/i915/gt/intel_engine_cs.c - AtomISP pipeline → AtomISP pipeline API: calls pipeline API
drivers/staging/media/atomisp/pci/runtime/pipeline/src/pipeline.c - USB mass storage → Mass storage interface: uses interface
drivers/usb/gadget/function/f_mass_storage.c - Mass storage interface → Storage common: uses definitions
drivers/usb/gadget/function/f_mass_storage.h - RomFS storage → Block device: reads image
fs/romfs/storage.c