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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIXΒ»

Автор ΠœΠΎΡ€ΠΈΡ Π‘Π°Ρ…

ΠœΠΎΡ€ΠΈΡ Π”ΠΆ. Π‘Π°Ρ…

АрхитСктура ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX

ΠŸΠ Π•Π”Π˜Π‘Π›ΠžΠ’Π˜Π•

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ систСма UNIX Π±Ρ‹Π»Π° описана Π² 1974 Π³ΠΎΠ΄Ρƒ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ КСна Вомпсона ΠΈ Дэнниса Π ΠΈΡ‡ΠΈ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ Β«Communications of the ACMΒ» [Thompson 74]. Π‘ этого Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС ΠΈ Π·Π°Π²ΠΎΠ΅Π²Π°Π»Π° ΡˆΠΈΡ€ΠΎΠΊΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ срСди ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π­Π’Πœ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС Ρ‡Π°Ρ‰Π΅ стали ΠΎΡΠ½Π°Ρ‰Π°Ρ‚ΡŒ Сю свои ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Особой ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ½Π° ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² унивСрситСтах, Π³Π΄Π΅ довольно часто участвуСт Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΈ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌ процСссС.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠ½ΠΈΠ³ ΠΈ статСй посвящСно описанию ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй систСмы; срСди Π½ΠΈΡ… Π΄Π²Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… выпуска Β«Bell System Technical JournalΒ» Π·Π° 1978 Π³ΠΎΠ΄ [BSTJ 78] ΠΈ Π·Π° 1984 Π³ΠΎΠ΄ [BSTJ 84]. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠ½ΠΈΠ³Π°Ρ… описываСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Π² частности использованиС элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΌ процСссором Shell; Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Β«The UNIX Programming EnvironmentΒ» [Kernighan 84] ΠΈ Β«Advanced UNIX ProgrammingΒ» [Rochkind 85], описываСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс. Настоящая ΠΊΠ½ΠΈΠ³Π° посвящСна описанию Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΈ структур, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… основу ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (Ρ‚. Π½. «ядро»), ΠΈ объяснСнию ΠΈΡ… взаимосвязи с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ интСрфСйсом. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° для Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… срСдах. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия ΠΏΠΎ курсу Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы» ΠΊΠ°ΠΊ для студСнтов послСднСго курса, Ρ‚Π°ΠΊ ΠΈ для аспирантов ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° обучСния. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ нСпосрСдствСнно ΠΊ исходному тСксту систСмных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΠΎ ΠΊΠ½ΠΈΠ³Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ нСзависимо ΠΎΡ‚ Π½Π΅Π³ΠΎ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, эта ΠΊΠ½ΠΈΠ³Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС справочного руководства для систСмных программистов, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ послСдниС ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΡΡΠ½ΠΈΡ‚ΡŒ сСбС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² UNIX, ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. НаконСц, программисты, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² срСдС UNIX, ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ своС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ посрСдством этого ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ написанию Π±ΠΎΠ»Π΅Π΅ эффСктивных ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΈ порядок построСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π² ΠΊΠ½ΠΈΠ³Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ курсу Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΌΡƒ ΠΌΠ½ΠΎΠΉ для сотрудников Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories, входящСй Π² состав ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ AT&T, ΠΌΠ΅ΠΆΠ΄Ρƒ 1983 ΠΈ 1984 Π³Π³. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² курсС Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΎΡΡŒ Π½Π° исходный тСкст систСмных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ исходного тСкста облСгчаСтся, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ прСдставлСниС ΠΎ систСмных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ…. Π’ ΠΊΠ½ΠΈΠ³Π΅ я пытался ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ описаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈ Π² ΠΌΠ°Π»ΠΎΠΌ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ простоту ΠΈ изящСство рассматриваСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ½ΠΈΠ³Π° прСдставляСт собой Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ истолкованиС особСнностСй систСмы Π½Π° английском языкС; это ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², ΠΈ Ρ‡Ρ‚ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π²Π°ΠΆΠ½Π΅Π΅, это ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ процСсса ΠΈΡ… взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Алгоритмы прСдставлСны Π½Π° псСвдокодС, ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΌ Π½Π° язык Π‘ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ Π»Π΅Π³Ρ‡Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ описаниС Π½Π° СстСствСнном языкС; наимСнования Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ядро ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Рисунки ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ взаимодСйствиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… структур ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ послСдних Π³Π»Π°Π²Π°Ρ… ΠΌΠ½ΠΎΠ³ΠΈΠ΅ систСмныС понятия ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Π‘ΠΈ. Π’ цСлях экономии мСста ΠΈ обСспСчСния ясности излоТСния ΠΈΠ· этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ возникновСния ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдусматриваСтся ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΠ»ΠΈΡΡŒ мною ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ вСрсии V; Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… особСнности, присущиС вСрсии V, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсий ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

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

