Pintos ์ค์น ์ํ ์ฐฉ์ค
๋ณธ ํ์ด์ง์์๋ ์ ๊ฐ Pintos๋ฅผ ์ค์นํ๋ ๊ณผ์ ์ ๊ฒฝํํ ์ํ ์ฐฉ์ค์ ๋ํ์ฌ ์๊ฐํฉ๋๋ค.
Pintos ๋ฌธ์๋ฅผ ์ฝ์ผ๋ฉฐ
Pintos ๋ฌธ์๋ฅผ ์ฝ์ผ๋ฉฐ, Pintos์ ๋ํ์ฌ ํ๊ตฌํ๊ธฐ๋ก ๊ณํํ ๊ณต์ผ ์์ 1ไบบ 1project๋ฅผ ์์ํ์์ต๋๋ค. 1.1.2. Building Pintos์์๋ Pintos ์ค์น ๋ฐฉ๋ฒ์ ๋ํ์ฌ ๋ค๋ฃจ๋ฉฐ, ์ด๋ ๋งค์ฐ ๊ฐ๋จํ ์์ ์์ ํ์ธํ ์ ์์์ต๋๋ค(directory๋ฅผ ์ค์นํ๊ณ Makeํ๋ ์์ ). 1. Introduce์์ Boch, QEMU, ๋๋ VMware๋ฅผ ํตํด Pintos๋ฅผ ์คํ ๊ฐ๋ฅํจ์ ์๊ฐ๋์ด ์ ์ WSL2 ํ๊ฒฝ์ QEMU๋ฅผ ์ค์นํ์์ผ๋ฉฐ, ์ค์น ๊ณผ์ ์์ ๊ณ ๋์ ๊ฒฝํํ ์ง ์์๋ ๋ชปํ๊ณ ์์์ต๋๋ค. ๋น๋จ, ์ค์น ๊ณผ์ ์ error๊ฐ ๋ฐ์ํ๊ณ , ์ํํ Pintos์ ์คํ์ด ์๋ ๋์ด ๊ณ ๋์ด ์์๋์์ต๋๋ค.
์ฒ์์๋ ์ ๊ฐ ๋ฌธ์์์ ๋์น ๋ถ๋ถ์ด ์๋์ง ๋ค์ ํ์ธํ๊ณ ๊ธฐ์กด ํ์ผ์ ์ญ์ ํ ๋ค์ ์๋ํ๊ธธ ๋ฐ๋ณตํ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง์ ์ ์์๊ณ , 32bit ํ๊ฒฝ์ ์ํ library ์ค์น์ ์ฐ์์ด์์ต๋๋ค(์์ Pintos๋ 32bit ํ๊ฒฝ์ ์๋ํฉ๋๋ค). ์ดํ, ์ธํฐ๋ท์์ Pintos ์ค์น์ ๋ํ์ฌ ๊ฒ์ํ๋ฉฐ, ํ๋์ ๋ธ๋ก๊ทธ ๊ธ์ ๋ณด๊ฒ ๋์์ต๋๋ค(๋๋๊ฒ๋ Pintos๋ ์์ด๋ก ๊ฒ์ํ๋ ๊ฒ ๋ณด๋ค ํ๊ธ๋ก ๊ฒ์ํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ด์์ต๋๋ค!).
Ubuntu 12์ ํจ๊ป
์ ๊ฐ ์ฐพ์ ๋ธ๋ก๊ทธ ๊ธ์๋ Ubuntu 12.04 intel 32bit ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์ ํ ์์์ต๋๋ค. '๋ฐ๋์'๋ผ๋ ๋จ์ด์ ๋ณผ๋์ฒด๋ฅผ ์ฌ์ฉํ์ ๋งํผ ๊ฐ์กฐ ๋์ด์์์ต๋๋ค. ์ ๋ VM ware์ ํด๋น ๋ฒ์ Ubuntu๋ฅผ ์ค์นํ์์ต๋๋ค. ๋น๋จ, ํด๋น ๋ฒ์ ์ 2012๋ ์ ๋ฆด๋ฆฌ์ฆ ๋์์ผ๋ฉฐ, ํ์ฌ ์ค์น๋ ๊ฐ๋ฅํ๋, ์ง์์ด ์ข ๋ฃ๋์์ต๋๋ค. ๋ค์ ๋งํด, apt๋ฅผ ํตํด git๊ณผ ๊ฐ์ ํ์์ ์ธ ๋ชจ๋์ ์ค์นํ ์ ์์์ต๋๋ค. ์ ๋ QEMU ๋ฑ Pintos ์ค์น๋ฅผ ์ํ์ฌ ํ์ํ ๋ชจ๋๋ค์ github์ release๋ file๋ค์ ์ฐพ์ ์ค์นํ์์ต๋๋ค. ๋น๋จ ์์กด์ฑ์ผ๋ก ์ธํด ์ค์น์ ๋์ด ์์๊ณ , ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ๋ง ํ์ต๋๋ค.
WSL2์ ํจ๊ป
๋ค์ WSL2 ํ๊ฒฝ์ผ๋ก ๋์์์ต๋๋ค. ์์ Pintos๋ 32 bit ํ๊ฒฝ์์ ์๋ํฉ๋๋ค. ๋ฌผ๋ก , '์์ '์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๊ฐ์กฐ๋ Pintos๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋๋ค. kaist์์ ์์ ์ ์ํด ๊ฐ์กฐ๋์๋ค๋ Pintos-kaist๋ 64 bit ํ๊ฒฝ์์ ์ค์น ๊ฐ๋ฅํ์์ผ๋ฉฐ, WSL์ด ๊ฐ๋ฅํ ubuntu 18.04์์ ์ค์นํ ๋ธ๋ก๊ทธ ๊ธ์ด ๋ค์ ์กด์ฌํ์ต๋๋ค. ๊ธ์ ๋์จ step by step solution์ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ ๋ํ Pintos-kaist๋ฅผ ์ค์นํ ์ ์์์ต๋๋ค. ์๋๋ ์ฑ๊ณต์ ์ผ๋ก Pintos๋ฅผ ์คํํ ํ๋ฉด์ ๋๋ค.
์ด์ 1ไบบ 1project๋ฅผ ์ฐธ์ผ๋ก ์์ํฉ๋๋ค. Pintos๋ฅผ ์ค์นํ๋๋ฐ ์ด๋ ๊ฒ ๋ง์ ๊ณ ๋์ ๊ฒฝํํ๊ณ ์๊ฐ์ ํฌ์ํ๊ฒ ๋ ๊ฑฐ๋ผ๊ณ ์์ํ์ง ๋ชปํ์ต๋๋ค. ์ด์ , Pintos๋ฅผ ํตํด OS์ ๋ํ์ฌ ํ๋ ํ๋ ์์๊ฐ ๋ณด๊ฒ ์ต๋๋ค. :) ๊ธ ์ฝ์ด ์ฃผ์ด์ ๊ณ ๋ง์ต๋๋ค.