Here is a brief overview of the files in the userprog directory.
-
exception.c
exception.h:
When a user process performs a privileged or prohibited operation, it traps into the kernel as an "exception" or "fault."(3) These files handle exceptions. -
gdt.c
gdt.h:
The 80x86 is a segmented architecture. The Global Descriptor Table (GDT) is a table that describes the segments in use. These files set up the GDT. -
pagedir.c
pagedir.h:
A simple manager for 80x86 hardware page tables. See section 4.1.2.3 Page Tables, for more information. -
process.c
process.h:
Loads ELF binaries and starts processes. -
syscall.c
syscall.h:
Whenever a user process wants to access some kernel functionality, it invokes a system call. -
tss.c
tss.h:
The Task-State Segment (TSS) is used for 80x86 architectural task switching. Pintos uses the TSS only for switching stacks when a user process enters an interrupt handler, as does Linux. -
Make.vars:
Makefile variables specific to the userprog directory. -
Makefile:
Makefile for building the userprog directory.