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

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

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

ΠŸΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ tty-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Unix Π½Π΅ просто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» Π±ΡƒΡ„Π΅Ρ€ Π»ΠΈΠ½ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отслСТивал Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС экрана. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π±Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСдСния ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² Π±Ρ‹Π»ΠΈ извСстны Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ процСсса Π΄Π΅ΠΌΠΎΠ½Π°), для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ восстановлСниС, ΠΊΠΎΠ³Π΄Π° приостановлСнный процСсс снова пСрСводится Π² ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ. ΠŸΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΡ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ядро Π½Π΅ способно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сСанс ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Ρƒ xterm ΠΈΠ»ΠΈ Emacs ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρƒ (Ρ‚ΠΈΠΏ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ Π±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ).

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

Π¨ΠΈΡ€ΠΎΠΊΠΎ распространСнная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, которая называСтся screen(1), Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ[153]. Однако ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ явно, Π½Π΅ гарантируСтся, Ρ‡Ρ‚ΠΎ Π΅Π΅ возмоТности Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ сСансС. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ΄ уровня ядра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ части, Π½Π΅ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½.

20.3.6. Π’ Unix API Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации

Π―Π·Ρ‹ΠΊ Π‘ испытываСт нСдостаток срСдств восстановлСния для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций со связанными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ[154]. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, C-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Unix API ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΡƒΡ‚Π΅ΠΌ возвращСния извСстного значСния (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ -1 ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° NULL-символ) ΠΈ установки глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ errno.

ΠžΠ³Π»ΡΠ΄Ρ‹Π²Π°ΡΡΡŒ Π½Π°Π·Π°Π΄, становится ясно, Ρ‡Ρ‚ΠΎ это являСтся источником ΠΌΠ½ΠΎΠ³ΠΈΡ… Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Ρ… ошибок. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π² спСшкС часто ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ исправности; процСсс выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ошибка Π½Π΅ проявится ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сбой ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ простыми ΠΈΠ΄ΠΈΠΎΠΌΠ°ΠΌΠΈ β€” ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° сигналов ΠΏΠΎ вСрсии с сигналами Π‘Π΅Ρ€ΠΊΠ»ΠΈ-стиля β€” Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ слоТного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ пСрСносимости ΠΈ Ρ‡Ρ€Π΅Π²Π°Ρ‚ ошибками.

Данная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скрыта (ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ скрываСтся) привязками Unix API Π² Ρ‚Π°ΠΊΠΈΡ… языках, ΠΊΠ°ΠΊ Python ΠΈΠ»ΠΈ Java, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации.

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

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CORBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ ΠΎΠ½ΠΈ тяТСловСсны ΠΈ склонны Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ большоС количСство ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π²ΠΎ врСмя выполнСния.

20.3.7. Π’Ρ‹Π·ΠΎΠ²Ρ‹ ioctl(2) ΠΈ fcntl(2) ΡΠ²Π»ΡΡŽΡ‚ΡΡ прСпятствиями

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ioctl(2) ΠΈ fcntl(2) ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ способ написания ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (hooks) Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… устройств. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ историчСским использованиСм ioctl(2) Π±Ρ‹Π»Π° установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ количСство Ρ„Ρ€Π΅ΠΉΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ, ΠΎΡ‚ΡΡŽΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ("I/O control"). ПозднСС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ioctl Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², a fcntl(2) Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму.

Π‘ Π³ΠΎΠ΄Π°ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ioctl ΠΈ fcntl Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ. Они часто слабо Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ источником ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ пСрСносимости. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… сопутствуСт Π½Π΅Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠ΅ Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ‚Π° ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ "большой Π±Π»ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ²"; ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Unix слабая ΠΈ Π½Π΅ оставляСт СстСствСнного пространства для размСщСния ΠΌΠ½ΠΎΠ³ΠΈΡ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ слоТный Π²Ρ‹Π±ΠΎΡ€ ΠΈΠ· Π½Π΅ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ². Π’Ρ‹Π·ΠΎΠ²Ρ‹ fcntl/ioctl проходят Ρ‡Π΅Ρ€Π΅Π· устройства Π² /dev, Π½ΠΎΠ²Ρ‹Π΅ спСциализированныС систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡Π΅Ρ€Π΅Π· спСциализированныС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ привязаны ΠΊ ядру (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /proc Linux ΠΈ Π΄Ρ€.).

Пока Π½Π΅ ясно, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡΡ Π»ΠΈ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Unix, Π° Ссли ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡΡ, Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если MacOS-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² станут ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Unix, подстройка "магичСских" ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… устройств ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя Ρ€ΠΎΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π² настоящСС врСмя ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ioctl/fcntl (это, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΎ Π±Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ использованиСм интСрфСйса). Π’Ρ‹ΡˆΠ΅ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ опСрационная систСма Plan 9, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вмСсто ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ„Π°ΠΉΠ»/ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ сСрвСр ΠΈΠ»ΠΈ файловая систСма ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, прСдставляСт Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ.

