๐Ÿ–ฅ ์šด์˜ ๋ชจ๋“œ, ํ”„๋กœ์„ธ์„œ, ๋ ˆ์ง€์Šคํ„ฐ

๋ฐฐ์ฃผ์›…ยท2020๋…„ 9์›” 24์ผ
0
post-thumbnail

์›๋ž˜๋ผ๋ฉด ํ•˜๋‚˜์˜ ๊ธ€์„ ๋”ฐ๋กœ ํŒŒ์„œ ๋‚ด์šฉ์„ ์ ์œผ๋ ค ํ–ˆ๊ฒ ์ง€๋งŒ, ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ธฐ๋„ ํ•˜๊ณ  ๊ทธ๋Ÿฐ ํ—ˆ์šธ์ด ๋ชฉํ‘œ ๋‹ฌ์„ฑ์— ๋ฐฉํ•ด๊ฐ€ ๋˜๋Š” ๊ฑฐ ๊ฐ™์•„์„œ ์˜๋„์ ์œผ๋กœ ์ข€ ํž˜์„ ๋œ ๋“ค์ด๊ณ  ๊ธ€์„ ์จ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ตœ๊ทผ ์šด์˜์ฒด์ œ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ƒฅ ์ˆ˜์—…์ฒ˜๋Ÿผ ํ•˜๋ฉด ๋„ˆ๋ฌด ์žฌ๋ฏธ๊ฐ€ ์—†์„ ๊ฑฐ ๊ฐ™์•„ ์ง์ ‘ ๊ตฌํ˜„ ํ•ด ๋ณด๋Š” ์‹์œผ๋กœ ๊ฐˆํ”ผ๋ฅผ ์žก์•˜๋‹ค. ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌํ˜„ ๊ด€๋ จ ์„œ์ ์ด ์ด ์ฑ… ๋ฐ–์— ์—†์–ด์„œ ํ•ด๋‹น ์ฑ…์„ ๋”ฐ๋ผ๊ฐ€๋˜, ์„ค๋ช…์ด ๋ถ€์กฑํ•œ ๋‚ด์šฉ์„ ๋ณด์ถฉํ•˜๊ณ  Rust๋กœ ์ฝ”๋”ฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. Rust๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ด์œ ๋Š” ๋”ฑํžˆ ์—†๊ณ  ๊ทธ๋ƒฅ ํ•˜๋ฉด ์žฌ๋ฏธ์žˆ์„ ๊ฑฐ ๊ฐ™์•„์„œ ์นœ๊ตฌ์™€ ์ƒ์˜ ๋์— ๊ฒฐ์ •ํ–ˆ๋‹ค.

์ฑ•ํ„ฐ๋ณ„๋กœ ๋ฐฐ์šด ๋‚ด์šฉ๋“ค์„ ์ž˜ ์ ์–ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์ดˆ๋ฐ˜ ์ง€๋‚˜๊ณ  ๋‚˜์„œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ ๊ด€๋ จ๋œ ์ด์•ผ๊ธฐ๊ฐ€ ์™•์ฐฝ ๋‚˜์˜ค์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•œ๋‹ค. ์ดˆ๋ฐ˜์—๋Š” ์ผ๋‹จ ์ฑ…์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ ์ ˆํžˆ ์ž˜ ์ •๋ฆฌํ•˜๋Š” ๊ฑธ๋กœ.

์ด ์ฑ…์—์„œ๋Š” ์ธํ…” x86-64๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ธฐ๋„ ํ•˜๊ณ , ๋‚ด ๋…ธํŠธ๋ถ๋„ ์ธํ…” ํ”„๋กœ์„ธ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ๊ทธ๋Œ€๋กœ ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.


