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

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

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

Π¦Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы находится Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти располоТСны супСрблок ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы, ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² (Π² Π²ΠΈΠ΄Π΅ систСмно-зависимых inode ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠΌ vnode) Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ находящиСся Π² Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠΌ кэшС.

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

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ТСсткой связи для Ρ„Π°ΠΉΠ»Π°. Для этого Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ подсистСмС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ запись Π² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Π½Π° inode Ρ„Π°ΠΉΠ»Π°.

2. Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ счСтчик связСй Π² inode.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ останов систСмы ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ опСрациями. Π’ этом случаС послС запуска Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Π±ΡƒΠ΄ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (Π΄Π²Π΅ записи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²), Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ inode со счСтчиком связСй di_nlinks, Ρ€Π°Π²Π½Ρ‹ΠΌ 1. Π­Ρ‚Π° ситуация ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 4.15 (Π°). Если Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½, это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ, Ρ‚.Π΅. ΠΊ освобоТдСнию Π±Π»ΠΎΠΊΠΎΠ² хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ inode, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ счСтчик связСй di_nlinks станСт Ρ€Π°Π²Π½Ρ‹ΠΌ 0. ΠžΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ запись ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ индСксный дСскриптор, ΠΈΠ»ΠΈ inode, Π°Π΄Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ» (рис. 4.15, Π±).

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ сущСствСнноС влияниС Π½Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Рассмотрим, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Допустим, порядок ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅, останов ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ опСрациями. ПослС запуска систСмы Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ лишнюю ΠΆΠ΅ΡΡ‚ΠΊΡƒΡŽ связь, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ запись ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° останСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° фактичСски Ρ„Π°ΠΉΠ» ΡƒΠ΄Π°Π»Π΅Π½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ число связСй останСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 1 (рис. 4.15, Π²). Π₯отя это Ρ‚Π°ΠΊΠΆΠ΅ являСтся ошибкой, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся засорСниС дискового пространства, Π΅Π΅ послСдствия всС ΠΆΠ΅ ΠΌΠ΅Π½Π΅Π΅ катастрофичны, Ρ‡Π΅ΠΌ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС.

Рис. 4.15. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ цСлостности Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

Π―Π΄Ρ€ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ порядок ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€Π΅Π΄ ΠΎΡ‚ ошибок Π² случаС Π°Π²Π°Ρ€ΠΈΠΈ Π±Ρ‹Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Однако ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ этого порядка всС ΠΆΠ΅ остаСтся, Ρ‚.ΠΊ. Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΡΡ‚ΡŒ выполнСния запросов для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°. ЕдинствСнной Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ порядок являСтся синхронизация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ со стороны Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ подсистСмы.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ файловая подсистСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΠΊΠ° Π½Π° диск Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ записано содСрТимоС индСксного дСскриптора, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Ρ‚ измСнСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ синхронизации ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² памяти ΠΈ Π΅Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½Π° дискС Π² случаС Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ останова ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ошибок:

1. ΠžΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ адрСсуСтся нСсколькими mode (ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ нСскольким Ρ„Π°ΠΉΠ»Π°ΠΌ).

2. Π‘Π»ΠΎΠΊ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ свободный, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя занят (Π½Π° Π½Π΅Π³ΠΎ ссылаСтся onode).

3. Π‘Π»ΠΎΠΊ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ ΠΊΠ°ΠΊ занятый, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя свободСн (Π½ΠΈ ΠΎΠ΄ΠΈΠ½ inode Π½Π° Π½Π΅Π³ΠΎ Π½Π΅ ссылаСтся).

4. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ число ссылок Π² inode (нСдостаток ΠΈΠ»ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΠΊ ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ записСй Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…).

5. ΠΠ΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ„Π°ΠΉΠ»Π° ΠΈ суммарным Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ адрСсуСмых inode Π±Π»ΠΎΠΊΠΎΠ².

6. ΠΠ΅Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹Π΅ адрСсуСмыС Π±Π»ΠΎΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, располоТСнныС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы).

7. "ΠŸΠΎΡ‚Π΅Ρ€ΡΠ½Π½Ρ‹Π΅" Ρ„Π°ΠΉΠ»Ρ‹ (ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ inode, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ записи ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²).

