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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Командная строка LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 81

Автор Шоттс Уильям

[[email protected] ~]$ ls *.txt | pr -3 | lp

request id is printer-603 (1 file(s))

[[email protected] ~]$ lpq

printer is ready and printing

RankΒ Β Β Β OwnerΒ Β Β JobΒ Β Β Β Β File(s)Β Β Β Β Β Β Β Β Β Total Size

activeΒ Β meΒ Β Β Β Β Β 603Β Β Β Β Β (stdin)Β Β Β Β Β Β Β Β Β 1024 bytes

lprm ΠΈ cancel β€” ΠΎΡ‚ΠΌΠ΅Π½Π° Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ

Π’ составС CUPS имССтся Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΈ удалСния ΠΈΡ… ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. Одна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° β€” Π² стилС Berkeley (lprm), Π° другая β€” Π² стилС System V (cancel). Они нСсколько ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π½ΠΎ, ΠΏΠΎ сути, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ, рассматриваСмый Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ задания ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

[[email protected] ~]$ cancel 603

[[email protected] ~]$ lpq

printer is ready

no entries

ОбС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС задания, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ задания, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ задания, содСрТащиСся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ спискС Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π·Π°Π΄Π°Π½ΠΈΠΉ. ВсС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ подробности Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° страницах справочного руководства (man) для этих ΠΊΠΎΠΌΠ°Π½Π΄.

23. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

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

Но Π·Π°Ρ‡Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄? ΠœΠΎΠ³Ρƒ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΄Π²Π΅ основныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

β€’ Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ. НСсмотря Π½Π° большоС число ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² рСпозиториях дистрибутивов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дистрибутивы ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½Π΅ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ прилоТСния. Π’ этом случаС остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ способ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ: ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΈΠ· исходных ΠΊΠΎΠ΄ΠΎΠ².

β€’ Π‘Π²ΠΎΠ΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дистрибутивы ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° ΡƒΠ»ΡŒΡ‚Ρ€Π°ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вСрсиях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ всС ΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ΡΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ прогрСсса. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для получСния самой послСднСй вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ придСтся Π΅Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

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

Π’ этой Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСна ΠΎΠ΄Π½Π° новая ΠΊΠΎΠΌΠ°Π½Π΄Π°:

β€’ make β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° сопровоТдСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ компиляция?

Π’Ρ‹Ρ€Π°ΠΆΠ°ΡΡΡŒ простым языком, компиляция β€” это процСсс трансляции исходного ΠΊΠΎΠ΄Π° (тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΅Π΅ дСйствия ΠΈ написанного программистом) Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ язык, понятный процСссору ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (Computer Processor Unit, CPU) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, выполняя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ числовой ΠΊΠΎΠ΄, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ элСмСнтарныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ эти Π΄Π²Π° Π±Π°ΠΉΡ‚Π°Β», Β«ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° эту ячСйку Π² памяти» ΠΈΠ»ΠΈ Β«ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Π±Π°ΠΉΡ‚Β». КаТдая ΠΈΠ· этих инструкций выраТаСтся Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ (нулями ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌΠΈ). Π‘Π°ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ писались Π½Π° числовом ΠΊΠΎΠ΄Π΅, поэтому программисты, писавшиС Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΠΏΠΎΠ³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°ΡŽΡ‚, ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΡƒΡ€ΠΈΠ»ΠΈ, ΠΏΠΈΠ»ΠΈ ΠΊΠΎΡ„Π΅ Π»ΠΈΡ‚Ρ€Π°ΠΌΠΈ ΠΈ носили ΠΎΡ‡ΠΊΠΈ с толстСнными Π»ΠΈΠ½Π·Π°ΠΌΠΈ.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±Ρ‹Π»Π° Ρ€Π΅ΡˆΠ΅Π½Π° с появлСниСм языка ассСмблСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΠ» числовыС ΠΊΠΎΠ΄Ρ‹ (слСгка) Π±ΠΎΠ»Π΅Π΅ простыми символичСскими ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ CPY (для обозначСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ копирования) ΠΈ MOV (для обозначСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ пСрСмСщСния). Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° языкС ассСмблСра прСобразовывался Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ ассСмблСром. Π―Π·Ρ‹ΠΊ ассСмблСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ Π² наши Π΄Π½ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ программирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств ΠΈΠ»ΠΈ встраиваСмых систСм.

Π—Π°Ρ‚Π΅ΠΌ появились высокоуровнСвыС языки программирования. Они Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ программисту мСньшС Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± особСнностях Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСссора ΠΈ большС β€” ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, стоящСй ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ. К числу этих ΠΏΠ΅Ρ€Π²Ρ‹Ρ… языков (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 1950-Ρ…) относятся: FORTRAN (создавался для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ тСхничСских Π·Π°Π΄Π°Ρ‡) ΠΈ Π‘OBOL (для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ экономичСских Π·Π°Π΄Π°Ρ‡). Оба ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎ сию ΠΏΠΎΡ€Ρƒ.

НСсмотря Π½Π° большоС число популярных языков программирования, Π³ΠΎΡΠΏΠΎΠ΄ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ…. МногиС соврСмСнныС систСмы ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ написаны Π½Π° C ΠΈΠ»ΠΈ Π½Π° C++. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π½ΠΈΠΆΠ΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языках высокого уровня ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² инструкции Π½Π° машинном языкС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” компилятора. НСкоторыС компиляторы Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ высокоуровнСвыС инструкции Π½Π° язык ассСмблСра, Π° Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ассСмблСра производят ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, сопутствуСт процСсс ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ часто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ мноТСство Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ открытия Ρ„Π°ΠΉΠ»Π°. МногиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΅Π΅, Π½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ слишком Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свою ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ открытия Ρ„Π°ΠΉΠ»ΠΎΠ². ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π·Π½Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ Π΄Π°Ρ‚ΡŒ всСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Они содСрТат мноТСство ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ мноТСством ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ /lib ΠΈ /usr/lib, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Для формирования связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ компилятора ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°-ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ (linker, Π΅Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ связСй). ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ этого процСсса являСтся выполняСмый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊ использованию.

ВсС Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ?

НСт. Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ сцСнарии Π½Π° языкС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ компиляции ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нСпосрСдствСнно. Они написаны Π½Π° языках, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языками сцСнариСв, ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками. К числу этих языков, ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ растСт Π² послСдниС Π³ΠΎΠ΄Ρ‹, относятся Perl, Python, PHP, Ruby ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

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

Но ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚ΠΎΠ³Π΄Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ языки Ρ‚Π°ΠΊ популярны? Для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ «достаточно быстрыми», Π½ΠΎ самоС большоС ΠΈΡ… достоинство Π² простотС ΠΈ скорости Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² сравнСнии с ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ цикличСский процСсс, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€ΠΈ этапа: созданиС исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ тСстированиС. Π‘ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… этап компиляции Π² упомянутом Ρ†ΠΈΠΊΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вСсьма ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ языки ΠΈΠ·Π±Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚ нСобходимости компиляции ΠΈ Ρ‚Π΅ΠΌ самым ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‚ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.