์ธํ…” 64๋น„ํŠธ ํ”„๋กœ์„ธ์„œ์—๋Š” ํฌ๊ฒŒ 5๊ฐ€์ง€์˜ ์šด์˜ ๋ชจ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ชจ๋“œ๋Š” ์ธํ„ฐ๋ŸฝํŠธ์™€ ์ปจํŠธ๋กค ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•ด ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์ค‘ OS ๊ตฌํ˜„ ์‹œ ๊ผญ ํ•„์š”ํ•œ ์šด์˜ ๋ชจ๋“œ๋Š” 3๊ฐ€์ง€์ด๋‹ค.

  • ๋ฆฌ์–ผ ๋ชจ๋“œ: ํ”„๋กœ์„ธ์„œ์˜ ์ดˆ๊ธฐ ์ƒํƒœ๋กœ 16๋น„ํŠธ ๋ชจ๋“œ. 8086๊ณผ ํ˜ธํ™˜. BIOS์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ณดํ˜ธ ๋ชจ๋“œ: 32๋น„ํŠธ ๋ชจ๋“œ. ์„ธ๊ทธ๋จผํŠธ, ํŽ˜์ด์ง•, ๋ณดํ˜ธ, ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น ๋“ฑ์„ ํ”„๋กœ์„ธ์„œ ๋‹จ์œ„์—์„œ ์ง€์›ํ•จ
  • IA-32e ๋ชจ๋“œ: 16EB์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“œ. AMD์—์„œ๋Š” Long Mode๋กœ ๋ถ€๋ฅธ๋‹ค.

๋ฆฌ์–ผ ๋ชจ๋“œ์™€ ๋ณดํ˜ธ ๋ชจ๋“œ, ๋ณดํ˜ธ ๋ชจ๋“œ์™€ IA-32e ๋ชจ๋“œ ์‚ฌ์ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ด์šฉํ•ด์„œ ์ „ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ IA-32e ๋ชจ๋“œ์—์„œ ๋ฆฌ์–ผ ๋ชจ๋“œ๋กœ ๋ฐ”๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฆฌ์…‹์ด ํ•„์š”ํ•˜๋‹ค.

โ›ฐ ์šด์˜ ๋ชจ๋“œ์™€ ๋ ˆ์ง€์Šคํ„ฐ

OS ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ, ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ, ์ปจํŠธ๋กค ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ€ ์žˆ๋‹ค.

๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ

๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์˜ ์ง€์ •์ด๋‚˜ ์ž„์‹œ ์ €์žฅ ๊ณต๊ฐ„ ๋“ฑ์˜ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. x86์—๋Š” 8๊ฐœ, x86-64์—๋Š” 16๊ฐœ๊ฐ€ ์žˆ์Œ. ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ์—๋Š” ๊ฐœ๋ณ„์ ์ธ ์ด๋ฆ„์ด ์žˆ๋Š”๋ฐ, ์ด ์ด๋ฆ„์„ ํ†ตํ•ด ๊ฐ ๋ ˆ์ง€์Šคํ„ฐ์˜ ํŠน์ˆ˜ ์šฉ๋„๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Œ. 64๋น„ํŠธ์—๋Š” ์•ž์— R, 32๋น„ํŠธ์—๋Š” ์•ž์— E ํ˜น์€ ๋’ค์— D, 16๋น„ํŠธ์—๋Š” ๋’ค์— W๊ฐ€ ๋ถ™๋Š”๋‹ค.

  • AX: ๋ˆ„์‚ฐ๊ธฐ
  • BX: ๋ฐ์ดํ„ฐ ์–ด๋“œ๋ ˆ์Šค๋ฅผ ์ง€์ •ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ ํฌ์ธํ„ฐ๋กœ ์‚ฌ์šฉ
  • CX: ๋ฃจํ”„ ๋˜๋Š” ๋ฌธ์ž์—ด์˜ ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉ
  • DX: I/O ์–ด๋“œ๋ ˆ์Šค๋ฅผ ์ง€์ •ํ•  ๋•Œ๋‚˜ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ณด์กฐ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์‚ฌ์šฉ
  • SI: ๋ฌธ์ž์—ด ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์›๋ณธ ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ
  • DI: ๋ฌธ์ž์—ด ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๋ชฉ์ ์ง€ ๋ฌธ์ž์—ด์˜ ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ
  • SP: ์Šคํƒ์˜ ํฌ์ธํ„ฐ
  • BP: ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ํฌ์ธํ„ฐ
  • R8~15: x86-64์— ์ถ”๊ฐ€๋˜์—ˆ๊ณ , ๋‹ค์–‘ํ•œ ๋ชฉ์ ์œผ๋กœ ์ด์šฉ๋จ

