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

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

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

Rogue-подобная модСль Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ². МногиС ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΈΠΌΠ΅Π»ΠΈ клавиш-стрСлок ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… клавиш. Π’ ΠΌΠΈΡ€Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… графичСскиС интСрфСйсы, с постСпСнно ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ· памяти псСвдографичСскими Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ, Π½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ влияниС данная модСль ΠΎΠΊΠ°Π·Π°Π»Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Но Ρ€Π°Π½Π½ΠΈΠ΅ экзСмпляры rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π·Π° нСсколько Π»Π΅Ρ‚ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² 1981 Π³ΠΎΠ΄Ρƒ IBM стандартизировала ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Как слСдствиС, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ, Π½ΠΎ Π² настоящСС врСмя Π°Ρ€Ρ…Π°ΠΈΡ‡Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ являСтся использованиС клавиш h, j, ΠΊ ΠΈ 1 Π² качСствС клавиш управлСния курсором, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ символы Π² ΠΎΠΊΠ½Π΅ рСдактирования. НСизмСнно клавиша ΠΊ соотвСтствуСт стрСлкС "Π²Π²Π΅Ρ€Ρ…", j β€” стрСлкС "Π²Π½ΠΈΠ·", h β€” стрСлкС "Π²Π»Π΅Π²ΠΎ" ΠΈ 1 β€” стрСлкС "Π²ΠΏΡ€Π°Π²ΠΎ". Π”Π°Π½Π½Ρ‹ΠΉ историчСский Ρ„Π°ΠΊΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π² старых Unix-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… часто Π½Π΅ использовались клавиши ALT, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ клавиши использовались ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ использовались.

БущСствуСт мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ: тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi(1) Π²ΠΎ всСх Π΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ emacs(1); elm(1), pine(1), mutt(1) ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Unix-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для чтСния ΠΏΠΎΡ‡Ρ‚Ρ‹; tin(1), slrn(1) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ чтСния новостСй Π² Unix; Web-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ lynx:(1) ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Unix-программистов Π² основном ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ интСрфСйсами.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сцСнарии. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π΅Π΄ΠΊΠΎ встрСчаСтся. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ нСпосрСдствСнного, посимвольного Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΡƒΠ΄ΠΎΠ±Π΅Π½ для написания сцСнариСв. Π’Π°ΠΊΠΆΠ΅ вСсьма Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ дСйствий ΠΏΠΎ ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡŽ экрана.

Π’Π°ΠΊΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ отсутствуСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ Π³Π»Π°Π΄ΠΊΠΎΡΡ‚ΡŒ, присущая управляСмому с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ GUI-интСрфСйсу. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΡŒΡŽ использования полноэкранного интСрфСйса являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° простых Π²ΠΈΠ΄ΠΎΠ² нСпосрСдствСнного управлСния ΠΈ интСрфСйсов Π½Π° основС мСню, Π² rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π΄ΠΎ сих ΠΏΠΎΡ€ трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ вСсь ассортимСнт ΠΊΠΎΠΌΠ°Π½Π΄. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, интСрфСйсы, созданныС Π½Π° основС Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΊ Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ наТатия Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… клавиш, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ настроСнных Ρ…Π°ΠΊΠ΅Ρ€ΠΎΠ². ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ данная модСль ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° Ρ…ΡƒΠ΄ΡˆΠΈΠ΅ качСства ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ²: ΠΎΠ½Π° Π½Π΅ прСдоставляСт возмоТности Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² сцСнарии ΠΈ Π½Π΅ согласуСтся с послСдними тСчСниями Π² Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ интСрфСйсов для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Однако Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ сущСствуСт ΠΈ опрСдСлСнная Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для чтСния новостСй, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ популярными Π΄Π°ΠΆΠ΅ срСди ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΈΡ… посрСдством эмуляторов Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π½Π° Π₯-дисплСС, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ GUI-ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ². Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, rogue-подобная модСль Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ распространСна, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix Π΄Π°ΠΆΠ΅ GUI-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часто ΠΏΠΎΠ΄Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π΅ΠΉ, добавляя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΌΡ‹ΡˆΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈ экранный интСрфСйс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит скорСС rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ. Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ emacs( 1) ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ xchat( 1). Π’ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‰Π΅ΠΉ популярности Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ?

Π’Π°ΠΆΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ощутимая польза. Для rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Π° Π±ΠΎΠ»Π΅Π΅ высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΈΡ… блиТайшими GUI-ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π°ΠΌΠΈ. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния скорости запуска ΠΈ выполнСния, использованиС rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Xterm ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с запуском GUI-интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ потрСбляСт солидныС рСсурсы, устанавливая ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ дисплСя ΠΈ впослСдствии ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ отвСчая Π½Π° запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° основС рассматриваСмой ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π½Π° telnet-ΠΊΠ°Π½Π°Π»Π°Ρ… ΠΈΠ»ΠΈ низкоскоростных ΠΊΠΎΠΌΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… соСдинСниях, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π₯-срСдства нСдоступны.

Π’Π»Π°Π΄Π΅ΡŽΡ‰ΠΈΠ΅ "слСпым" ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, работая с Π½ΠΈΠΌΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€ΡƒΠΊΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΌΡ‹ΡˆΡŒ. ИмСя Π²Ρ‹Π±ΠΎΡ€, Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΡƒΡ‚ интСрфСйсы, ΡΠΎΠΊΡ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ наТатия клавиш, находящихся Π²Ρ‹ΡˆΠ΅ клавиши "home". Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это наибольшая вСсомая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° популярности Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° vi( 1).

Но, Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ rogue-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ интСрфСйсы ΡΠ²Π»ΡΡŽΡ‚ΡΡ прСдсказуСмыми ΠΈ экономно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Π₯-дисплСя. Они Π½Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°ΡŽΡ‚ дисплСй мноТСством ΠΎΠΊΠΎΠ½, элСмСнтами управлСния, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ GUI-снаряТСниСм. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π°Π½Π½ΡƒΡŽ модСль подходящСй для использования Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ совмСстно с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ часто Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (это особСнно Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ чтСния новостСй, chat-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ).

НаконСц (ΠΈ, вСроятно, это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ), rogue-подобная модСль часто Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ GUI, ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ цСнят Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° достаточно высоко для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ. Π’Ρ‹ΡˆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ вСсомыС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ становился Π±ΠΎΠ»Π΅Π΅ распространСнным ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста слоТности Π·Π°Π΄Π°Ρ‡, частоты использования ΠΈ ΠΎΠΏΡ‹Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Данная модСль соотвСтствуСт прСдпочтСниям Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ поддСрТивая GUI-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ элСмСнты нСпосрСдствСнного управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ способна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ed-модСль. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, rogue-подобная модСль ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ…ΡƒΠ΄ΡˆΠΈΠ΅ свойства ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² интСрфСйса, Π½ΠΎ ΠΈ способна ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π² сСбС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Ρ‹.

11.6.8. МодСль "раздСлСния ядра ΠΈ интСрфСйса"

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

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ разграничСния Π±Ρ‹Π»ΠΈ Π±Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹. Однако Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π² He-Unix-cpeflax Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ ΠΏΠ°Ρ€Ρ‹ ядро/интСрфСйс с Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π˜ΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ просто. Π‘Π»ΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ IPC-ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΏΠ°Ρ€ ядро/интСрфСйс.

ΠžΡƒΡΠ½ Π’Π΅ΠΉΠ»ΠΎΡ€ (Owen Taylor), ΠΊΡƒΡ€Π°Ρ‚ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GTK+, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для создания ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π² систСмС X, прСвосходно ΠΏΠΎΠΊΠ°Π·Π°Π» тСхничСскиС прСимущСства Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° раздСлСния Π² ΠΊΠΎΠ½Ρ†Π΅ своСй Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ "Why GTK_MODULES is not a security hole" <http://www.gtk.org/setuid.html>. Он Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒΡŽ Ρ‚Π°ΠΊ: "БСзопасной setuid-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² 500 строк ΠΊΠΎΠ΄Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π° Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π² 500 ООО строк, основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов".

Π­Ρ‚Π° идСя Π½Π΅ Π½ΠΎΠ²Π°. Π Π°Π½Π½ΠΈΠ΅ исслСдования сотрудников Ρ†Π΅Π½Ρ‚Ρ€Π° Xerox PARC Π² области графичСских ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΈΡ… ΠΊ созданию схСмы "модСль-ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€" (model-view-controller) ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° для GUI-интСрфСйсов.

β€’ "МодСль" Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΌΠΈΡ€Π΅ Unix ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ называСтся "ядром" (engine). МодСль содСрТит структуры Π΄Π°Π½Π½Ρ‹Ρ…, зависящиС ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ прилоТСния. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.