Skip to content

Commit ef3b924

Browse files
author
solrex
committed
Added Makefiles for convenience.
1 parent 1a34fa7 commit ef3b924

File tree

11 files changed

+1757
-1
lines changed

11 files changed

+1757
-1
lines changed

Makefile

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
BOOKVER := 1.0-2-weekly
2+
3+
all: pdf
4+
5+
.PHONY: pdf
6+
pdf: ./pdf/
7+
make -C ./pdf/
8+
9+
.PHONY: src
10+
src: ./src/
11+
make -C ./src/
12+
13+
copy: src
14+
make -C ./src/ copy
15+
16+
.PHONY: release
17+
release: pdf/WriteOS.pdf
18+
mkdir -p release; \
19+
cp pdf/WriteOS.pdf release/writeos-$(BOOKVER).pdf; \
20+
make -C ./src/ release; \
21+
cp -r src release/writeos-$(BOOKVER); \
22+
cd release; \
23+
rm -rf `find -name ".svn"`; \
24+
tar -czvf writeos-$(BOOKVER).tar.gz writeos-$(BOOKVER)
25+
26+
clean:
27+
make -C ./pdf
28+
make -C ./src

pdf/003.tex

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,9 +598,13 @@ \subsection{栈切换和~TSS}
598598
\VerbatimInput[fontfamily=tt,fontsize=\footnotesize,frame=lines, framerule=0.4mm, numbers=left, numbersep=3pt, tabsize=2, firstline=227, lastline=232]{../src/chapter3/5/loader.S}
599599
\codecaption{加载~TSS~段选择子到~TR~寄存器(节自 chapter3/5/loader.S)}\label{CHpm_tss_load}
600600
601-
将得到的代码编译成镜像,运行结果如图~\ref{}~所示。由于我们
601+
将得到的代码编译成镜像,运行结果如图~\ref{vb_run_10}~所示。我们可以看到这次在图~\ref{vb_run_9}~的基础上多打印了一个~'C'~字然后陷入了死循环,说明了我们成功达到了调用门跨特权级转移的目的。这个示例程序实现了从~ring 3~代码段转移到~ring 0~代码段,然后再返回~ring 3~进入死循环。
602+
603+
\FIG{跨特权级的调用门转移}{vb_run_10}{.75\textwidth}
602604
603605
为方便阅读,本节最终的~loader.S~全部代码如图~\ref{CHpm_loader5}:
604606
605607
\VerbatimInput[fontfamily=tt,fontsize=\footnotesize,frame=lines, framerule=0.4mm, numbers=left, numbersep=3pt, tabsize=2]{../src/chapter3/5/loader.S}
606608
\codecaption{chapter3/5/loader.S}\label{CHpm_loader5}
609+
610+
\section{页式存储}

pdf/images/vb_run_10.eps

Lines changed: 1672 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Makefile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
SUBDIRS = ./chapter2/1 ./chapter2/2 ./chapter3/1 ./chapter3/2 ./chapter3/3 \
3+
./chapter3/4 ./chapter3/5
4+
5+
all:
6+
for dir in $(SUBDIRS); do \
7+
$(MAKE) -C $$dir; \
8+
done
9+
10+
copy:
11+
for dir in $(SUBDIRS); do \
12+
$(MAKE) -C $$dir copy; \
13+
done
14+
15+
clean:
16+
for dir in $(SUBDIRS); do \
17+
$(MAKE) -C $$dir clean; \
18+
done
19+
20+
distclean:
21+
for dir in $(SUBDIRS); do \
22+
$(MAKE) -C $$dir distclean; \
23+
done
24+
25+
release:
26+
for dir in $(SUBDIRS); do \
27+
$(MAKE) -C $$dir release; \
28+
done; \
29+
chown solrex `find -name "solrex.img"`

src/chapter2/1/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ boot.elf: boot.o
2828
boot.o: boot.S
2929
$(CC) -c boot.S
3030

31+
copy: boot.img
32+
3133
clean:
3234
@rm -f boot.o boot.elf boot.bin
3335

3436
distclean: clean
3537
@rm -f boot.img
38+
39+
release: clean
40+
@mv boot.img solrex.img

src/chapter2/2/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ clean:
5454

5555
distclean: clean
5656
@rm -f boot.img
57+
58+
release: clean
59+
@mv boot.img solrex.img

src/chapter3/1/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ clean:
5454

5555
distclean: clean
5656
@rm -f boot.img
57+
58+
release: clean
59+
@mv boot.img solrex.img

src/chapter3/2/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ clean:
5454

5555
distclean: clean
5656
@rm -f boot.img
57+
58+
release: clean
59+
@mv boot.img solrex.img

src/chapter3/3/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ clean:
5454

5555
distclean: clean
5656
@rm -f boot.img
57+
58+
release: clean
59+
@mv boot.img solrex.img

src/chapter3/4/Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,6 @@ clean:
5454

5555
distclean: clean
5656
@rm -f boot.img
57+
58+
release: clean
59+
@mv boot.img solrex.img

0 commit comments

Comments
 (0)