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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 279

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ X-сСрвСр Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ общаСтся с Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ X-сСрвСр, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ вашСй Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π΅, ΠΈ для Π½Π΅Π³ΠΎ слСдуСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ подходящСС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ обновлСния экрана, количСство Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ Ρ‚.Π΄. Π€Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ называСтся xorg.conf ΠΈΠ»ΠΈ Xfree86Config. Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы X. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, соврСмСнныС дистрибутивы Linux автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π½ΡƒΠΆΠ½Ρ‹Π΅ установочныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, экономя врСмя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ избавляя Π΅Π³ΠΎ ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΎΠΊ!

X-сСрвСр ΠΆΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΡ‚ ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ наТатия клавиш ΠΈ Ρ‰Π΅Π»Ρ‡ΠΊΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΌΡ‹ΡˆΠΈ прилоТСниям, X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. Π­Ρ‚ΠΈ сообщСния Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ событиями; ΠΎΠ½ΠΈ слуТат основными элСмСнтами программирования GUI. ПозТС Π² этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим события ΠΈ ΠΈΡ… логичСскоС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ GTK+ сигналы.

X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚

X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” это любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ X Window System ΠΊΠ°ΠΊ GUI. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ xterm, xcalc ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС, прилоТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Abiword. X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΆΠ΄Π΅Ρ‚ события ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, посылаСмыС X-сСрвСром, ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° Π½ΠΈΡ… ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ сСрвСру сообщСний ΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ машинС, Ρ‡Ρ‚ΠΎ ΠΈ X-сСрвСр.

X-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»

X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ X-сСрвСр Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ X-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ сСрвСру Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΡΠ΅Ρ‚ΡŒΡŽ. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈΠ»ΠΈ ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ (Virtual Private Network, VPN). Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… систСм Linux X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈ X-сСрвСр Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ систСмС.

Xlib

Xlib β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, нСявно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ сообщСний X-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Она прСдоставляСт API ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ элСмСнты Π½Π° X-сСрвСрС ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Π²ΠΎΠ΄. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Xlib β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΈ созданиС с Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°ΠΆΠ΅ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ простого, ΠΊΠ°ΠΊ мСню, β€” нСвСроятно Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ процСсс, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ сотСн строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ GUI Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ эффСктивно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Xlib. Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ API, Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ Π»Π΅Π³ΠΊΠΈΠΌ ΠΈ простым созданиС Ρ‚Π°ΠΊΠΈΡ… элСмСнтов GUI, ΠΊΠ°ΠΊ мСню, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ списки. Говоря ΠΊΡ€Π°Ρ‚ΠΊΠΎ, эту Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств ΠΈΠ»ΠΈ элСмСнтов интСрфСйса.

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρ‹ инструмСнтов

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов ΠΈΠ»ΠΈ элСмСнтов интСрфСйса β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° GUI, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ упрощСния создания ΠΎΠΊΠΎΠ½, мСню, ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Ρ‚.ΠΏ. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ, мСню, Ρ„Ρ€Π΅ΠΉΠΌΡ‹ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ для обозначСния элСмСнтов GUI, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… пСрСчислСнным, β€” Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π²ΠΎ всСх соврСмСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… GUI.

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

░ Для ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

β–‘Β Π‘ΡƒΠ΄ΡƒΡ‚ Π»ΠΈ установлСны Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° инструмСнтов Ρƒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

β–‘Β ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅Π½ Π»ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ популярныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы?

β–‘Β ΠšΠ°ΠΊΠΎΠΉ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов ΠΈ согласуСтся Π»ΠΈ ΠΎΠ½Π° с ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΌ Π²Π°ΠΌΠΈ использованиСм?

β–‘Β ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ инструмСнтов ваш язык программирования?

β–‘Β Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π»ΠΈ внСшний Π²ΠΈΠ΄ ΠΈ рСализация Ρƒ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° инструмСнтов?

На протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ самыми популярными ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… срСдств Π±Ρ‹Π»ΠΈ Motif, OpenLook ΠΈ Xt, Π½ΠΎ ΠΎΠ½ΠΈ уступили тСхничСски Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°ΠΌ GTK+ ΠΈ Qt, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ основу Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… столов GNOME ΠΈ KDE соотвСтствСнно.

ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹

ПослСдний ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ X-ΠΌΠΎΠ·Π°ΠΈΠΊΠΈ β€” ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΈΠ»ΠΈ диспСтчСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° располоТСниС ΠΎΠΊΠΎΠ½ Π½Π° экранС. ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ часто ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ "Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ области", Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлится Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол, увСличивая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ экрана, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. ΠžΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° графичСскоС ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ всСх ΠΎΠΊΠΎΠ½, состоящСС, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠ· Ρ€Π°ΠΌΠΊΠΈ ΠΈ полосы Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° с ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ максимизации, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ закрытия ΠΎΠΊΠ½Π°. ΠžΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ частично внСшний Π²ΠΈΠ΄ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠΎΠ½.

К ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнным относятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹:

β–‘Β Metacity β€” ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола GNOME;

β–‘Β KWin β€” ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, примСняСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола KDE;

β–‘Β Openbox β€” Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для экономии рСсурсов ΠΈ запускаСмый Π½Π° Π±ΠΎΠ»Π΅Π΅ старых ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… систСмах;

β–‘Β Enlightenment β€” ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π΅Π²ΠΎΡΡ…ΠΎΠ΄Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΈ спСцэффСкты.

Как ΠΈ всС Π² систСмС X, ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ запускаСт ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, входящий Π² ΠΈΡ… поставку срСды Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ способы создания GUI β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½ΠΎ-нСзависимыС ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ API

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы создания GUI, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ для ОБ Linux, β€” ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ языки с собствСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ GUI, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Linux.

β–‘Β Π―Π·Ρ‹ΠΊ Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ GUI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Swing ΠΈ Π±ΠΎΠ»Π΅Π΅ старых API AWT. Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ GUI Π½Π° языкС Java понравится Π½Π΅ всСм ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ старых ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… интСрфСйс ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ прСимущСство Java Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° языкС Java выполняСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π΄Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java (Java Virtual Machine), которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Linux, Windows, Mac OS ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ см. Π½Π° Web-сайтС http://java.sun.com.

β–‘Β Π―Π·Ρ‹ΠΊ программирования C# ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° язык Java. Π’ систСму Linux общСязыковая ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ срСда (C# Common Language ΠΈΠ»ΠΈ CLR) ΠΏΡ€ΠΈΡˆΠ»Π° ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mono, см. Web-сайт http://www.mono-project.com. C# Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Mono ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ модСль программирования Windows Forms, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ Π² Windows, ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ привязку ΠΊ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Ρƒ инструмСнтов GTK+, Π½Π°Π·Π²Π°Π½Π½ΡƒΡŽ Gtk#.

β–‘Β Tcl/Tk β€” язык сцСнариСв, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходящий для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйсов GUI ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с X, Windows ΠΈ Mac OS. Он ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½ для быстрого макСтирования ΠΈΠ»ΠΈ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π½ΡƒΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π² простотС ΠΈ удобствС сопровоТдСния сцСнария. ВсС подробности ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° Web-сайтС http://tcl.tk.

β–‘Β Python β€” Ρ‚ΠΎΠΆΠ΅ язык сцСнариСв. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Tk, Ρ‡Π°ΡΡ‚ΡŒ Tcl/Tk, ΠΈΠ· Python ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² привязкС Python ΠΊ GTK+, разрабатывая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ GTK+ Π½Π° языкС Python. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ языкС Python см. Π½Π° Web-сайтС http://www.python.org.

β–‘Β Perl β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ популярный язык сцСнариСв Π² Linux. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Tk, Ρ‡Π°ΡΡ‚ΡŒ Tcl/Tk, Π² языкС Perl ΠΊΠ°ΠΊ Perl/Tk. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Perl см. Π½Π° Web-сайтС http://www.perl.org/.

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