ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄
ΠΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ β ΠΎΡ Π°Π½Π³Π». native code ) β ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ (ΡΠ·ΡΠΊ) ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ (ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΡΠ·ΡΠΊ, Ρ ΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΡΡΠΈ Π½Π°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ. ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ A ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ B, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ A ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΒ» ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° B. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ A Π·Π½Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ B, ΡΠΎ B Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ A.
Β«Π‘Π»ΠΎΠ²Π°Β» ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ Β«ΠΏΠ΅ΡΠ΅ΡΠ»Π°ΡΡ Π±Π°ΠΉΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅Π³ΠΈΡΡΡΒ». ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ. Π Π°Π½ΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΎΠ΄Π½Ρ Π·Π° Π΄ΡΡΠ³ΠΎΠΉ, Π½ΠΎ Π½ΠΎΠ²ΡΠ΅ ΡΡΠΏΠ΅ΡΡΠΊΠ°Π»ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π·Π° ΡΠ°Π·. ΠΡΡΠΌΠΎΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ½ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π±ΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (Ρ MISC-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ) ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΠΎΠΉ (Ρ x86 ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΎΡ 8 Π΄ΠΎ 120 Π±ΠΈΡΠΎΠ²).
Π‘ΠΌ ΡΠ°ΠΊΠΆΠ΅
ΠΠΎΠ»Π΅Π·Π½ΠΎΠ΅
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄» Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡΡ :
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ β 3.4. ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ : Π€Π°ΠΉΠ», ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π‘Π, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ (ΠΠΠ£, ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ ΠΈ Ρ.Π΄.). ΠΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° (ΠΊΠΎΠ΄) ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅,β¦ β¦ Π‘Π»ΠΎΠ²Π°ΡΡ-ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ² Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΠΎ-ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠ΄ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) β ΠΠΎΠ΄ (ΡΡ. code, ΠΎΡ Π»Π°Ρ. codex): Π ΠΠΈΠΊΠΈΡΠ»ΠΎΠ²Π°ΡΠ΅ Π΅ΡΡΡ ΡΡΠ°ΡΡΡ Β«ΠΊΠΎΠ΄Β» β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ β ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ΅Π»Π» ΠΊΠΎΠ΄ (Π°Π½Π³Π». shellcode) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Unix shell, command.com Π² MS DOS ΠΈ cmd.exe Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows. ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ β ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ΅Π»Π» ΠΊΠΎΠ΄ (Π°Π½Π³Π». shellcode) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Unix shell, command.com Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows. ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ (ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ) β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π»ΡΠ±ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π²β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ β Π£ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΌ. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠΈΠ»ΡΠΌ). ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ HTML ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎ Π²ΡΡΠ°Π²ΠΊΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π»ΡΠ±ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π²β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π¨Π΅Π»Π»-ΠΊΠΎΠ΄ β (Π°Π½Π³Π». shellcode, ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Π² Unix shell, command.com Π² MS DOS ΠΈ cmd.exe Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows.β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ β ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ (Π°Π½Π³Π». byte code), ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ β ΠΠ°ΠΉΡ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ (Π°Π½Π³Π». byte code), ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄
ΠΠ°ΡΠΈΜΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (ΠΏΠ»Π°ΡΡΠΎΜΡΠΌΠ΅Π½Π½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΜΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄), ΠΌΠ°ΡΠΈΜΠ½Π½ΡΠΉ ΡΠ·ΡΜΠΊ β ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΡΡΠΎΠΉ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. [1]
ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π·Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π² Π²ΠΈΠ΄Π΅ Ρ. Π½. ΠΎΠΏΠΊΠΎΠ΄Π° β Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΈΡΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΡ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ. ΠΠ°Π±ΠΎΡ ΡΠ°ΠΊΠΈΡ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊ, Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠ°ΠΊΡΠΎΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ), Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ·ΡΠΊΠΎΠΌ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, Ρ ΠΎΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΡΡΠΈ Π½Π°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ. ΠΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ A ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ B, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ A ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΒ» ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° B. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ A ΠΈ B ΠΈΠΌΠ΅ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ, ΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Β«Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡΒ» (ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄).
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ°ΡΠΈΠ½Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ
ΠΠ°ΠΆΠ΄Π°Ρ ΠΌΠ°ΡΠΈΠ½Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΠ°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΠΈΠ»ΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ) ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΡΠ°ΡΡΠΊΡ ΠΊΠΎΠ΄Π° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ; ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΡΠΌ ΠΈΠ»ΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΠΌ, Π·Π°Π²ΠΈΡΡΡΠΈΠΌ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ). ΠΡΠ±Π°Ρ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° Β«ΠΏΡΠΎΡΡΡΠ΅Β» (ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ) ΠΈ Β«ΡΠ»ΠΎΠΆΠ½ΡΠ΅Β». ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Β«ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Β» β Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° β Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ β ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ (Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ) Π΅Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ, ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (ΠΎΠΏΠΊΠΎΠ΄Ρ) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ. ΠΠΏΠΊΠΎΠ΄Ρ Π±ΡΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (Ρ RISC-, MISC-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ) ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΠΎΠΉ (Ρ CISC-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ; Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ ΠΎΡ 8 Π΄ΠΎ 120 Π±ΠΈΡΠΎΠ²).
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΏΠ΅ΡΡΠΊΠ°Π»ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΡ.
ΠΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΠΌΡΠΉ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π₯ΠΎΡΡ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΡΠΌΠΎ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ Π² ΡΠΈΠ»Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΠ΄ΠΎΡΠΌΠΊΠΎΡΡΠΈ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠΈΡΠ΅ΡΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ. ΠΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·ΡΠ²Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ β ΠΎΡ Π°Π½Π³Π». native code ), ΠΊΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΡΠ°ΡΡΡΡ ΡΠ·ΡΠΊΠ° ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. [2]
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠ·ΡΠΊΠ°Ρ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Basic ΠΈΠ»ΠΈ Python) Π½Π΅ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄; Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ ΡΠ·ΡΠΊΠ°, Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΡΡΡΡ Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ (Π±Π°ΠΉΡ-ΠΊΠΎΠ΄). ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ), ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΠΈΠΊΡΠΎΠΊΠΎΠ΄
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΠ»ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Ρ Π²ΡΠ΅ΠΉ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ, ΠΈ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ². ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² IBM System/360 ΠΈ ΠΈΡ ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠ²: Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΎΡ 8 Π΄ΠΎ 64 Π±ΠΈΡ ΠΈ Π²ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π½ΠΈΡ ΠΎΠ±ΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΌΡΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. Π Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ System/360 ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΡ ΠΌΠ°ΡΠΈΠ½ IBM Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΌΡΠ»ΡΡΠΎΡ IBM 1401/1440/1460 Π½Π° IBM S/360 model 40.
ΠΠ±ΡΠΎΠ»ΡΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄
ΠΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ (Π°Π½Π³Π». position-independent code ) β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² Π»ΡΠ±ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ΅ΠΉΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² Π½Π΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΡΡΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄). Π’Π°ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π² Π΄ΡΡΠ³ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΠΎΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π° Π² Π»ΡΠ±ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΠΌΠ΅ΡΡΠ΅. [1]
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, ΡΠΎ ΠΊΠΎΠ΄, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ², ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ. Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ x86 Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π°Π΄ΡΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½Π½ΠΎ-Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡΡ ΡΠ½ΠΈΠΌΠ°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΌΠΎΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Β«Hello, world!Β»
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Β«Hello, world!Β» Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 (ΠΠ‘ MS DOS, Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ BIOS ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ int 10h) Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (Π² ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ):
BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΡΠΈ Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΏΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ 10016. ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΠ²Π΅ΡΠΎΠΌ:
ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄
3.4. ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ : Π€Π°ΠΉΠ», ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ Π‘Π, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ (ΠΠΠ£, ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π΄ΠΈΡΠΊ ΠΈ Ρ.Π΄.). ΠΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° (ΠΊΠΎΠ΄) ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π΅Π³ΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ [1].
ΠΠΎΠ»Π΅Π·Π½ΠΎΠ΅
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ «ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄» Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡΡ :
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ β ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΡΠ΅Π»ΠΎΠΌ; ΠΎΠ± ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ ΡΠΌ.: ΠΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ°). ΠΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ ΡΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄, ΠΈΠ»ΠΈ Π½Π°ΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡ Π°Π½Π³Π». native code) ΡΠΈΡΡΠ΅ΠΌΠ°β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ (Π·Π½Π°ΡΠ΅Π½ΠΈΡ) β ΠΠΎΠ΄ (ΡΡ. code, ΠΎΡ Π»Π°Ρ. codex): Π ΠΠΈΠΊΠΈΡΠ»ΠΎΠ²Π°ΡΠ΅ Π΅ΡΡΡ ΡΡΠ°ΡΡΡ Β«ΠΊΠΎΠ΄Β» β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ β ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ΅Π»Π» ΠΊΠΎΠ΄ (Π°Π½Π³Π». shellcode) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Unix shell, command.com Π² MS DOS ΠΈ cmd.exe Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows. ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ β ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ, ΡΠ΅Π»Π» ΠΊΠΎΠ΄ (Π°Π½Π³Π». shellcode) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Unix shell, command.com Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows. ΠΠΎΠ΄ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠ΄ (ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ) β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π»ΡΠ±ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π²β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ β Π£ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΌ. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠΈΠ»ΡΠΌ). ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ HTML ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎ Π²ΡΡΠ°Π²ΠΊΠΎΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ β ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° JavaScript ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π»ΡΠ±ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π²β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
Π¨Π΅Π»Π»-ΠΊΠΎΠ΄ β (Π°Π½Π³Π». shellcode, ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ) ΡΡΠΎ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ /bin/sh Π² Unix shell, command.com Π² MS DOS ΠΈ cmd.exe Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Microsoft Windows.β¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠ°ΠΉΡ-ΠΊΠΎΠ΄ β ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ (Π°Π½Π³Π». byte code), ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈβ¦ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ΄ β ΠΠ°ΠΉΡ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π±Π°ΠΉΡΠΊΠΎΠ΄ (Π°Π½Π³Π». byte code), ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π±Π°ΠΉΡ ΠΊΠΎΠ΄Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ β¦ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ. 9: ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Ρ, ΡΡΠΎ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π»Ρ ΠΈΠ³ΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄ΠΆΠ΅ΠΉ-ΡΠΊΡΠΈΠΏ. ΠΠ°ΡΠ°Π»ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΠΏ-ΠΊΠΎΠ΄, ΠΏΠΎΡΡΠ°ΡΠΈΠ»ΠΈ Π½Π΅ΠΌΠ°Π»ΠΎ ΡΠΈΠ» Π½Π° Π΅Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, ΠΈ ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈΡΡ ΠΊ Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΡΠ°ΠΏΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ β ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΌΠ°ΡΠΈΠ½Π½ΠΎ-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΈΠΊΠ°ΠΊΠΈΡ
Π·Π°ΠΌΡΡΠ»ΠΎΠ²Π°ΡΡΡ
Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΡΡ ΡΠΆΠ΅ Π½Π΅Ρ: ΠΏΠΎ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΡΡΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° Π΄ΡΡΠ³ΡΡ.
ΠΠ°Π»Π΅Π΅ Π² ΠΏΠΎΡΡΠ΅:
ΠΡΠ±ΠΎΡ ΠΊΠΎΠ΄Π°
Π ΠΈΡΠΊΠ½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π²Ρ ΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎΡ ΠΏΠΎΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ x86 ΠΈΠ»ΠΈ x64. ΠΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈΠ·Π²ΠΈΠ½ΡΡΡΡ: Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Π°Π΄ΠΆΠ΅ΡΠ° Π±ΡΠ»ΠΎ Π±Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ ΠΌΠ½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄ΠΎΠ±ΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡΠΈΠΊ Π΄Π»Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ².
ΠΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Β«ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΠΉΒ» ΠΊΠΎΠ΄, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΈ Π½Π° x86, ΠΈ Π½Π° x64. Π‘ΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π° Π½Π΅ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠΎΡΠΌΠ°ΡΠ° ELF ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠΌ; ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ΄ Β«ΡΠΏΠ»ΠΎΡΠ½ΡΠΌ ΠΊΡΡΠΊΠΎΠΌΒ», Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ²ΡΠΊΠΎΠΌΡ ΡΠΎΡΠΌΠ°ΡΡ COM. Π§ΠΈΡΠ°ΡΡ Π΅Π³ΠΎ Ρ Π΄ΠΈΡΠΊΠ° ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² Π½Π΅ΠΉ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ Π΄Π°Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈ Π½Π° x64, ΠΈ Π½Π° x86.
ΠΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ; Π΄Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»ΡΠΌ β ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠ΅.
ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ
ΠΠ΅ΡΡΠΌ Π·Π° ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π°Π²Π½ΠΈΡΠ½ΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏ-ΠΊΠΎΠ΄Π°, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π²ΡΡ ΡΠ΅Π»ΡΡ
Ρ (ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π²ΠΎΠ΄Π°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π² ΠΏΠ°ΠΌΡΡΡ), Π° Π½ΡΡΡΠΎ (ΡΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄) Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π±Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΠΈΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ.
#include
#include
#include
#include
#include
const char * fdata = NULL ; // Π²Π΅ΡΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄
int main( int argc, char ** argv) <
if (argc!= 2 ) <
printf( «Missing code file name. \n » );
exit( 1 );
>
(( void (*)( void **)) fdata)(linkarea); // Π·Π°ΠΏΡΡΠΊ
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏ-ΠΊΠΎΠ΄Π΅
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ x86/x64 β Π΅Π³ΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΈ Π½Π΅ΠΎΡΡΠΎΠ³ΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΠ΄Π²Π° Π»ΠΈ Π½Π΅ Π»ΡΠ±ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΌΡ-ΡΠ΅ΡΡΡΡΠΌΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏ-ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΌΡΡ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ. (ΠΡΠΎ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Β«ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ²ΠΎΠ·Ρ Π³Π»Π°Π·ΠΎΠΊΒ» β peephole optimization, Π·Π°Π½ΠΈΠΌΠ°ΡΡΠ΅ΠΉΡΡ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π² ΡΠ΅Π»ΠΎΠΌ, Π° ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΠΌΠ΅ΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π£ Π½Π°Ρ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΎΠΊΡΡΠΆΠ°ΡΡΠΈΡ .)
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ
ΠΡΠ°ΠΊ, Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΎΡ ΠΎΠ΄Π΅ ΠΏΠΎ ΠΏ-ΠΊΠΎΠ΄Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ Π²Π΅ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΠΌΡΠΉ ΠΊΠΎΠ΄ Π² Π²Π΅ΠΊΡΠΎΡΠ΅ code ; Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΉΠ΄ΡΠΌ ΠΏΠΎ ΠΊΠΎΠ΄Ρ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·, ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
Π― ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Π»ΠΈΡΡΠΈΠ½Π³Π° ΡΠ°ΠΌΡΠ΅ Π½Π΅ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΊΡΡΠΊΠΈ, ΡΡΠΎΠ± Ρ ΠΎΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π³ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Π²ΡΠ»ΠΎΠΆΠ΅Π½ Π½Π° tyomitch.net.ru/jsk.y.natv.html
Π§ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ?
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΈΠΌ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ, ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ:
]$ bison jsk.y
[tyomitch@home
]$ ./jskld code
ΠΠ°Π΄ΡΠΌΠ°ΠΉ ΡΠΈΡΠ»ΠΎ ΠΎΡ 0 Π΄ΠΎ 1000, Π° Ρ Π±ΡΠ΄Ρ ΡΠ³Π°Π΄ΡΠ²Π°ΡΡ
ΠΡΠΎ 500? (1=ΠΌΠ΅Π½ΡΡΠ΅, 2=Π±ΠΎΠ»ΡΡΠ΅, 3=ΠΏΠΎΠΏΠ°Π») 1
ΠΡΠΎ 249? (1=ΠΌΠ΅Π½ΡΡΠ΅, 2=Π±ΠΎΠ»ΡΡΠ΅, 3=ΠΏΠΎΠΏΠ°Π») 3
Π£ΡΠ°! Π― ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ!
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²ΠΎ ΡΡΠΎ Π½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»Π°ΡΡ?
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄
ΠΡΡ ΠΎΜΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ ΠΎΜΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ) β ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ β Π»ΡΠ±ΡΠ΅ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΎΡΠ°.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π»ΠΈΠ±ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ, Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ.
ΠΡΡΠ³ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° β Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΡΠ΅ΠΊΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ β Ρ. Π½. Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ; Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ Π±ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΡΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠ΅ΠΉ (ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ) Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΠΉ ΠΈ Π½Π΅Π΄Π²ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ°ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΎΡ, ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ².
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠ°ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ, ΡΡΠΎ Π½ΠΎΡΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° (Software reusability).
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ β Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ΅Π· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ°ΡΡΠΈ ΠΠ, ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΠ (ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°) ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, Ρ ΡΠ΅Π»ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π²ΡΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΈΡΡΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ±ΠΎΡΠΊΠΎΠΉ Π² Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (library linking).
Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΡΡΡΠΊΠΎΠ², ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΡΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ±ΠΎΡΠΊΠΈ. ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΡΡΠ΅Π΄Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΏΡΠΈΡΠ΅ΠΌ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π΄Π°Ρ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅, ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ Π΄Π»Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ², Π² Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π΄Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ, Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π€Π°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΠΏΠΎΠ½ΡΡΠΈΠ΅ Β«ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄Β». Π ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ²ΡΡ ΡΡΠ΅Π΄ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ. Π§Π°ΡΡΠΎ ΠΏΠΎΠ΄ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ.
ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π½Π΅Ρ Β«Ρ ΠΎΡΠΎΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎΒ» ΠΈΠ»ΠΈ Β«ΠΏΠ»ΠΎΡ ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎΒ» ΠΊΠΎΠ΄Π°. ΠΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΠ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ΄ΠΈΡΡ ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ:
ΠΠ΅ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
ΠΠΎΠΏΠΈΠ»Π΅ΡΡΠ½ΡΠ΅ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ Π΄Π»Ρ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΡΡΠ΅Π±ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡ, Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΠΈΠ³Ρ.
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠΎΡΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π΄Π»Ρ Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π»ΠΈΡΠ΅Π½Π·ΠΈΡΡ , ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΠ, ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π² Β«ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅Β». ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: