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

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

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

Если Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΎΠ½ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС M_IOCTL ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (ic_cmd) ΠΈ Π±Π»ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ic_len, ic_dp). ПослС этого сообщСниС направляСтся Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС, ΠΎΠ½ΠΎ содСрТит всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Если ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ процСссу, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ записываСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎ ΠΆΠ΅ сообщСниС, измСняСт Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π½Π° M_IOCACK ΠΈ отправляСт Π΅Π³ΠΎ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² процСссу.

Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ioctl(2) (transparent ioctl). Он позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ioctl(2), Ρ€Π΅ΡˆΠ°Ρ ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ копирования Π΄Π°Π½Π½Ρ‹Ρ…. Когда процСсс выполняСт Π²Ρ‹Π·ΠΎΠ² ioctl(2), Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС M_IOCTL ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π² Π½Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π° β€” command ΠΈ arg. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ arg являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Π±Π»ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ извСстны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ (ΠΈΠ»ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ), ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ просто ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π½Π΅ интСрпрСтируя Π΅Π³ΠΎ ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ копируя Π² сообщСниС сам Π±Π»ΠΎΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ пСрСдаСтся Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ.

Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС, Π² ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΠ½ отправляСт сообщСниС M_COPYIN, содСрТащСС Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ располоТСниС Π΄Π°Π½Π½Ρ‹Ρ…[65], Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π“ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ процСсс, Π²Ρ‹Π·Π²Π°Π²ΡˆΠΈΠΉ ioctl(2), для копирования ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² контСкстС процСсса, Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ доступа ΠΊ Π΅Π³ΠΎ адрСсному пространству Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Π“ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ создаСт сообщСниС M_IOCARGS, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ Π² Π½Π΅Π³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ направляСт сообщСниС Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. ПослС этого процСсс ΠΎΠΏΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состояниС сна.

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

ПослС получСния всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² случаС, Ссли Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ процСссу, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько сообщСний M_COPYOUT, помСщая Π² Π½ΠΈΡ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ направляСт ΠΈΡ… Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π“ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ процСсс, пСрСдавая Π΅ΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Когда всС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ процСссу, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ посылаСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ M_IOCACK, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ процСсс Π² послСдний Ρ€Π°Π·, Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ Ρ‚Π΅ΠΌ самым Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Π° ioctl(2).

ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° STREAMS обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ STREAMS. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠ² β€” Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ, Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΈ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠΌ N:1, обСспСчиваСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. НиТний ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠΌ 1:M, обСспСчиваСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€, ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, позволяСт ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ с нСсколькими ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ подсистСма STREAMS обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ сам ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€.

ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ осущСствляСтся Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ открытия ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ младшими Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с устройством с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². Если Π΄Π²Π° процСсса ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ младшиС Π½ΠΎΠΌΠ΅Ρ€Π°, ядро создаст ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π½Π°Π» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ vnode, ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° xxopen() Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° Π΄Π²Π°ΠΆΠ΄Ρ‹. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π²Π΅ ΠΏΠ°Ρ€Ρ‹ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ. Когда Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ ΠΎΡ‚ устройства, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠ°ΠΊΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ чтСния ΠΈΡ… Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ дСлаСтся Π½Π° основании ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, содСрТащСйся Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. На рис. 5.23 прСдставлСн Π²ΠΈΠ΄ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π° с двумя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

Рис. 5.23. Π’Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€

НиТний ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ прСдставляСт собой Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ псСвдоустройства. ВмСсто Ρ€Π°Π±ΠΎΡ‚Ρ‹ с физичСским устройством ΠΎΠ½ взаимодСйствуСт с нСсколькими ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΡƒ. Для этого Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ обСспСчиваСт Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ β€” Π½ΠΈΠΆΠ½ΠΈΠΌΠΈ очСрСдями чтСния ΠΈ записи. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° streamtab Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π° адрСсуСт ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ интСрфСйс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΆΠ½ΠΈΠΌΠΈ очСрСдями соотвСтствСнно полями st_muxrinit ΠΈ st_muxwinit.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ подсистСма STREAMS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ioctl(2):

I_LINK Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объСдинСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². ΠŸΡ€ΠΈ этом Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Ρƒ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΈΠΆΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π°. I_PLINK Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сохраняСтся ΠΏΡ€ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ I_LINK. I_UNLINK, I_PUNLINK Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π·ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², созданных ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ I_LINK ΠΈ I_PLINK.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° происходит Π² Π΄Π²Π° этапа. Поясним этот процСсс Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создания стСка ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° IP, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊ с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ Ethernet, Ρ‚Π°ΠΊ ΠΈ с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ FDDI. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Ethernet, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° FDDI ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ IP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½ΠΈΠΆΠ½ΠΈΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ΠΎΠΌ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

fdenet = open("/dev/le", O_RDWR);

fdfddi = open("/dev/fddi", O_RDWR);

fdip = open("/dev/ip", O_RDWR);


ioctl(fdip, I_LINK, fdenet);

ioctl(fdip, I_LINK, fdfddi);

Π‘Π½Π°Ρ‡Π°Π»Π° процСсс создаСт Ρ‚Ρ€ΠΈ нСзависимых ΠΏΠΎΡ‚ΠΎΠΊΠ°, адрСсуСмых дСскрипторами fdenet, fdfddi ΠΈ fdip (рис. 5.24, Π°) Для объСдинСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° I_LINK систСмного Π²Ρ‹Π·ΠΎΠ²Π° ioctl(2). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся конфигурация, прСдставлСнная Π½Π° рис. 5.24, Π±.

Рис. 5.24. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ объСдинСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ интСрфСйс Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠ³ΠΎ модуля Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ Ethernet ΠΈΠ»ΠΈ FDDI), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ самой подсистСмой STREAMS, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ интСрфСйс ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π°. Π‘ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ процСсс объСдинСния ΠΏΠΎΡ‚ΠΎΠΊΠ° IP ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° Ethernet ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 5.25.

Рис. 5.25. ОбъСдинСниС Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ ΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π° являСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ±ΠΎ всСх ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… ΠΈ обСспСчСниС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

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

Π­Ρ‚Π° Π³Π»Π°Π²Π° посвящСна Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ подсистСмы Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Π΄Π²ΠΈΠΆΡƒΡ‰Π΅ΠΉ силой ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств. Π‘Ρ‹Π»ΠΈ рассмотрСны Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX с Ρ€Π°Π½Π½ΠΈΡ… Π΅Π΅ вСрсий, β€” ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹. Π’Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² процСссС ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ интСрфСйс ΠΈ файловая систСма.

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

Π“Π»Π°Π²Π° 6

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСти Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX

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