๋ชฉ๋ก์ „์ฒด ๊ธ€ (132)

YS's develop story

๋ฆฌ๋ˆ…์Šค makefile ๋งŒ๋“ค๊ธฐ , make ๋ช…๋ น์–ด

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

Linux 2020. 12. 1. 06:44
๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๊ถŒํ•œ ์„ค๋ช…, ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๊ถŒํ•œ ๋ณ€๊ฒฝ ๋ฐ ํ™•์ธ

์˜ค๋Š˜์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฆฌ๋ˆ…์Šค ํŒŒ์ผ ๊ถŒํ•œ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์˜ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ ls -l ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” ๊ฐ๊ฐ ํŒŒ์ผ ์ข…๋ฅ˜ ๋ฐ ๊ถŒํ•œ, ๋งํฌ์ˆ˜, ์‚ฌ์šฉ์ž(์†Œ์œ ์ž), ๊ทธ๋ฃน, ํŒŒ์ผํฌ๊ธฐ, ์ˆ˜์ •์‹œ๊ฐ„, ํŒŒ์ผ ์ด๋ฆ„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. PracticeํŒŒ์ผ์˜ ํŒŒ์ผ ์ข…๋ฅ˜ ๋ฐ ๊ถŒํ•œ์€ drwxrwxr-x์ธ๋ฐ ์—ฌ๊ธฐ์„œ ๋งจ ์•ž์— d๊ฐ€ ์žˆ์œผ๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฆ‰ PracticeํŒŒ์ผ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ์ด๊ณ  taksk.txt ํŒŒ์ผ์€ -rw-rw-r--์ด๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ์ด ์•„๋‹˜์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งจ ์•ž์˜ ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•œ์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋’ค๋ถ€ํ„ฐ๋Š” ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋Š” ๋ฌธ์ž์ž…๋‹ˆ๋‹ค. Practice ํŒŒ์ผ์˜ ๊ถŒํ•œ์€ rwxrwxr-x๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. take ํŒŒ..

Linux 2020. 11. 15. 07:13
open(), close(), read(), write() ์‹œ์Šคํ…œ ์ฝœ ํ•จ์ˆ˜, File descriptor ์™€ inode number (์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด - 3 )

์˜ค๋Š˜์€ ์‹œ์Šคํ…œ ์ฝœ ํ•จ์ˆ˜ ๋ช‡ ๊ฐœ๋ฅผ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค :) ์šฐ์„  File descriptor๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•ด ๋ด…์‹œ๋‹ค ~ ์‚ฌ์šฉ์ž๊ฐ€ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŒŒ์ผ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ณค ํ•˜์ฃ . OS๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์„ inode number์ด๋ผ๋Š” ๊ฒƒ์„ ํ†ตํ•ด์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ค„์—ฌ์„œ id๋ผ๊ณ  ํ•˜๊ณ  Id๋Š” ์ˆซ์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ์–ด๋–ค ํŒŒ์ผ์„ ์ฝ๊ณ  ์‹ถ๋‹ค๋ฉด, OS๋Š” ๋””์Šคํฌ์—์„œ ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ๊ณ , ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ(dram)๋กœ ๋ณด๋‚ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ํŒŒ์ผ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ฐ์ฒดํ™”์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋•Œ ๊ฐ์ฒด์˜ ํฌ์ธํ„ฐ, ์ฃผ์†Œ๋ฅผ file descriptor๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ์ฝœ open ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. openํ•จ์ˆ˜๋Š” ํŒŒ์ผ์„ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๊ธฐ..

์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋“œ๋””์Šคํฌ์˜ ํ•œ ์„นํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ๋ฒ•, ํ•˜๋“œ๋””์Šคํฌ ์ฝ๋Š” ๋ฐฉ๋ฒ•,HDD ์ฝ๋Š” ๋ฐฉ๋ฒ•, ํ•˜๋“œ๋””์Šคํฌ์˜ ๊ตฌ์กฐ (์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด - 2 )

์•ˆ๋…•ํ•˜์„ธ์š” ~ ์˜ค๋Š˜์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฝ๋Š”์ง€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋ดค์Šต๋‹ˆ๋‹ค! ํ•˜๋“œ๋””์Šคํฌ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ, ์•ก์ธ„์—์ดํ„ฐ ์•”์ด ์›€์ง์ด๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ๋‹จ์œ„๋Š” 512๋ฐ”์ดํŠธ์ด๋ฉฐ, ์•„๋ž˜์˜ ๊ทธ๋ฆผ์— sector s๋ถ€๋ถ„๊ณผ ๊ฐ™์€ ๊ณณ์— 512๋ฐ”์ดํŠธ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋“œ๋””์Šคํฌ์—๋Š” 1๋ฐ”์ดํŠธ์˜ ๋‹จ์œ„๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†๊ณ  ๋ฌด์กฐ๊ฑด 512๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋“œ๋””์Šคํฌ์˜ ๋‚ด์šฉ์„ ์–ด๋–ป๊ฒŒ ์ฝ๋Š”์ง€ ์•Œ์•„๋ณผ๊นŒ์š”? ์ฒ˜์Œ์—๋Š” CPU๊ฐ€ disk controller์—๊ฒŒ ํ•˜๋“œ ๋””์Šคํฌ์˜ ๋ช‡ ๋ฒˆ์งธ sector์„ ์ฝ๊ณ  ์‹ถ์€์ง€ 'sector number read command' ๋ช…๋ น์„ ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ณด๋ƒ…๋‹ˆ..