ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠΈΠ±Π΅ΡΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Cisco Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ () Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° Π² Glibc ΡΡΠ½ΠΊΡΠΈΡ memcpy() Π·Π° 32-Π±ΠΈΡΠΎΠ²Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ARMv7. ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠ° Π΅ ΠΏΡΠΈΡΠΈΠ½Π΅Π½Π° ΠΎΡ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΏΠΈΡΠ°Π½Π°ΡΠ° ΠΎΠ±Π»Π°ΡΡ, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°ΡΠΈ Π·Π½Π°ΠΊΠΎΠ²ΠΈΡΠ΅ 32-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°. ΠΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° memcpy() Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ARMv7 Ρ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π½Π΅ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° ΡΠΊΠ°Π·Π°Π½Π°ΡΠ° Π±ΡΡΠ΅Ρ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°Π½Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ°, ΠΏΡΠ΅Π· ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΊΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 2 ΠΠ Π΄Π°Π½Π½ΠΈ, Π½ΠΎ Π² ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π°ΡΠ°ΠΊΠ° Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅ Π½Π°ΠΉ-ΠΌΠ°Π»ΠΊΠΎ 4 ΠΠ). Π€ΡΠ½ΠΊΡΠΈΡΡΠ° memcpy() Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° ARMv7 ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ ΡΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ, ΠΈΠ½Π΄ΡΡΡΡΠΈΠ°Π»Π½ΠΈ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ, ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΠΈ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°Π½Π°Ρ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° Π°ΡΠ°ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Bluetooth, HD Radio/DAB, USB, CAN ΡΠΈΠ½Π°, Wi-Fi ΠΈ Π΄ΡΡΠ³ΠΈ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΠ°ΠΊΡΠ²Π°Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠΈ Π²Ρ ΠΎΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°).
ΠΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ Π΄Π°Π²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅Ρ Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡ Π·Π° Π°ΡΠ°ΠΊΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ Π² Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½ΠΈΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ http-ΡΠ΅ΡΠ²Π΅Ρ, Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΡΠ΅Π· Π°Π²ΡΠΎΠΌΠΎΠ±ΠΈΠ»Π½Π°ΡΠ° Wi-Fi ΠΌΡΠ΅ΠΆΠ°. ΠΠ΅ΠΎΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½ Π°ΡΠ°ΠΊΡΠ²Π°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ° Π² memcpy Π½Π° ΡΠΎΠ·ΠΈ ΡΡΡΠ²ΡΡ ΡΡΠ΅Π· ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° GET-Π·Π°ΡΠ²ΠΊΠ° Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ root-Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
ΠΠ° 32-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ x86 ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° memcpy Π·Π° ΡΠ°Π·ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΠ°ΡΠΎ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ ΠΎΡ ΡΠΈΠΏ size_t (Π² Π½Π°ΠΏΠΈΡΠ°Π½Π°ΡΠ° Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅ Π·Π° ARMv7 Π²ΠΌΠ΅ΡΡΠΎ size_t ΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠ°ΡΠΎ Π·Π½Π°ΠΊΠΎΠ²ΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ). ΠΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° , ΠΊΠΎΡΡΠΎ ΡΠ΅ Π²Π»Π΅Π·Π΅ Π² ΡΡΡΡΠ°Π²Π° Π½Π° Π°Π²Π³ΡΡΡΠΎΠ²ΡΠΊΠΎΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Glibc 2.32.
ΠΠΎΠΏΡΠ°Π²ΠΊΠ°ΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ Π² Π·Π°ΠΌΡΠ½Π° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠΈΡΠ°ΡΠΈ ΡΡΡ Π·Π½Π°ΠΊΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ΠΈ (bge ΠΈ blt), Ρ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΈ Π°Π½Π°Π»ΠΎΠ·ΠΈ (blo ΠΈ bhs).
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ Π² (Π² Debian 8 Π½Π΅ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°), , , OpenEmbedded, Tizen (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° glibc). ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π½Π΅ Π·Π°ΡΡΠ³Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ 32-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ARMv7. Android Π½Π΅ Π΅ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° libc (Bionic). Π ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Musl, Π½ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡΠ° ΠΈΠΌΠ° ΠΈ glibc.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
