ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ tty-Π΄ΡΠ°ΠΉΠ²Π΅Ρ Unix Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» Π±ΡΡΠ΅Ρ Π»ΠΈΠ½ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ² Π±ΡΠ»ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π΄Π΅ΠΌΠΎΠ½Π°), Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΄ΡΠΎ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅Π°Π½Ρ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡ xterm ΠΈΠ»ΠΈ Emacs ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Ρ (ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠ³ Π±Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ).
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Unix ΡΠΌΠ΅ΡΡΠΈΠ»ΠΎΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ X-Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² ΠΈ ΡΠΌΡΠ»ΡΡΠΎΡΠΎΠ² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΠΎΠ², ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ ΡΡΠ°Π»ΠΎ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌ ΠΈ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠΆΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΉ ΠΎΡΡΡΠΎΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΄ΡΡΡΠ°Π΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ/ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ/ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠ³Π»Π° Π±Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΠ΅Π°Π½ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π½ΡΠ°ΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π¨ΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ screen(1), ΡΠ΅ΡΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ[153]. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΅Π΅ Π²ΡΠ·Π²Π°ΡΡ ΡΠ²Π½ΠΎ, Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠ΅Π°Π½ΡΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ΄ ΡΡΠΎΠ²Π½Ρ ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°Π΅Ρ Π΅Π΅ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π½Π΅ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½.
20.3.6. Π Unix API Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ
Π―Π·ΡΠΊ Π‘ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΠ΅Π΄ΡΡΠ² Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ[154]. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, C-ΡΡΠ½ΠΊΡΠΈΠΈ Π² Unix API ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ -1 ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° NULL-ΡΠΈΠΌΠ²ΠΎΠ») ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ errno.
ΠΠ³Π»ΡΠ΄ΡΠ²Π°ΡΡΡ Π½Π°Π·Π°Π΄, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΈΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π² ΡΠΏΠ΅ΡΠΊΠ΅ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ, Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠΈ; ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΠ²ΠΈΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ±ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ .
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ Π±Ρ Π±ΡΡΡ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΈΠ΄ΠΈΠΎΠΌΠ°ΠΌΠΈ β ΠΊΠ°ΠΊ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΠΎ Π²Π΅ΡΡΠΈΠΈ Ρ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ ΠΠ΅ΡΠΊΠ»ΠΈ-ΡΡΠΈΠ»Ρ β Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΡΡΠ΅Π²Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΡΡΡΠ° (ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ) ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°ΠΌΠΈ Unix API Π² ΡΠ°ΠΊΠΈΡ ΡΠ·ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ Python ΠΈΠ»ΠΈ Java, Π² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ. Π‘Π»Π°Π±Π°Ρ ΠΎΠ½ΡΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π² Π‘ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΡΠΌ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π° Π½Π΅ΠΌ ΡΠ·ΡΠΊΠ°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΈΠΌΠ΅ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π‘, ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠΏΠΈΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ) Perl ΠΈ Python ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΠΈ ΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ²ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ CORBA, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΠΎΠ½ΠΈ ΡΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½Ρ ΠΈ ΡΠΊΠ»ΠΎΠ½Π½Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
20.3.7. ΠΡΠ·ΠΎΠ²Ρ ioctl(2) ΠΈ fcntl(2) ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΡΠΌΠΈ
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ioctl(2) ΠΈ fcntl(2) ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΎΠ² (hooks) Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ioctl(2) Π±ΡΠ»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅ΠΉΠΌΠΈΡΡΡΡΠΈΡ Π±ΠΈΡΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ, ΠΎΡΡΡΠ΄Π° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ("I/O control"). ΠΠΎΠ·Π΄Π½Π΅Π΅ Π²ΡΠ·ΠΎΠ²Ρ ioctl Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², a fcntl(2) Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ Π³ΠΎΠ΄Π°ΠΌΠΈ Π²ΡΠ·ΠΎΠ²Ρ ioctl ΠΈ fcntl ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΠΈΠ»ΠΈΡΡ. ΠΠ½ΠΈ ΡΠ°ΡΡΠΎ ΡΠ»Π°Π±ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ΅Π΄ΠΊΠΎ ΡΠ²Π»ΡΡΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠΏΡΡΡΡΠ²ΡΠ΅Ρ Π½Π΅Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎΠ΅ Π½Π°Π³ΡΠΎΠΌΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ ΡΠΈΠΏΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ° ΠΆΠ΅, ΡΡΠΎ ΠΈ "Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π»ΠΎΠΊ Π±Π°ΠΉΡΠΎΠ²"; ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Unix ΡΠ»Π°Π±Π°Ρ ΠΈ Π½Π΅ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ ΠΈΠ· Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ². ΠΡΠ·ΠΎΠ²Ρ fcntl/ioctl ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² /dev, Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠ΄ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, /proc Linux ΠΈ Π΄Ρ.).
ΠΠΎΠΊΠ° Π½Π΅ ΡΡΠ½ΠΎ, ΡΠ»ΡΡΡΠΈΡΡΡ Π»ΠΈ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Unix, Π° Π΅ΡΠ»ΠΈ ΡΠ»ΡΡΡΠΈΡΡΡ, ΡΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΡΠ»ΠΈ MacOS-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ°Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Unix, ΠΏΠΎΠ΄ΡΡΡΠΎΠΉΠΊΠ° "ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ " ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ Π½Π° ΡΠ΅Π±Ρ ΡΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ioctl/fcntl (ΡΡΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΈΡΠΊΠ»ΡΡΠΈΠ»ΠΎ Π±Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°). ΠΡΡΠ΅ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π»ΠΎΡΡ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Plan 9, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°ΠΉΠ»/ΠΏΠΎΡΠΎΠΊ Π±Π°ΠΉΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΏΡΡΡ.
20.3.8. ΠΠΎΠ΄Π΅Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Unix, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½Π°
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠΈΡΠΎΠΊΠΈ, ΠΈ Π² Unix Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΠΊΠΎΠΉ Π³ΡΠ°Π΄Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΈΠ»ΠΈ ACL (Access Control Lists β ΡΠΏΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°) Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΅. ΠΡΠ΄ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ, ΡΠΏΠΎΡΡΡ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ root- ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ setuid. ΠΡΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π·Π»ΠΎΠΌΠ°ΡΡ, ΡΠΎ Π²ΡΠΎΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡ Π²Π΅Π·Π΄Π΅.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»Π°Π±ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Unix-ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³ΡΡΠΏΠΏ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π±ΠΈΡΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π³ΡΡΠΏΠΏΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π³ΡΡΠΏΠΏΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ACL-ΡΠΏΠΈΡΠΊΠ° Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½Π°Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ, ΠΈ ΡΡΠΎ Π½Π°Π²ΠΎΠ΄ΠΈΡ Π½Π° ΠΌΡΡΠ»Ρ, ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ACL-ΡΠΏΠΈΡΠΊΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ Π² ΡΠ΅ΠΎΡΠΈΠΈ.
20.3.9. Unix ΠΈΠΌΠ΅Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΠΈΠΌΠ΅Π½
Unix ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ»Π° ΡΠ°ΠΉΠ»Ρ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° β ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ Π±Π°ΠΉΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅ΡΡ, ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½. Plan 9 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ»Ρ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ (ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ) ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
20.3.10. Π€Π°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ Π²ΡΠ΅Π΄Π½ΡΠΌΠΈ
Π‘ ΠΊΠΎΠ½ΡΠ° 1970-Ρ Π³ΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΠΎΠΎΠ±ΡΠ΅, Π° ΡΡΠ°ΠΊΡΡΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ³ΡΠΎΠΌΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ.
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ (ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ EROS[155]) ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, Π²ΠΊΠ»ΡΡΠ°Ρ Π΄ΠΎΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΎΠΈΠ³ΡΡΡ Unix, ΡΠΎ ΡΡΠΎ ΡΠ°Π²Π½ΡΠΉ ΠΏΡΠΎΠΈΠ³ΡΡΡ Π²ΡΠ΅Ρ Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ². ΠΠΈ ΠΎΠ΄Π½Π° ΠΊΡΡΠΏΠ½Π°Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ EROS[156].
20.3.11. ΠΠ° ΠΏΡΡΠΈ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ Internet
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, URL-Π°Π΄ΡΠ΅ΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½Ρ. ΠΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ»ΠΎΠ²ΠΎ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΡ Unix Π·Π° ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΌ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠΈΠΌ ΠΈΠ΄Π΅Π°Π»ΠΎΠΌ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (Π° Π»Ρ Plan 9), Π° Π·Π°ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π² Internet ΠΊΠ°ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ° Π²ΠΌΠ΅ΡΡΠΎ HTML. ΠΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ.
ΠΠ΅Π½ Π’ΠΎΠΌΠΏΡΠΎΠ½.20.4. ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Unix
ΠΡΠ»ΡΡΡΡΠ° ΡΡΠ°ΡΠΎΠΉ Unix ΠΏΠΎΡΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π²ΠΎΡΡΠΎΠ·Π΄Π°Π½Π° Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π½Π°Ρ ΠΎΡ Π²ΡΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π½ΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ β ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΠΉ? ΠΡ Π²Π½ΠΎΠ²Ρ "Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ Π½Π°ΡΠΈΠΌ ΠΊΠΎΡΠ½ΡΠΌ" Π² ΠΎΠ±ΡΠ΅ΠΌ, ΠΎΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π½Π½Π΅ΠΉ ΡΠΏΠΎΡ ΠΈ Unix. ΠΡ ΠΏΠΎΡΡΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π²ΡΠΈΠ³ΡΠ°Π»ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΏΠΎΡ ΠΎΠ± ΠΎΡΠΊΠ°Π·Π΅ ΠΎΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° Ρ ΡΡΠ½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π²Π½ΠΎΠΏΡΠ°Π²Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , ΡΠ΅ΠΌ ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² 70-Ρ ΠΈ 80-Ρ Π³ΠΎΠ΄Π°Ρ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°, ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π½Π°ΡΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Π±ΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΡΠΌΠΈ. Π 2003 Π³ΠΎΠ΄Ρ Unix-ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ° Π² ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΠ°ΠΊ Π΄Π°Π²Π½ΠΎ, Π΅ΡΠ΅ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ 90-Ρ Π³ΠΎΠ΄ΠΎΠ² Π±ΡΠ» Π±Ρ Π½Π΅Π²ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΌΡΠΌ.