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๋ฅผ ์‹คํ–‰ํ•œ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค.

Pintos ์‹คํ–‰ ํ™”๋ฉด

์ด์ œ 1ไบบ 1project๋ฅผ ์ฐธ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Pintos๋ฅผ ์„ค์น˜ํ•˜๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๋งŽ์€ ๊ณ ๋‚œ์„ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๊ฒŒ ๋ ๊ฑฐ๋ผ๊ณ  ์ƒ์ƒํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ, Pintos๋ฅผ ํ†ตํ•ด OS์— ๋Œ€ํ•˜์—ฌ ํ•˜๋‚˜ ํ•˜๋‚˜ ์•Œ์•„๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. :) ๊ธ€ ์ฝ์–ด ์ฃผ์–ด์„œ ๊ณ ๋ง™์Šต๋‹ˆ๋‹ค.

Made with ๐Ÿ”ฅ by @siwon