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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 66

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ΠΌ для всСх "ΠΌΠ΅Ρ€Ρ‚Π²Ρ‹Ρ…" IPC-срСдств Π² старых Unix-сис-Ρ‚Π΅ΠΌΠ°Ρ… Π²Π΅Ρ‚Π²ΠΈ AT&T Π±Ρ‹Π»Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°. Π“Ρ€ΡƒΠΏΠΏΡƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Unix (The Unix Support Group) возглавлял ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… использовалась Unix, Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π²ΠΈΡ†Π΅-ΠΏΡ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Ρ‹. Π£ Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ возмоТности ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΡ‹Π΅ запросы, ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈ Π±Ρ‹ возраТСния, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ IPC-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ взаимозамСняСмыми.

Π”ΡƒΠ³ ΠœΠ°ΠΊΠΈΠ»Ρ€ΠΎΠΉ.

7.3.1.1.Β System V IPC

БрСдства System V IPC β€” срСдства ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сообщСний, основанныС Π½Π° ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² System V возмоТностях ΠΎΠ±Ρ‰Π΅ΠΉ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ описаны Ρ€Π°Π½Π΅Π΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ System V IPC, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, основанныС Π½Π° ΠΎΠ±ΠΌΠ΅Π½Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ (Π΄ΠΎ 8 Кб) Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ сообщСниями. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ справочныС руководства доступны для msgctl(2) ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ Π±Ρ‹Π» ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ вытСснСн тСкстовыми ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ сокСтами, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ этой ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ здСсь Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ.

БрСдства System V IPC ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Unix-систСмах. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ часто. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Linux-вСрсия Π΄ΠΎ сСрСдины 2003 Π³ΠΎΠ΄Π° ΠΈΠΌΠ΅Π»Π° ошибки. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ заботится ΠΎΠ± ΠΈΡ… исправлСнии.

7.3.1.2.Β ΠŸΠΎΡ‚ΠΎΠΊΠΈ

ΠŸΠΎΡ‚ΠΎΠΊΠΈ (streams) сСтСвого взаимодСйствия Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ для Unix Version 8 (1985). Π˜Ρ… новая рСализация называСтся STREAMS (ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ всС Π±ΡƒΠΊΠ²Ρ‹ прописныС). Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎΠ½Π° стала Π΄ΠΎΠ΅Ρ‚ΡƒΠΏΠ½ΠΎΠΉ Π² вСрсии 3.0 System V Unix (1986). БрСдство STREAMS обСспСчивало дуплСксный интСрфСйс (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Π²ΡˆΠΈΠΉΡΡ ΠΎΡ‚ BSD-сокСтов, ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ сокСтам доступ ΠΊ Π½Π΅ΠΌΡƒ осущСствлялся посрСдством ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ read(2) ΠΈ write(2) послС ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ установки) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ процСссом ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ устройства Π² ядрС. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ устройства ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΈΠ»ΠΈ сСтСвая ΠΏΠ»Π°Ρ‚Π°, ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ псСвдоустройством, установлСнным для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ процСссами.

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

ΠŸΠΎΡ‚ΠΎΠΊΠΈ стали ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ядра, которая Π½Π°Π·Ρ‹Π²Π°Π»Π°ΡΡŒ "ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ Π»ΠΈΠ½ΠΈΠΉ" (line disciplines) β€” Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… ΠΎΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² ΠΈ Ρ€Π°Π½Π½ΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтСй. Однако ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ исчСзали ΠΈΠ· Π²ΠΈΠ΄Π°, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ сСти Ethernet ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°Π»ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС, Π° TCP/IP вытСснял Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Π» Π² ядра Unix, чрСзвычайная Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, прСдоставляСмая срСдством STREAMS, практичСски Π±Ρ‹Π»Π° утСряна. Π’ 2003 Π³ΠΎΠ΄Ρƒ срСдство STREAMS ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΎΡΡŒ Π² System V Unix, ΠΊΠ°ΠΊ ΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π³ΠΈΠ±Ρ€ΠΈΠ΄Π°Ρ… System V/BSD, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Digital Unix ΠΈ Solaris производства Sun Microsystems.

Linux ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Unix-систСмы с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ фактичСски ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΎΡ‚ STREAMS. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ядра ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Linux доступны Π½Π° сайтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LiS <http://www.gcom.com/home/linux/lis/>, Π½ΠΎ (ΠΊ сСрСдинС 2003 Π³ΠΎΠ΄Π°) Π½Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² основноС ядро Linux. Они Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Unix ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах.

7.3.2. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

НСсмотря нСмногочислСнныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ NFS (Network File System) ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ GNOM€, ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π·Π°ΠΈΠΌΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ CORBA, ASN.1 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹ интСрфСйса ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π² основном ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ»ΠΈΡΡŒ. Π”Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΆΠΈΠ»ΠΈΡΡŒ Π² Unix-ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π΅.

