๊ทธ๋ฆผ์ผ๋ก ๋ฐฐ์ฐ๋ ๋ฆฌ๋ ์ค ๊ตฌ์กฐ 6์ฅ. ์ฅ์น ์ ๊ทผ
์ถ์ฒ: ๊ทธ๋ฆผ์ผ๋ก ๋ฐฐ์ฐ๋ ๋ฆฌ๋ ์ค ๊ตฌ์กฐ

ํ๋ก์ธ์ค๋ ์ฅ์น์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ณ ์ปค๋์ ํตํด ์ ๊ทผํ ์ ์๋ค.
์๋์ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
- ๋๋ฐ์ด์ค ํ์ผ์ด๋ผ๋ ํน์ํ ํ์ผ์ ์กฐ์ํ๋ค.
- ๋ธ๋ก ์ฅ์น์ ๊ตฌ์ถํ ํ์ผ ์์คํ ์ ์กฐ์ํ๋ค.(7์ฅ ์ฐธ์กฐ)
๐ก๋คํธ์ํฌ ์ธํฐํ์ด์ค ์นด๋(NIC)๋ ์๋ ๋ฑ์ ๋ฌธ์ ๋ก ์์ผ์ ์ฌ์ฉํ๋ค.(์ ์ผํ๊ฒ ์๋ง ํ์ผ ์๋)
๋๋ฐ์ด์ค ํ์ผ
๋๋ฐ์ด์ค ํ์ผ์ ์ฅ์น๋ง๋ค ์กด์ฌํ๋ค.
ex) ์ ์ฅ ์ฅ์น : /dev/sda, /dev/sdb ๊ฐ์ ํ์ผ์ด ๋๋ฐ์ด์ค ํ์ผ.
๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ
: ํ๋ก์ธ์ค๊ฐ ๋๋ฐ์ด์ค ํ์ผ์ ์กฐ์ํ๋ฉด ๋์ ์ฅ์น์ ์ ๊ทผํ๋ SW

<๋๋ฐ์ด์ค ํ์ผ์ ์ ์ฅ๋๋ ์ ๋ณด>
- ํ์ผ ์ข ๋ฅ : ์บ๋ฆญํฐ ์ฅ์น or ๋ธ๋ก ์ฅ์น
- ๋๋ฐ์ด์ค ๋ฉ์ด์ ๋ฒํธ, ๋ง์ด๋ ๋ฒํธ : ๋ ๋ฒํธ์ ์กฐํฉ์ด ๊ฐ๋ค๋ฉด ๊ฐ์ ์ฅ์น์
๋๋ฐ์ด์ค ํ์ผ์ ๋ณดํต /dev/
๋๋ ํฐ๋ฆฌ ์๋์ ์กด์ฌํ๋ค.
ls -l /dev/ | less
crw-rw---- 1 root tty 7, 134 Oct 23 05:28 vcsa6
crw-rw---- 1 root tty 7, 64 Oct 23 05:28 vcsu
crw-rw---- 1 root tty 7, 65 Oct 23 05:28 vcsu1
crw-rw---- 1 root tty 7, 66 Oct 23 05:28 vcsu2
crw-rw---- 1 root tty 7, 67 Oct 23 05:28 vcsu3
crw-rw---- 1 root tty 7, 68 Oct 23 05:28 vcsu4
crw-rw---- 1 root tty 7, 69 Oct 23 05:28 vcsu5
crw-rw---- 1 root tty 7, 70 Oct 23 05:28 vcsu6
brw-rw---- 1 root disk 252, 0 Oct 23 05:28 vda
brw-rw---- 1 root disk 252, 1 Oct 23 05:28 vda1
์ฒซ๊ธ์
c
: ์บ๋ฆญํฐ ์ฅ์น
b
: ๋ธ๋ก ์ฅ์น
5๋ฒ์งธ๊ฐ ๋ฉ์ด์ , 6๋ฒ์งธ๊ฐ ๋ง์ด๋
์บ๋ฆญํฐ ์ฅ์น
= R, W
๊ฐ๋ฅ, ํ์ ์กฐ์ ๋ถ๊ฐ๋ฅ(์ฅ์น ๋ด๋ถ์์ ์ ๊ทผ ์ฅ์ ๋ณ๊ฒฝ)
ex) ๋จ๋ง, ํค๋ณด๋, ๋ง์ฐ์ค
๊ฐ ํ๋ก์ธ์ค์ ์ฐ๊ฒฐ๋ ๋จ๋ง : ps ax์ ๋ ๋ฒ์งธ ํ๋์์ ํ์ธ ๊ฐ๋ฅ

/dev/pts/0 : pts/0 ๋จ๋ง์ ๋์ํ๋ ๋๋ฐ์ด์ค ํ์ผ