๋ฆฌ์–ผ ๋ชจ๋“œ์—์„œ 32๋น„ํŠธ ๋ ˆ์ง€์Šคํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฑฑใ„ด ์•„๋‹ˆ์ง€๋งŒ, ๋ณดํ˜ธ๋ชจ๋“œ ์ „ํ™˜๊ณผ ๊ฐ™์€ ํŠน์ˆ˜ ์ƒํ™ฉ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ๊ณ ๋กœ ๊ทธ๋ƒฅ 16๋น„ํŠธ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค ๋ด๋„ ๋ฌด๋ฐฉ.

๋˜, IA-32e ๋ชจ๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ํ•œ ์ƒํ™ฉ์ด ์žˆ๋Š”๋ฐ, ์–ด๋“œ๋ ˆ์Šค ํฌ๊ธฐ๊ฐ€ 2642^{64} ์ž„์—๋„ ์˜คํผ๋žœ๋“œ ํฌ๊ธฐ๊ฐ€ 32๋น„ํŠธ๋ผ ์–ด๋“œ๋ ˆ์Šค ์ „์ฒด๋ฅผ ์ด๋™ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋Š”๋ฐ

  1. RIP ์ƒ๋Œ€ ์ฃผ์†Œ๋ผ๋Š” ๊ฐœ๋…์„ ๋„์ž…ํ•ด์„œ, ํ˜„์žฌ ์ฃผ์†Œ์—์„œ ยฑ2ย GiB\pm 2\ \text{GiB} ๊นŒ์ง€๋ฅผ RIP ์ƒ๋Œ€ ์ฃผ์†Œ๋กœ ์ง€์ •ํ•œ๋‹ค.
  2. JMP ๋ช…๋ น์–ด์˜ ์˜คํผ๋žœ๋“œ๋งŒ 64๋น„ํŠธ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์˜ˆ์™ธ๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ

16๋น„ํŠธ์˜ ๋ ˆ์ง€์Šคํ„ฐ๋กœ, ์–ด๋“œ๋ ˆ์Šค ์˜์—ญ์„ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • ๋ฆฌ์–ผ ๋ชจ๋“œ์—์„œ๋Š” ๊ณ ์ • ํฌ๊ธฐ์˜ ์–ด๋“œ๋ ˆ์Šค ์˜์—ญ์„ ์ง€์ •ํ•˜๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ๋ณดํ˜ธ ๋ชจ๋“œ ์ดํ›„์—๋Š” ์ ‘๊ทผ ๊ถŒํ•œ, ์„ธ๊ทธ๋จผํŠธ์˜ ์‹œ์ž‘ ์–ด๋“œ๋ ˆ์Šค์™€ ํฌ๊ธฐ ๋“ฑ์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.
  • CS: ์ฝ”๋“œ ์˜์—ญ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆ์ง€์Šคํ„ฐ. MOV ๋ช…๋ น์–ด๋กœ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ JMP ๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ ํ†ตํ•ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • DS: ๋ฐ์ดํ„ฐ ์˜์—ญ์— ์ ‘๊ทผํ•  ๋•Œ ์•”์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • ES: ๋ฌธ์ž์—ด๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์•”์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค
  • FS: ๋ฐ์ดํ„ฐ ์˜์—ญ์ด๊ณ , ๋ฐ์ดํ„ฐ ์ด๋™ ๋ช…๋ น์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
  • GS: ๋ฐ์ดํ„ฐ ์˜์—ญ์ด๊ณ , ๋ฐ์ดํ„ฐ ์ด๋™ ๋ช…๋ น์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค. FS์™€ ๊ฐ™์ด 30386์—์„œ ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ์„ ์œ„ํ•ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.
  • SS: ์Šคํƒ ์˜์—ญ. ์Šคํƒ ๊ด€๋ จ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ์Šคํƒ์— ์ ‘๊ทผํ•  ๋•Œ ์•”์‹œ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค

์ปจํŠธ๋กค ๋ ˆ์ง€์Šคํ„ฐ

์šด์˜ ๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ํ˜„์žฌ ์šด์˜ ๋ชจ๋“œ๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค.

  • CR0: ์šด์˜ ๋ชจ๋“œ๋ฅผ ์ œ์–ดํ•œ๋‹ค. ๋ฆฌ์–ผ ๋ชจ๋“œ์—์„œ ๋ณดํ˜ธ ๋ชจ๋“œ๋กœ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์บ์‹œ๋‚˜ ํŽ˜์ด์ง• ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค
  • CR1: ํ”„๋กœ์„ธ์„œ์— ์˜ํ•ด ์˜ˆ์•ฝ๋œ ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค
  • CR2: ํŽ˜์ด์ง€ ํดํŠธ ๋ฐœ์ƒ ์‹œ, ํŽ˜์ด์ง€ ํดํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์„ ํ˜• ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์ด๋‹ค. ํŽ˜์ด์ง• ๊ธฐ๋ฒ• ํ™œ์„ฑํ™” ์ดํ›„์—๋Š”, ํŽ˜์ด์ง• ํดํŠธ ๋ฐœ์ƒ ์‹œ๋งŒ ์œ ํšจํ•œ ์ฃผ์†Œ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • CR3: ํŽ˜์ด์ง€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ / ํŽ˜์ด์ง€ ์บ์‹œ์— ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์„ค์ •
  • CR4: ํ”„๋กœ์„ธ์„œ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฐ์ข… ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ. ํŽ˜์ด์ง€ ํฌ๊ธฐ ํ™•์žฅ์ด๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ํ™•์žฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”์‹œํ‚จ๋‹ค.
  • CR8: ํƒœ์Šคํฌ ์šฐ์„ ์ˆœ์œ„ ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ์ œ์–ดํ•œ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ ํ•„ํ„ฐ. IA-32e๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์ปจํŠธ๋กค ๋ ˆ์ง€์Šคํ„ฐ๋Š” ํ˜„์žฌ ์šด์˜ ๋ชจ๋“œ์— ๋”ฐ๋ผ ํ•„์ˆ˜ ํ•„๋“œ์™€ ์˜ต์…˜ ํ•„๋“œ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณค ํ•˜๋Š”๋ฐ, ์ด๋Š” ๋‚˜์ค‘์— ์ œ๋Œ€๋กœ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๋‹ค.

๐Ÿ“ ์šด์˜ ๋ชจ๋“œ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•

์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜๊ณผ ํŽ˜์ด์ง•์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๋‹ค๋ฅด๋‹ค. ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ์— ์„ธ๊ทธ๋จผํŠธ์˜ ์‹œ์ž‘ ์ฃผ์†Œ ํ˜น์€ Descriptor๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์œ„์น˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค. ํŽ˜์ด์ง•์€ ์ปจํŠธ๋กค ๋ ˆ์ง€์Šคํ„ฐ ์ค‘์— CR3 ๋ ˆ์ง€์Šคํ„ฐ์— Page Directory๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ์œ„์น˜๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

์šด์˜ ๋ชจ๋“œ์— ๋”ฐ๋ผ ์ง€์›ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ๋ฐ, ๊ฐ ๋ชจ๋“œ๋ณ„ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

๐Ÿ‘ฎโ€โ™‚๏ธ ๊ฐ ๋ชจ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹

๋ฆฌ์–ผ ๋ชจ๋“œ

์ตœ๋Œ€ 1MB์˜ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๊ณ , ์„ธ๊ทธ๋จผํ…Œ์ด์…˜๋งŒ ์ง€์›ํ•œ๋‹ค. ๊ฐ ์„ธ๊ทธ๋จผํ…Œ์ด์…˜์€ 64KB๋กœ ๊ณ ์ •๋˜์–ด ์žˆ๋‹ค. ์‹œ์ž‘ ์–ด๋“œ๋ ˆ์Šค๋Š” ๊ฐ ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ์— ์ง์ ‘ ์„ค์ •๋œ๋‹ค.

๋ฆฌ์–ผ ๋ชจ๋“œ์˜ ๋ ˆ์ง€์Šคํ„ฐ ํฌ๊ธฐ๋Š” 16๋น„ํŠธ๋กœ 1MiB์˜ ์ฃผ์†Œ๋ฅผ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์— 2162^{16} ์„ ๊ณฑํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด ์ด์œ  ๋•Œ๋ฌธ์— ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๊ฐ€ 64KiB์ด๋‹ค.

๋ณดํ˜ธ ๋ชจ๋“œ

๋ณดํ˜ธ๋ชจ๋“œ ๋˜ํ•œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ํŠน์ • ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ์‹ค์ œ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ํ•˜์ง€๋งŒ ํŽ˜์ด์ง• ๊ธฐ๋Šฅ๊นŒ์ง€ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ธˆ ๋” ๋ณต์žกํ•˜๋‹ค. ๋ณดํ˜ธ ๋ชจ๋“œ์—์„œ๋Š” ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด ๋•Œ๋ฌธ์— ์„ธ๊ทธ๋จผํŠธ ๋ ˆ์ง€์Šคํ„ฐ๋Š” ์„ธ๊ทธ๋จผํŠธ ์…€๋ ‰ํ„ฐ๋กœ ๋ช…์นญ์ด ๋ฐ”๋€๋‹ค.

๋””์Šคํฌ๋ฆฝํ„ฐ (์„œ์ˆ ์ž) ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ๊ณต๊ฐ„์„ ์„œ์ˆ ํ•˜๋Š” ์ž๋กœ๊ตฌ์กฐ๋กœ, ๊ฐœ์ค‘ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ์ˆ ํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ผ๊ณ  ํ•œ๋‹ค.


(์ถœ์ฒ˜: ์œ„ํ‚ค๋ฐฑ๊ณผ ์„ธ๊ทธ๋จผํŠธ ๊ธฐ์ˆ ์ž)

์—ฌ๊ธฐ์—๋Š” ์‹œ์ž‘ ์ฃผ์†Œ / ํฌ๊ธฐ / ๊ถŒํ•œ / ํƒ€์ž… ๋“ฑ์ด ์กด์žฌํ•œ๋‹ค. ์žฅ๋น„ ์ƒ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ์œ„ํ•ด์„œ ํ–ˆ๋Š”๋ฐ, ์ด ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด DPL ( Descriptor Privilege Level ) ํ•„๋“œ์ด๋‹ค. ํ•ด๋‹น ํ•„๋“œ๊ฐ€ CPL (Current Privilege Level) ๋ณด๋‹ค ๋‚ฎ๋‹ค๋ฉด ( ์ˆซ์ž๊ฐ€ ํฌ๋‹ค๋ฉด ) ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— GDT (Global Descriptor Table) ๊ณต๊ฐ„์— ๋ชจ์—ฌ์žˆ๋‹ค. GDT๋Š” ์—ฐ์†๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ ์ตœ๋Œ€ 2132^{13} ๊ฐœ์˜ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ” ๊ตฌ์กฐ. ์ด ์—ญ์‹œ ์ž๋ฃŒ๊ตฌ์กฐ๋ผ ๋ ˆ์ง€์Šคํ„ฐ์— ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๊ณ  ์ด๋ฅผ GDTR์— ์ €์žฅํ•จ. 16๋น„ํŠธ GDT ํฌ๊ธฐ ํ•„๋“œ + 32๋น„ํŠธ Base Address ํ•„๋“œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ณ„์‚ฐ๋œ ๊ฒฐ๊ณผ๋Š” ๋ฌผ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์„ ํ˜• ์ฃผ์†Œ. ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ์„ ํ˜• ์ฃผ์†Œ๋Š” ๋ฌผ๋ฆฌ ์ฃผ์†Œ์™€ 1:1 ๋Œ€์‘ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹์ˆ˜๋„ ์žˆ๋‹ค. ํฐ ๊ทœ๋ชจ์˜ ์šด์˜์ฒด์ œ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง•์„ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์„ ํ˜• ์ฃผ์†Œ์™€ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ 1:1 ๋Œ€์‘ํ•˜๊ฒŒ ํ•  ์˜ˆ์ •์ด์ง€๋งŒ, ์–ด๋–ป๊ฒŒ ๊ตด๋Ÿฌ๊ฐ€๋Š”์ง€๋Š” ์•Œ์•„๋‘๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‹ˆ ์ ์–ด๋‘”๋‹ค.