Π’ основС этого, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π»Π΅ΠΆΠΈΡ‚ нСсколько ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ΠŸΠ΅Ρ€Π²Π°Ρ β€” RPC-интСрфСйсы Π½Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ, Ρ‚.Π΅. ΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ интСрфСйсы ΠΎΠ± ΠΈΡ… возмоТностях ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ,- Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²ΠΎ врСмя ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· создания срСдств ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ примСнСния Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ слоТных, насколько слоТна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ Π±Ρ‹Π»ΠΈ рассмотрСны Π² Π³Π»Π°Π²Π΅ 6). Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСкоса вСрсий, Ρ‡Ρ‚ΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ интСрфСйсов Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ распрСдСлСны ΠΈ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ Π½Π° этапС ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ.

БущСствуСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: интСрфСйсы, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ сигнатуры Ρ‚ΠΈΠΏΠΎΠ², Ρ‚Π°ΠΊΠΆΠ΅ стрСмятся ΠΊ большСй слоТности, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ нСустойчивыми. Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ происходит Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡ… ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ассортимСнт Ρ‚ΠΈΠΏΠΎΠ², проходящих Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы, Π½Π΅ΡƒΠΊΠ»ΠΎΠ½Π½ΠΎ растСт, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ становятся Π±ΠΎΠ»Π΅Π΅ слоТными. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠΈ становится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ структур Π±ΠΎΠ»Π΅Π΅ вСроятна, Ρ‡Π΅ΠΌ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ строк. Если онтология ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ стороны Π½Π΅ совпадаСт, Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ затрудняСтся взаимодСйствиС Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ устранСниС ошибок. НаиболСС ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌΠΈ RPC-прилоТСниями (Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Network File System) ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прикладная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько простых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ RPC являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ данная тСхнология допускаСт использованиС "Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Ρ…" интСрфСйсов, Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ тСкстовым ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, β€” Ρ‚.Π΅. Ρ‚Π°ΠΊΠΈΡ… интСрфСйсов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… онтология Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… являСтся Π±ΠΎΠ»Π΅Π΅ слоТной ΠΈ спСцифичной для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Однако нСльзя Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π΅ простоты. Π’ Π³Π»Π°Π²Π΅ 4 ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ интСрфСйсов являСтся созданиС заслонок, ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π²Π·Π°ΠΈΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡŽ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π³Π»Π°Π²Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ RPC Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΌ возрастаниС глобальной слоТности, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅.

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

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ БОМ ΠΈ DCOM Π² Windows ΡΠ²Π»ΡΡŽΡ‚ΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, основными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ‚ΠΎΠ³ΠΎ, насколько это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ, Π½ΠΎ сущСствуСт мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Компания Apple ΠΎΡ‚ΠΊΠ°Π·Π°Π»Π°ΡΡŒ ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OpenDoc, a CORBA ΠΈ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ разрСкламированная ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° Java RMI исчСзли с Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π° Unix, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ люди ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ практичСский ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ. Π­Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ фактичСски Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π½Π΅ большС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Π΅ΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚.

Π­Π½Π΄Ρ€ΡŽ Π‘. Π’Π°Π½Π΅Π½Π±Π°ΡƒΠΌ (Andrew S. Tanenbaum) ΠΈ Π ΠΎΠ±Π΅Ρ€Ρ‚ Π²Π°Π½ РСнСсс (Robbert van Renesse) ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ "A Critique of the Remote Procedure Call Paradigm" [83J, которая Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ строгим прСдостСрСТСниСм для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ рассматриваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, основанной Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°Ρ… RPC.

ВсС описанныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡƒΡΠ»ΠΎΠ²ΠΈΡ‚ΡŒ долгосрочныС трудности для ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшого числа Unix-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ RPC-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π‘Ρ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстным, вСроятно, являСтся GNOME55. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ вносят свой Π²ΠΊΠ»Π°Π΄ Π² ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстныС уязвимости Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… NFS-сСрвСров.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π² ΠΌΠΈΡ€Π΅ Unix строго ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Ρ… ΠΈ воспринимаСмых интСрфСйсов. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· сил Π² основС нСпрСходящСй прСданности Unix-ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ IPC-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ Π½Π° основС тСкстовых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ². Часто ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° тСкстовых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ RPC-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, Π½ΠΎ RPC-интСрфСйсы склонны ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ…ΡƒΠ΄ΡˆΠΈΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ (Π°) Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· усилий Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠ°Ρ€ΡˆΠ°-Π»ΠΈΠ½Π³Π° ΠΈ Π΄Π΅ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ задСйствовано ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, ΠΈ (b) RPC-модСль поощряСт программистов Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ сСтСвыС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊ бСсплатныС. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π² интСрфСйс Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, добавляСт ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ, связанныС с синтаксичСским Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΠ½Π³ΠΎΠΌ.