๋จ๋ง ์ฅ์น์ hello ๋ฌธ์์ด์ ์ฐ๋ฉด(๋๋ฐ์ด์ค ํ์ผ์ write() ์์คํ ์ฝ์ ํธ์ถ) ๋จ๋ง์ ๋ฌธ์์ด์ด ์ถ๋ ฅ๋๋ค. โ echo hello ๋ช ๋ น์ด ์คํ๊ณผ ๋์ผํ ๊ฒฐ๊ณผ
๊ทธ ์ด์ ๋ echo ๋ช ๋ น์ด๋ ํ์ค ์ถ๋ ฅ์ hello๋ฅผ ์ฐ๊ณ , ๋ฆฌ๋ ์ค์์ ํ์ค ์ถ๋ ฅ์ ๋จ๋ง๊ณผ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ.
์ ์ฌ์ง ๋ณด๋ฉด ์๋ฌด๊ฒ๋ ํ์ง ์์ ๋ ๋ฒ์งธ ๋จ๋ง ํ๋ฉด์ ์ฒซ๋ฒ์งธ ๋จ๋ง ํ๋ฉด์์ ์ด ๋๋ฐ์ด์ค ํ์ผ์ ์ด ๋ฌธ์์ด์ด ์ถ๋ ฅ๋ ๊ฑธ ์ ์ ์๋ค.
๋ธ๋ก ์ฅ์น(block device)
= R, W, ํ์๋ ๊ฐ๋ฅ
ex) ํ๋ ๋์คํฌ(HDD), SDD ๊ฐ์ ์ ์ฅ์ฅ์น
๋ธ๋ก ๋๋ฐ์ด์ค ํ์ผ์ ์ง์ ์กฐ์ํ๋ ๊ฑด ๋๋ฌธ ์ผ๋ก ๋ณดํต์ ํ์ผ ์์คํ ์ ๊ฒฝ์ ํด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ด๋ค.


๋ฃจํ ์ฅ์น
๋ฃจํ ์ฅ์น
: ํ์ผ์ ๋๋ฐ์ด์ค ํ์ผ์ฒ๋ผ ๋ค๋ฃฐ ์ ์๋ ๊ธฐ๋ฅ
๋น์ด์๋ ์ฅ์น๊ฐ ์๊ฑฐ๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ด์ฉ์ด ์์๋ ์ํ์ด ์์ ๊ฒฝ์ฐ ๋ฃจํ ์ฅ์น ๊ธฐ๋ฅ ์ฐ๋ฉด๋จ.
๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ
๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ
: ํ๋ก์ธ์ค๊ฐ ๋๋ฐ์ด์ค ํ์ผ์ ์ ๊ทผํ ๋ ๋์ํ๋ ์ปค๋ ๊ธฐ๋ฅ
์ฅ์น๋ฅผ ์ง์ ์กฐ์ํ๋ ค๋ฉด ๊ฐ ์ฅ์น์ ๋ด์ฅ๋ ๋ ์ง์คํฐ ์์ญ์ ์ฝ๊ณ ์จ์ผ ํ๋ค.
๋๋ฐ์ด์ค ๋ ์ง์คํฐ โ CPU ๋ ์ง์คํฐ
ํ๋ก์ธ์ค ์ ์ฅ์์ ๋ณด๋ ์ฅ์น ์กฐ์



๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ(MMIO)
๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ(memory-mapped I/O, MMIO)๋ฅผ ์ฌ์ฉํด์ ๋๋ฐ์ด์ค ๋ ์ง์คํฐ์ ์ ๊ทผํ๋ค.
180~184 ์ฐธ๊ณ ..



ํด๋ง
ํด๋ง
: ๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๊ฐ ๋ฅ๋์ ์ผ๋ก ์ฅ์น์์ ์ฒ๋ฆฌ๋ฅผ ์๋ฃํ๋์ง ํ์ธ
โ ๋ด๊ฐ ํ์ธ

๋๋ฐ์ด์ค ๋๋ผ์ด๋ฒ๊ฐ ์ฅ์น์ ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ๊ณ ์ฒ๋ฆฌ ์๋ฃํ ๋๊น์ง ํ์ธ์ฉ ๋ ์ง์คํฐ๋ฅผ ๊ณ์ ํ์ธํ๊ธฐ ๋๋ฌธ์ CPU๋ ๋ค๋ฅธ ์ผ์ ํ ์ ์๋ค
โ ์์ฒญ๋ ์์๋ญ๋น.

๊ทธ๋์ ๊ณ์ํด์ ํ์ธํ๋ ๋์ ์ ์ผ์ ๊ฐ๊ฒฉ์ ๋๊ณ ๋ ์ง์คํฐ ๊ฐ์ ํ์ธํ๋ ํด๋ง ๋ฐฉ๋ฒ๋ ์๋ค.
์ธํฐ๋ฝํธ
= ์์คํ ์ด ํ์ธํด์ ์๋ ค์ค
๋ด๊ฐ ์ ๊ฒฝ์ธ ํ์ ์๊ธฐ ๋๋ฌธ์ ํด๋ง๋ณด๋ค๋ ์ธํฐ๋ฝํธ๋ฅผ ์ฅ์น ์ฒ๋ฆฌ ์๋ฃ ํ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์.
/proc/interrupts
: ์์คํ
์์ ์ดํ ์ง๊ธ๊น์ง ๋ฐ์ํ ์ธํฐ๋ฝํธ ๊ฐ์
Column) ์ผ๋ถ๋ฌ ํด๋ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
์ฅ์น ์ฒ๋ฆฌ๊ฐ ๋น ๋ฅด๊ณ ์ฒ๋ฆฌ ๋น๋๊ฐ ๋๋ค๋ฉด ์์ธ์ ์ผ๋ก ํด๋ง์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
why? ์ธํฐ๋ฝํธ ํธ๋ค๋ฌ ํธ์ถ์ ์ด๋ ์ด์์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ
์ฌ์ฉ์ ๊ณต๊ฐ ์
์ถ๋ ฅ(userspace I/O, UIO)
: ๋๋ฐ์ด์ค ๋ ์ง์คํฐ๋ฅผ ๋งคํํ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ๋ก์ธ์ค์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๋งคํํด์, ํ๋ก์ธ์ค์์ ์ฅ์น๋ฅผ ์กฐ์ํ๋ ๊ธฐ๋ฅ
๋๋ฐ์ด์ค ํ์ผ๋ช ์ ๋ฐ๋๊ธฐ ๋ง๋ จ
Uploaded by N2T