87
Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ΄ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΠΌΠ΅Π»ΠΊΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ.
88
Π€Π°ΠΉΠ» /etc/passwd ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΌΠΈ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΏΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ ΠΈ Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠΌΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° rename(). ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ, ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ· etc/passwd Π² Π»ΡΠ±ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
89
Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Andrew Filesystem (AFS), Π΄ΠΎΡΡΡΠΏΠ½Π°Ρ Π² Linux, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ O_EXCL Π²ΠΎ Π²ΡΠ΅ΠΉ ΡΠ΅ΡΠΈ.
90
ΠΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π° Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ΄ΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Linux ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (Π° ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² POSIX). Linux ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π½ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ POSIX, Π° Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ.
91
ΠΡΠ° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ β Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠ°ΡΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π°.
92
ΠΡΡΠ΅ΠΊΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ fork() ΠΈ exec() Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ POSIX (Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ lockf()) ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ flock() Π² BSD.
93
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π°ΡΠ΅Π½Π΄Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Samba, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
94
ΠΡΠ»ΠΈ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π°ΡΠ΅Π½Π΄Π° Π·Π°ΠΏΠΈΡΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ± ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°Π½Π½ΡΠΌ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π°ΡΠ΅Π½Π΄Ρ. ΠΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, Π΄Π΅Π»Π°Π΅Ρ Π»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ», ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°ΠΌ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ».
95
Π―Π΄ΡΠ° ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½ΠΎΠ»Ρ Π»ΠΈΠ±ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠ΅ ΡΠ΄ΡΠ° Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΠΎΠ»Ρ. Π Π΄ΡΡΠ³ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
96
ΠΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠ³Π½Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°ΡΠ΅Π½Π΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠΈΠ³Π½Π°Π» ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ±ΡΡΠΈΠΉ Π°ΡΠ΅Π½Π΄Ρ ΡΡΠ°Π²ΡΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠ³Π½Π°Π», ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ΅ΡΡΡΡΡΡ Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π°ΡΠ΅Π½Π΄Ρ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
97
ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° O_NONBLOCK Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ°ΠΊ ΡΠ»Π°Π³ open(); Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ EWOULDBLOCK.
98
ΠΠ½ΠΈ ΡΠ°ΠΊ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·Π±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π° Π·Π°ΠΏΠΈΡΡ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π·Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ. ΠΡΠΈΠΌ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ "v" Π² ΠΊΠΎΠ½ΡΠ΅ readv() ΠΈ writev().
99
ΠΡΠ° ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², Π΅ΡΠ»ΠΈ ΡΠΈΠ³Π½Π°Π»Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
100
ΠΡΠΎ Π²Π΅ΡΠ½ΠΎ; PATH_MAX Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠΌ. POSIX ΡΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠΎΠΌ "Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ".
101
ΠΠΌΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΌΡ /usr/bin/less.
102
Π€ΡΠ½ΠΊΡΠΈΠΈ ftw() Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ stat() Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π²ΡΡΡΠ½Π΅Π½ΠΈΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌΡ Π²ΡΠ·ΠΎΠ²Ρ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ stat() Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ².
103
ΠΡΠΎ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ ΠΌΠ΅ΡΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ (Π³Π»Π°Π²Π° 13).
104
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π° SA_SIGINFO, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΠ³Π½Π°Π»Ρ.
105
ΠΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π»Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ.
106
ΠΠ±ΡΡΠ½ΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ <Ctrl+Z>. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° stty ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΌΠ΅Π½ΡΡΡ ΡΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π΅ 16.
107
Π’ΠΎ Π΅ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π°.
108
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Unix ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»ΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ TIOCSPGRP ioctl(), Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Linux. ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, tcsetpgrp() ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ioctl(ttyfd, TIOCSPGRP, &pgrp).
109
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ ΡΠΈΠ³Π½Π°Π»Π°Ρ ΠΈ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² Π³Π»Π°Π²Π΅ 12.
110
ΠΠ° man-ΡΡΡΠ°Π½ΠΈΡΠ΅ setserial ΠΎΠΏΠΈΡΠ°Π½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π΄Π»Ρ Linux.
111
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: "Π±ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ" ("Π±ΠΈΡ/Ρ"), Π° Π½Π΅ "Π±ΠΎΠ΄". ΠΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΌ ΡΠΌΠ΅Π½Ρ ΡΠ°Π· Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠΎΠ΄ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ termios, Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎ Π±ΠΎΠ΄, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΠΏΠΎΠΏΠ°Π»ΠΎ Π² Π½Π°Π·Π²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»Π°Π³ΠΎΠ² termios, Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π² ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅.
112
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² tty.
113
B134 Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ 134,5 Π±ΠΈΡ/Ρ, ΡΠΊΠΎΡΠΎΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠΌ IBM.
114
Linux ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ c_cflag Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π½ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ Π½Π° ΡΡΠΎ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ cfsetospeed() ΠΈ cfstispeed().
115
Π―Π΄ΡΠ° 2.6.x, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π²Π΅ΡΡΠΈΡ 4, ΡΠ°ΠΊ ΠΈ Π²Π΅ΡΡΠΈΡ 6 (Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π° IPv6 ΠΈΠ· Π½Π°Π±ΠΎΡΠ° TCP/IP).
116
ΠΡΡΠ°ΡΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ, ΡΠ΅ΡΠΈ Ρ ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΈΠ΅ΠΉ ΠΊΠ°Π½Π°Π»ΠΎΠ², Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ.
117
ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠΎΠ±ΡΠ΅Π»Π° ΡΠ°ΠΊΡΡ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ Ρ ΡΠ΅Ρ ΠΏΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π²ΡΠ΅ΠΌΠΈΡΠ½Π°Ρ ΡΠ΅ΡΡ Internet.
118
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ BOOTP ΠΈ NFS, ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ UDP.
119
ΠΠΎΠΏΡΡΡΠΈΠΌΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΡΠ΅Π΄ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
120
Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² connect() ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΡΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΌ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ TCP ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ TCP). ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² [33].
121
Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ select() ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΡΠΎΠΊΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΡΠΊΡΡΡΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ accept() Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠΎΠΊΠ΅Ρ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΠ°ΠΊ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΉ. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ select() Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ, Ρ ΠΎΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Linux ΡΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΡΠΈΡΠΈΠ½Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² [33].
122
ΠΠ°ΡΠΈΠ°Π½ΡΡ BSD Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π² ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π±Π΅Π· ΠΎΡΡΠ΅ΡΠΎΠ².
123
Π Π΄Π»Ρ bind(), ΠΈ Π΄Π»Ρ connect() ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠΈΡΠΊ ΠΏΡΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (ΠΏΠΎΡΡΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΎΡΠΊΡΡΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²).
124
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΠΊΠ°ΠΊ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Web-ΡΠ΅ΡΠ²Π΅ΡΡ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π·Π° ΡΠ°Π· ΡΠ΅ΡΠ΅Π· Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΡΠ΅ΡΠ²Π΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Web-ΡΠ΅ΡΠ²Π΅ΡΠ° Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ. ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠ½Π° Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
125