Post

๐Ÿข chap10. ์œ ๋‹‰์Šค์˜ ์—ญ์‚ฌ์™€ ์•„ํ‚คํ…์ฒ˜

โญ 10.1 ์œ ๋‹‰์Šค์˜ ์—ญ์‚ฌ

โœ… 10.1.1 ๋ฉ€ํ‹ฑ์Šค์™€ ์œ ๋‹‰์Šค

  1. ์œ ๋‹‰์Šค ์ด์ „์— ๋ฒจ ์—ฐ๊ตฌ์†Œ๊ฐ€ ์ฃผ๋„ํ•œ ๋ฉ€ํ‹ฑ์Šค OS
  2. ์œ ๋‹‰์Šค์˜ ์„ ๊ตฌ์ž์˜€๋˜ ์ผ ํ†ฐ์Šจ์ด๋‚˜ ๋ฐ๋‹ˆ์Šค ๋ฆฌ์น˜๋Š” ์—ฌ๋Ÿฌ ์ด์œ ๋กœ ๋ฉ€ํ‹ฑ์Šค๋ฅผ ํฌ๊ธฐ
  3. ๋ฒจ ์—ฐ๊ตฌ์†Œ์—์„œ ๊ณ ์•ˆํ•œ ๋” ๋‹จ์ˆœํ•˜๊ณ  ๋” ํšจ์œจ์ ์ธ ์šด์˜์ฒด์ œ ์œ ๋‹‰์Šค

โœ… ๋ฉ€ํ‹ฐ์Šค์™€ ์œ ๋‹‰์Šค ์ฐจ์ด์ ๊ณผ ์œ ์‚ฌ์ 

  • ๋ฉ€ํ‹ฑ์Šค์™€ ์œ ๋‹‰์Šค ๋ชจ๋‘ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋กœ โ€˜์–‘ํŒŒ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฒน์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ง ๋ชจ์–‘์˜ ์•„ํ‚คํ…์ฒ˜โ€™ ๋‘˜ ๋‹ค ์•„ํ‚คํ…์ฒ˜ ๋‚ด์— ๊ฑฐ์˜ ๊ฐ™์€ ๊ตฌ์กฐ์˜ ๋ง์ด ์žˆ๋Š”๋ฐ, ํŠนํžˆ ์ปค๋„ ๋ง๊ณผ ์…ธ ๋ง์ด ์ด์— ํ•ด๋‹น
  • ๋ฉ€ํ‹ฑ์Šค๋Š” ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋น„์‹ผ ์ž์›๊ณผ ๋จธ์‹ ์ด ํ•„์š”
  • ๋ฉ€ํ‹ฑ์Šค๋Š” ์„ค๊ณ„๊ฐ€ ๋ณต์žก

โ€”> 2000๋…„ 10์›” 30์ผ์— ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฉ€ํ‹ฑ์Šค๋ฅผ ์“ฐ๋˜ ์ปดํ“จํ„ฐ๊ฐ€ ์ข…๋ฃŒ.

  • ๋ฉ€ํ‹ฑ์Šค๊ฐ€ ์ œ์•ˆํ•œ ์•„์ด๋””์–ด์™€ ํ˜์‹ ์„ ๋‹จ์ˆœํ™”ํ•œ ๊ฒฐ๊ณผ โ†’ ์œ ๋‹‰์Šค

โœ… 10.1.2 BCPL๊ณผ B

  1. BCPL์€ ๋งˆํ‹ด ๋ฆฌ์ฒ˜๋“œMartin Richards๊ฐ€ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  2. ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๊ฐ€ ์•„๋‹Œ ๋” ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์šด์˜์ฒด์ œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•œ ๋ฒจ ์—ฐ๊ตฌ์†Œ
  3. ๋ฉ€ํ‹ฑ์Šค๋Š” ์œ ๋‹‰์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด์˜ ์ค‘์‹ฌ
  4. ๋ฒจ ์—ฐ๊ตฌ์†Œ์˜ ์ผ„ ํ†ฐ์Šจ๊ณผ ๋ฐ๋‹ˆ์Šค ๋ฆฌ์น˜๋Š” BCPL์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, DEC PDP-7 ๊ณผ ๊ฐ™์€ ๋ฏธ๋‹ˆ ์ปดํ“จํ„ฐ์—์„œ BCPL์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ธ์–ด์˜ ๋ช‡๋ช‡ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ๋‹ค.
  5. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ B ์–ธ์–ด ํƒ„์ƒ
  6. B๋Š” ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ด€์ ์—์„œ ๋‹จ์ ์ด ์กด์žฌ

    • B๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋งŒ ์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

    • B๋Š” ์ž๋ฃŒํ˜•์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด B๋Š” ๋‹จ์ผ ์ž๋ฃŒํ˜• ์–ธ์–ด์˜€์Šต๋‹ˆ๋‹ค.(ypeless ์–ธ์–ด) ๋ชจ๋“  ๋ณ€์ˆ˜๋Š” ์›Œ๋“œ์ž๋ฃŒํ˜•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋งŒ์•ฝ 20๊ฐœ์˜ ๋ฌธ์ž(๋์— null ๋ฌธ์ž๊ฐ€ ๋”ํ•ด์ ธ 21๊ฐœ)๋ฅผ ๊ฐ–๋Š” ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๋ฉด, ์ด๋ฅผ ์›Œ๋“œ๋กœ๋งŒ ๋‚˜๋ˆ„์–ด์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜์— ๋‹ด์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›Œ๋“œ๊ฐ€ 4๋ฐ”์ดํŠธ์ธ ๊ฒฝ์šฐ, 21๊ฐœ ๋ฌธ์ž๋กœ ๋œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋ ค๋ฉด ๋ณ€์ˆ˜ 6๊ฐœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    • ์ž๋ฃŒํ˜•์ด ์—†๋‹ค๋Š” ๊ฒƒ์€ ๋ฌธ์ž์—ด ์กฐ์ž‘ ์•Œ๊ณ ๋ฆฌ๋“ฌ ๊ฐ™์€ ๋ฉ€ํ‹ฐ๋ฐ”์ดํŠธmultibyte ์ง€ํ–ฅ ์•Œ๊ณ ๋ฆฌ๋“ฌ์ด B์—์„œ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑ๋  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

    B๋Š” ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹Œ ์›Œ๋“œ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ •์ˆ˜๋‚˜ ๋ฌธ์ž์—ด ๊ฐ™์€ ๋ฉ€ํ‹ฐ๋ฐ”์ดํŠธ ์ž๋ฃŒํ˜•์„ ๋‹ค๋ฃจ๊ธฐ์— ์›Œ๋“œ๋Š” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

    • B๋Š” ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

    ๋‹น์‹œ ์ ์  ๋” ๋งŽ์€ ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด์—์„œ ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, B ์–ธ์–ด์—์„œ๋Š” ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

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

    ๋ฐ”์ดํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” PDP-1๊ณผ ๊ฐ™์€ ๋จธ์‹ ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, B๋Š” ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐ”์ดํŠธ๋ฅผ ๋‹ค๋ฃจ๊ธฐ์— ๋น„ํšจ์œจ์ ์ž„์ด ๋“œ๋Ÿฌ๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ด๋Š” B ํฌ์ธํ„ฐ์—์„œ ๋” ๋ช…ํ™•ํ•ด์กŒ๋Š”๋ฐ, ์ด ํฌ์ธํ„ฐ๋Š” ๋ฐ”์ดํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์›Œ๋“œ๋งŒ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ NB (New B) ์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ๊นŒ์ง€ B ์–ธ์–ด๋Š” ๊ณ„์† ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค

  7. ๋‚˜์ค‘์— B ์–ธ์–ด๋กœ๋ถ€ํ„ฐ ๊ตฌ์กฐ์ฒด๊ฐ€ ์œ ๋ž˜๋˜์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ B์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์˜ ์ž๋ฃŒํ˜•์ด ์—†์—ˆ์ง€๋งŒ, C์—์„œ๋Š” ์ž๋ฃŒํ˜•์ด ์กด์žฌ

  8. ๋งˆ์นจ๋‚ด 1973๋…„์— ์œ ๋‹‰์Šค์˜ ๋„ค ๋ฒˆ์งธ ๋ฒ„์ „์€ (์—ฌ์ „ํžˆ ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ ์กด์žฌ) C๋ฅผ ์ด์šฉํ•ด ๊ฐœ๋ฐœ

โญ 10.2 ์œ ๋‹‰์Šค ์•„ํ‚คํ…์ฒ˜

โœ… 10.2 ์œ ๋‹‰์Šค ์•„ํ‚คํ…์ณ

๋ฉ€ํ‹ฑ์Šค์™€ ์œ ๋‹‰์Šค๋Š” ๋ชจ๋‘ ๋น„์Šทํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•˜๋ ค ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋‘˜์€ ์ƒ๋‹นํžˆ ๋‹ค๋ฅธ ์šด๋ช…์— ์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฑ์Šค๋Š” ์„ธ๊ธฐ๋ง์— ์žŠํžˆ๊ธฐ ์‹œ์ž‘ํ•œ ๋ฐ˜๋ฉด, ์œ ๋‹‰์Šค ๋ฐ BSD์™€ ๊ฐ™์€ ์œ ๋‹‰์Šค ๊ธฐ๋ฐ˜์˜ ์šด์˜์ฒด์ œ๋Š” ๊ทธ ์ดํ›„๋กœ๋„ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œ ๋‹‰์Šค ์ฒ ํ•™ โ†’ ๊ฐ„๋‹จํžˆ ์œ ๋‹‰์Šค ์„ค๊ณ„๊ฐ€ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ณ ์ˆ˜์ค€์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ชจ์€ ์ง‘ํ•ฉ

โœ… 10.2.1 ์œ ๋‹‰์Šค ์ฒ ํ•™

  • ์œ ๋‹‰์Šค๋Š” ์ผ๋ฐ˜์ ์ธ ์ตœ์ข… ์‚ฌ์šฉ์žend user๊ฐ€ ์•„๋‹Œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์„ค๊ณ„ ๋ฐ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์—์„œ ์š”๊ตฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ณ ๋ ค ์‚ฌํ•ญ์€ ์œ ๋‹‰์Šค ์•„ํ‚คํ…์ฒ˜์— ํ•ด๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์€ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋“ค ํ”„๋กœ๊ทธ๋žจ ๊ฐ๊ฐ์€ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ls. mkdir. ifconfig, grep, sed ๊ฐ™์ด ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์‚ฌ๋ก€๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ์ผ์€ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์—ฐ์‡„์ ์œผ๋กœ ์‹คํ–‰ํ•ด์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๊ณ  ๋ณต์žกํ•œ ์ผ์—๋Š” ๋ณธ ์งˆ์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ๊ฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ž„๋ฌด๋ฅผ ๋‹ฌ์„ฑํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ๋ฒˆ ์‹ค ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋Œ€์‹  ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ทธ ์ข‹์€ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ ๊ฐ„์— ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ด์‹๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ๋‹‰์Šค๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํฌ๊ณ  ๋ณต์žกํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋‚˜๋ˆ„๋„๋ก ์žฅ๋ คํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ๊ฐ์˜ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ž…๋ ฅ์œผ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด ์ฒด์ธ ์€ ๊ณ„์† ์ด์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณต์žกํ•œ ์ผ์„ ์ˆ˜ํ–‰ํ•  ๋Šฅ๋ ฅ์ด ์žˆ๋Š” ์ฒด์ธ์œผ๋กœ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฒด์ธ์—์„œ ๊ฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ด์ „ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ์„ ๋ฐ›๊ณ , ๋กœ์ง์— ๋”ฐ๋ผ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ๊ณ  ์ฒด์ธ์˜ ๋‹ค์Œ ํ”„๋กœ๊ทธ๋žจ์— ์ด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํŠธ๋žœ์Šคํฌ๋จธ transformer๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์œ ๋‹‰์Šค ๋ช…๋ น์–ด ์‚ฌ์ด์— ์žˆ๋Š” ์ˆ˜์ง ๋ง‰๋Œ€ ํŒŒ์ดํ”„์ธ ls -lgrep a.out๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์ข‹์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค๋Š” ๋งค์šฐ ๋ฌธ์ž ์ง€ํ–ฅ์ ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ™˜๊ฒฝ ์„ค์ •์€ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฌธ์ž๋กœ ๋œ ๋ช…๋ น์–ด๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์…ธ ์Šคํฌ๋ฆฝํŠธ ๋˜ํ•œ ๋‹ค๋ฅธ ์œ ๋‹‰์Šค ์…ธ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ๋“ฌ์„ ์ž‘์„ฑํ•˜๋Š” ๋‹จ์ˆœํ•œ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค๋Š” ์™„๋ฒฝํ•จ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•จ์„ ์„ ํƒํ•˜๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ๋‹จ์ˆœํ•œ ํ•ด๊ฒฐ์ฑ…์ด ํšจ๊ณผ์ ์ด๋ผ๋ฉด ๋ฏธ๋ฏธํ•œ ์ •๋„๋กœ ์กฐ๊ธˆ ๋” ์ž˜ ์ž‘๋™ํ•˜๋Š” ๋ณต์žกํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์„ค๊ณ„ํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ใƒป์–ด๋–ค ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•ด ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค๋ฅธ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ๋„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ๋‹ค์–‘ํ•œ ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์‹œ์Šคํ…œ์—์„œ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ฐ–์ถค์œผ๋กœ์จ ์ถฉ์กฑ๋ฉ๋‹ˆ๋‹ค.

โœ… 10.2.2 ์œ ๋‹‰์Šค ๋ง

30.png

