
์ค๋ ๋ค๋ฃฐ ๋ด์ฉ์ ์๋์ ๊ฐ๋ค. ๋ช ๋ น์ด ํ ํ๋ผ๋ฏธํฐ์ ์ฒ๋ฆฌ ํ๊ฒฝ ๋ณ์์ ์ฒ๋ฆฌ ํ๋ผ๋ฏธํฐ์ ์ฒ๋ฆฌ UNIX์์๋ cli์ ์ ๋ ฅํ ๋ช ๋ น์ด ์ด๋ฆ, ์ต์ , ํ์ผ ๋ฑ์ main์ ์ธ์๋ก ์ ๋ฌํ ์ ์๋ค. ์ค๋์ ์ด๋ ๊ฒ cli์ ๊ฒฐํฉํ์ฌ ํ๋ก๊ทธ๋๋ฐํ๋ ๋ฒ์ ๊ธฐ์ด๋ฅผ ๋ฐฐ์๋ณด๊ฒ ๋ค. int main(int argc, char* argv[]) // int argc; ํ๋ผ๋ฏธํฐ์ ์ // char* argv[]; ํ๋ผ๋ฏธํฐ๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด ๋ฐฐ์ด argc์ argv์ ๊ตฌ์กฐ๋ ์๋์ฒ๋ผ ๋ํ๋ผ ์ ์๋ค. ์๋ฅผ ๋ค์ด sample์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ํ๊ณ ๋ค์ ์ธ์๋ฅผ ์ ๋ ฅํด์คฌ๋ค๊ณ ๊ฐ์ ํ์ sample aaa bbb ccc ์ฐ๋ฆฌ๊ฐ ๋ฆฌ๋ ์ค ํฐ๋ฏธ๋์์ ๋ช ๋ น์ด ๋ค์ ํ๋ผ๋ฏธํฐ ๋ณด๋ด๋ ๊ฒ๊ณผ ์๋ฒฝํ๊ฒ ๋์ผํ๋ค. ์ด ๊ฒฝ์ฐ argc=4, argv๋ ..

์ (์ ธ) ๋ช ๋ น์ด์ ์ปค๋์ด ๋ํ๋ฅผ ํ ์ ์๊ฒ ๋์์ฃผ๋ ์ผ์ข ์ ์ธํฐํ์ด์ค ๋ช ๋ น์ด ํด์๊ธฐ๋ผ๊ณ ๋ด๋๋จ ์ ์ ๊ฐ ์ ธ(๋ช ๋ น์ด ํด์๊ธฐ)์ ๋ช ๋ น์ ์ ๋ฌํ๋ฉด ์ ธ์ด ์ปค๋ํํ ๋ถํํ๊ณ , ์ปค๋์ด ๋ด๋ถ์ ์ธ ์์ ์ ์คํํ ํ ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ ธ์ ํตํด ์ ์ ์๊ฒ๋ก ์ ๋ฌ ์ ธ(shell)์ ๊ป์ง์ด๋ผ๋ ๋ป์ผ๋ก ์ปค๋์ ๊ฐ์ธ๊ณ ์์ด์ ๊ทธ๋ฐ ์ด๋ฆ์ด ๋์๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ : ์์คํ ์ฝ(syscall), ์ ธ, ์ปค๋๋ชจ๋ vs ์ ์ ๋ชจ๋ ์ ธ ์ข ๋ฅ ์ฌ์ฉ์ ํ๋กฌํํธ๊ฐ $์ด๋ฉด ๋ณธ ์ ธ ๊ณ์ด, %์ด๋ฉด C์ ธ ๊ณ์ด์ด๋ค. Bourne-Shell(/bin/sh) - ์ ๋์ค์ ์ค๋ฆฌ์ง๋ ์. ์ํธ ๋ํํ ๋ฐฉ์ ๋ถ๊ฐ๋ฅ C shell(/bin/csh) - C ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง. ๋น ์กฐ์ด(vi ์๋ํฐ ๋ง๋ ์ฌ๋)๊ฐ ๋ง๋ค์์. Bourne-agin shell(/bin/..

Virtual Device ์ค์ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก VM์์๋ ์ฑ๋ฅ, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง, ๋คํธ์ํน ๋๋ ๊ทธ๋ํฝ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์์คํ ์ ์ ๊ณตํ๋ ํน์ ์ฅ์น๊ฐ ํ์ํ๋ค. ๋ฌผ๋ฆฌ์ ์์คํ ์ ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฌํ ๋ชฉ์ ์ผ๋ก ํ๋์จ์ด ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ VM์ ์ํํธ์จ์ด ๊ตฌํ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ์ฅ์น๋ผ๊ณ ํ๋ ์ด๋ฌํ ์ฅ์น์ ๋ํ ์ํํธ์จ์ด ์ถ์ํ๋ฅผ ํ๋ค. ๋ฆฌ๋ ์ค์์ virtual device๋, ์ค์ ๋ก ์ฐ๊ฒฐ๋ ํ๋์จ์ด๊ฐ ์๋ ๋๋ฐ์ด์ค ํ์ผ์ ๋งํ๋ค. virtual device๋ sw ํํ๋ก ์กด์ฌํ๋ hw์ธ ์ฒ(?)์ ํ๋ค. ๋ฐ๋ผ์ ์์คํ ์ผ๋ก ํ์ฌ๊ธ ํน์ hw๊ฐ ์กด์ฌํ๋ ๊ฒ์ผ๋ก ์ฐฉ๊ฐํ๊ฒ ํ๋ค. ๊ทธ๋ผ ์ด๋ฌํ virtual device๋ ์ ์กด์ฌํ๋? ๋ณดํต OS์์ ์๋ฌ๋ฅผ ๊ณ ์น๊ธฐ ์ํด ์ฌ์ฉ๋๋ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด ..

IPC (Inter-Process Communication) ์ด์ ํฌ์คํธ์์ ํ๋ก์ธ์ค๋ค์ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๋ค๊ณ ํ๋ค. ์ด์ ๋น๊ตํด์ ์ค๋ ๋๋ ํ ํ๋ก์ธ์ค ๋ด์์ ์คํ ์ธ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ค์ ๊ณต์ ํ๋ค๊ณ ํ๋ค. ๊ทธ๋ ๊ธฐ์ ์์๊ณต์ ๊ฐ ์ฝ๋ค. ํ์ง๋ง ํ๋ก์ธ์ค๋ค์ ๋ณ๋์ ์ฃผ์ ๊ณต๊ฐ์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ์๋ก์ ์์(๋ณ์, ์๋ฃ๊ตฌ์กฐ ๋ฑ)์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์๊ฐ ์๋ค. ๊ทธ๋ ๋ค๋ฉด ํ๋ก์ธ์ค๋ค์ ์๋ก ์์ํ ์์์ ๊ณต์ ํ ์ ์๋ ๊ฒ์ผ๊น? ๋ถ๋ช ์๋ ๊ฒ์ด๋ค. ์ค๋์ ํ๋ก์ธ์ค ๊ฐ ์์ ๊ณต์ ๊ฐ ์ด๋ป๊ฒ ์ผ์ด๋๋์ง ์์๋ณด๋๋ก ํ๊ฒ ๋ค. ํ๋ก์ธ์ค๋ฅผ ์์ ๊ณต์ ์ธก๋ฉด์์ ๊ตฌ๋ถํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋๊ฐ์ง๋ก ๋๋ ์ ์๋ค. Independant : ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๋ฅผ ์์ ํ์ง ์๋ ํ๋ก์ธ์ค Cooperating : ๋ค๋ฅธ ..

๋ฆฌ๋ ์ค์ ๋งํฌ์๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค. ๋ฐ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ(์ํํธ ๋งํฌ)์ ํ๋๋งํฌ์ด๋ค. ์ด๋ฅผ ์๊ธฐ ์ ์ ๋จผ์ i-node์ ๊ฐ๋ ๋ถํฐ ๋ณด๊ณ ๊ฐ์. inode inode๋ index-node์ ์ฝ์์ด๋ค. index๋ ํ๊ตญ์ด๋ก๋ '์์ธ'์ด๋ค. ์ฆ, ๋ณดํต ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ์ ๋ ๋นจ๋ฆฌ ์ฐพ๊ธฐ ์ํด์ ์ฐ์ธ๋ค. ์๋ฅผ ๋ค์ด ๋ฐฐ์ด arr[3]์ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ์ํด index 3์ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค.๋ฐ๋ผ์ index-node, ์ฆ inode๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ถ์ธกํ ์์๋๋ฐ, ์ฌ๊ธฐ์ ๊ทธ '๋ฌด์ธ๊ฐ'๊ฐ 'ํ์ผ'์ด ๋๋ ๊ฒ์ด๋ค.์ฆ inode๋ ํ์ผ์ ์ค์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด ํ์ผ๋ง๋ค ๋ถ์ฌ๋ ๋ ธ๋๋ผ๊ณ ๋ณผ ์ ์๋ค. * ์ฐธ๊ณ ๋ก ๋ฆฌ๋ ์ค๋ ๋ชจ~~~๋ ๊ฒ์ ํ์ผ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ฐ ํ์ผ์ด๋ ๋๋ ํ ..