实例介绍
《Orange S:一个操作系统的实现》从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。本书分上下两篇,共11章。其中每一章都以前一章的工作成果为基础,实现一项新的功能。而在章的内部,一项大的功能被分解成许多小的步骤,通过完成每个小的步骤,读者可以不断获得阶段性的成果,从而让整个开发过程变得轻松并且有趣。 本书适合各类程序员、程序开发爱好者阅读,也可作为高等院校操作系统课程的实践参考书。
【实例截图】
【核心代码】
4744300845395344377.zip
└── Orange S:一个操作系统的实现(有光盘)
├── Bochs-2.5.zip
├── nasm-2.07-installer.exe
└── ORANGE’S:一个操作系统的实现
├── ORANGE’S:一个操作系统的实现.pdf
└── Orange's一个操作系统的实现(随书光盘)
├── chapter1
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ └── boot.asm
│ └── b
│ ├── a.img
│ ├── bochsrc
│ └── boot.asm
├── chapter10
│ ├── a
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ ├── b
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ ├── c
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── command
│ │ │ ├── echo.c
│ │ │ ├── Makefile
│ │ │ ├── pwd.c
│ │ │ └── start.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ ├── d
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── command
│ │ │ ├── echo.c
│ │ │ ├── Makefile
│ │ │ ├── pwd.c
│ │ │ └── start.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exec.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── stat.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── exec.c
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ └── e
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── command
│ │ ├── echo.c
│ │ ├── Makefile
│ │ ├── pwd.c
│ │ └── start.asm
│ ├── fs
│ │ ├── disklog.c
│ │ ├── link.c
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── exec.c
│ │ ├── exit.c
│ │ ├── fork.c
│ │ ├── getpid.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── stat.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── syslog.c
│ │ ├── unlink.c
│ │ ├── vsprintf.c
│ │ ├── wait.c
│ │ └── write.c
│ ├── Makefile
│ ├── mm
│ │ ├── exec.c
│ │ ├── forkexit.c
│ │ └── main.c
│ └── scripts
│ ├── genlog
│ └── splitgraphs
├── chapter11
│ ├── a
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── hdboot.asm
│ │ │ ├── hdloader.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── command
│ │ │ ├── echo.c
│ │ │ ├── Makefile
│ │ │ ├── pwd.c
│ │ │ └── start.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exec.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── lseek.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── stat.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── exec.c
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ ├── b
│ │ ├── 80m.img.gz
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── hdboot.asm
│ │ │ ├── hdldr.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── command
│ │ │ ├── echo.c
│ │ │ ├── Makefile
│ │ │ ├── pwd.c
│ │ │ └── start.asm
│ │ ├── fs
│ │ │ ├── disklog.c
│ │ │ ├── link.c
│ │ │ ├── main.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ └── read_write.c
│ │ ├── grubinst
│ │ ├── include
│ │ │ ├── stdio.h
│ │ │ ├── string.h
│ │ │ ├── sys
│ │ │ │ ├── config.h
│ │ │ │ ├── console.h
│ │ │ │ ├── const.h
│ │ │ │ ├── fs.h
│ │ │ │ ├── global.h
│ │ │ │ ├── hd.h
│ │ │ │ ├── keyboard.h
│ │ │ │ ├── keymap.h
│ │ │ │ ├── proc.h
│ │ │ │ ├── protect.h
│ │ │ │ ├── proto.h
│ │ │ │ ├── sconst.inc
│ │ │ │ └── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── hd.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── systask.c
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── close.c
│ │ │ ├── exec.c
│ │ │ ├── exit.c
│ │ │ ├── fork.c
│ │ │ ├── getpid.c
│ │ │ ├── lseek.c
│ │ │ ├── misc.c
│ │ │ ├── open.c
│ │ │ ├── printf.c
│ │ │ ├── read.c
│ │ │ ├── stat.c
│ │ │ ├── string.asm
│ │ │ ├── syscall.asm
│ │ │ ├── syslog.c
│ │ │ ├── unlink.c
│ │ │ ├── vsprintf.c
│ │ │ ├── wait.c
│ │ │ └── write.c
│ │ ├── Makefile
│ │ ├── mm
│ │ │ ├── exec.c
│ │ │ ├── forkexit.c
│ │ │ └── main.c
│ │ └── scripts
│ │ ├── genlog
│ │ └── splitgraphs
│ └── c
│ ├── 100m.img
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── hdboot.asm
│ │ ├── hdldr.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── command
│ │ ├── echo.c
│ │ ├── Makefile
│ │ ├── pwd.c
│ │ └── start.asm
│ ├── fs
│ │ ├── disklog.c
│ │ ├── link.c
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── exec.c
│ │ ├── exit.c
│ │ ├── fork.c
│ │ ├── getpid.c
│ │ ├── lseek.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── stat.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── syslog.c
│ │ ├── unlink.c
│ │ ├── vsprintf.c
│ │ ├── wait.c
│ │ └── write.c
│ ├── Makefile
│ ├── mm
│ │ ├── exec.c
│ │ ├── forkexit.c
│ │ └── main.c
│ └── scripts
│ ├── genlog
│ ├── invalidate.hd
│ └── splitgraphs
├── chapter2
│ ├── linux
│ │ ├── a.img
│ │ ├── bochsrc
│ │ └── boot.asm
│ └── win
│ ├── a.img
│ ├── bochsrc.bxrc
│ └── run.bat
├── chapter3
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── pm.inc
│ │ ├── pmtest1.asm
│ │ └── pmtest1b.asm
│ ├── b
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest2.asm
│ ├── c
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest3.asm
│ ├── d
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest4.asm
│ ├── e
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ ├── pmtest5a.asm
│ │ ├── pmtest5.asm
│ │ ├── pmtest5b.asm
│ │ └── pmtest5c.asm
│ ├── f
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest6.asm
│ ├── g
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── lib.inc
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest7.asm
│ ├── h
│ │ ├── bochsrc
│ │ ├── freedos.img
│ │ ├── lib.inc
│ │ ├── Makefile
│ │ ├── pm.img
│ │ ├── pm.inc
│ │ └── pmtest8.asm
│ └── i
│ ├── bochsrc
│ ├── freedos.img
│ ├── lib.inc
│ ├── Makefile
│ ├── pm.img
│ ├── pm.inc
│ ├── pmtest9a.asm
│ ├── pmtest9.asm
│ ├── pmtest9b.asm
│ └── pmtest9c.asm
├── chapter4
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ └── Makefile
│ ├── b
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ ├── loader.asm
│ │ └── Makefile
│ └── c
│ ├── a.img
│ ├── bochsrc
│ ├── boot.asm
│ ├── loader.asm
│ └── Makefile
├── chapter5
│ ├── a
│ │ └── hello.asm
│ ├── b
│ │ ├── bar.c
│ │ ├── foo.asm
│ │ └── Makefile
│ ├── c
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ ├── fat12hdr.inc
│ │ ├── kernel.asm
│ │ ├── loader.asm
│ │ └── Makefile
│ ├── d
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ ├── fat12hdr.inc
│ │ ├── kernel.asm
│ │ ├── lib.inc
│ │ ├── loader.asm
│ │ ├── load.inc
│ │ ├── Makefile
│ │ └── pm.inc
│ ├── e
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ ├── fat12hdr.inc
│ │ ├── kernel.asm
│ │ ├── loader.asm
│ │ ├── load.inc
│ │ ├── Makefile
│ │ └── pm.inc
│ ├── f
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot.asm
│ │ ├── const.h
│ │ ├── fat12hdr.inc
│ │ ├── kernel.asm
│ │ ├── kliba.asm
│ │ ├── loader.asm
│ │ ├── load.inc
│ │ ├── pm.inc
│ │ ├── protect.h
│ │ ├── start.c
│ │ ├── string.asm
│ │ └── type.h
│ ├── g
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ ├── loader.asm
│ │ │ └── Makefile
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── protect.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── kernel.asm
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ └── string.asm
│ │ ├── Makefile
│ │ └── Makefile.boot
│ ├── h
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ ├── Makefile
│ │ └── Makefile.1
│ └── i
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── include
│ │ ├── const.h
│ │ ├── global.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── string.h
│ │ └── type.h
│ ├── kernel
│ │ ├── global.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── protect.c
│ │ └── start.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ └── string.asm
│ ├── Makefile
│ └── Makefile.1
├── chapter6
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── b
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel1.asm
│ │ │ ├── kernel2.asm
│ │ │ ├── kernel3.asm
│ │ │ ├── kernel4.asm
│ │ │ ├── kernel5.asm
│ │ │ ├── kernel.final.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── c
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel1.asm
│ │ │ ├── kernel2.asm
│ │ │ ├── kernel3.asm
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── d
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── e
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── f
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── g
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── h
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── i
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── j
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── k
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── protect.c
│ │ │ └── start.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── l
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── m
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── n
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── o
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── p
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── q
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ └── r
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── include
│ │ ├── const.h
│ │ ├── global.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── global.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ └── syscall.asm
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ └── string.asm
│ └── Makefile
├── chapter7
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── b
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ └── syscall.asm
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── c
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── d
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── e
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── f
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── g
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── h
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── i
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── j
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── k
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── l
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── m
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ ├── n
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ └── tty.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ └── string.asm
│ │ └── Makefile
│ └── o
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── include
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── global.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ └── string.asm
│ └── Makefile
├── chapter8
│ ├── a
│ │ ├── a.img
│ │ ├── bochsrc
│ │ ├── boot
│ │ │ ├── boot.asm
│ │ │ ├── include
│ │ │ │ ├── fat12hdr.inc
│ │ │ │ ├── load.inc
│ │ │ │ └── pm.inc
│ │ │ └── loader.asm
│ │ ├── include
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── global.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ ├── string.h
│ │ │ ├── tty.h
│ │ │ └── type.h
│ │ ├── kernel
│ │ │ ├── clock.c
│ │ │ ├── console.c
│ │ │ ├── global.c
│ │ │ ├── i8259.c
│ │ │ ├── kernel.asm
│ │ │ ├── keyboard.c
│ │ │ ├── main.c
│ │ │ ├── printf.c
│ │ │ ├── proc.c
│ │ │ ├── protect.c
│ │ │ ├── start.c
│ │ │ ├── syscall.asm
│ │ │ ├── systask.c
│ │ │ ├── tty.c
│ │ │ └── vsprintf.c
│ │ ├── lib
│ │ │ ├── kliba.asm
│ │ │ ├── klib.c
│ │ │ ├── misc.c
│ │ │ └── string.asm
│ │ └── Makefile
│ └── _base_
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── include
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── global.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ └── string.asm
│ └── Makefile
└── chapter9
├── a
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ └── main.c
│ ├── include
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── fs.h
│ │ ├── global.h
│ │ ├── hd.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── systask.c
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ └── string.asm
│ └── Makefile
├── b
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ └── main.c
│ ├── include
│ │ ├── config.h
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── fs.h
│ │ ├── global.h
│ │ ├── hd.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── systask.c
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ └── string.asm
│ └── Makefile
├── c
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ └── main.c
│ ├── include
│ │ ├── config.h
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── fs.h
│ │ ├── global.h
│ │ ├── hd.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── systask.c
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ └── string.asm
│ └── Makefile
├── d
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ └── main.c
│ ├── include
│ │ ├── config.h
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── fs.h
│ │ ├── global.h
│ │ ├── hd.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ ├── string.h
│ │ ├── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── printf.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── syscall.asm
│ │ ├── systask.c
│ │ ├── tty.c
│ │ └── vsprintf.c
│ ├── lib
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ └── string.asm
│ └── Makefile
├── e
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ ├── main.c
│ │ ├── misc.c
│ │ └── open.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ └── vsprintf.c
│ ├── Makefile
│ └── tmp
│ ├── f.c
│ └── Makefile
├── f
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── vsprintf.c
│ │ └── write.c
│ └── Makefile
├── g
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ ├── disklog.c
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── genlog
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── getpid.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── syslog.c
│ │ ├── vsprintf.c
│ │ └── write.c
│ ├── Makefile
│ └── splitgraphs
├── h
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ ├── disklog.c
│ │ ├── link.c
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── getpid.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── syslog.c
│ │ ├── unlink.c
│ │ ├── vsprintf.c
│ │ └── write.c
│ ├── Makefile
│ └── scripts
│ ├── genlog
│ └── splitgraphs
├── i
│ ├── 80m.img.gz
│ ├── a.img
│ ├── bochsrc
│ ├── boot
│ │ ├── boot.asm
│ │ ├── include
│ │ │ ├── fat12hdr.inc
│ │ │ ├── load.inc
│ │ │ └── pm.inc
│ │ └── loader.asm
│ ├── fs
│ │ ├── disklog.c
│ │ ├── link.c
│ │ ├── main.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ └── read_write.c
│ ├── include
│ │ ├── stdio.h
│ │ ├── string.h
│ │ ├── sys
│ │ │ ├── config.h
│ │ │ ├── console.h
│ │ │ ├── const.h
│ │ │ ├── fs.h
│ │ │ ├── global.h
│ │ │ ├── hd.h
│ │ │ ├── keyboard.h
│ │ │ ├── keymap.h
│ │ │ ├── proc.h
│ │ │ ├── protect.h
│ │ │ ├── proto.h
│ │ │ ├── sconst.inc
│ │ │ └── tty.h
│ │ └── type.h
│ ├── kernel
│ │ ├── clock.c
│ │ ├── console.c
│ │ ├── global.c
│ │ ├── hd.c
│ │ ├── i8259.c
│ │ ├── kernel.asm
│ │ ├── keyboard.c
│ │ ├── main.c
│ │ ├── proc.c
│ │ ├── protect.c
│ │ ├── start.c
│ │ ├── systask.c
│ │ └── tty.c
│ ├── lib
│ │ ├── close.c
│ │ ├── getpid.c
│ │ ├── kliba.asm
│ │ ├── klib.c
│ │ ├── misc.c
│ │ ├── open.c
│ │ ├── printf.c
│ │ ├── read.c
│ │ ├── string.asm
│ │ ├── syscall.asm
│ │ ├── syslog.c
│ │ ├── unlink.c
│ │ ├── vsprintf.c
│ │ └── write.c
│ ├── Makefile
│ └── scripts
│ ├── genlog
│ └── splitgraphs
└── j
├── 80m.img.gz
├── a.img
├── bochsrc
├── boot
│ ├── boot.asm
│ ├── include
│ │ ├── fat12hdr.inc
│ │ ├── load.inc
│ │ └── pm.inc
│ └── loader.asm
├── fs
│ ├── disklog.c
│ ├── link.c
│ ├── main.c
│ ├── misc.c
│ ├── open.c
│ └── read_write.c
├── include
│ ├── stdio.h
│ ├── string.h
│ ├── sys
│ │ ├── config.h
│ │ ├── console.h
│ │ ├── const.h
│ │ ├── fs.h
│ │ ├── global.h
│ │ ├── hd.h
│ │ ├── keyboard.h
│ │ ├── keymap.h
│ │ ├── proc.h
│ │ ├── protect.h
│ │ ├── proto.h
│ │ ├── sconst.inc
│ │ └── tty.h
│ └── type.h
├── kernel
│ ├── clock.c
│ ├── console.c
│ ├── global.c
│ ├── hd.c
│ ├── i8259.c
│ ├── kernel.asm
│ ├── keyboard.c
│ ├── main.c
│ ├── proc.c
│ ├── protect.c
│ ├── start.c
│ ├── systask.c
│ └── tty.c
├── lib
│ ├── close.c
│ ├── getpid.c
│ ├── kliba.asm
│ ├── klib.c
│ ├── misc.c
│ ├── open.c
│ ├── printf.c
│ ├── read.c
│ ├── string.asm
│ ├── syscall.asm
│ ├── syslog.c
│ ├── unlink.c
│ ├── vsprintf.c
│ └── write.c
├── Makefile
└── scripts
├── genlog
└── splitgraphs
430 directories, 2350 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论