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

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

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

ΠžΡΠΎΠ±ΡƒΡŽ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ Π²Ρ‹Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π ΠΎΠ±Ρƒ Лэндли ΠΈ своСй ΠΆΠ΅Π½Π΅ ΠšΡΡ‚Ρ€ΠΈΠ½ Π Π΅ΠΉΠΌΠΎΠ½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ строку Π·Π° строкой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ рукописи. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π ΠΎΠ±Π° Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»ΠΈ мСня Π½Π° созданиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹Ρ… Π³Π»Π°Π², ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΅Π³ΠΎ замСчания Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π½Ρ‹Π½Π΅ΡˆΠ½ΡŽΡŽ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΊΡ€ΡƒΠ³ рассмотрСнных Π² Π½Π΅ΠΉ Ρ‚Π΅ΠΌ. Если Π±Ρ‹ ΠΎΠ½ написал вСсь Ρ‚ΠΎΡ‚ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ заставил мСня ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ, Ρ‚ΠΎ я Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» Π±Ρ‹ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ соавтором. ΠšΡΡ‚ΠΈ ΠΈΠ³Ρ€Π°Π»Π° Ρ€ΠΎΠ»ΡŒ ΠΌΠΎΠ΅ΠΉ тСстовой Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, прСдставляя Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ программирования.

Π’ Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ вошли ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, выявлСнныС Π² Ρ…ΠΎΠ΄Π΅ обсуТдСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ спСциалистами Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ пяти Π»Π΅Ρ‚ Π΅Π΅ написания. ΠœΠ°Ρ€ΠΊ М. ΠœΠΈΠ»Π»Π΅Ρ€ (Mark М. Miller) способствовал Π°Π²Ρ‚ΠΎΡ€Ρƒ Π² освСщСнии Ρ‚Π΅ΠΌΡ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… процСссов. Π”ΠΆΠΎΠ½ ΠšΠΎΡƒΡΠ½ (John Cowan) Π΄Π°Π» нСсколько Ρ†Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ проСктирования интСрфСйсов ΠΈ создал Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ wily ΠΈ систСмы VM/CMS. Π”ΠΆΠ΅Ρ„ Раскин (Jef Raskin) продСмонстрировал происхоТдСниС ΠΏΡ€Π°Π²ΠΈΠ»Π° наимСньшСй нСоТиданности. Π“Ρ€ΡƒΠΏΠΏΠ° систСмной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ UIUC (UIUC System Architecture Group) Ρ‚Π°ΠΊΠΆΠ΅ внСсла свои ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ дополнСния. РСцСнзия Ρ‡Π»Π΅Π½ΠΎΠ² Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»Π° Π°Π²Ρ‚ΠΎΡ€Π° Π½Π° написаниС Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² "Π§Ρ‚ΠΎ Π² Unix дСлаСтся Π½Π΅Π²Π΅Ρ€Π½ΠΎ" ΠΈ "Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π½Π° всСх уровнях". РассСл Π”ΠΆ. НСльсон (Russell J. Nelson) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ» ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Ρ†Π΅ΠΏΠ΅ΠΉ Π‘Π΅Ρ€Π½ΡˆΡ‚Π°ΠΉΠ½Π° Π² Π³Π»Π°Π²Π΅ 7. Π”ΠΆΠ΅ΠΉ ΠœΡΠΉΠ½Π°Ρ€Π΄ (Jay Maynard) Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² MVS Π² Π³Π»Π°Π²Π΅ 3. ЛСс Π₯Π°Ρ‚Ρ‚ΠΎΠ½ (Les Hatton) прСдоставил мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π³Π»Π°Π²Ρ‹ "Π―Π·Ρ‹ΠΊΠΈ программирования: Π‘ ΠΈΠ»ΠΈ Π½Π΅ Π‘?" ΠΈ ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ» Π°Π²Ρ‚ΠΎΡ€Π° ΠΊ созданию Ρ€Π°Π·Π΄Π΅Π»Π° "Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ модуля" Π² Π³Π»Π°Π²Π΅ 4. Дэвид А. Π’ΠΈΠ»Π΅Ρ€ (David А. Wheeler) внСс мноТСство ΠΏΡ€ΠΎΠ½ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… критичСских Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ, особСнно Π² части "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅". Расс Кокс (Russ Π‘ΠΎΡ…) ΠΏΠΎΠΌΠΎΠ³ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΠΎΠ±Π·ΠΎΡ€ систСмы Plan 9. ДСннис Π ΠΈΡ‚Ρ‡ΠΈ (Dennis Ritchie) ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ историчСскиС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ языка Π‘.

Π’ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ рассмотрСния ΠΊΠ½ΠΈΠ³ΠΈ с января ΠΏΠΎ июнь 2003 Π³ΠΎΠ΄Π° сотни Unix-программистов (слишком ΠΌΠ½ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ здСсь ΠΈΡ… ΠΈΠΌΠ΅Π½Π°), вносили свои совСты ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Как всСгда, процСсс открытия Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎΠ³ΠΎ обсуТдСния посрСдством Web ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ являСтся ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ ΠΈ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊ всСгда, всю ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π°Π²Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° сСбя.

На ΡΡ‚ΠΈΠ»ΡŒ излоТСния ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вопросы, рассмотрСнныС Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅, ΠΎΠΊΠ°Π·Π°Π»Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ влияниС извСстная концСпция ΠΎ модСлях проСктирования. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π°Π²Ρ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»ΡΠ» Π½Π°Π΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "МодСли проСктирования Π² Unix" (Unix Design Patterns). Однако ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ Π±Ρ‹Π» Π½Π΅ согласСн с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π±Π΅Π·ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠ³ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡˆΠΊΠΎΠ»Ρ‹ ΠΈ Π½Π΅ испытывал нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π½Ρ‹ΠΉ Π±Π°Π³Π°ΠΆ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ€Π°Π±ΠΎΡ‚Ρ‹[2] ΠšΡ€ΠΈΡΡ‚ΠΎΡ„Π΅Ρ€Π° АлСксандСра (Christopher Alexander) (особСнно "The Timeless Way of Building" ΠΈ "A Pattern Language") ΠΎΠΊΠ°Π·Π°Π»ΠΈ своС влияниС Π½Π° авторский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Автор считаСт своим Π΄ΠΎΠ»Π³ΠΎΠΌ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π“Ρ€ΡƒΠΏΠΏΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… (Gang of Four) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΈΡ… ΡˆΠΊΠΎΠ»Ρ‹ Π·Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ АлСксандра Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ проСктирования Π½Π° высоком ΡƒΡ€ΠΎΠ²Π½Π΅, Π½Π΅ опСрируя ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСясными ΠΈ бСсполСзными ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Ρ„Ρ€Π°Π·Π°ΠΌΠΈ. ЗаинтСрСсованным читатСлям Π² качСствС ввСдСния Π² Ρ‚Π΅ΠΌΡƒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ проСктирования рСкомСндуСтся ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ "Design Patterns: Elements of Reusable Object-Oriented Software" [24].

НазваниС Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ, нСсомнСнно, ассоциируСтся с "Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎΠΌ программирования" Π”ΠΎΠ½Π°Π»ΡŒΠ΄Π° ΠšΠ½ΡƒΡ‚Π° (Donald Knuth). НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠšΠ½ΡƒΡ‚ Π½Π΅ связан с традициями Unix, ΠΎΠ½ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ влияниС Π½Π° всСх нас.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ с Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ Π²ΠΈΠ΄Π΅Π½ΠΈΠ΅ΠΌ тСкста ΠΈ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ Ρ‚Π°ΠΊ часто, ΠΊΠ°ΠΊ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹. Один ΠΈΠ· Π½ΠΈΡ… β€” ΠœΠ°Ρ€ΠΊ Π’Π°ΡƒΠ± (Mark Taub), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смог ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ достоинства приостановлСнного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π΄Π΅Π»ΠΈΠΊΠ°Ρ‚Π½ΠΎ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ» Π°Π²Ρ‚ΠΎΡ€Π° ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ чувством прозаичСского стиля ΠΈ достаточными способностями ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ написанноС отличаСтся ΠΈ ΠœΡΡ€ΠΈ Π›Π°Ρƒ Hop (Mary Lou Nohr). Π”ΠΆΠ΅Ρ€Ρ€ΠΈ Π’ΠΎΡ‚Ρ‚Π° Oerry Votta) ΡƒΠ»ΠΎΠ²ΠΈΠ» Π°Π²Ρ‚ΠΎΡ€ΡΠΊΡƒΡŽ идСю ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ ΠΈ сдСлал Π΅Π΅ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Π’Π΅ΡΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ² ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Addison-Wesley заслуТиваСт высокой ΠΎΡ†Π΅Π½ΠΊΠΈ Π·Π° осущСствлСниС рСдактирования ΠΈ производствСнного процСсса, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π° Ρ‚Π΅Ρ€ΠΏΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Π°ΠΌ Π°Π²Ρ‚ΠΎΡ€Π°, касавшимся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкста, Π½ΠΎ ΠΈ внСшнСго Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΊΠ½ΠΈΠ³ΠΈ, оформлСния ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π°.

Π§Π°ΡΡ‚ΡŒ I

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚

1

ЀилософскиС вопросы

Π’Π΅, ΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Unix, ΠΏΡ€ΠΈΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Ρ‹ ΠΊ Π΅Π΅ созданию, нСсчастныС.

Подпись ΠΈΠ· сообщСний Π³Ρ€ΡƒΠΏΠΏΡ‹ новостСй Usenet, Π½ΠΎΡΠ±Ρ€ΡŒ 1987 Π³ΠΎΠ΄Π° β€”Π“Π΅Π½Ρ€ΠΈ БпСнсСр

1.1. ΠšΡƒΠ»ΡŒΡ‚ΡƒΡ€Π°? Какая ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π°?

Π­Ρ‚ΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Unix, Π½ΠΎ Π² Π½Π΅ΠΉ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ понятия, ΠΊΠ°ΠΊ "ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π°", "искусство" ΠΈ "философия". Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся программистом, ΠΈΠ»ΠΈ программисту, ΠΌΠ°Π»ΠΎ связанному с ΠΌΠΈΡ€ΠΎΠΌ Unix, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ странным. Однако опСрационная систСма Unix ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнной ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠΉ; Π΅ΠΉ присущС особоС искусство программирования ΠΈ особая философия проСктирования. ПониманиС этих Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для Unix-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС являСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°. ВСхнология измСняСтся ΡΡ‚ΠΎΠ»ΡŒ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ срСды ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ быстро, Ρ‡Ρ‚ΠΎ Ρ‚.Π½. тСхничСская ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π° опрСдСляСтся ΠΊΠ°ΠΊ кратковрСмСнная ΠΈ нСустойчивая. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя это ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ всСгда справСдливо. ΠžΡ‡Π΅Π½ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ свою Π΄ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ, Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ для развития устойчивой тСхничСской ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹, особого искусства ΠΈ связанной с Π½ΠΈΠΌ философии проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ поколСния ΠΊ поколСнию ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ².

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

1.2. Π”ΠΎΠ»Π³ΠΎΠ²Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒ Unix

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Unix Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² 1969 Π³ΠΎΠ΄Ρƒ ΠΈ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° возникновСния находится Π² процСссС постоянного использования ΠΈ развития. Unix ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ»Π° нСсколько эпох, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… стандартами ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ индустрии, β€” ΠΎΠ½Π° ΡΡ‚Π°Ρ€ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ станции, микропроцСссоры ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹ с видСодисплСями, ΠΈ являСтся соврСмСнником ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ памяти. Из всСх соврСмСнных систСм раздСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (timesharing systems) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ VM/CMS производства ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ IBM ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° сущСствуСт Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, ΠΎΠ΄Π½Π°ΠΊΠΎ Unix-ΠΌΠ°ΡˆΠΈΠ½Ρ‹ обСспСчили Π² сотни тысяч Ρ€Π°Π· большС слуТСбных часов. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Unix, вСроятно, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ больший объСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… вычислСний, Ρ‡Π΅ΠΌ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ систСмы раздСлСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Unix нашла своС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ машин, Ρ‡Π΅ΠΌ любая другая опСрационная систСма. ΠžΡ‚ ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций ΠΈ сСрвСров, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΌΠΈΠ½ΠΈ-ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π΄ΠΎ ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ встроСнного сСтСвого оборудования, Unix ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚, вСроятно, большС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС, Ρ‡Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы вмСстС взятыС.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Unix ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСвСроятно ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ использования. Ни ΠΎΠ΄Π½Π° другая опСрационная систСма Π½Π΅ слуТит ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² качСствС инструмСнта исслСдований, друТСствСнной основы для ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… тСхничСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для коммСрчСского ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния бизнСс-процСссов ΠΈ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Internet.

Π‘ΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ прСдсказания ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Unix иссякнСт ΠΈΠ»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ вытСснСна Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами, постоянно Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅Π΅ возникновСния. Но Π΄ΠΎ сих ΠΏΠΎΡ€ Unix, воплощСнная сСгодня Π² Linux, BSD Solaris ΠΈ MacOS X ΠΈ ΠΎΠΊΠΎΠ»ΠΎ дСсятка Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², выглядит сильнСС, Ρ‡Π΅ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ.

Π ΠΎΠ±Π΅Ρ€Ρ‚ ΠœΠ΅Ρ‚ΠΊΠ°Π»Ρ„ (Robert Metcalf), ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Ethernet, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли ΠΊΡ‚ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΡƒΡŽ Ethernet, Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π²Π°Π½Π° "Ethernet", поэтому Ethernet Π½Π΅ ΡƒΠΌΡ€Π΅Ρ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π°[3]. Unix ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ»Π° нСсколько ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… трансформаций.