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

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

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

Если сокСт Π½Π΅ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° fcntl (ΠΊΠ°ΠΊ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π½Π΅Π΅ для TCP-соСдинСний), Π²Ρ‹Π·ΠΎΠ² recvfrom Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя. Но сокСт ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° select ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, поступили Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² случаС сСрвСров с устанавливаСмыми соСдинСниями. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сигнал Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ для прСрывания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ… (см. Π³Π»Π°Π²Ρƒ 11).

РСзюмС 

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

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹ познакомились с систСмным Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ select, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΠ± активности Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° сразу Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторах ΠΈ сокСтах. 

Π“Π»Π°Π²Π° 16

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² GNOME с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GTK+

Π”ΠΎ сих ΠΏΠΎΡ€ Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΌΡ‹ обсуТдали основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ программирования Π² ОБ Linux, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ слоТной Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Π½Π°Ρ‡ΠΈΠ½ΠΊΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ ΠΏΠΎΡ€Π° Π²Π΄ΠΎΡ…Π½ΡƒΡ‚ΡŒ Тизнь Π² наши прилоТСния ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (Graphical User Interface, GUI). Π’ этой Π³Π»Π°Π²Π΅ ΠΈ Π² Π³Π»Π°Π²Π΅ 17 ΠΌΡ‹ собираСмся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Π²Π΅ самыС популярныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GUI для ОБ Linux: GTK+ ΠΈ KDE/Qt. Π­Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²ΡƒΠΌ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½Π΅ΠΉΡˆΠΈΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ срСдам Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Linux: GNOME (GTK+) ΠΈ KDE.

ВсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ GUI Π² Linux Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ систСмы, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ X Window System (Ρ‡Π°Ρ‰Π΅ X11 ΠΈΠ»ΠΈ просто X), поэтому, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² подробности срСды GNOME/GTK+, ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΎΠ±Π·ΠΎΡ€ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы X ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ слои ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΡ€ΠΈΠ³ΠΎΠ½ΡΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ для создания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом.

Π’ этой Π³Π»Π°Π²Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

β–‘ систСма X Window System;

β–‘ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² срСду GNOME/GTK+;

β–‘ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈΠ»ΠΈ интСрфСйсныС элСмСнты ΠΎΠΊΠ½Π° GTK+;

β–‘ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΈ мСню срСды GNOME;

β–‘ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π°;

β–‘ GUI Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚-дисков с использованиСм GNOME/GTK+.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² систСму X

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ примСняли ΠΎΠΊΠΎΠ½Π½ΡƒΡŽ систСму Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Π² ОБ Linux, скорСС всСго Π²Ρ‹ использовали Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму X с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Одна ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… характСристик X β€” ΠΆΠ΅ΡΡ‚кая привязка ΠΊ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ "инструмСнтов, Π° Π½Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ". Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² систСмС X Π½Π΅Ρ‚ опрСдСлСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½ΠΎ Π΅ΡΡ‚ΡŒ срСдства для Π΅Π³ΠΎ создания. Π’Ρ‹ Π²ΠΎΠ»ΡŒΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ срСду Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, экспСримСнтируя ΠΈ вводя Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ. Но это ΠΆΠ΅ свойство Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΠ»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов Π² систСмах Linux ΠΈ UNIX. Для заполнСния этой пустоты Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π΄Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Linux: GNOME ΠΈ KDE. Π Π°Π±ΠΎΡ‡ΠΈΠΉ стол ОБ Linux, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ ограничиваСтся систСмой X. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ стол Π² Linux β€” это довольно расплывчатая субстанция Π±Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ вСрсии, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ спСциалистов. БоврСмСнная установка содСрТит ΠΌΠΈΡ€ΠΈΠ°Π΄Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС вмСстС Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ "Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ столом".

Π£ систСмы X, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π² MIT (ΠœΠ°ΡΡΠ°Ρ‡ΡƒΡΠ΅Ρ‚ΡΠΊΠΈΠΉ тСхнологичСский институт) Π² Π½Π°Ρ‡Π°Π»Π΅ 1980 Π³Π³., длинная ΠΈ яркая история. Она создавалась ΠΊΠ°ΠΊ унифицированная оконная систСма для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ°Π»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ чисСл Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π°ΠΌΠΈ.

Когда наступили 1990 Π³Π³. ΠΈ Ρ†Π΅Π½Ρ‹ Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠΏΠ°Π»ΠΈ, энтузиасты пСрСнСсли систСму X Π½Π° Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ домашниС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ PC, этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ стал Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ XFree86 (процСссоры PC, Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π²ΡˆΠΈΠ΅ΡΡ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠ΅ΠΉ Intel ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ компаниями, Π±Ρ‹Π»ΠΈ извСстны ΠΊΠ°ΠΊ процСссоры x86), ΠΈ сСгодня вмСстС с систСмой Linux Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° XFree86, Π° Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ дистрибутивов Linux примСняСтся Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ систСмы X, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ X.Org,

X Window System Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π₯-сСрвСром ΠΈ Π₯-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° с Π»Π΅Π³ΠΊΠΎ ΡƒΠ³Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "X-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»". Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… рассматриваСтся ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

X-сСрвСр

X-сСрвСр запускаСтся Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ локальной машинС ΠΈ выполняСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ прорисовки графичСского экрана. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π² Π½Π°Π·Π²Π°Π½ΠΈΠΈ слова "сСрвСр" часто смущаСт: X-сСрвСр выполняСтся Π½Π° вашСм Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ПК. X-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° вашСм Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ПК ΠΈΠ»ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π² вашСй сСти, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСрвСры. Если ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, обратная тСрминология Π½Π΅ лишСна смысла, Π½ΠΎ часто каТСтся примСняСмой Π·Π°Π΄ΠΎΠΌ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄.

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

β–‘ Π”ля ΠΊΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

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

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

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