БистСмноС описаниС базируСтся Π½Π° особСнностях ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX вСрсия V рСдакция 2, распространСниСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ занимаСтся корпорация AT&T, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ 3. Π­Ρ‚ΠΎ Ρ‚Π° систСма, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΠΊΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ я постарался ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈ интСрСсныС Π΄Π΅Ρ‚Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… разновидностСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Π² частности систСм, распространяСмых Ρ‡Π΅Ρ€Π΅Π· Β«Berkeley Software DistributionΒ» (BSD). Π― Π½Π΅ касался вопросов, связанных с характСристиками ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств, ΡΡ‚Π°Ρ€Π°ΡΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ процСсс взаимодСйствия ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ срСдствами ΠΈ игнорируя Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Π΅ особСнности физичСской ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‚Π°ΠΌ, Π³Π΄Π΅ вопросы, связанныС с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ особСнностями, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠ»ΠΈΡΡŒ ΠΌΠ½Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния понимания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° функционирования ядра, оказалось умСстным ΠΈ ΡƒΠ³Π»ΡƒΠ±Π»Π΅Π½ΠΈΠ΅ Π² Π΄Π΅Ρ‚Π°Π»ΠΈ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π±Π΅Π³Π»Ρ‹ΠΉ просмотр Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Ρ… Π² ΠΊΠ½ΠΈΠ³Π΅ вопросов ясно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ составныС части ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ машинно-зависимыми.

ΠžΠ±Ρ‰Π΅Π½ΠΈΠ΅ с ΠΊΠ½ΠΈΠ³ΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ читатСля ΠΎΠΏΡ‹Ρ‚Π° программирования Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· языков высокого уровня ΠΈ ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° языкС ассСмблСра. Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ рСкомСндуСтся приобрСсти ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой UNIX ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с языком программирования Π‘ΠΈ [Kernighan 78]. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я старался ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π² ΠΊΠ½ΠΈΠ³Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ смог ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΈΠΌ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ отсутствии Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ². Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достаточно для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ содСрТании ΠΊΠ½ΠΈΠ³ΠΈ, Π½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² качСствС ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ справочного руководства.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π² ΠΊΠ½ΠΈΠ³Π΅ построСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π“Π»Π°Π²Π° 1 слуТит Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, содСрТащим ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅, ΠΎΠ±Ρ‰Π΅Π΅ описаниС систСмных особСнностСй с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‰ΠΈΠΌ структуру систСмы. Π’ Π³Π»Π°Π²Π΅ 2 даСтся ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ядра ΠΈ ΠΏΠΎΡΡΠ½ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основныС понятия. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ вопросы, связанныС с ΠΎΠ±Ρ‰Π΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ систСмы ΠΈ описаниСм Π΅Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΎΠ² Π΅Π΄ΠΈΠ½ΠΎΠΉ конструкции. Π’ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π°: файловая систСма, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами ΠΈ вопросы, связанныС с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ. Ѐайловая систСма прСдставлСна ΠΏΠ΅Ρ€Π²ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ процСссами. Π’Π°ΠΊ, Π³Π»Π°Π²Π° 3 посвящСна описанию ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° функционирования систСмного Π±ΡƒΡ„Π΅Ρ€Π° свСрхопСративной памяти (кСша), ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ основу Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Π“Π»Π°Π²Π° 4 описываСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ структуры ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. Π’ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅ΠΌΡ‹Π΅ Π² Π³Π»Π°Π²Π΅ 3, для вСдСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Β«Π±ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈΒ», Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π“Π»Π°Π²Π° 5 посвящСна описанию ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой; для обСспСчСния доступа ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π³Π»Π°Π²Ρ‹ 4.

ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² Π³Π»Π°Π²Π΅ 6 удСляСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ процСссами. Π’ Π½Π΅ΠΉ опрСдСляСтся понятиС контСкста процСсса ΠΈ ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ядра ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ контСкстом процСсса. Π’ частности, рассматриваСтся ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкста. Π’ Π³Π»Π°Π²Π΅ 7 Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚Π΅ систСмныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ контСкстом процСсса. Π“Π»Π°Π²Π° 8 касаСтся планирования процСссов, Π³Π»Π°Π²Π° 9 β€” распрСдСлСния памяти, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ систСмы ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΈ замСщСния страниц.

Π’ Π³Π»Π°Π²Π΅ 10 даСтся ΠΎΠ±Π·ΠΎΡ€ ΠΎΠ±Ρ‰ΠΈΡ… особСнностСй взаимодСйствия, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств, особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся дисковым ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ устройства логичСски входят Π² состав Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΈΡ… рассмотрСниС Π΄ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΎΡΡŒ Π² связи с Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ вопросов, связанных с ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ процСссами, ΠΏΡ€ΠΈ обсуТдСнии Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π­Ρ‚Π° Π³Π»Π°Π²Π° Ρ‚Π°ΠΊΠΆΠ΅ слуТит мостиком ΠΊ вопросам, связанным с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ½ΠΈΠ³ΠΈ. Π“Π»Π°Π²Π° 11 касаСтся взаимодСйствия процСссов ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ сСтСй, Π² Ρ‚ΠΎΠΌ числС сообщСний, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² вСрсии V, раздСлСния памяти, сСмафоров ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² BSD. Π“Π»Π°Π²Π° 12 содСрТит ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ особСнностСй двухпроцСссорной систСмы UNIX, Π² Π³Π»Π°Π²Π΅ 13 ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π΄Π²ΡƒΡ…ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ распрСдСлСнныС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ систСмы.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», прСдставлСнный Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… дСвяти Π³Π»Π°Π²Π°Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½ Π² процСссС изучСния курса Β«ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы» Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСмСстра, ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π³Π»Π°Π² слСдуСт ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π° ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°ΡŽΡ‰ΠΈΡ… сСминарах с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ практичСских Π·Π°Π΄Π°Π½ΠΈΠΉ.