์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜๊ณผ ํŽ˜์ด์ง•์„ ๊ฐ™์ด ์“ฐ๊ธฐ

์„ธ๊ทธ๋ฉ˜ํ…Œ์ด์…˜์€ ๋…ผ๋ฆฌ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๊ณ , ํŽ˜์ด์ง•์€ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด๋‹ค. ๋‘˜ ๋‹ค ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌํ•  ๋•Œ, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ์“ฐ๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ธฐ๋ฒ•์ด๋‹ค.

๋ฌผ๋ฆฌ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‹ค์ œ ์ ์žฌ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ™์€ ๋‹จ์œ„๋กœ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ•˜์—ฌ ์‹ค์ œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์€ ํŽ˜์ด์ง€๋ฅผ ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๊ณ , ์ด ํŽ˜์ด์ง€๋“ค์„ ๋ชจ์•„ ์„ธ๊ทธ๋จผํŠธ๋กœ ์ €์žฅํ•œ๋‹ค. ๋‹ค๋ฅธ ๊ณณ์—์„œ๋Š” ์ฃผ๋กœ ๋ฐ˜๋Œ€๋กœ ์„œ์ˆ ํ•˜๋Š”๋ฐ, ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋‹ค์‹œ ์ชผ๊ฐ ๋‹ค ์ดํ•ดํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค.

์ฆ‰, ์„ธ๊ทธ๋จผํŠธ ์…€๋ ‰ํ„ฐ์—์„œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•  ๋•Œ ๊นŒ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”Œ๋กœ์šฐ๊ฐ€ ์ด์–ด์ง„๋‹ค.

  1. ์„ธ๊ทธ๋จผํŠธ ์…€๋ ‰ํ„ฐ์—์„œ ์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค
  2. ์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฒ ์ด์Šค ์ฃผ์†Œ + ์˜คํ”„์…‹์„ ๋”ํ•ด์„œ ์„ ํ˜• ์ฃผ์†Œ๋ฅผ ๊ตฌํ•œ๋‹ค.

์ด ์ดํ›„๋ถ€ํ„ฐ๋Š” ํŽ˜์ด์ง•์˜ ์˜์—ญ์ด๋‹ค. ์ฃผ๋กœ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 4KB๋กœ ๋‚˜๋ˆ„๊ณ  ์„ ํ˜• ์ฃผ์†Œ๋ฅผ 3๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ•˜๋Š” 3๋‹จ๊ณ„ ํŽ˜์ด์ง•๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 4MB ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ณ  ์„ ํ˜• ์ฃผ์†Œ๋ฅผ 2๋‹จ๊ณ„๋กœ ๋ถ„๋ฆฌํ•˜๋Š 2๋‹จ๊ณ„ ํŽ˜์ด์ง•. ๊ธฐ๋ณธ ์›๋ฆฌ๋Š” ๋น„์Šทํ•˜๋‹ˆ 3๋‹จ๊ณ„ ํŽ˜์ด์ง•์œผ๋กœ ์˜ˆ์‹œ๋ฅผ ๋“ค๊ฒ ๋‹ค.

์„ ํ˜• ์ฃผ์†Œ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ / ํ…Œ์ด๋ธ” / ์˜คํ”„์…‹์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ๋””์Šคํฌ๋ฆฝํ„ฐ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ํŽ˜์ด์ง€ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ•œ ๊ตฌ์„์— ๋ชจ์—ฌ์žˆ๋‹ค.

  1. CR3 (๋””๋ ‰ํ„ฐ๋ฆฌ ๊ธฐ์ค€ ์ฃผ์†Œ) + ๋””๋ ‰ํ„ฐ๋ฆฌ (์˜คํ”„์…‹) ์„ ํ†ตํ•ด ๋””๋ ‰ํ„ฐ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ๊ธฐ์ค€ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•จ
  2. ๋””๋ ‰ํ„ฐ๋ฆฌ ํ…Œ์ด๋ธ” ์ฃผ์†Œ + ์˜คํ”„์…‹์œผ๋กœ ํŽ˜์ด์ง€์˜ ๊ธฐ์ค€ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•จ (๋ฌผ๋ฆฌ ์ฃผ์†Œ์ž„)
  3. ํŽ˜์ด์ง€ ๊ธฐ์ค€ ์ฃผ์†Œ์™€ ์˜คํ”„์…‹์œผ๋กœ ์‹ค์ œ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ตฌํ•จ

ํŽ˜์ด์ง€ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ๋Š” ๋ชจ๋‘ ํฌ๊ธฑ๊ฐ€ 4๋ฐ”์ดํŠธ. ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ 4K์ด๋ฏ€๋กœ ๋น„ํŠธ 12 ~ 31๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์†์„ฑ ํ•„๋“œ๋กœ ์“ด๋‹ค. ์—ฌ๊ธฐ์—๋„ ์ ‘๊ทผ๊ถŒํ•œ ๊ด€๋ จํ•œ ๋น„ํŠธ๊ฐ€ ์žˆ์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์„ ์ž˜ ์œ ์ง€ํ•˜๋ฉด์„œ ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ์˜์—ญ์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์‹ค์ œ ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ์ฃผ์†Œ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด, ์ข€ ๋” ๋„“์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋”๋Ÿฌ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ฐ™์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•  ๋•Œ๋„ ์šฉ์ดํ•˜๋‹ค.

IA-32e ๋ชจ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

๋ณดํ˜ธ ๋ชจ๋“œ์™€ ๋น„์Šทํ•˜๋ฏ€๋กœ ์ค‘์š”ํ•œ ์ฐจ์ด์ ๋งŒ ์„œ์ˆ ํ•˜๊ฒ ๋‹ค.

  1. ๋ชจ๋“  ์„ธ๊ทธ๋จผํŠธ์˜ ํฌ๊ธฐ๋Š” 64๋น„ํŠธ ์ „์ฒด. ๋ณดํ˜ธ๋ชจ๋“œ์˜ ์„ธ๊ทธ๋จผํŠธ ๋””์Šคํฌ๋ฆฝํ„ฐ๊ฐ€ 32๋น„ํŠธ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด์„œ; ๋””์Šคํฌ๋ฆฝํ„ฐ์˜ ๊ฐ’์„ ํ™•์žฅํ•˜๋Š” ๋Œ€์‹  ๊ฐ’์„ ๊ณ ์ •ํ•จ. ํ•˜์—ฌ IA-32e ๋ชจ๋“œ์—์„œ๋Š” ๊ธฐ์ค€ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„ธ๊ทธ๋จผํŠธ๋กœ ๊ตฌ๋ถ„๋  ์ˆ˜ ์—†๋‹ค.
  2. PAE ๊ธฐ๋Šฅ์ด ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋˜๋ฉฐ, ๋ณ€ํ™˜ ๊ด€๊ณ„๋„ ๋Š˜์—ˆ๋‹ค.
  3. ์„ ํ˜• ์ฃผ์†Œ๋ฅผ 2642^{64} ๋งŒํผ ํ‘œํ˜„ ๊ฐ€๋Šฅํ•จ์—๋„ 48~63๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ ํ™•์žฅ์œผ๋กœ ๋“ค์–ด๊ฐ€ ์žˆ์Œ. ๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ๋„ ๋‹ค ๋ชป ์“ฐ๊ณ  ํ”„๋กœ์„ธ์„œ๊ฐ€ 40๋น„ํŠธ์˜ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ตœ๋Œ€ 1TB๊นŒ์ง€ ์“ธ ์ˆ˜ ์žˆ์Œ.
profile
๊ณต๋ถ€ํ•˜์ž ๋จน๊ณ ์‚ด์ž ์˜ค๋Š˜๋„ ๋ฐฉ์‹ค๋ฐฉ์‹ค ๋ฐ์€ ๋Œ€ํ•œ๋ฏผ๊ตญ์˜ ํ•˜๋Š˜

0๊ฐœ์˜ ๋Œ“๊ธ€