8. ΠΠ΅Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡ‹Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° inode Π² записях ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π­Ρ‚ΠΈ ошибки схСматичСски ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° рис. 4.16.


Рис. 4.16. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы

Если Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ всС ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° fsck(1M), производящая исправлСниС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Запуск этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ автоматичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС систСмы, ΠΈΠ»ΠΈ администратором, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

fsck [options] filesystem

Π³Π΄Π΅ filesystem β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» устройства, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится файловая систСма.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ исправлСниС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π­Ρ‚ΠΎ связано с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ синхронизации Ρ‚Π°Π±Π»ΠΈΡ† Π² памяти (ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ…) с ΠΈΡ… дисковыми эквивалСнтами (исправлСнными). Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ составляСт корнСвая файловая систСма, которая Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°. Для Π΅Π΅ исправлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ пСрСзапуск систСмы послС провСдСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ происходит доступ процСсса ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, хранящимся Π² Ρ„Π°ΠΉΠ»Π°Ρ…, Π²ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ подошли ΠΊ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Ρƒ ΠΎ подсистСмС Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅.

Π“Π»Π°Π²Π° 5

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°

ЀактичСская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° скрыта ΠΎΡ‚ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ процСсса нСсколькими интСрфСйсами. Один ΠΈΠ· Π½ΠΈΡ… β€” интСрфСйс Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π±Ρ‹Π» рассмотрСн Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅. ВзаимодСйствиС с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами обСспСчиваСтся сСтСвыми интСрфСйсами сокСтов ΠΈΠ»ΠΈ TLI (Transport Layer Interface), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π³Π»Π°Π²Π΅ 6. Однако Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌΡƒ процСссу трСбуСтся взаимодСйствиС с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ устройствами Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π₯отя Π² этом случаС Ρ€ΠΎΠ»ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ подсистСмы Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ Π²Π΅Π»ΠΈΠΊΠ°, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, всС Ρ€Π°Π²Π½ΠΎ ядро прСдоставляСт процСссу ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ схСму, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ устройства.

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Ρ€Π°Π±ΠΎΡ‚Π° всСх этих интСрфСйсов, ΠΊΠ°ΠΊ высокого уровня, (файловая систСма), Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ (взаимодСйствиС с физичСским устройством), обСспСчиваСтся подсистСмой Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Π’ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ознакомимся с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ этой подсистСмы, основным ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ β€” ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΌΠΈ устройствами. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ характСристики ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎ UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² β€” ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅. Как слСдуСт ΠΈΠ· названия, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±ΠΌΠ΅Π½ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшими объСмами Π΄Π°Π½Π½Ρ‹Ρ… с устройством, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΌΠΈ. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° производят ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для дисковых носитСлСй Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² входят Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ подсистСму Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π²ΠΎ всСх вСрсиях UNIX.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части Π³Π»Π°Π²Ρ‹ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ остановимся Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² подсистСмы STREAMS, которая являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ядра Π² вСрсиях UNIX System V. Π­Ρ‚ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ†Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями, ΠΊΠ°ΠΊ буфСризация ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. К подсистСмС STREAMS ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ вСрнСмся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΈ обсуТдСнии Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ сСтСвого доступа Π² UNIX System V.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ интСрфСйс ΠΌΠ΅ΠΆΠ΄Ρƒ ядром UNIX ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Благодаря этому ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части ядра скрыты Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ особСнности ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ пСрСнос систСмы ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств.

Π’ UNIX сущСствуСт большоС количСство Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π§Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… обСспСчиваСт доступ ΠΊ физичСским устройствам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ТСсткому диску, ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Ρƒ ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-нСзависимыС услуги. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ послСдних ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ /dev/kmem для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ядра /dev/null, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ "Π½ΡƒΠ»Π΅Π²ΠΎΠ΅" устройство.

Π’ процСссС запуска систСмы ядро Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ установлСнных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… вСрсиях UNIX эти ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ выводят Π½Π° консоль сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π½Π°ΠΉΠ΄Π΅Π½, ΠΈ инициализация ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ устройства.

Π’ΠΈΠΏΡ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ²