Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIXΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 73

Автор АндрСй РобачСвский

Исконной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой UNIX System V являСтся s5fs. Ѐайловая систСма, разработанная Π² Π‘Π΅Ρ€ΠΊΠ»ΠΈ, FFS, появилась ΠΏΠΎΠ·ΠΆΠ΅, Π² вСрсии 4.2 BSD UNIX. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с s5fs ΠΎΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы соврСмСнных вСрсий UNIX ΠΈΠΌΠ΅ΡŽΡ‚ вСсьма ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Ρ€Π°Π·Π»ΠΈΡ‡Π½ΡƒΡŽ для Ρ€Π°Π·Π½Ρ‹Ρ… вСрсий. НСсмотря Π½Π° это всС ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ UNIX Π² AT&T ΠΈ ΠšΠ°Π»ΠΈΡ„ΠΎΡ€Π½ΠΈΠΉΡΠΊΠΎΠΌ унивСрситСтС Π² Π‘Π΅Ρ€ΠΊΠ»ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы UNIX Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… систСм System V (s5fs) ΠΈ BSD (FFS), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, кстати, ΠΈ сСгодня ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ вСрсий UNIX.

Когда появилась файловая систСма FFS, Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° UNIX ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, создатСли Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсий ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ…. Π­Ρ‚ΠΎ нСудобство Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ нСзависимой ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с нСсколькими "физичСскими" Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ рассмотрим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ Ρ„ΠΈΡ€ΠΌΠΎΠΉ Sun Microsystems. Данная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° являСтся стандартом для SVR4, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вСрсии UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму SCO UNIX.

Π”Π°Π»Π΅Π΅ ΠΌΡ‹ рассмотрим схСму доступа ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… процСссов ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ β€” всю Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов процСсса Π΄ΠΎ фактичСских дисковых Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ опСрационная систСма создаСт Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ открытия процСссом Ρ„Π°ΠΉΠ»Π° ΠΈ которая Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ рассмотрим Π±ΡƒΡ„Π΅Ρ€Π½Ρ‹ΠΉ кэш β€” подсистСму, которая позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисковыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Базовая файловая систСма System V

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ТСсткий диск состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… логичСских частСй, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ (partitions). РасполоТСниС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ€Π°Π·Π΄Π΅Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ диска. Π’ UNIX Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² качСствС нСзависимых устройств, доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ осущСствляСтся ΠΊΠ°ΠΊ ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ носитСлям Π΄Π°Π½Π½Ρ‹Ρ….

НапримСр, диск ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит свою Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° файловая систСма, которая Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ диск ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, позволяя созданиС вСсьма Π΅ΠΌΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм.

Ѐайловая систСма s5fs Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π» диска ΠΈ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 4.1.

Рис. 4.1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы s5fs

β–‘ Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ (superblocΠΊ). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ± Π΅Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΎΠ±Ρ‰Π΅ΠΌ числС Π±Π»ΠΎΠΊΠΎΠ² ΠΈ индСксных дСскрипторов, ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (inode).

β–‘ ΠœΠ°ΡΡΠΈΠ² индСксных дСскрипторов (ilist). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹ΠΉ дСскриптор содСрТит ΡΡ‚Π°Ρ‚ΡƒΡΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° располоТСниС Π΄Π°Π½Π½Ρ‹Ρ… этого Ρ„Π°ΠΉΠ»Π°. Π―Π΄Ρ€ΠΎ обращаСтся ΠΊ inode ΠΏΠΎ индСксу Π² массивС ilist. Один inode являСтся ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ (root) inode Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ обСспСчиваСтся доступ ΠΊ структурС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² послС монтирования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π Π°Π·ΠΌΠ΅Ρ€ массива ilist являСтся фиксированным ΠΈ задаСтся ΠΏΡ€ΠΈ создании Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, файловая систСма s5fs ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ числу Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅ΠΉ, нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° этих Ρ„Π°ΠΉΠ»ΠΎΠ².

β–‘ Π‘Π»ΠΎΠΊΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² хранятся Π² Π±Π»ΠΎΠΊΠ°Ρ…. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„Π°ΠΉΠ»Π° осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· inode, содСрТащСго ссылки Π½Π° Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»ΠΎΠΊΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ дискового Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΈ ΠΈΡ… число опрСдСляСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ суммарный объСм Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° ΠΊΡ€Π°Ρ‚Π΅Π½ 512 Π±Π°ΠΉΡ‚Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ файловая систСма S51K SCO UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ° Π² 1 ΠšΠ±Π°ΠΉΡ‚ (ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅).

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· пСрСчислСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ

Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для монтирования ΠΈ управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² Ρ†Π΅Π»ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для размСщСния Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²). Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ супСрблок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располагаСтся Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π·Π΄Π΅Π»Π°. Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ считываСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ находится Ρ‚Π°ΠΌ Π΄ΠΎ Π΅Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (размонтирования).

Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

β–‘ Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (s_type)

β–‘ Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² логичСских Π±Π»ΠΎΠΊΠ°Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сам супСрблок, ilist ΠΈ Π±Π»ΠΎΠΊΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ… (s_fsize)

β–‘ Π Π°Π·ΠΌΠ΅Ρ€ массива индСксных дСскрипторов (s_isize)

