๋ชฉ๋ก์‹œ์Šคํ…œ์†Œํ”„ํŠธ์›จ์–ด (3)

YS's develop story

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

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

์‹œ์Šคํ…œ์ฝœ, ํŒŒ์ผ์ ‘๊ทผ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒopen(), write(), read(), lseek() ํ•จ์ˆ˜

์‹œ์Šคํ…œ ์ฝœ์ด๋ž€? ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š”๋ฐ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜๋“œ์›จ์–ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค๋„์ด ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ํ•จ์ˆ˜. ์ปค๋„์ด ๋ฌด์—‡์ด๋ƒ๊ณ ์š”? ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜๋ฉด ์šด์˜์ฒด์ œ ๋‚ด๋ถ€์— ์žˆ๋Š” ์•„์ฃผ ์ค‘์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ '์ปค๋„'์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค ์‚ฌ์ „์— ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ์ž์„ธํ•œ ์˜๋ฏธ๋Š”.. ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ์ปค๋„์€ ์ปดํ“จํ„ฐ์˜ ์šด์˜ ์ฒด์ œ์˜ ํ•ต์‹ฌ์ด ๋˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•˜๋‚˜๋กœ, ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์™„์ „ํžˆ ํ†ต์ œํ•œ๋‹ค. ์šด์˜ ์ฒด์ œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์‹œ์Šคํ…œ ์ฝœ ์ค‘์—์„œ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์ˆ˜์ •ํ•˜๊ณ  ์ฝ๋Š” 'ํŒŒ์ผ ์ ‘๊ทผ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ'๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” open(), write(); read().. ํ•จ์ˆ˜๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ openํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด "newFile.txt"๋ผ๋Š” ํŒŒ..