20.3.8. МодСль бСзопасности Unix, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, слишком ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Π°

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, полномочия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root слишком ΡˆΠΈΡ€ΠΎΠΊΠΈ, ΠΈ Π² Unix Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ возмоТности Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Π³Ρ€Π°Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ ΠΈΠ»ΠΈ ACL (Access Control Lists β€” списки контроля доступа) для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ систСмного администрирования, Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ всС. Π›ΡŽΠ΄ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, спорят, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ систСмныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ постоянныС root- ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ благодаря ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡƒ setuid. Если Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ, Ρ‚ΠΎ вторТСния ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π²Π΅Π·Π΄Π΅.

Однако это довольно слабый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Unix-систСмы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись любого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² нСсколько Π³Ρ€ΡƒΠΏΠΏ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ полномочия Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ установку Π±ΠΈΡ‚ΠΎΠ² ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ Π½Π° выполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ACL-списка для Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Однако данная тСорСтичСская Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ, ΠΈ это Π½Π°Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΌΡ‹ΡΠ»ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ACL-списках являСтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ мСньшСй, Ρ‡Π΅ΠΌ Π² Ρ‚Π΅ΠΎΡ€ΠΈΠΈ.

20.3.9. Unix ΠΈΠΌΠ΅Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π½

Unix объСдинила Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ устройства β€” ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ просто ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π±Π°ΠΉΡ‚ΠΎΠ². Однако сСтСвыС устройства, доступныС Ρ‡Π΅Ρ€Π΅Π· сокСты, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ½ΡƒΡŽ сСмантику ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½. Plan 9 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ (сСтСвыми) устройствами, ΠΈ всС это ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· пространство ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ способно динамичСски Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π΄Π°ΠΆΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

20.3.10. Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌΠΈ

Π‘ ΠΊΠΎΠ½Ρ†Π° 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² продолТаСтся Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ история исслСдований Π² области постоянных Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π΅ΠΉ глобальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π²ΠΎΠΎΠ±Ρ‰Π΅, Π° Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ дисковыС Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ посрСдством Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ исслСдования Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ EROS[155]) ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ конструкции ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ большиС прСимущСства, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΄ΠΎΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΠ΅ соотвСтствиС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ бСзопасности ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Однако слСдуСт ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли это ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ Unix, Ρ‚ΠΎ это Ρ€Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Ρˆ всСх Π΅Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ². Ни ΠΎΠ΄Π½Π° крупная Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ опСрационная систСма Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π»Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ EROS[156].

20.3.11. На ΠΏΡƒΡ‚ΠΈ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ адрСсному пространству Internet

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, URL-адрСса нСдостаточно ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹. ΠžΡΡ‚Π°Π²ΠΈΠΌ послСднСС слово ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… направлСниях Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ развития Unix Π·Π° создатСлСм этой систСмы.

Моим ΠΈΠ΄Π΅Π°Π»ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ являСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ интСрфСйса Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Π° ля Plan 9), Π° Π·Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ рСализация Π² Internet ΠΊΠ°ΠΊ стандарта вмСсто HTML. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ.

КСн Вомпсон.

20.4. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Unix

ΠšΡƒΠ»ΡŒΡ‚ΡƒΡ€Π° старой Unix ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ воссоздана Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ сохраняСт нас ΠΎΡ‚ выроТдСния, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π° Π² настоящСС врСмя ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ нашими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Одна ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π° экономичСски цСлСсообразной? ΠœΡ‹ вновь "Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ ΠΊ нашим корням" Π² ΠΎΠ±Ρ‰Π΅ΠΌ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ процСссС Ρ€Π°Π½Π½Π΅ΠΉ эпохи Unix. ΠœΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ тСхничСский спор ΠΎΠ± ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚ сСкрСтности ΠΈ частного управлСния. ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π»ΠΈ способы сотрудничСства с Ρ€Ρ‹Π½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹Ρ… условиях, Ρ‡Π΅ΠΌ это Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² 70-Ρ… ΠΈ 80-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ наши экспСримСнты Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌΠΈ. Π’ 2003 Π³ΠΎΠ΄Ρƒ Unix-систСмы с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΈΡ… основныС Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² достигли Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π² общСствС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ, Π΅Ρ‰Π΅ Π² сСрСдинС 90-Ρ… Π³ΠΎΠ΄ΠΎΠ² Π±Ρ‹Π» Π±Ρ‹ Π½Π΅Π²ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠΌΡ‹ΠΌ.