๋ง ๋ชจ๋ธ์€ ์œ ๋‹‰์Šค์˜ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฌ˜์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง ๊ฐ๊ฐ ์€ ๋‚ด๋ถ€์˜ ๋ง์„ ๊ฐ์‹ธ๋Š” ๋ž˜ํผ๋กœ ๊ธฐ๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. ๋ง ๋ชจ๋ธ์˜ ํ•ต์—๋Š” ํ•˜๋“œ์›จ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์šด์˜์ฒด์ œ์˜ ์ฃผ์š” ์ž„๋ฌด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•˜๋“œ์›จ์–ด์™€ ์ƒํ˜ธ์ž‘์šฉํ•ด ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋“œ์›จ์–ด์— ์ ‘๊ทผํ•˜๋ ค๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์œ ๋‹‰์Šค์˜ ์ฃผ์š” ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

  1. ํ•˜๋“œ์›จ์–ด๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ๋ง์€ ์ปค๋„ kernel ์ž…๋‹ˆ๋‹ค.
  • ์ปค๋„์€ ์šด์˜์ฒด์ œ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ธต์ด๊ณ , ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ๋ถ€์ฐฉ๋œ ๊ธฐ๋Šฅ์„ ๋“œ๋Ÿฌ๋‚ด๋Š” ๋ž˜ํผ wrapper์˜ ์—ญํ• ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ปค๋„์€ ์‹œ์Šคํ…œ์˜ ์ „์ฒด ์ž์›์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋†’์€ ๊ถŒํ•œ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์ปค๋„์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ํฐ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปค๋„ ๋ง์ด ๋‹ค๋ฅธ ๋ง๋ณด๋‹ค ๋‘๊ป๊ฒŒ ๊ทธ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ์ปค๋„ ๋‚ด๋ถ€์—๋Š” ๋งŽ์€ ๋‹ค์–‘ํ•œ ์œ ๋‹›์ด ์กด์žฌํ•˜๋ฉฐ, ์œ ๋‹› ๊ฐ๊ฐ์€ ์œ ๋‹‰์Šค ์ƒํƒœ๊ณ„์—์„œ ํ•„์ˆ˜์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  1. ๋‹ค์Œ ๋ง์€ ์…ธshell ์ž…๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•ด ์ปค๋„์˜ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ปค๋„ ์ฃผ๋ณ€์˜ ์…ธ์ž…๋‹ˆ๋‹ค.
  • ์…ธ ๋ง์€ ์œ ๋‹‰์Šค ์ฒ ํ•™์— ๋”ฐ๋ฅธ ๋Œ€๋ถ€๋ถ„์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฃผ๋กœ ๋‹จ๋…์œผ๋กœ ์ œ๊ณต
  • ์…ธ ๋ง์€ ์—ฌ๋Ÿฌ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋“ค ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ์ปค๋„์˜ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋„๊ตฌ ๋ชจ์Œ์„ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์…ธ ๋ง์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์Œ๋„ ํฌํ•จํ•˜๋Š”๋ฐ, ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ชจ๋‘ C๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‹จ์ผ ์œ ๋‹‰์Šค ๊ทœ๊ฒฉ simple Unix Specification (SUS)์— ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ์…ธ ๋ง์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ํ‘œ์ค€ ๋ฐ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฐ˜๋“œ์‹œ ๋…ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  1. ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ ๋ง์ธ ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ
  • ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์‹ค์ œ ๋ชจ๋“  ์‘์šฉํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค, ์›น ์„œ๋น„์Šค, ๋ฉ”์ผ ์„œ ๋น„์Šค, ์›น ๋ธŒ๋ผ์šฐ์ €, ์›Œํฌ์‹œํŠธ ํ”„๋กœ๊ทธ๋žจ, ์›Œ๋“œ ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ ์ž„๋ฌด๋ฅผ ์™„์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด, ๊ณง ๋‹ค๋ฃฐ ์‹œ์Šคํ…œ ํ˜ธ์ถœsystem call์„ ํ†ตํ•ด์„œ ์ปค๋„์—์ง์ ‘ ์ ‘๊ทผํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์…ธ ๋ง์ด ์ œ๊ณตํ•˜๋Š” API์™€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ์ฒ ํ•™์— ์žˆ๋Š” ์ด์‹์„ฑ์˜ ์›๋ฆฌ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์…ธ ๋ง๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ œ์•ฝ์€ ์ด๋Ÿฌํ•œ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์šด์˜์ฒด์ œ๊ฐ€ ์•„๋‹Œ ๋‹ค์–‘ํ•œ ์œ ๋‹‰์Šค ๊ณ„์—ด ์‹œ์Šคํ…œ์—์„œ ํ˜ธํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ๋ง ๋ชจ๋ธ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ฃผ์ œ ์ค‘์—๋Š” ๋ฐ”๊นฅ ๋ง์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‚ด๋ถ€ ๋ง์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ๋ง ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ง ๊ทธ ์ž์ฒด๋ณด๋‹ค ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

โญ 10.3 ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ์…ธ ์ธํ„ฐํŽ˜์ด์Šค

์ธ๊ฐ„ ์‚ฌ์šฉ์ž๋Š” ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์ด๋‚˜ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ™์€ ํŠน์ • GUI ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ํ„ฐ๋ฏธ๋„๊ณผ GUI ํ”„๋กœ๊ทธ๋žจ = ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ = ์‘์šฉํ”„๋กœ๊ทธ๋žจ = ํ”„๋กœ๊ทธ๋žจ
  • ์ด๋“ค์€ ์…ธ ๋ง์„ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์…ธ๋ง์ด ์ œ๊ณตํ•˜๋Š” API๋ฅผ ํ†ตํ•ด ๋Œ€๋ถ€๋ถ„์˜ ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•˜๋“œ์›จ์–ด๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ, CPU, ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ, ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค๋ฅผ ์œ„ํ•ด C๋กœ ๊ฐœ๋ฐœ๋œ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์กด์žฌ. ์ด๋“ค์˜ ๊ณตํ†ต์ ์€? ์ด๋“ค ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๋Š” ์•ฝ๊ฐ„๋งŒ ๋ณ€ํ˜•ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์œ ๋‹‰์Šค ๋ฐ ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ์—์„œ ์ด์‹ ๊ฐ€๋Šฅ
  • ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ•œ๊ฐ€? ๋‹ต์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์€ ์…ธ ๋ง์—์„œ ๊ฐ™์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์ŠคApplication Programming Interface (API)๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋…ธ์ถœ๋œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋งŒ์„ ์‚ฌ์šฉํ•˜๋Š” C ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋ชจ๋“  ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๋ฉด API๋ฅผ ๋…ธ์ถœํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š”? API๋Š” ์ด์ „์— ์„ค๋ช…ํ•œ ๋Œ€๋กœ, ์ผ๋ จ์˜ ์„ ์–ธ์„ ํฌํ•จํ•˜๋Š” ํ—ค๋” ํŒŒ์ผ์˜ ๋ฌถ์Œ์ž…๋‹ˆ๋‹ค. ์ด ํ—ค๋”์™€ ๊ทธ ์•ˆ์— ์žˆ๋Š” ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ๋ชจ๋“  ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ํ•จ์ˆ˜์˜ ๊ตฌํ˜„, ์ฆ‰ ๊ฐ๊ฐ์˜ ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์‹œ์Šคํ…œ์„ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์ •์ , ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์„œ๋กœ ๊ณ ์œ ํ•˜๊ณ  ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ… ์œ ๋‹‰์Šค ํ˜ธํ™˜์‹œ์Šคํ…œ์ด๋ž€? ์šฐ๋ฆฌ๋Š” ์œ ๋‹‰์Šค๋ฅผ ์šด์˜์ฒด์ œ๊ฐ€ ์•„๋‹Œ ํ‘œ์ค€์œผ๋กœ ๋ด…๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ํ‘œ์ค€๊ณผ ์™„์ „ํžˆ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์‹œ์Šคํ…œ์ด ์กด์žฌํ•˜๋ฉฐ, BSD ์œ ๋‹‰์Šค์™€ ๊ฐ™์€ ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์„ โ†’ ์œ ๋‹‰์Šค ํ˜ธํ™˜ ์‹œ์Šคํ…œ

โœ… ์œ ๋‹‰์Šค ๊ณ„์—ด์‹œ์Šคํ…œ์ด๋ž€?

์œ ๋‹‰์Šค ํ‘œ์ค€์„ ๋ถ€๋ถ„์ ์œผ๋กœ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ์€ ์œ ๋‹‰์Šค ๊ณ„์—ด ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์ด์— ํ•ด๋‹น

์…ธ ๋ง์ด ๋…ธ์ถœํ•˜๋Š” ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค ์ค‘ ๋ช‡ ๊ฐ€์ง€๋Š” ์˜๋ฌด ์‚ฌํ•ญ์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ SUS V4์— ์žˆ๋Š” API ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

  • ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค: ๋ชจ๋“  C ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. SUS 4์—๋Š” ์œ ๋‹‰์Šค์‹œ์Šคํ…œ์—์„œ ๊ตฌํ˜„๋˜์–ด์•ผ ํ•˜๋Š” 1.191๊ฐœ์˜ ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ…Œ์ด๋ธ”์€ C์˜ ํŠน์ • ๋ฒ„์ „์—์„œ ํŠน์ • ํ•จ์ˆ˜๊ฐ€ ์˜๋ฌด ๋˜๋Š” ์„ ํƒ์ด๋ผ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์šฐ๋ฆฌ๊ฐ€ ๊ด€์‹ฌ ์žˆ๋Š” ๋ฒ„์ „์€ C99์ž…๋‹ˆ๋‹ค.
  • ํ—ค๋” ์ธํ„ฐํŽ˜์ด์Šค: SUS v4์™€ ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ—ค๋” ํŒŒ์ผ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ด SUS ๋ฒ„์ „์—์„œ๋Š” ๋ชจ๋“  C ํ”„๋กœ๊ทธ๋žจ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” 82๊ฐœ์˜ ํ—ค๋” ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ดํŽด ๋ณด๋ฉด stdio.h, stdlib.h, math.h, string.h์™€ ๊ฐ™์€ ์œ ๋ช…ํ•œ ํ—ค๋” ํŒŒ์ผ์ด ๋งŽ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ธํ„ฐํŽ˜์ด์Šค: SUS v4์™€ ํ˜ธํ™˜๋˜๋Š” ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ์ปค๋งจ๋“œ ๋ผ์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ์‚ดํŽด๋ณด๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ์นœ์ˆ™ํ•  ๋งŽ์€ ๋ช…๋ น์–ด๊ฐ€ ๋ณด์ž… ๋‹ˆ๋‹ค. mkdir. ls, cp. df, bc ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ๋ช…๋ น์–ด๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์œผ๋ฉฐ 160๊ฐœ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
  • ์Šคํฌ๋ฆฝํŒ… ์ธํ„ฐํŽ˜์ด์Šค: ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜ ๋Š” ์ž๋™ํ™”๋œ ์ž„๋ฌด๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŒ… ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์…ธ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด scripting language ๋˜๋Š” ์…ธ ๋ช…๋ น์–ด shell command language๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  • XCURSES ์ธํ„ฐํŽ˜์ด์Šค: XCURSES๋Š” ๋ฏธ๋‹ˆ๋ฉ€ํ•œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ GUI์—์„œ C ํ”„๋กœ๊ทธ๋žจ๊ณผ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ผ๋ จ์˜ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์Šคํฌ๋ฆฐ์—์„œ XCURSES์— ๋Œ€ํ•œ ๊ตฌํ˜„์ธ ncurses๋ฅผ ์‚ฌ์šฉํ•ด ์ž‘์„ฑ๋œ GUI์— ๋Œ€ํ•œ ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SUS V4์—๋Š” 3๊ฐœ์˜ ํ—ค๋” ์•ˆ์— 379๊ฐœ ์˜ ํ•จ์ˆ˜์™€ 4๊ฐœ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. .
  • SUS๋Š” ์‹œ์Šคํ…œ์—์„œ ํ—ค๋”๋ฅผ ์–ด๋””์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์–ด๋””์— ์žˆ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•  ๋ฟ์ž…๋‹ˆ๋‹ค
  • C ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” libc ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค + ํ—ค๋” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ + ๊ฐ ์œ ๋‹‰์Šค ๋ฒ„์ „ Unix flavor (ํ˜น์€ ์œ ๋‹‰์Šค ๊ตฌํ˜„)๋งˆ๋‹ค ๋‹ค๋ฅธ, ์ œ๊ณต๋ฐ›์€ ํ•จ์ˆ˜์˜ ๊ตฌํ˜„๋“ค์˜ ํ•ฉ
  • ์ด์‹ ๊ฐ€๋Šฅํ•œ ์šด์˜์ฒด์ œ ์ธํ„ฐํŽ˜์ด์Šค Portable Operating System Interface (POSIX). ๋ฆฌ๋ˆ…์Šค ํƒ„์ƒ ํ›„ ์—ฌ๋Ÿฌ ์œ ๋‹‰์Šค๊ณ„์—ด ์šด์˜์ฒด์ œ ๊ฐœ๋ฐœ๋˜์—ˆ๋Š”๋ฐ. ์ด๋Š” SUS ํ‘œ์ค€์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์— ํŠน์ • ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๋Š” ํ† ๋Œ€๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. POSIX๋Š” ์œ ๋‹‰์Šค ๊ณ„์—ด ์‹œ์Šคํ…œ์ด ๋”ฐ๋ฅด๋Š” SUS ํ‘œ์ค€์˜ ๋ถ€๋ถ„์ง‘ํ•ฉPOSIX๋Š” ์œ ๋‹‰์Šค ํ‘œ์ค€์ด ๋” ๊ด‘๋ฒ”์œ„ํ•œ ์šด์˜์ฒด์ œ์— ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • SUS์™€ POSIX ํ‘œ์ค€์€ ๋ชจ๋‘ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์€ POSIX ๋˜๋Š” SUS ๊ตฌํ˜„์— ๋Œ€ํ•œ ์ž์ฒด์ ์ธ ๊ตฌํ˜„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋Ÿฌํ•œ ๊ตฌํ˜„์€ ์…ธ ๋ง์— ์†ํ•˜๋Š” libc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์‹œ ๋งํ•ด, ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ ์…ธ ๋ง์€ ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” libc ๊ตฌํ˜„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ์— ๋”ฐ๋ผ ์…ธ ๋ง์€ ์š”์ฒญ์„ ์ „๋‹ฌํ•ด ์ปค๋„ ๋ง์ด ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

