xV6 OS 调试
1.xV6之进程
struct proc{
uint sz; // Size of process memory (bytes)
pde_t* pgdir; // Page table
char *kstack; // Bottom of kernel stack for this process
enum procstate state; // Process state
volatile int pid; // Process ID
struct proc *parent; // Parent process
struct trapframe *tf; // Trap frame for current syscall
struct context *context; // swrch() here to run process
void *chan; // If non-zero, sleeping on chan
int killed; // If non-zero, have been killed
struct file *ofile[NOFILE]; // Open files
struct inode *cwd; // Current directory
char name[16]; // Process name (debugging)
};
Code: File descriptors
Code: Pipes
Code: File system
Code: entry page table
Code: Creating an address space
Code: Physical memory allocator
Code: Process creation
Code: Running a process
Code: exec
----------------------------------------
Chapter 2
Code: The first system call
Code: Assembly trap handlers
Code: C trap handler
Code: System calls
Code: Interrupts
Code: Disk driver
---------------------------------------
Chapter 3
Code: Locks
Code: Using Locks
---------------------------------------
Chapter 4
Code: Context switching
Code: Scheduling
Code: Sleep and wakeup
Code: Pipes
Code: Wait and exit
Code: Buffer cache
Code: logging
Code: Block allocator
Code: Inodes
Code: Inode contents
Code: directory layer
Code: Path names
Code: System calls
Code: Assembly bootstrap
Code: C bootstrap

浙公网安备 33010602011771号