β–‘ Π§ΠΈΡΠ»ΠΎ свободных Π±Π»ΠΎΠΊΠΎΠ², доступных для размСщСния (s_tfree)

β–‘ Π§ΠΈΡΠ»ΠΎ свободных inode, доступных для размСщСния (s_tinode)

β–‘ Π€Π»Π°Π³ΠΈ (Ρ„Π»Π°Π³ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ s_fmod, Ρ„Π»Π°Π³ Ρ€Π΅ΠΆΠΈΠΌΠ° монтирования s_fronly)

β–‘ Π Π°Π·ΠΌΠ΅Ρ€ логичСского Π±Π»ΠΎΠΊΠ° (512, 1024, 2048)

β–‘ Π‘писок Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² свободных inode

β–‘ Π‘писок адрСсов свободных Π±Π»ΠΎΠΊΠΎΠ²

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ число свободных inode ΠΈ Π±Π»ΠΎΠΊΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… послСдних списков Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ Π² супСрблокС Π½Π΅ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ. НапримСр, для индСксных дСскрипторов хранится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π°ΡΡ‚ΡŒ списка. Когда число свободных inode Π² этом спискС приблиТаСтся ΠΊ 0, ядро просматриваСт ilist ΠΈ вновь Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ список свободных inode. Для этого ядро Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π΅ di_mode индСксного дСскриптора, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π²Π½ΠΎ 0 Ρƒ свободных inode.

К соТалСнию, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ свободных Π±Π»ΠΎΠΊΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎ содСрТимому Π±Π»ΠΎΠΊΠ° нСльзя ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, свободСн ΠΎΠ½ ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ список адрСсов свободных Π±Π»ΠΎΠΊΠΎΠ² Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Бписок адрСсов свободных Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ нСсколько Π±Π»ΠΎΠΊΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ супСрблок содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ этого списка. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт этого Π±Π»ΠΎΠΊΠ° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±Π»ΠΎΠΊ, хранящий ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ списка ΠΈ Ρ‚.Π΄., ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 4.1.

Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ свободных Π±Π»ΠΎΠΊΠΎΠ² для размСщСния Ρ„Π°ΠΉΠ»Π° производится с ΠΊΠΎΠ½Ρ†Π° списка супСрблока. Когда Π² спискС остаСтся СдинствСнный элСмСнт, ядро ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±Π»ΠΎΠΊ, содСрТащий ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ списка. Π’ этом случаС содСрТимоС этого Π±Π»ΠΎΠΊΠ° считываСтся Π² супСрблок ΠΈ Π±Π»ΠΎΠΊ становится свободным. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дисковоС пространство ΠΏΠΎΠ΄ списки, ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ свободному мСсту Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠΎΠ³Π΄Π° свободного мСста практичСски Π½Π΅ остаСтся, список адрСсов свободных Π±Π»ΠΎΠΊΠΎΠ² Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ помСщаСтся Π² супСрблокС.

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹Π΅ дСскрипторы

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹ΠΉ дСскриптор, ΠΈΠ»ΠΈ inode, содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ„Π°ΠΉΠ»Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚.Π΅. ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ассоциирован с ΠΎΠ΄Π½ΠΈΠΌ inode, хотя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько ΠΈΠΌΠ΅Π½ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ inode.

Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹ΠΉ дСскриптор Π½Π΅ содСрТит:

β–‘ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТится Π² Π±Π»ΠΎΠΊΠ°Ρ… хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°;

β–‘ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ°Ρ… хранСния Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° ядро ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ копию дискового inode Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ in-core inode, которая содСрТит нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° дискового inode (struct dinode) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π° рис. 4.2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ поля дискового inode ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

di_mode Π’ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ выполнСния ΠΈ ΠΏΡ€Π°Π²Π° доступа. di_nlinks Число ссылок Π½Π° Ρ„Π°ΠΉΠ», Ρ‚.Π΅. количСство ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. di_uid, di_gid Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°- Π³Ρ€ΡƒΠΏΠΏΡ‹. di_size Π Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Π² Π±Π°ΠΉΡ‚Π°Ρ…. Для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² это ΠΏΠΎΠ»Π΅ содСрТит ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈ младший Π½ΠΎΠΌΠ΅Ρ€Π° устройства. di_atime ВрСмя послСднСго доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. di_mtime ВрСмя послСднСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. di_ctime ВрСмя послСднСй ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ inode (ΠΊΡ€ΠΎΠΌΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ di_atime, di_mtime). di_addr[13] Массив адрСсов дисковых Π±Π»ΠΎΠΊΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ….

Рис. 4.2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° дискового inode

ПолС di_mode Ρ…Ρ€Π°Π½ΠΈΡ‚ нСсколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»Π°: Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° (IFREG для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², IFDIR для ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², IFBLK ΠΈΠ»ΠΈ IFCHR для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… устройств соотвСтствСнно); ΠΏΡ€Π°Π²Π° доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ для Ρ‚Ρ€Π΅Ρ… классов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ выполнСния (SUID, SGID ΠΈ sticky bit), значСния этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСны Π² Π³Π»Π°Π²Π΅ 1.