โญ 10.4 ์…ธ ๋ง์— ๋Œ€ํ•œ ์ปค๋„ ์ธํ„ฐํŽ˜์ด์Šค

์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์…ธ ๋ง์—์„œ ํŠน์ • ๋กœ์ง์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์—๋Š” ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • libc ๋˜๋Š” ์…ธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์…ธ ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ์€ libc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๊ฒฐ๋˜๊ฑฐ๋‚˜ ๋˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ์กด์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ ๊ธฐ์กด ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ž์ฒด์ ์œผ๋กœ libc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ชจ๋“  ์…ธ ๋ฃจํ‹ด์„ libc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ผ๋ฐ˜ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • FreeBSD๋Š” BSD ์œ ๋‹‰์Šค์—์„œ ํŒŒ์ƒ๋œ ์œ ๋‹‰์Šค๊ณ„์—ด ์šด์˜์ฒด์ œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋กœ ์‹œ์ž‘ํ•ด๋ด…์‹œ๋‹ค. [์˜ˆ์ œ 10-1]์€ 1์ดˆ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ธฐ๋งŒ ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๋งˆ ์ฐฌ๊ฐ€์ง€๋กœ ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๋ง์— ์žˆ์„ ๊ฒƒ์œผ๋กœ ์—ฌ๊ฒจ์ง‘๋‹ˆ๋‹ค. ๋น„๋ก ๋งค์šฐ ๋‹จ์ˆœํ•œ ํ”„๋กœ๊ทธ ๋žจ์ด์ง€๋งŒ, ์‚ฌ์šฉ์ž ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์…ธ ๋ฐ•์Šค 10-1 [์˜ˆ์ œ 10-1]์ด ๋ถˆ๋Ÿฌ์˜จ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด truss๋ฅผ ์‚ฌ์šฉํ•˜๋Š” [์˜ˆ์ œ 10-1]์„ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ

1
2
3
4
5
6
7
8
9
10
11
// File name: ExtremeC_examples_chapter10_1.c
// Description: Simple sleep

#include <unistd.h>

int main(int argc, char** argv) {
	//์‹œ์Šคํƒฌ ํ˜ธ์ถœ
  sleep(1);
  return 0;
}
~

[๋ฐ•์Šค 10-1]์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ, truss๋ผ๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • nanosleep์€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค.
    • ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ time.h์— ์ •์˜๋œ ์…ธ ๋ง์—์„œ nanosleep๊ณผ clock_nanosleep ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ์„œ๋Š” unitsd.h์˜ sleep ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๋ง์ปค์—-lc ์˜ต์…˜์„ ์ „๋‹ฌํ•ด libc์— ๋Œ€ํ•ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์„ ๋งํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” FreeBSD๋งŒ ํ•ด๋‹น๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โญ 10.5 ์ปค๋„

  • ์ปค๋„์˜ ๊ฐœ๋… : ์ปดํ“จํ„ฐ๊ฐ€ ์ผœ์ง„ ํ›„๋ถ€ํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ์šด์˜์ฒด์ œ์˜ ์‹คํ–‰ ์ฝ”๋“œ ๋ชจ์Œ์œผ๋กœ, ํ•˜๋“œ์›จ์–ด ๋ฐ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ์ˆ˜ํ–‰

  • ๋ชจ๋†€๋ฆฌ์‹ ์ปค๋„

    • ํ•˜๋“œ์›จ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์œ ๋‹‰์Šค ๋ง ์‚ฌ์ด์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ์‹œ์Šคํ…œ ํ˜ธ์ถœ
    • ๋ชจ๋†€๋ฆฌ์‹ ์ปค๋„์—๋งŒ ํ•ด๋‹น
  • ์ปค๋„ ํ”„๋กœ์„ธ์Šค

    • ์ฒซ ๋ฒˆ์งธ๋กœ ๋กœ๋“œ ๋ฐ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šคํฐ๋˜๊ธฐ ์ „์— ์ปค๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค๋„ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋™์‹œ์— ์ž‘์—… ์ค‘์ธ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„ ํ”„๋กœ์„ธ์Šค๋Š” ๋ถ€ํŠธ๋กœ๋”boot loader์— ์˜ํ•ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ปค๋„ ์ด๋ฏธ์ง€๋ฅผ ๋ณต์ œํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” exec์ด๋‚˜ fork ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์€ ๋Œ€๋ถ€๋ถ„์˜์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค๋„ ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๋‹ค๋ฃจ๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๋ถˆ๋Ÿฌ์™€ ์ปค๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
    • ์ปค๋„ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๊ถŒํ•œ ์ˆ˜์ค€์ด ๋†’์€ ๋ชจ๋“œ privileged mode์— ์žˆ๋Š” ๋ชจ๋“  ์—ฐ๊ฒฐ๋œ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋ด…๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ด…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ๋ถ€์— ์—ฐ๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์— ๊ด€ํ•ด์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ๋ฆฌ์†Œ์Šค์™€ ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ํ†ต์ œํ•˜๊ณ  ๊ฐ๋…ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ๊ฐ€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ ์ƒŒ๋“œ๋ฐ•์Šค ์•ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์šด์˜์ฒด์ œ ๋Ÿฐํƒ€์ž„

    • ์ปค๋„ ํ”„๋กœ์„ธ์Šค ๋ชจ๋“œ, ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค ๋ชจ๋“œ
    • ์ „์ž์˜ ์‹คํ–‰ ๋ชจ๋“œ๋Š” ์ปค๋„ ๋žœ๋“œ ๋˜๋Š” ์ปค๋„ ๊ณต๊ฐ„์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ›„์ž๋Š” ์œ ์ € ๋žœ๋“œ ๋˜๋Š” ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒƒ์€ ๋‘ ๋žœ๋“œ๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปค๋„ ๊ณต๊ฐ„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์„ ์„œ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ–ˆ์œผ๋ฏ€๋กœ ์‹œ์Šคํ…œ ํ˜ธ์ถœ์ด ๊ณ ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ปค๋„ ๊ณต๊ฐ„์€ ์‹œ์Šคํ…œ ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๊ถŒํ•œ์ด ๋†’์€ ๊ฒƒ์ด๊ณ , ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์€ ๊ฐ€์žฅ ๊ถŒํ•œ์ด ๋‚ฎ์œผ๋ฉฐ ๊ฐ๋…๋ฐ›๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
    • ์ผ๋ฐ˜์ ์ธ ์œ ๋‹‰์Šค ์ปค๋„์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ์ปค๋„์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž„๋ฌด์— ๋”ฐ๋ผ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์‚ฌ์‹ค ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ผ์€ ์ปค๋„์ด ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ์ž„๋ฌด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ์ปค๋„์ด ๊ฐ–๋Š” ๊ถŒํ•œ ๋ชฉ๋ก

    • ํ”„๋กœ์„ธ์Šค๊ด€๋ฆฌ: ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ปค๋„์ด ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋ช…๋ น์–ด ๋กœ๋”ฉ์€ ๋ชจ๋“  ์ž‘์—… ์ค‘์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  Inter-Process Communication (IPC) : ๋™์ผํ•œ ๋จธ์‹ ์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋Š” ๊ทธ๋“ค ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ์—๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ, ํŒŒ์ดํ”„, ์œ ๋‹‰์Šค ๋„๋ฉ”์ธ ์†Œ์ผ“์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„์ด ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•˜๋ฉฐ, ๋ฉ”์„œ๋“œ ์ค‘ ์ผ๋ถ€๋Š” ์ปค๋„์ด ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ํ†ต์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์Šค์ผ€์ค„๋ง: ์œ ๋‹‰์Šค๋Š” ํ•ญ์ƒ ๋‹ค์ค‘ ์ž‘์—…(๋ฉ€ํ‹ฐํƒœ์Šคํ‚น) ์šด์˜์ฒด์ œ๋กœ ์•Œ๋ ค์กŒ์Šต๋‹ˆ๋‹ค. ์ปค๋„์€ CPU ์ฝ”์–ด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ด ์ ‘๊ทผ์— ๋Œ€ํ•œ ๊ท ํ˜•์„ ์œ ์ง€ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • ์ปค๋„ ์ž„๋ฌด : ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ(์ฃผ์š” ์ž„๋ฌด), ํ”„๋กœ์„ธ์Šค ํ• ๋‹น, ๋ฉ”์„œ๋“œ ๊ณต์œ (ํŒŒ์ดํ”„ ์ œ๊ณต), ๋‹ค์ค‘ ์ž‘์—…, ์Šค์ผ€์ค„๋ง, ๋“ฑ
  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, ๋ฉ€ํ‹ฐํ”„๋กœ์„ธ์‹ฑ

    • ์‹œ์Šคํ…œ ์‹œ์ž‘: ์ผ๋‹จ ์ปค๋„ ์ด๋ฏธ์ง€๊ฐ€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋˜๊ณ  ์ปค๋„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด, ์ปค๋„์€ ์‚ฌ์šฉ์ž ์ŠคํŽ˜์ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฃผ๋กœ ํ”„๋กœ์„ธ์Šค ์‹๋ณ„์ž process identifier (PID) 1๋กœ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•จ์œผ๋กœ์จ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์™€ ๊ฐ™์€ ๋ช‡๋ช‡ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์—์„œ๋Š” ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ init์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋œ ๋’ค์— ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ๋ฐ๋ชฌ daemon์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
    • ์žฅ์น˜ ๊ด€๋ฆฌ : CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ์™ธ์—๋„ ์ปค๋„์€ ๋ชจ๋“  ์ปค๋„์— ๋Œ€ํ•ด์„œ ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์น˜๋Š” ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ ์‹ค์ œ ๋˜๋Š” ๊ฐ€์ƒ์˜ ํ•˜๋“œ์›จ์–ด์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์€ /dev ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด ์—ฐ๊ฒฐ๋œ ์žฅ์น˜ ํŒŒ์ผ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ, ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ, USB ์žฅ์น˜ ๋“ฑ์€ /dev ๊ฒฝ๋กœ์— ์žˆ๋Š” ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์น˜ ํŒŒ์ผ์€ ์‚ฌ์šฉ์ž ํ”„๋กœ์„ธ์Šค๊ฐ€ํ•ด๋‹น ์žฅ์น˜์™€ ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปค๋„์—๋Š” ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์œ ๋‹› Memory Management unit (MMU)๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์œ ๋‹›์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    • ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ์œ ๋‹›์€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๋ฉฐ ์ด์— ๋Œ€ํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ ์œ ๋‹›์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ IPC๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค .
    • ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ ๋‹›์€ ์ปค๋„์˜ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์œผ๋กœ, ๋ธ”๋ก๊ณผ ๋ฌธ์ž ์žฅ์น˜์— ๋Œ€ํ•œ ์ถ”์ƒํ™”์ด๋ฉฐ ํ”„๋กœ์„ธ์Šค์™€ ์ปค๋„ ์ž์‹ ์ด ๊ฐ™์€ ๊ณต์œ  ํŒŒ์ผ ๊ณ„์ธต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

