๐Ÿ€ Knowledge/์šด์˜์ฒด์ œ(OS)

[์šด์˜์ฒด์ œ] File๊ณผ Device File

TIlearn 2024. 4. 14. 15:29

 

 

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๋ฅผ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ ๋งŒ๋“ค๋•Œ๋Š” ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.