요약 버전이다
userprog
(하지만 커널 전반 영향 큼)#ifdef VM
내부 금지, #ifndef VM
는 3에서 대체됨process.c/.h
: ELF 로드, 프로세스 시작syscall.c/.h
: 시스템 콜 핸들러/디스패치, 파라미터 검증, 파일 연산 래핑exception.c/.h
: 잘못된 접근 시 커널로 트랩(필요 시 페이지 폴트 처리 조정)syscall-entry.S
: 진입 어셈(이해만, 수정 X)gdt.c/.h
, tss.c/.h
: 읽기만(수정 불필요)0 ~ KERN_BASE(기본 0x8004000000)
(프로세스별, PML4 전환)KERN_BASE ~
(전역, 물리와 1:1 매핑)vaddr.h
, thread/mmu.c
활용. 구현 단순, 오버헤드 있음< KERN_BASE
만 확인 후 접근, 폴트 시 정리. 빠름(하드웨어 MMU), 리소스 누수 주의get_user
/put_user
)는 폴트 복구 주소를 레지스터에 심어 접근 실패 시 -1/false로 되돌려 정상 정리를 가능케 함filesys.dsk
마스터 이미지를 보관하고, 실험 전 복사본으로 실행