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

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

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

Β exit(0);

}

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ лишь Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния. Как ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ сСрвис

daytime
с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π°
getservbyname
, Π½ΠΎ Π·Π°Π΄Π°Π΅Ρ‚Π΅ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ сСрвис, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ UDP-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Π”Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ сокСт создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π°
socket
с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
SOCK_DGRAM
. АдрСс назначСния задаСтся, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вмСсто чтСния ΠΈΠ· сокСта Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ Π½Π΅ устанавливаСтС явноС соСдинСниС с сСрвисами Π½Π° Π±Π°Π·Π΅ UDP, Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ способ оповСщСния сСрвСра ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π²Ρ‹ посылаСтС Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ отправляСтС ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚) сСрвису ΠΈ ΠΎΠ½ посылаСт Π² ΠΎΡ‚Π²Π΅Ρ‚ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя.

БистСмный Π²Ρ‹Π·ΠΎΠ²

sendto
отправляСт Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° Π½Π° сокСт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ адрСс сокСта ΠΈ Π΄Π»ΠΈΠ½Ρƒ адрСса. Π£ этого Π²Ρ‹Π·ΠΎΠ²Π° фактичСски ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ:

<b>int sendto(int sockfd, void *buffer, size_t len, int flags,</b>

<b>Β struct sockaddr *to, socklen_t tolen);</b>

Π’ случаС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ примСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

flags
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ.

БистСмный Π²Ρ‹Π·ΠΎΠ² recvfrom ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π΄Π΅ΠΉΡ‚Π°Π³Ρ€Π°ΠΌΠΌΡƒ Π² соСдинСнии сокСта с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ адрСсом ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π΅Π΅ Π² Π±ΡƒΡ„Π΅Ρ€. Π£ этого Π²Ρ‹Π·ΠΎΠ²Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ:

<b>int recvfrom(int sockfd, void *buffer, size_t len, int flags,</b>

<b>Β struct sockaddr *from, socklen_t *fromlen);</b>

И снова Π² случаС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ примСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€

flags
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ.

Для упрощСния ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ пропустили ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ошибок. Оба Π²Ρ‹Π·ΠΎΠ²Π°,

sendto
ΠΈ
recvfrom
, Π² случаС возникновСния ошибки Π²Π΅Ρ€Π½ΡƒΡ‚ -1 ΠΈ присвоят ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
errno
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки пСрСчислСны Π² Ρ‚Π°Π±Π». 15.6.

Π’Π°Π±Π»ΠΈΡ†Π° 15.6

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
errno
ОписаниС
EBADF
Π‘Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор
EINTR
Появился сигнал

Если сокСт Π½Π΅ Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π°

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-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° вашСм Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠΌ ПК ΠΈΠ»ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π² вашСй сСти, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сСрвСры. Если ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, обратная тСрминология Π½Π΅ лишСна смысла, Π½ΠΎ часто каТСтся примСняСмой Π·Π°Π΄ΠΎΠΌ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄.