Build๋ฅผ ํ๊ธฐ ์ํด์๋ ๋ฏธ๋ฆฌ ์์ฑํ Makefile์ ์คํํ๋ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋๋ค.
๋ค์ ๋ช
๋ น์ด๋ฅผ ์ํํ๊ฒ ๋๋ฉด test์ test2 ํ์ผ ์ด 2๊ฐ๊ฐ ์์ฑ๋๋ค.
testํ์ผ์ part1๋ง testํ๋ ํ์ผ์ด๋ฉฐ, test2ํ์ผ์ part1๊ณผ part2๋ฅผ ๋ชจ๋ testํ ์ ์๋ ํ์ผ์ด๋ค.
test์ test2 ํ์ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์กฐ๋ ๊ฐ์ผ๋ฉฐ, test2์์๋ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ผ์ scanํ๊ธฐ ์ํ
timer๋ฅผ ํธ์ถํ๋ system call์ ๋ถ๋ฅธ๋ค.
$ make
์์ฑ๋ test ์คํํ์ผ์ ์คํํ๊ธฐ ์ํ ๋ช
๋ น์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
<test์ ๊ฒฝ์ฐ>
$ ./test
<test2์ ๊ฒฝ์ฐ>
$ ./test2
์ด๋, test2์ ๊ฒฝ์ฐ์ page๋ฅผ scanํ์ฌ struct page์ ์๋ก ์ถ๊ฐํ counter ๋ณ์์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์,
์์ ๋ kernel source๋ฅผ bootํ ํ ์คํํด์ผ ์ ์์ ์ผ๋ก ๋์ํ๋ค.
kernel.diff ํ์ผ์ ์ฌ์ฉํ ์ ์๋ค.
workspace/sce394-linux-kernel-labs/kernel-utils/src/linux-5.15.4 ํด๋ ๋ด์
kernel.diff๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ ํ ํ, ๋ค์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋ค.
patch -p1 < /kernel.patch
์ดํ, workspace/sce394-linux-kernel-labs/kernel-utils ํด๋ ๋ด์์
./boot linux-5.15.4
๋ฅผ ์
๋ ฅํ๋ฉด kernel์ด boot๋๋ค.