31.png

โญ 10.6 ํ•˜๋“œ์›จ์–ด

  • CPU์™€ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ ํ•„์ˆ˜ ์žฅ์น˜์ž…๋‹ˆ๋‹ค.
  • ์ฃผ๋ณ€ ์žฅ์น˜
    • ํ•˜๋“œ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ, ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ, ๋งˆ์šฐ์Šค, ๋ชจ๋‹ˆํ„ฐ, ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ, ์™€์ดํŒŒ์ด ์–ด๋Œ‘ํ„ฐ์™€ ๊ฐ™์€ ๋‚˜๋จธ์ง€ ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด๋Š” ์ฃผ๋ณ€ ์žฅ์น˜์ž…๋‹ˆ๋‹ค. -์œ ๋‹‰์Šค ์ปค๋„์€ CPU์™€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ˆจ๊น๋‹ˆ๋‹ค. ์ปค๋„๋งŒ์ด ์ด๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ๋Š” ์ ‘๊ทผ์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ์ปค๋„์— ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐ ์Šค์ผ€์ค„๋Ÿฌ ์œ ๋‹›์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์™€ CPU๋ฅผ ๊ฐ๊ฐ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ๋‹‰์Šค ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ์ฃผ๋ณ€ ์žฅ์น˜๋Š” ์ด์— ํ•ด๋‹นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ๋ณ€ ์žฅ์น˜๋Š” ์žฅ์น˜ ํŒŒ์ผ์ด๋ผ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋…ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
This post is licensed under CC BY 4.0 by the author.