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