[์ด์์ฒด์ ] File๊ณผ Device File
File๊ณผ FCB
File์ด๋ ๋ณด์กฐ ๊ธฐ์ต ์ฅ์น ๋ด๋ถ์ ์ ์ฅ๋์ด ์ ์์ด ๊บผ์ ธ๋ ์ง์์ง์ง ์๋ ์ ๋ณด์ ์ ์ฅ๋จ์์ด๋ค.
์ฃผ๋ก ์ ์ถ๋ ฅ ์ฉ๋๋ก ๋ง์ด ์ฌ์ฉํ๊ณ Create, Delete, Open, Read, Write ๋ฑ์ ์ฐ์ฐ์ด ์กด์ฌํ๋ค.
FCB๋ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํด๋์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค. ์ด์ ์ ๋ฐฐ์ ๋ PCB์ ์ ์ฌํ ๊ฐ๋ ์ธ๋ฐ, ๋ค๋ฅธ ์ ์ ์ปดํจํฐ๋ฅผ ์ข ๋ฃํด๋ ๋ฐ์ดํฐ๊ฐ ๋จ์์์ด์ผ ํด์ ๋์คํฌ์ ์ ์ฅ๋๋ค.
FCB๊ฐ ๊ฐ์ง๋ ์ ๋ณด๋ ๋ค์๊ณผ ๊ฐ๋ค.
- Basic Information
- ํ์ผ ์ด๋ฆ
- ํ์ผ ํ์ (Text, Binary..)
- File Organization
- Address Information
- Volumn : ํ์ผ์ด ์ ์ฅ๋ ๋๋ฐ์ด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- Starting Address : ๋์คํฌ ๋ด์ ์์ ๋ฌผ๋ฆฌ ์ฃผ์
- Size Used : ์ฌ์ฉ๋ ์ฌ์ด์ฆ
- Size Allocated : ํ์ผ์ ์ต๋ ์ฌ์ด์ฆ
- Access Control Information
- Owner(์์ ์)
- Access Information : ์ธ๊ฐ๋ ์ ์ ์ ์ด๋ฆ๊ณผ ํจ์ค์๋ ์ ๋ณด
- Permitted Action : Reading, Writing, Executing, Trasmitting
- Usage Information
- ์์ฑ ๋ ์ง
- ๋ง๋ ์ฌ๋
- ๋ง์ง๋ง ์ฝ์ ๋ ์ง
- ...
File Management Functions
- ์ ํ๋ ํ์ผ์ด ์ด๋์ ์์นํ๋ ์ง
- ์ธ๊ฐ๋์ง ์์ ์ฌ๋์ด ์ ๊ทผํ๋ ๊ฒ์ ์ฐจ๋จ
- ๋์์ ์ฌ๋ฌ ์ฌ๋์ด ๊ฐ์ ํ์ผ์ ์ ๊ทผํ ๋์ ์ฒ๋ฆฌ
- ์ด์์ฒด์ ์ ๋ฐ๋ผ ์์ด
- ๋น ์ ์ฅ ๊ณต๊ฐ์ ๋์คํฌ ์์์ ์ฐพ์ ํ์ผ์๊ฒ ์ฃผ๊ธฐ
- ํ์ผ์ ํ์
๋ค
- Regular File, Directory, Device File, Link, socket, pipe
Device File
Device File์ Device Driver์ ์ ๊ทผํ๋ ํน๋ณํ ํ์ผ์ด๋ค.
Device File์ FCB๋ Device Type์ ๋ํ ์ ๋ณด์ Device Number์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค.
๋ฆฌ๋ ์ค์์ _ls -l /dev_๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์์ ๊ฐ์ ์ถ๋ ฅ์ด ๋์จ๋ค.
_brw-r-----_์์ b๋ Blockํ ์ฅ์น๋ผ๋ ๋ป์ผ๋ก ์ด์์ฒด์ ๋ง๋ค ํฌ๊ธฐ๊ฐ ๋ค๋ฅด์ง๋ง ๋ณดํต์ 4096Byte ๋จ์๋ก ์ฝ๊ณ ์์ ์๋ฏธํ๋ค. ๊ทธ ๋ค์๋ ์ฝ๊ธฐ/์ฐ๊ธฐ/์คํ ๊ถํ์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก ์์ ์/๊ทธ๋ฃน/๋ชจ๋ ์ฌ์ฉ์์ ๋ํด ์ ์ฉํ๋ค.
_1_์ด๋ผ๋ ๊ฒ์ Link Counter๋ฅผ ๋งํ๋ ๊ฑด๋ฐ, ํด๋น ๋ถ๋ถ ์ด์ธ์ ๋ค๋ฅธ ๊ณณ์์๋ ๋งํฌ๊ฐ ๋ง๋ค์ด์ง์ง ์์๋ค๋ ๊ฒ์ด๋ค.
_root_๋ ์์ ์๋ฅผ ๋งํ๋ฉฐ, 3๊ณผ 0์ ๊ฐ๊ฐ Major number์ Minor number๋ก ๋๋ฐ์ด์ค๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๋ง๋ค์๋ค.
๋๋ฐ์ด์ค ํ์ผ์ ์ผ๋ฐ ํ์ผ๊ณผ ๋ฌ๋ฆฌ ํ์ผ์ ์ฌ์ด์ฆ ์ ๋ณด๊ฐ ์๊ณ ๋์ Major number์ Minor number์ ๋ํ ์ ๋ณด๊ฐ ์๋ค.
๊ทธ ๋ค์๋ ์์ฑ๋ ์ง์ ๋๋ฐ์ด์ค ์ด๋ฆ์ ๊ฐ๊ฐ ๋์ดํ๋ค.
๋๋ฐ์ด์ค ํ์ผ์ ๋ง๋ค๊ธฐ ์ํด์๋ _mknod_๋ผ๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ Blockํ์ผ๋ก ๋ง๋ค์ง ๋ฌธ์ํ์ผ๋ก ๋ง๋ค์ง ๊ฒฐ์ ํ๋๊ฒ ๊ฐ๋ฅํ๋ค. Blockํ ์ฅ์น๋ ํ๋๋์คํฌ, SSD ๋ฑ์ด๊ณ , ๋ฌธ์ํ์ ํค๋ณด๋๋ ๋ง์ฐ์ค ๊ฐ์ ์ฅ์น์ด๋ค.
mknod /dev/file_name [b|c] major_number minor_number
์ฐธ๊ณ ๋ก tty๋ teletypewriter์ ์ฝ์ด๋ก ํค๋ณด๋๋ฅผ ๋งํ๋ค.
์ด์์ฒด์ ์์๋ ๋ฏธ๋ฆฌ ๋๋ฐ์ด์ค ํ์ผ์ ๋ํ Major number๋ฅผ ์ง์ ํ๊ธฐ ๋๋ฌธ์ ์๋ก ๋ง๋ค๋๋ ๊ฒน์น์ง ์๋๋ก ์ค์ ํด์ผ ํ๋ค.