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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования для UnixΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 164

Автор Π Π΅ΠΉΠΌΠΎΠ½Π΄ Π­Ρ€ΠΈΠΊ Π‘Ρ‚ΠΈΠ²Π΅Π½

20.3. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² конструкции Unix

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Plan 9 "ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚" Unix, Π½ΠΎ добавляСт лишь ΠΎΠ΄Π½Ρƒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ (частноС пространство ΠΈΠΌΠ΅Π½) ΠΊ Π΅Π΅ основному Π½Π°Π±ΠΎΡ€Ρƒ конструктивных ΠΈΠ΄Π΅ΠΉ. Однако Π΅ΡΡ‚ΡŒ Π»ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² этих Π±Π°Π·ΠΎΠ²Ρ‹Ρ… идСях? Π’ Π³Π»Π°Π²Π΅ 1 Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»ΠΎΡΡŒ нСсколько областСй, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Unix, вСроятно, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ. Π’ настоящСС врСмя, ΠΊΠΎΠ³Π΄Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ исходного ΠΊΠΎΠ΄Π° "ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅" конструкции Unix ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€ΡƒΠΊΠΈ программистов ΠΈ тСхничСских спСциалистов, эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Π»ΠΈΠ·ΠΊΠΈ ΠΊ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ. НиТС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Unix Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ снова, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Unix Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

20.3.1. Unix-Ρ„Π°ΠΉΠ» прСдставляСт собой Ρ‚ΠΎΠ»ΡŒΠΊΠΎ большой Π±Π»ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ²

Π›ΡŽΠ±ΠΎΠΉ Ρ„Π°ΠΉΠ» Π² Unix прСдставляСт собой Ρ‚ΠΎΠ»ΡŒΠΊΠΎ большой Π±Π»ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π’ частности, Π½Π΅ сущСствуСт возмоТности ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π’ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС всС рассматриваСтся ΠΊΠ°ΠΊ ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ². Π”Π°ΠΆΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ устройства ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π±Π°ΠΉΡ‚ΠΎΠ². Данная ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° Π±Ρ‹Π»Π° большим успСхом Ρ€Π°Π½Π½Π΅ΠΉ Unix ΠΈ большим прСимущСством Π² ΠΌΠΈΡ€Π΅, Π³Π΄Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€) ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ компилятору. Из Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹ выросли ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ shell-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Однако ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π² Unix Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сущСствСнна, Ρ‡Ρ‚ΠΎ Π² Unix ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с опСрациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ состав ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (созданиС, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅). Π­Ρ‚ΠΎ особСнно являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для GUI-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠΊΠ½Π° ΠΈ "Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅" Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Π’Π½ΡƒΡ‚Ρ€ΠΈ классичСской Unix-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΈΡ€Π° СдинствСнный способ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρƒ Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ioctl, ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΠΎ извСстных ΠΊΠ°ΠΊ уродливая коллСкция Π»Π°Π·Π΅Π΅ΠΊ Π² пространство ядра.

ΠŸΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм сСмСйства Macintosh склонны громогласно ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ это. Они ΠΏΡ€ΠΎΠΏΠ°Π³Π°Π½Π΄ΠΈΡ€ΡƒΡŽΡ‚ модСль, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ΄Π½ΠΎ имя Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ "Π²Π΅Ρ‚Π²ΡŒ" Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ "Π²Π΅Ρ‚Π²ΡŒ" рСсурсов. Π’Π΅Ρ‚Π²ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… соотвСтствуСт Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ Π² Unix, Π° "Π²Π΅Ρ‚Π²ΡŒ" рСсурсов являСтся сСмСйством ΠΏΠ°Ρ€ имя/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Ρ†Ρ‹ Unix ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° ΡΠ°ΠΌΠΎΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ фактичСски Ρ‚Π΅ ΠΆΠ΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Unix-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ каТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая записываСт Ρ„Π°ΠΉΠ», Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΅Π³ΠΎ структурС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ информация ΠΎ Ρ‚ΠΈΠΏΠ΅ Ρ„Π°ΠΉΠ»Π° Ρ…Ρ€Π°Π½ΠΈΠ»Π°ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ срСдство, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π΄ΠΎΠ»ΠΆΠ½ΠΎ "ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ" ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΠΈΠ±ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Ρ‚ΠΈΠΏΠ° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это тСорСтичСски Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ конструкции Π±Ρ‹Π»ΠΈ Π±Ρ‹ слишком Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΌΠΈ.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² сопряТСна с Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌΠΈ вопросами ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡ… ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»Π° источника, ΠΊΠ°ΠΊ ΠΈ Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅. Однако Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cat( 1)?

ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ подразумСваСтся ΠΏΠΎΠ΄ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ β€” ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой свойства ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹ΠΌ способом встроСны Π² Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈΠ»ΠΈ окончания Ρ„Π°ΠΉΠ»Π°. КакиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ свойства ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌΠΈ?

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Xerox PARC Π±ΠΎΡ€ΠΎΠ»ΠΈΡΡŒ с Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ°. Для конструкции Π±Ρ‹Π» Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π΅Π½ "ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСриализо-Π²Π°Π½Π½Ρ‹ΠΉ" Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ, содСрТащий ΠΊΠ°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ‚Π°ΠΊ ΠΈ содСрТимоС Ρ„Π°ΠΉΠ»Π°. Если Π²Ρ‹Π·ΠΎΠ² примСнялся ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, Ρ‚ΠΎ ΠΎΠ½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π» сСриали-Π·Π°Ρ†ΠΈΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° плюс ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ всСх Ρ„Π°ΠΉΠ»ΠΎΠ², хранящихся Π² Π½Π΅ΠΌ. НС Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±Ρ‹Π» ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½.

Π―Π΄Ρ€ΠΎ 2.5 Linux ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ присоСдинСниС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°Ρ€ имя/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ свойств ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ Π½Π΅ использовалась Π² прилоТСниях. ПослСдниС вСрсии ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Solaris ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

20.3.2. Блабая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GUI-интСрфСйсов Π² Unix

ΠžΠΏΡ‹Ρ‚ Unix Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ Π² качСствС базиса для ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ структуры прСдставляСт собой ΠΌΠΎΡ‰Π½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ (обсуТдСниС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… структур ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ контСкста ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² Π³Π»Π°Π²Π΅ 13). Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Π° "Π² сСрдцС" соврСмСнных GUI-интСрфСйсов (Ρ„Π°ΠΉΠ»Ρ‹, прСдставлСнныС ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹) с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Xerox PARC Π² 1970-Ρ… Π³ΠΎΠ΄Π°Ρ… Π΄ΠΎΠΊΠ°Π·Π°Π»Π° свою ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² интСрфСйсов.

НСсмотря Π½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π½Π΅Π΄Π°Π²Π½ΠΈΠ΅ усилия, Π² 2003 Π³ΠΎΠ΄Ρƒ Unix всС Π΅Ρ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° эту ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρƒ слабо ΠΈ Π½Π΅ΠΎΡ…ΠΎΡ‚Π½ΠΎ β€” сущСствовало мноТСство ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, нСсколько соглашСний ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слабыС конструкционныС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. Випичная рСакция со стороны ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… профСссионалов Unix β€” ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с самой GUI-ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€ΠΎΠΉ.

Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρ‹. НапримСр, Π² Macintosh, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», я ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽ Π΅Π³ΠΎ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° я ΠΏΠ΅Ρ€Π΅Ρ‚Π°ΡΠΊΠΈΠ²Π°ΡŽ Π΅Π³ΠΎ Π½Π° диск, Ρ‚ΠΎ Ρ„Π°ΠΉΠ» копируСтся, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° ΠΏΠΈΠΊΡ‚ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π°, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мСню. Π― ΠΌΠΎΠ³ Π±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ Π² OS/360, Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ появилась Unix с Π΅Π΅ простой (Π½ΠΎ Π½Π΅ слишком простой) Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ.

Π‘Ρ‚ΠΈΠ² ДТонсон.

Π’ Π³Π»Π°Π²Π΅ 11 ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Ρ†ΠΈΡ‚Π°Ρ‚Ρ‹ Π‘Ρ€Π°ΠΉΠ°Π½Π° ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½Π° ΠΈ Майка ЛСска ΠΏΠΎ этому ΠΆΠ΅ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ, Π½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, лишь обвиняя GUI-интСрфСйс. НСсмотря Π½Π° всС Π΅Π³ΠΎ нСдостатки, имССтся огромная ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² GUI-интСрфСйсах со стороны ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚Π°Ρ„ΠΎΡ€Ρƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π‘Ρ‹Π»Π° Π±Ρ‹ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Unix способна изящно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ GUI-интСрфСйс?

ВСроятно, Π½Π΅Ρ‚. Авторы касались Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, анализируя, являСтся Π»ΠΈ модСль прСдставлСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π²ΠΈΠ΄Π΅ большого Π±Π»ΠΎΠΊΠ° Π±Π°ΠΉΡ‚ΠΎΠ² Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΠΉ. Для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GUI-интСрфСйсов ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠ³ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Π² стилС Macintosh. Однако каТСтся маловСроятным, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль Π² Unix Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π²Π΅Ρ€Π½Ρ‹Ρ… Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… конструкций. НСобходимо ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Ρ‹Π»Π° Π±Ρ‹ строгая ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ структура для GUI интСрфСйсов. И, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ структурами Unix. Π­Ρ‚ΠΎ слоТная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ понимания, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΊΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ "срСди ΡˆΡƒΠΌΠ° ΠΈ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹" ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ ΠΈ акадСмичСских исслСдований.

20.3.3.Β Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Unix Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ с ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² систСмС VMS ΠΈΠ»ΠΈ Ρ‚Π΅, ΠΊΡ‚ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ TOPS-20, часто ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ нСдостаток срСдств для контроля вСрсий Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ для этих систСм. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° для записи ΠΈΠ»ΠΈ удалСния фактичСски ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡŽ прСдсказуСмым способом, Π° Π½ΠΎΠ²ΠΎΠ΅ имя Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΎ Π² сСбя Π½ΠΎΠΌΠ΅Ρ€ вСрсии. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ явная опСрация удалСния Ρ„Π°ΠΉΠ»Π° вСрсии фактичСски стирала Π΄Π°Π½Π½Ρ‹Π΅.

Unix обходится Π±Π΅Π· этого, Π½Π΅ΠΌΠ°Π»ΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ раздраТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΠ³Π΄Π° ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·-Π·Π° ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ влияния Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… символов ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.