How jimingkang/xv6-aarch64 works
This repository combines an xv6 AArch64 teaching OS with a trace-to-animation workflow. The documented user path is to run the GDB trace client, export its log as a web animation, then inspect the generated HTML. The kernel’s process, virtual-memory, syscall, and filesystem areas are retained as distinct OS responsibilities, but their internal call graph is not established by the excerpts. The README supports the trace-tool sequence; unsampled kernel connections are omitted rather than inferred.
Main entry points: fs.c Inodes and paths · run_trace_commands.py GDB trace client · export_trace_web.py Web exporter · bio.c Block cache
Components 21
Trace workflow
- GDB trace client
tools/run_trace_commands.py - Trace capture
tools/trace_xv6.py - Web exporter
tools/export_trace_web.py - Trace animation
tools/animate_trace.py - Trace HTML
Process and syscall
- Process scheduler
kernel/proc.c - Syscall dispatch
kernel/syscall.c - File syscalls
kernel/sysfile.c - Program loading
kernel/exec.c
Memory and hardware
- Kernel startup
kernel/main.c - Virtual memory
kernel/vm.c - Page allocator
kernel/kalloc.c
Filesystem and I/O
- Inodes and paths
kernel/fs.c - Block cache
kernel/bio.c - Virtio disk
kernel/virtio_disk.c - Filesystem log
kernel/log.c
User programs
- Command shell
user/sh.c - Init process
user/init.c - User commands
user - User syscall tests
user/usertests.c
Other components
- Engineer
Connections 6
- Engineer → GDB trace client: runs trace
README - GDB trace client → Web exporter: then exports
README - Web exporter → Trace HTML: creates animation
README - Engineer → Trace HTML: inspects
README - Inodes and paths → Block cache: reads blocks
kernel/fs.c - Inodes and paths → Filesystem log: logs updates
kernel/fs.c