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

posted @ 2015-11-09 22:28  TT-小白  阅读(610)  评论(0编辑  收藏  举报