ΠΡΠ΅Π΄ΡΡΡΠΎΡΠΈΡ
ΠΡΡΡ ΡΠΎΡΠ³ΠΎΠ²ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ½ΡΡΡΠΈ Raspberry Pi ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΌΠΎΠ½Π΅ΡΠΎΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ, ΠΊΡΠΏΡΡΠΎΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ, Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΈΠΉ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»β¦ Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°. ΠΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΈΡΠ΅ΡΡΡ Π² ΠΆΡΡΠ½Π°Π» Π½Π° ΡΠ»Π΅ΡΠΊΠ΅ (MicroSD), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ USB-ΠΌΠΎΠ΄Π΅ΠΌΠ°) Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ°ΠΌ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΠΠ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² 1Ρ, ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ Π²Π΅Π±-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ Ρ.ΠΏ.
Π’ΠΎ Π΅ΡΡΡ ΠΆΡΡΠ½Π°Π» ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ β Π΄Π»Ρ ΡΡΡΡΠ° (ΡΠ°ΠΌ Π²ΡΡΡΡΠΊΠ°, ΠΏΡΠΎΠ΄Π°ΠΆΠΈ ΠΈ Ρ.Π΄.), ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° (Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠ±ΠΎΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΡΡ-ΠΌΠ°ΠΆΠΎΡΠ½ΡΠ΅ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°); ΡΡΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ Π½Π°Ρ ΠΎΠ± ΡΡΠΎΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠ΅.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ°
Π€Π»Π΅ΡΠΊΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π±Ρ ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ½ΠΈ Ρ Π·Π°Π²ΠΈΠ΄Π½ΠΎΠΉ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΡΡΡΡ Π²ΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΡΡΡΠΎΡ. ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΊ ΠΏΡΠΎΡΡΠΎΡΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΎΠ², ΡΠ°ΠΊ ΠΈ (Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΆΡΡΠ½Π°Π» Π½Π΅ ΠΌΠΎΠ³ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΎΠ½Π»Π°ΠΉΠ½) ΠΊ ΠΏΠΎΡΠ΅ΡΡΠΌ Π΄Π°Π½Π½ΡΡ .
ΠΡΠΎ ΡΠΆΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΡΠ΅ΠΊ, Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π±ΡΠ» Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΡΠ½Π΅ΠΉ ΡΡΡΡΠΎΠΉΡΡΠ², Π³Π΄Π΅ ΠΆΡΡΠ½Π°Π» Ρ ΡΠ°Π½ΠΈΠ»ΡΡ Π½Π° USB-ΡΠ»Π΅ΡΠΊΠ°Ρ , ΡΠ°ΠΌ ΡΠΎΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡΡ, Π²ΡΠ΅ΠΌΠ΅Π½Π°ΠΌΠΈ ΡΠΈΡΠ»ΠΎ Π²ΡΡΠ΅Π΄ΡΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ Π·Π° ΠΌΠ΅ΡΡΡ ΠΈΡΡΠΈΡΠ»ΡΠ»ΠΎΡΡ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ. ΠΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠ»Π΅ΡΠΊΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π±ΡΠ΅Π½Π΄ΠΎΠ²ΡΠ΅ Π½Π° SLC ΠΏΠ°ΠΌΡΡΠΈ, Π΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π°Π΄ΡΠΆΠ½Π΅Π΅ Π΄ΡΡΠ³ΠΈΡ , Π½ΠΎ Π·Π°ΠΌΠ΅Π½Π° ΡΠ»Π΅ΡΠ΅ΠΊ Π½Π΅ ΡΠ΅ΡΠΈΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΠΎΠ½Π³ΡΠΈΠ΄! ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ «ΠΏΠΎΡΠ΅ΠΌΡ», Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ «ΠΊΠ°ΠΊ», ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ°Π·Ρ ΠΈΠ΄ΡΠΈ
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π² Π³ΠΎΠ»ΠΎΠ²Ρ: ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ MicroSD, ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, SSD, ΠΈ Π³ΡΡΠ·ΠΈΡΡΡΡ Ρ Π½Π΅Π³ΠΎ. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΡΠΎΠ³ΠΎ, ΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ Π½Π°Π΄ΡΠΆΠ½ΠΎ (Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈΠΊ USB-SATA; ΠΏΠΎ Π±ΡΠ΄ΠΆΠ΅ΡΠ½ΡΠΌ SSD ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΎΡΠΊΠ°Π·ΠΎΠ² ΡΠΎΠΆΠ΅ Π½Π΅ ΡΠ°Π΄ΡΠ΅Ρ).
USB HDD ΡΠΎΠΆΠ΅ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠΎΠ±ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΡΠ°ΠΊΠΎΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ: ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Ρ MicroSD, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ read-only, Π° ΠΆΡΡΠ½Π°Π» ΡΠ°Π±ΠΎΡΡ (ΠΈ Π΄ΡΡΠ³ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΆΠ΅Π»Π΅Π·ΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ β ΡΠ΅ΡΠΈΠΉΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ², etc) Ρ ΡΠ°Π½ΠΈΡΡ Π³Π΄Π΅-ΡΠΎ Π΅ΡΡ.
Π’Π΅ΠΌΠ° read-only Π€Π‘ Π΄Π»Ρ ΠΌΠ°Π»ΠΈΠ½ΠΊΠΈ ΡΠΆΠ΅ ΠΈΠ·ΡΡΠ΅Π½Π° Π²Π΄ΠΎΠ»Ρ ΠΈ ΠΏΠΎΠΏΠ΅ΡΡΠΊ, Ρ Π½Π΅ Π±ΡΠ΄Ρ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ (Π½ΠΎ Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ β Π±ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈ Π½Π°ΠΏΠΈΡΡ ΠΌΠΈΠ½ΠΈ-ΡΡΠ°ΡΡΡ Π½Π° ΡΡΡ ΡΠ΅ΠΌΡ). ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ: ΠΈ ΠΏΠΎ Π»ΠΈΡΠ½ΠΎΠΌ ΠΎΠΏΡΡΡ, ΠΈ ΠΏΠΎ ΠΎΡΠ·ΡΠ²Π°ΠΌ ΡΠΆΠ΅ Π²Π½Π΅Π΄ΡΠΈΠ²ΡΠΈΡ Π²ΡΠΈΠ³ΡΡΡ Π² Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ Π΅ΡΡΡ. ΠΠ°, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΠΎΠΌΠΎΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΈΡ ΡΠ°ΡΡΠΎΡΡ β Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ. ΠΠ° ΠΈ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ, ΡΡΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π·Π°ΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»Π°.
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ°ΡΡΡ
Π‘ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠΈΠΏΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠΎΠ±ΡΡ
ΡΠΎΠΌΠ½Π΅Π½ΠΈΠΉ Π½Π΅ Π±ΡΠ»ΠΎ β NOR Flash.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ:
- ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΈΠ½Π° SPI, ΠΎΠΏΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΆΠ΅ Π΅ΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ «ΠΆΠ΅Π»Π΅Π·Π½ΡΡ » ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΡΡΡ);
- ΡΠΌΠ΅ΡΠ½Π°Ρ ΡΠ΅Π½Π°;
- ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ°Π±ΠΎΡΡ (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΅ΡΡΡ ΡΠΆΠ΅ Π² ΡΠ΄ΡΠ΅ Linux, ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ, Π±Π»Π°Π³ΠΎ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ);
- Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΠΈ ΡΠ΅ΡΡΡΡ:
ΠΈΠ· ΡΠΈΠΏΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π°ΡΠ°ΡΠΈΡΠ°: Π΄Π°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ 20 Π»Π΅Ρ, 100000 ΡΠΈΠΊΠ»ΠΎΠ² erase Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°;
ΠΈΠ· ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²: ΠΊΡΠ°ΠΉΠ½Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ BER, ΠΏΠΎΡΡΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΠΊΠΎΠ΄Π°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ (Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ECC Π΄Π»Ρ NOR, Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΡ-ΡΠ°ΠΊΠΈ ΡΠ°ΠΌ ΠΈΠΌΠ΅ΡΡ Π² Π²ΠΈΠ΄Ρ MLC NOR, Π±ΡΠ²Π°Π΅Ρ ΠΈ ΡΠ°ΠΊΠΎΠ΅).
ΠΡΠΈΠΊΠΈΠ½Π΅ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΠ±ΡΡΠΌΡ ΠΈ ΡΠ΅ΡΡΡΡΡ.
Π₯ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π·Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ. ΠΡΠΆΠ½ΠΎ ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎ ΡΠ²ΡΠ·ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΄Π°ΠΆ Π½Π΅ Π±ΡΠ»Π° ΠΏΠΎΡΠ΅ΡΡΠ½Π°. ΠΡΠ΄Π΅ΠΌ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° 5 Π΄Π½Π΅ΠΉ, Π·Π° ΡΡΠΎΡ ΡΡΠΎΠΊ (Π΄Π°ΠΆΠ΅ Ρ ΡΡΡΡΠΎΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΡ ΠΈ ΠΏΡΠ°Π·Π΄Π½ΠΈΠΊΠΎΠ²) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π£ Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ Π·Π° ΡΡΡΠΊΠΈ Π½Π°Π±ΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 100ΠΊΠ± ΠΆΡΡΠ½Π°Π»Π° (3-4 ΡΡΡΡΡΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ), ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΡΠ° ΡΠΈΡΡΠ° ΡΠ°ΡΡΡΡ β ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠ»ΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°ΡΡ Π²ΡΠΏΠ»Π΅ΡΠΊΠΈ (ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π΄Π°ΡΡΠΈΠΊ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠΏΠ°ΠΌΠΈΡΡ Π»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ). ΠΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ Π½Π° 10 ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠΎ 100 Π±Π°ΠΉΡ β ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π² ΡΡΡΠΊΠΈ.
ΠΡΠΎΠ³ΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ 5ΠΠ± ΡΠΈΡΡΡΡ (Ρ ΠΎΡΠΎΡΠΎ ΡΠΆΠΈΠΌΠ°Π΅ΠΌΡΡ ) Π΄Π°Π½Π½ΡΡ . Π Π½ΠΈΠΌ Π΅ΡΡ (Π³ΡΡΠ±Π°Ρ ΠΏΡΠΈΠΊΠΈΠ΄ΠΊΠ°) 1ΠΠ± ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
Π’ΠΎ Π΅ΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° Π½Π° 8ΠΠ± Π΅ΡΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ°ΡΠΈΠ΅, ΠΈΠ»ΠΈ 4ΠΠ± Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠΏΠΎΠ»Π½Π΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ°ΠΌΡΡΠΈ.
Π§ΡΠΎ ΠΆΠ΅ Π΄ΠΎ ΡΠ΅ΡΡΡΡΠ°: Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ ΡΠ°Π· Π² 5 Π΄Π½Π΅ΠΉ, ΡΠΎ Π·Π° 10 Π»Π΅Ρ ΡΠ»ΡΠΆΠ±Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΡΡΠΈ ΡΠΈΠΊΠ»ΠΎΠ² ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΠ±Π΅ΡΠ°Π΅Ρ ΡΡΠΎ ΡΡΡΡΡ.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎ NOR vs NAND
Π‘Π΅Π³ΠΎΠ΄Π½Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΡΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π° NAND ΠΏΠ°ΠΌΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ Π±Ρ Π½Π΅ ΡΡΠ°Π» Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ: NAND, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ NOR, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ°Π±Π»ΠΈΡΡ ΡΠ±ΠΎΠΉΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Ρ.Π΄., Π΄Π° ΠΈ Π½ΠΎΠΆΠ΅ΠΊ Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ NAND ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΡΠ΄Π° Π±ΠΎΠ»ΡΡΠ΅.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² NOR ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ:
- ΠΌΠ°Π»ΡΠΉ ΠΎΠ±ΡΡΠΌ (ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΡΠΎΠΊΠ°Ρ ΡΠ΅Π½Π° Π·Π° ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ);
- Π½Π΅Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° (Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΎΠ±ΡΡΠ½ΠΎ SPI ΠΈΠ»ΠΈ I2C);
- ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ erase (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π»ΠΎΠΊΠ°, ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΡ Π΄ΠΎΠ»Π΅ΠΉ ΡΠ΅ΠΊΡΠ½Π΄Ρ, Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΠΊΡΠ½Π΄).
ΠΡΠΎΠ΄Π΅ Π±Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π½Π°Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ.
ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π΄Π΅ΡΠ°Π»ΠΈ, Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ
Π΅ΠΌΠ°
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² ΡΠ΄ΡΠΎ Linux Π΄ΡΠ°ΠΉΠ²Π΅Ρ, Π½Π° Raspberry Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ device tree overlay Π²ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ β Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² /boot/overlays ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ²Π΅ΡΠ»Π΅ΠΉ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ /boot/config.txt.
ΠΡΠΈΠΌΠ΅Ρ dts ΡΠ°ΠΉΠ»Π°
Π§Π΅ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
/*
* Device tree overlay for at25 at spi0.1
*/
/dts-v1/;
/plugin/;
/ {
compatible = "brcm,bcm2835", "brcm,bcm2836", "brcm,bcm2708", "brcm,bcm2709";
/* disable spi-dev for spi0.1 */
fragment@0 {
target = <&spi0>;
__overlay__ {
status = "okay";
spidev@1{
status = "disabled";
};
};
};
/* the spi config of the at25 */
fragment@1 {
target = <&spi0>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
flash: m25p80@1 {
compatible = "atmel,at25df321a";
reg = <1>;
spi-max-frequency = <50000000>;
/* default to false:
m25p,fast-read ;
*/
};
};
};
__overrides__ {
spimaxfrequency = <&flash>,"spi-max-frequency:0";
fastread = <&flash>,"m25p,fast-read?";
};
};
Π Π΅ΡΡ ΡΡΡΠΎΡΠΊΠ° Π² config.txt
dtoverlay=at25:spimaxfrequency=50000000
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΊ Raspberry Pi ΠΎΠΏΡΡΡ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ Π½Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½ΠΈΠΊΠ΅, Ρ Π΄ΡΡΠ³ΠΎΠΉ β ΡΡΡ Π²ΡΡ Π±Π°Π½Π°Π»ΡΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ: Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π²ΡΠ΅Π³ΠΎ 8 Π½ΠΎΠ³, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π·Π΅ΠΌΠ»Ρ, ΠΏΠΈΡΠ°Π½ΠΈΠ΅, SPI (CS, SI, SO, SCK); ΡΡΠΎΠ²Π½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ°ΠΊΠΎΠ²ΡΠΌΠΈ Ρ Raspberry Pi, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ β ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ 6 ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΎΠ².
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ. Π’Π°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ, ΡΠΎΠ±Π΅ΡΡΠΌ Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ ΡΠΎ, ΡΡΠΎ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, ΠΈ ΠΏΡΠΎΡΡΠ½ΠΈΠΌ ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ Π² ΡΠ΅Π½ΠΈ Π΄Π΅ΡΠ°Π»ΠΈ.
ΠΡΠ°ΠΊ, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΆΡΡΠ½Π°Π» Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² SPI NOR Flash.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ NOR Flash Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ
ΠΡΠΎ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
- Π§ΡΠ΅Π½ΠΈΠ΅:
Π‘Π°ΠΌΠΎΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅: ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π°Π΄ΡΠ΅Ρ ΠΈ ΡΠΈΡΠ°Π΅ΠΌ ΡΡΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ; - ΠΠ°ΠΏΠΈΡΡ:
ΠΠ°ΠΏΠΈΡΡ Π² NOR flash Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½Π°Ρ, Π½ΠΎ Ρ Π½Π΅Ρ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π½ΡΡΡ 1 Π½Π° 0, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π² ΡΡΠ΅ΠΉΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π»Π΅ΠΆΠ°Π»ΠΎ 0x55, ΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π² Π½Π΅Ρ 0x0f ΡΠ°ΠΌ ΡΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ 0x05 (ΡΠΌ. ΡΠ°Π±Π»ΠΈΡΡ ΡΡΡΡ Π½ΠΈΠΆΠ΅); - Erase:
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ β ΠΌΠ΅Π½ΡΡΡ 0 Π½Π° 1, ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ erase. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ , ΠΎΠ½Π° ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ Π½Π΅ Π±Π°ΠΉΡΠ°ΠΌΠΈ, Π° Π±Π»ΠΎΠΊΠ°ΠΌΠΈ (ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ erase block Π² Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ΅ β 4ΠΊΠ±). Erase ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅Ρ Π²Π΅ΡΡ Π±Π»ΠΎΠΊ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΠΈ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΌΠ΅Π½ΡΡΡ 0 Π½Π° 1. ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡΡ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° Π³ΡΠ°Π½ΠΈΡΡ erase block.
ΠΠ°ΠΏΠΈΡΡ Π² NOR Flash:
ΠΠ²ΠΎΠΈΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
ΠΡΠ»ΠΎ
01010101
ΠΠ°ΠΏΠΈΡΠ°Π»ΠΈ
00001111
Π‘ΡΠ°Π»ΠΎ
00000101
Π‘Π°ΠΌ ΠΆΡΡΠ½Π°Π» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ. Π’ΠΈΠΏΠΈΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π·Π°ΠΏΠΈΡΠΈ ΠΎΠΊΠΎΠ»ΠΎ 30 Π±Π°ΠΉΡ (Ρ ΠΎΡΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠ»ΡΡΠ°ΡΡΡΡ ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΊ Ρ Π½Π°Π±ΠΎΡΠΎΠΌ Π±Π°ΠΉΡ, Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, Π²Π½ΡΡΡΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ CBOR
ΠΠΎΠΌΠΈΠΌΠΎ ΠΆΡΡΠ½Π°Π»Π°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Ρ
ΡΠ°Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ «Π½Π°ΡΡΡΠΎΠ΅ΡΠ½ΡΡ» ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌΡΡ, ΡΠ°ΠΊ ΠΈ Π½Π΅Ρ: Π½Π΅ΠΊΠΈΠΉ ID Π°ΠΏΠΏΠ°ΡΠ°ΡΠ°, ΠΊΠ°Π»ΠΈΠ±ΡΠΎΠ²ΠΊΠΈ Π΄Π°ΡΡΠΈΠΊΠΎΠ², ΡΠ»Π°Π³ «Π°ΠΏΠΏΠ°ΡΠ°Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½», etc.
ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ key-value, ΡΠ°ΠΊΠΆΠ΅ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² CBOR.ΠΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ Π½Π°Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ (ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ), ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ½Π° Π½Π΅ΡΠ°ΡΡΠΎ.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π·ΡΠ²Π°ΡΡ Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ.
ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠΈΠ½Π°Π»Π°ΡΡ ΡΡΠ° ΡΡΠ°ΡΡΡ, ΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π±Π΅ΡΠΏΡΠ΅ΡΡΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ±ΠΎΠ΅Π²/ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΊΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ?
- ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ write/erase. ΠΡΠΎ ΠΈΠ· ΡΠ°Π·ΡΡΠ΄Π° «ΠΏΡΠΎΡΠΈΠ² Π»ΠΎΠΌΠ° Π½Π΅Ρ ΠΏΡΠΈΡΠΌΠ°».
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π½Π° stackexchange: ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΡ Ρ flash ΡΡΠΎ erase (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π² 1), ΡΡΠΎ write (ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π² 0) ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ undefined behavior: Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ, Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ (ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ 10 Π±Π°ΠΉΡ/80 Π±ΠΈΡ, Π° ΡΡΠΏΠ΅Π»ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 45 Π±ΠΈΡ), Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠ°ΡΡΡ Π±ΠΈΡΠΎΠ² ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π² «ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ» ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ (ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°ΡΡ ΠΊΠ°ΠΊ 0, ΡΠ°ΠΊ ΠΈ 1); - ΠΡΠΈΠ±ΠΊΠΈ ΡΠ°ΠΌΠΎΠΉ flash-ΠΏΠ°ΠΌΡΡΠΈ.
BER Ρ ΠΎΡΡ ΠΈ ΠΎΡΠ΅Π½Ρ Π½ΠΈΠ·ΠΎΠΊ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ; - ΠΡΠΈΠ±ΠΊΠΈ ΠΏΠΎ ΡΠΈΠ½Π΅
ΠΠ°Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎ SPI Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π·Π°ΡΠΈΡΠ΅Π½Ρ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΡΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ°ΠΊ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ β ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π²ΡΡΠ°Π²ΠΊΠ° Π±ΠΈΡ (ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠ°ΡΡΠΎΠ²ΡΠΌ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π΄Π°Π½Π½ΡΡ ); - ΠΡΠΎΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ/ΡΠ±ΠΎΠΈ
ΠΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅, «Π³Π»ΡΠΊΠΈ» Raspberry, Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΈΠ½ΠΎΠΏΠ»Π°Π½Π΅ΡΡΠ½…
Π― ΡΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°Π» ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ , Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ:
- Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π²ΠΎ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ ΡΡΠ°Π·Ρ, ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ Π½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ;- Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°, ΡΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅;- ΡΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ.
(ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ «ΠΊΠ°ΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ», Ρ ΠΊΠΎΡΠΎΡΡΠΌ, Π΄ΡΠΌΠ°Ρ, Π²ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ: ΠΏΠΎΡΠ»Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ «ΠΏΠΎΠ±ΠΈΠ»Π°ΡΡ» ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ Π³ΡΡΠ·ΠΈΡΡΡ)
ΠΠ΄Π΅ΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ, ΡΠ°Π·ΠΌΡΡΠ»Π΅Π½ΠΈΡ
ΠΠΎΠ³Π΄Π° Ρ Π½Π°ΡΠ°Π» Π΄ΡΠΌΠ°ΡΡ Π½Π°Π΄ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, ΡΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΏΡΠΎΠ½ΠΎΡΠΈΠ»Π°ΡΡ ΠΊΡΡΠ° ΠΈΠ΄Π΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ;
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΈΡΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΠ°ΠΌΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΠΈΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅;
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π°Π²Π΅ΡΡΡΠ½Π½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ;
- Ρ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΈ Π²ΡΡ;
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡ ΠΏΠΎΠΌΠ΅Ρ ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π§Π°ΡΡΡ ΡΡΠΈΡ ΠΈΠ΄Π΅ΠΉ Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°, ΠΎΡ ΡΠ°ΡΡΠΈ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
Π‘ΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
Π‘Π°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ Π² ΠΆΡΡΠ½Π°Π»Π΅, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΠ΅ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΠΌΡΠ΅ («ΠΊΠΈΠ½ΡΠ»ΠΈ ΠΌΠΎΠ½Π΅ΡΠΊΡ 5 ΡΡΠ±Π»Π΅ΠΉ», «Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Π²ΡΠ΄Π°ΡΠΈ ΡΠ΄Π°ΡΠΈ», …). ΠΠΎΡΡΠΎΠΌΡ ΡΠΆΠ°ΡΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΠ°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΡΠΆΠ°ΡΠΈΠ΅ Π½Π΅ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ (ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Ρ Π½Π°Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΉ, Π΄Π°ΠΆΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ Pi Π±ΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ 700ΠΠΡ, Π½Π° Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ ΡΠ²ΡΡΠ΅ Π³ΠΈΠ³Π°Π³Π΅ΡΡΠ°), ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΠΌ Π½Π΅Π²ΡΡΠΎΠΊΠ°Ρ (Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ), ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π½Π΅Π²Π΅Π»ΠΈΠΊ. Π ΠΎΠ±ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΠΆΠ°ΡΠΈΠ΅ ΠΈ ΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, ΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ (Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ΠΊΡΠΈΡΠΈΡΠ½ΠΎ, ΠΏΡΠΎΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°ΡΠΈΡΡΡ). ΠΠ»ΡΡ Ρ Π½Π°Ρ ΠΆΠ΅ Π½Π΅ Π½Π°ΡΡΠΎΡΡΠΈΠΉ embedded, Π° ΠΎΠ±ΡΡΠ½ΡΠΉ Linux β ΡΠ°ΠΊ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΠΉ (Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· Π½Π΅Ρ).
ΠΡΠ» Π²Π·ΡΡ ΠΊΡΡΠΎΠΊ Π»ΠΎΠ³Π° Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (1.7ΠΠ±, 70 ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ) ΠΈ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ Π½Π° ΡΠΆΠΈΠΌΠ°Π΅ΠΌΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ gzip, lz4, lzop, bzip2, xz, zstd.
- gzip, xz, zstd ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ (40ΠΠ±).
Π£Π΄ΠΈΠ²ΠΈΠ»ΠΎ, ΡΡΠΎ ΠΌΠΎΠ΄Π½ΡΠΉ xz ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΡΡ ΡΠ΅Π±Ρ Π½Π° ΡΡΠΎΠ²Π½Π΅ gzip ΠΈΠ»ΠΈ zstd; - lzip Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π°Π» ΡΡΡΡ Ρ ΡΠ΄ΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ;
- lz4 ΠΈ lzop ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (150ΠΠ±);
- bzip2 ΠΏΠΎΠΊΠ°Π·Π°Π» Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ (18ΠΠ±).
ΠΡΠ°ΠΊ, Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ Ρ
ΠΎΡΠΎΡΠΎ.
Π’Π°ΠΊ ΡΡΠΎ (Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ Π½Π°ΠΉΠ΄ΡΠΌ ΡΠ°ΡΠ°Π»ΡΠ½ΡΡ
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ²) ΡΠΆΠ°ΡΠΈΡ Π±ΡΡΡ! ΠΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π° ΡΡ ΠΆΠ΅ ΡΠ»Π΅ΡΠΊΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ
.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ°Ρ .
ΠΠ΅ΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΡΠ»Π΅Ρ. ΠΠ±ΡΡΠ½ΠΎ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡ Π½Π°Π±ΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΅ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΡΠ° ΠΏΠΈΡΠ°ΡΡ Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ. ΠΠ°ΠΌ ΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΆΠ°ΡΡΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
Π― Π²ΠΈΠΆΡ ΡΡΠΈ ΠΏΡΡΠΈ:
- Π‘ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»ΠΎΠ²Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠΆΠ°ΡΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ
Π²ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ².
ΠΠΏΠΎΠ»Π½Π΅ ΡΠ°Π±ΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π½ΠΎ ΠΌΠ½Π΅ ΠΎΠ½ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΡΠ»ΠΎΠ²Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ «Π·Π°ΡΠΎΡΠ΅Π½» ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ°Π΄Π°Π΅Ρ. ΠΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΆΠ΅ Π³ΠΎΠ»ΠΎΠ²Π½Π°Ρ Π±ΠΎΠ»Ρ β Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΡ; Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΠ½Π° Π±ΡΠ»Π° ΡΠΆΠ°ΡΠ°… - Π‘ΠΆΠΈΠΌΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ «ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ» Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌΠΈ, Π½ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
.
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° (Π΄Π΅ΡΡΡΠΊΠΈ Π±Π°ΠΉΡ), ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ²Π½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ 1 (ΡΠΎ Π΅ΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠΌΠ° Π΄Π°Π½Π½ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΆΠ°ΡΠΈΡ); - ΠΠ΅Π»Π°ΡΡ FLUSH ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ ΡΠΆΠ°ΡΠΈΡ Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° FLUSH. ΠΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° (ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΠΆΠ°ΡΠΈΡ), ΠΏΠΎΠ»ΡΡΠΈΠ² ΠΊΠΎΡΠΎΡΡΡ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΡΠΆΠ°ΡΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠΎΠ±Ρ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ Π½Π΅ΡΠΆΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ. Π’Π°ΠΊΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³sync
Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΈΠ»ΠΈcommit
Π² sql.
Π§ΡΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΆΠ°ΡΠΈΡ ΡΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΡΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π΄Π°ΡΡ ΡΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅.
ΠΡΠΌΠ°Ρ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Ρ Π²ΡΠ±ΡΠ°Π» ΡΡΠ΅ΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π½ΡΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ°ΡΠ»Π°ΡΡ
Π‘Π΄Π΅Π»Π°Π» ΠΏΠΎ ΠΌΠΎΡΠΈΠ²Π°ΠΌ ΡΡΠ°ΡΡΠΈ Π½Π°ΠΊΠΎΠ»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΡ, Π²Π·ΡΠ» 70 ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΆΡΡΠ½Π°Π»Π° Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π² 60ΠΠ± (ΠΊ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΡ Π΅ΡΡ Π²Π΅ΡΠ½ΡΠΌΡΡ) ΠΏΠΎΠ»ΡΡΠΈΠ»:
ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π‘ΠΆΠ°ΡΠΈΠ΅ gzipΒ -9 (Π±Π΅Π·Β FLUSH)
zlib Ρ Z_PARTIAL_FLUSH
zlib Ρ Z_SYNC_FLUSH
ΠΠ±ΡΡΠΌ, ΠΠ±
1692
40
352
604
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΠ΅Π½Π°, Π²Π½ΠΎΡΠΈΠΌΠ°Ρ FLUSH ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎ Π²ΡΡΠΎΠΊΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ Π½Π°Ρ Π½Π΅Π±ΠΎΠ³Π°ΡΡΠΉ Π²ΡΠ±ΠΎΡ β ΠΈΠ»ΠΈ Π½Π΅ ΡΠΆΠΈΠΌΠ°ΡΡ Π²ΠΎΠ²ΡΠ΅, ΠΈΠ»ΠΈ ΡΠΆΠΈΠΌΠ°ΡΡ (ΠΈ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ) Ρ FLUSH. ΠΠ΅ Π½Π°Π΄ΠΎ Π·Π°Π±ΡΠ²Π°ΡΡ, ΡΡΠΎ Ρ Π½Π°Ρ 70 ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ, Π²Π½ΠΎΡΠΈΠΌΠ°Ρ Z_PARTIAL_FLUSH ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ 4-5 Π±Π°ΠΉΡ Π½Π° Π·Π°ΠΏΠΈΡΡ. Π ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΏΠΎΡΡΠΈ 5:1, ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Z_SYNC_FLUSH — Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π΅Π»Π°ΡΡ FLUSH
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Z_SYNC_FLUSH 4 ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π±Π°ΠΉΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ 0x00, 0x00, 0xff, 0xff. Π Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ β ΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ 324ΠΠ±.
Π ΡΡΠ°ΡΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Ρ ΡΡΡΠ»Π°ΡΡΡ, Π΅ΡΡΡ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅:
A new type 0 block with empty contents is appended.
A type 0 block with empty contents consists of:
- the three-bit block header;
- 0 to 7 bits equal to zero, to achieve byte alignment;
- the four-byte sequence 00 00 FF FF.
ΠΠ°ΠΊ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌΠΈ 4 Π±Π°ΠΉΡΠ°ΠΌΠΈ ΠΈΠ΄ΡΡ ΠΎΡ 3 Π΄ΠΎ 10 Π½ΡΠ»Π΅Π²ΡΡ Π±ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, ΡΡΠΎ Π½ΡΠ»Π΅Π²ΡΡ Π±ΠΈΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 10.
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎΠ»Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ (Π²ΡΠ΅Π³Π΄Π°?) ΠΊΠΎΠ΄ΠΈΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊΠ° ΡΠΈΠΏΠ° 1 (fixed block), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ 7 Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π±ΠΈΡΠ°ΠΌΠΈ, ΠΈΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ 10-17 Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π½ΡΠ»Π΅Π²ΡΡ Π±ΠΈΡ (Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±ΡΠ΄ΡΡ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 50%).
ΠΡΠ°ΠΊ, Π½Π° ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Π² 100% ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠ΅ΡΠ΅Π΄ 0x00, 0x00, 0xff, 0xff ΠΈΠ΄ΡΡ ΠΎΠ΄ΠΈΠ½ Π½ΡΠ»Π΅Π²ΠΎΠΉ Π±Π°ΠΉΡ, Π° Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ Π² ΡΡΠ΅ΡΠΈ ΡΠ»ΡΡΠ°Π΅ β Π΄Π²Π° Π½ΡΠ»Π΅Π²ΡΡ Π±Π°ΠΉΡΠ° (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ CBOR, Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ JSON ΡΠ°ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Π±Ρ Π±Π»ΠΎΠΊΠΈ ΡΠΈΠΏΠ° 2 β dynamic block, ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Π±Ρ Π±Π»ΠΎΠΊΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½ΡΠ»Π΅Π²ΡΡ Π±Π°ΠΉΡ ΠΏΠ΅ΡΠ΅Π΄ 0x00, 0x00, 0xff, 0xff).
ΠΡΠΎΠ³ΠΎ Π½Π° ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡΡΡΡ Π² ΠΌΠ΅Π½Π΅Π΅, ΡΠ΅ΠΌ 250ΠΠ± ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π΅ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π·Π°Π½ΡΠ²ΡΠΈΡΡ ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΡΠ°ΠΌΠΈ: ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π½ΡΠ»Π΅Π²ΡΡ
Π±ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠ°, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΡ Π² Π½Π°ΡΠ°Π»Π΅ Π±Π»ΠΎΠΊΠ° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΡΡΡΡβ¦
ΠΠΎ ΡΡΡ Ρ ΠΏΡΠΈΠ½ΡΠ» Π²ΠΎΠ»Π΅Π²ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ, ΠΈΠ½Π°ΡΠ΅ ΡΠ°ΠΊΠΈΠΌΠΈ ΡΠ΅ΠΌΠΏΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΉΡΠΈ Π΄ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°ΡΡ
ΠΈΠ²Π°ΡΠΎΡΠ°.
ΠΡΠΎΠ³ΠΎ, Ρ ΠΈΠ· ΡΠ²ΠΎΠΈΡ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ» 3-4 Π±Π°ΠΉΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π±ΠΎΠ»Π΅Π΅ 6:1. Π§Π΅ΡΡΠ½ΠΎ ΡΠΊΠ°ΠΆΡ: Ρ Π½Π° ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈ Π½Π΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π», Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄ Π²ΡΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ 2:1 β ΡΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΎΠΏΡΠ°Π²Π΄ΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ°ΡΠΈΡ.
ΠΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ, Π½ΠΎ zlib (deflate) β Π²ΡΡ-ΡΠ°ΠΊΠΈ Π°ΡΡ Π°ΠΈΡΠ½ΡΠΉ Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΡΠΉ ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΎΠΌΠΎΠ΄Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ. Π£ΠΆΠ΅ ΠΎΠ΄Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 32ΠΠ± ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ° Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΡΠ°Π½Π½ΡΠΌ (ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ 40ΠΠ± Π½Π°Π·Π°Π΄, ΡΠΎ ΠΎΠ½ Π½Π°ΡΠ½ΡΡ Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ, Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΏΡΠΎΡΠ»ΠΎΠ΅ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅). Π ΠΌΠΎΠ΄Π½ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ ΡΠ°ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡΠ°ΠΌΠΈ, Π° Π½Π΅ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°ΠΌΠΈ.
Π’Π°ΠΊ ΡΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π½Π°ΡΠ΅ ΠΌΠΈΠ½ΠΈ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠΎΠ².
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΌ Π±ΡΠ» ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ bzip2 (Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ, Π±Π΅Π· FLUSH ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ΅ΠΏΠ΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ, ΠΏΠΎΡΡΠΈ 100:1). Π£Π²Ρ, Ρ FLUSH ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ΅Π±Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠ»ΠΎΡ ΠΎ, ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½Π΅ΡΠΆΠ°ΡΡΡ .
ΠΠΎΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°Ρ ΠΏΡΠΎΠ²Π°Π»Π°
Libbz2 ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ flush, ΠΊΠΎΡΠΎΡΡΠΉ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠ»ΠΎΠ²Π°ΡΡ (Π°Π½Π°Π»ΠΎΠ³ Z_FULL_FLUSH Π² zlib), Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠΆΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ Π±ΡΠ» ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ zstd. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΠ½ ΡΠΆΠΈΠΌΠ°Π΅Ρ ΠΈΠ»ΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ gzip, Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΠΈΠ»ΠΈ ΠΆΠ΅ Π»ΡΡΡΠ΅ gzip.
Π£Π²Ρ, Ρ FLUSH ΠΈ ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Π°Π» ΡΠ΅Π±Ρ «Π½Π΅ ΠΎΡΠ΅Π½Ρ»: ΡΠ°Π·ΠΌΠ΅Ρ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ Π²ΡΡΠ΅Π» ΠΎΠΊΠΎΠ»ΠΎ 700ΠΠ±.
Π―
ΠΠ° ΡΡΠΎΠΌ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ Ρ Π°ΡΡ ΠΈΠ²Π°ΡΠΎΡΠ°ΠΌΠΈ (Π½Π°ΠΏΠΎΠΌΠ½Ρ, xz, lzip, lzo, lz4 Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΡΠ΅Π±Ρ Π΅ΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π΅Π· FLUSH, Π° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠ·ΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΆΠ°ΡΠΈΡ Ρ Π½Π΅ ΡΡΠ°Π»).
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Π°ΡΡ ΠΈΠ²Π°ΡΠΈΠΈ.
ΠΡΠΎΡΠ°Ρ (ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ, Π° Π½Π΅ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ) ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β ΡΠΆΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΠ΄ΡΡ ΠΎΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΡΡΠ°ΡΡΠΊΠ° ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΌΡ ΡΠ΅ΡΡΠ΅ΠΌ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌ Π±Π»ΠΎΠΊ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅.
ΠΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
- ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΡΠΆΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ; ΠΎΠ± ΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅;
- ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½ΡΡ ΡΠΆΠΈΠΌΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΡΡΠ΅Π·Π½Π΅Ρ ΡΠ°ΠΌΠ° ΡΠΎΠ±ΠΎΠΉ (ΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°). ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. ΠΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Π°Ρ ΠΊΡΠ°ΠΉΠ½ΠΎΡΡΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ 4ΠΠ± Π½Π°ΡΠ΅ΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡΠΉ Π°ΡΡ ΠΈΠ², ΡΡΠΎ Π΄Π°ΡΡ Π½Π°ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΡΠΆΠ°ΡΠΈΠ΅, Π½ΠΎ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°, Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΌΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ ΠΊΡΠ°ΠΉΠ½Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌ BER ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΡΠΎΠΊΠΎΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ 20 Π»Π΅Ρ.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΈ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠ°Ρ
ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
ΡΠ°ΠΌΠ΅ΡΠΎΠΌ ΠΌΠ΅Π½Π΅Π΅ 10ΠΠ±.
Π Π°Π½Π΅Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, Ρ Π½Π΅ Π²ΠΈΠΆΡ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ «ΠΎΠ΄Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° β ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
».
Π’ΠΎ Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΡΠΌΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°Π²Π΅Π½ 16ΠΠ± (Ρ Π·Π°ΠΏΠ°ΡΠΎΠΌ Π½Π° ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ). ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΠ»Ρ ΠΌΠ°Π»ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ.
Π₯ΠΎΡΡ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΠΊΠ° ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΡΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π±ΠΎΠ»ΡΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Ρ ΡΠ΅ΡΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 32ΠΠ± (ΠΈΡΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ 128 ΡΡΡΠ°Π½ΠΈΡ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ).
Π Π΅Π·ΡΠΌΠ΅:
- ΠΠ°Π½Π½ΡΠ΅ ΠΌΡ Ρ ΡΠ°Π½ΠΈΠΌ ΡΠΆΠ°ΡΡΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ zlib (deflate);
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Z_SYNC_FLUSH;
- Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΆΠ°ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±ΡΠ΅Π·Π°Π΅ΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π±Π°ΠΉΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 0x00, 0x00, 0xff, 0xff); Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ ΠΌΡ ΠΎΡΡΠ΅Π·Π°Π»ΠΈ;
- ΠΠ°Π½Π½ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠΎ 32ΠΠ±; Π²Π½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ΄ΡΡ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ; Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π·Π°Π½ΠΎΠ²ΠΎ.
Π, ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΡΠΎ ΡΠΆΠ°ΡΠΈΠ΅ΠΌ, Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°ΠΉΡ Π½Π° Π·Π°ΠΏΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ ΡΡΡ Π½Π° ΡΡΠ΅ΡΡ.
Π₯ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π°Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅/Π³ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ.
Π― Π·Π½Π°Ρ ΡΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°:
- ΠΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ΄ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π΄Π»ΠΈΠ½Ρ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠ°ΠΌΠ° Π·Π°ΠΏΠΈΡΡ.
Π ΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄Π»ΠΈΠ½Ρ.
ΠΠΎ ΡΡΡΠΈ, Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ»ΠΎΡΡ ΠΈ ΡΡΠ΄ΠΎΠΌ; - ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΈ Π·Π°ΠΏΠΈΡΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠΎΡΠΎΠΊΠ°Ρ
.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΠΌΡ Π΄ΠΎΠ±ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ; - ΠΠ°ΠΏΠΈΡΠΈ Ρ
ΡΠ°Π½ΡΡΡΡ Π² Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, Π³ΡΠ°Π½ΠΈΡΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠ°ΡΠΊΠ΅ΡΡ (ΡΠΈΠΌΠ²ΠΎΠ»Ρ/ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ/ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ
). ΠΡΠ»ΠΈ Π²Π½ΡΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΌΠ°ΡΠΊΠ΅Ρ, ΡΠΎ ΠΌΡ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (ΡΠΊΡΠ°Π½ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ).
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ PPP.
ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡ.
ΠΠ°ΡΠΈΠ°Π½Ρ 1:
Π’ΡΡ Π²ΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ: Π·Π½Π°Ρ Π΄Π»ΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π’Π°ΠΊ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΠΌ ΠΎΠ±Π»Π°ΡΡΡ, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ 0xff (ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ) ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ°ΡΠΈΠ°Π½Ρ 2:
ΠΠ·-Π·Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ (Π° Π·Π½Π°ΡΠΈΡ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²) Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π½Π΅ΡΡΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ, Π½ΠΎ ΠΌΠ½Π΅ ΡΠΈΠΌΠΏΠ°ΡΠΈΡΠ½Π΅Π΅ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄: ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ (ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°) Ρ Π½Π°Ρ ΠΈΠ΄ΡΡ ΠΎΡ Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΈΡΡ, Π° Π΄Π°Π½Π½ΡΠ΅ (ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ) β ΠΎΡ ΠΊΠΎΠ½ΡΠ°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ «Π²ΡΡΡΠ΅ΡΡΡΡΡ» (ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π΅ Ρ
Π²Π°ΡΠΈΡ Π½Π° Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ) β ΡΡΠΈΡΠ°Π΅ΠΌ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ.
ΠΠ°ΡΠΈΠ°Π½Ρ 3:
Π’ΡΡ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ
, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°ΡΠΊΠ΅ΡΠΎΠ², ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΡ
Π³ΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ/ΡΡΠ΅Π½ΠΈΠΈ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ°ΡΠΊΠ΅ΡΠ° Ρ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» 0xff (ΠΊΠΎΡΠΎΡΡΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ° ΠΏΠΎΡΠ»Π΅ erase), ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΎΡΠ½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΠΊΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠ΅.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ°:
ΠΠ°ΡΠΈΠ°Π½Ρ 1
ΠΠ°ΡΠΈΠ°Π½Ρ 2
ΠΠ°ΡΠΈΠ°Π½Ρ 3
Π£ΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ
—
+
+
ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ
+
—
+
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
*
**
**
ΠΠ°ΡΠΈΠ°Π½Ρ 1 ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ: ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ Π½Π°Ρ ΡΠ°Π·ΡΡΡΠ°Π΅ΡΡΡ Π²ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ°. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ
Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΌΠ°ΡΡΠΎΠ²ΡΡ
ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡ
.
ΠΠΎ ΡΡΡ ΡΠΌΠ΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ Ρ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΠ°ΠΊ ΠΈ ΡΠ°ΠΊ ΠΌΡ ΡΠ΅ΡΡΠ΅ΠΌ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅ «Π±ΠΈΡΠΎΠΉ» Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Ρ
ΠΎΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈ ΡΡΠΎΠΈΡ ΠΌΠΈΠ½ΡΡ, ΠΌΡ Π΅Π³ΠΎ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ.
ΠΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ:
- Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»ΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡΠΎΠΌ;
- Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΠΈ Π΄Π»ΠΈΠ½Ρ; Π·Π°ΠΏΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°, Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°Ρ Π² 4 Π±Π°ΠΉΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΡ (Π΄Π²Π° Π±Π°ΠΉΡΠ° Π½Π° ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈ Π΄Π²Π° Π±Π°ΠΉΡΠ° Π½Π° Π΄Π»ΠΈΠ½Ρ);
- ΡΡΠ΅ΡΡΠ΅ΠΌΡ Π²Π°ΡΠΈΠ°Π½ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΠΈ, ΠΏΠ»ΡΡ ΡΠ°ΠΌΠ° Π·Π°ΠΏΠΈΡΡ ΠΈΠ·-Π·Π° ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΡΠ°ΡΡΠ΅Ρ Π½Π° 1-2%. Π ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΠΏΠ°ΡΠΈΡΠ΅Ρ Ρ ΠΏΠ΅ΡΠ²ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π» Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ (ΠΈ Π΄Π°ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π» ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ). ΠΡΠΊΠ°Π·Π°Π»ΡΡ ΠΎΡ Π½Π΅Π³ΠΎ Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ°ΡΠΈΠ΅.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ Ρ Π²ΡΡ-ΡΠ°ΠΊΠΈ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΊΠΎΡΠ°Π±Π»Ρ, ΠΊΡΡΡΠΈΡΡΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΠ΅ΠΌΠ»ΡΠΉ ΠΈ ΠΠ°ΡΡΠΎΠΌ β ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·Π»ΡΡΠ΅Π½ΠΈΠ΅, …
Π§ΡΠΎ ΠΆΠ΅ Π΄ΠΎ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°: Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π΅ΠΌΡ Π΄Π²Π΅ Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠΈ Π·Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π΅ Π»ΡΠ±Π»Ρ Π²ΠΎΠ·ΠΈΡΡΡΡ Ρ ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈ Ρ.ΠΏ. ΠΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠ΅Π΄Π²Π·ΡΡΠΎ, Π½ΠΎ ΠΊΠΎΠ΄ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΌΠ½Π΅ β Π·Π°ΡΠ΅ΠΌ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π±Ρ Π΄Π΅Π»Π°ΡΡ ΡΠΎ, ΡΡΠΎ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ.
Π Π΅Π·ΡΠΌΠ΅: Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π²Π°ΡΠΈΠ°Π½Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ «Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ β Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ» ΠΈΠ·-Π·Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ
Π£ΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ ΠΏΠΎΠΌΠ½Ρ, Π³Π΄Π΅ Ρ ΠΏΠΎΠ΄ΡΠΌΠΎΡΡΠ΅Π» ΠΈΠ΄Π΅Ρ, Π½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π°Π³ΠΎΠ².
ΠΠ°ΠΊ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΏΠΎΡΠ»Π΅ erase Π²ΡΠ΅ Π±ΠΈΡΡ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ 1, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ 1 Π½Π° 0, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. Π’Π°ΠΊ ΡΡΠΎ Π΄Π»Ρ «ΡΠ»Π°Π³ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ 1, Π΄Π»Ρ «ΡΠ»Π°Π³ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½» β 0.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π²ΠΎ flash:
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ βΠ·Π°ΠΏΠΈΡΡ Π΄Π»ΠΈΠ½Ρ Π½Π°ΡΠ°Π»Π°ΡΡβ;
- ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρ;
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ βΠ·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π½Π°ΡΠ°Π»Π°ΡΡβ;
- ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅;
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ»Π°Π³ βΠ·Π°ΠΏΠΈΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡβ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ»Π°Π³ βΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°β, ΠΈΡΠΎΠ³ΠΎ 4 Π±ΠΈΡΠΎΠ²ΡΡ ΡΠ»Π°Π³Π°.
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ β1111β β Π·Π°ΠΏΠΈΡΡ Π½Π΅ Π½Π°ΡΠ°Π»Π°ΡΡ ΠΈ β1000β β Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ; Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠΎΡΠΎΠΌ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΠ΄Ρ ΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ, Π½ΠΎ ΠΎΠ½ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ±ΠΎΠ΅Π², ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ (ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ) ΠΏΡΠΈΡΠΈΠ½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ±ΠΎΠ΅Π².
Π Π΅Π·ΡΠΌΠ΅: ΠΈΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ ΡΠΎΠΆΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ (Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ) ΡΡΠΎ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ. Π, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π²ΡΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΠ΅Π³Π΄Π°.
ΠΡΠ»ΠΈ ΡΠ°ΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π²ΡΡΠ΅, ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, Π·Π»ΠΎΠΊΠΎΠ·Π½Π΅Π½Π½ΡΡ ΠΈΠ½ΠΎΠΏΠ»Π°Π½Π΅ΡΡΠ½ β ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»Π°ΡΡ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ ΡΠΎΠΆΠ΅).
Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ° ΡΠ΅Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅Π»Ρ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ β ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ.
ΠΡΠ±ΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π» β CRC. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π² 100% Π»ΠΎΠ²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠΎΠ², Ρ Π΄ΡΡΠ³ΠΎΠΉ β Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄Π΅Π»Π° . ΠΡΡΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ, Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎ ΡΠΈΡΠ»Ρ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ, Π½ΠΎ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ: Π²ΠΎ Π²ΡΡΡΠ΅ΡΠ°Π²ΡΠΈΡΡ ΠΌΠ½Π΅ ΡΠ΅ΡΡΠ°Ρ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π±Ρ ΡΠ²Π½ΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π»ΡΡ. Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ β ΡΡΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΡΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ΄Π½Π°ΠΊΠΎ Π·Π°Π΄Π°ΡΠ° Π²ΡΠ±ΠΎΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, CRC β ΡΡΠΎ ΡΠ΅Π»ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ. ΠΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ.
ΠΡΠ±ΠΎΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΅ΡΡΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π°.
ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡ:
ΠΡΡΡΡ Ρ Π½Π°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π°ΠΉΡΠ΅ ΠΈ ΠΈΠ΄Π΅Π°Π»ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ°, ΠΏΠΎΡΡΠΈΡΠ°Π΅ΠΌ ΡΡΠ΅Π΄Π½Π΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ Π·Π°ΠΏΠΈΡΠ΅ΠΉ:
ΠΠ°Π½Π½ΡΠ΅, Π±Π°ΠΉΡ
ΠΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°ΡΒ ΡΡΠΌΠΌΠ°, Π±Π°ΠΉΡ
ΠΠ΅ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠΎΠΆΠ½ΡΡ
ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΎΠ³ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ
ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΉ
1
0
1000
0
1000
1
1
4
999
1003
1
2
β0
1997
1997
1
4
β0
3990
3990
10
0
9955
0
9955
10
1
39
990
1029
10
2
β0
1979
1979
10
4
β0
3954
3954
1000
0
632305
0
632305
1000
1
2470
368
2838
1000
2
10
735
745
1000
4
β0
1469
1469
ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π²ΡΡ ΠΏΡΠΎΡΡΠΎ β Π²ΡΠ±ΠΈΡΠ°ΠΉ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π΄Π»ΠΈΠ½Ρ Π·Π°ΡΠΈΡΠ°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠΎΠΌ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠΉ β ΠΈ Π΄Π΅Π»ΠΎ Π² ΡΠ»ΡΠΏΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ, Ρ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΡΠΌΠΌΠ°ΠΌΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΎΠ½ΠΈ, Ρ
ΠΎΡΡ ΠΈ Ρ
ΠΎΡΠΎΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΌΠΎΠ³ΡΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠ½ΡΡΡ Π·Π° Π²Π΅ΡΠ½ΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ° Ρ
Π°Π±ΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»Π° ΡΡΠ°ΡΡΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ
ΠΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ, Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠ΅ ΡΡΠΌΠΌΡ Π΄Π»ΠΈΠ½ΠΎΠΉ 32 Π±ΠΈΡΠ° ΠΈ Π±ΠΎΠ»Π΅Π΅ (Π΄Π»Ρ Π΄Π»ΠΈΠ½ Π±ΠΎΠ»Π΅Π΅ 64 Π±ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Ρ ΡΡ-ΡΡΠ½ΠΊΡΠΈΠΈ).
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°Π½Π΅Π΅ Ρ ΠΏΠΈΡΠ°Π», ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΠΌΠ΅ΡΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠΈΠ»Π°ΠΌΠΈ, Π²ΡΡ-ΡΠ°ΠΊΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 32-Π±ΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ (16 Π±ΠΈΡ ΠΌΠ°Π»ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ Π±ΠΎΠ»ΡΡΠ΅ 0.01%; Π° 24 Π±ΠΈΡΠ°, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, Π½ΠΈ ΡΡΠ΄Π° ΠΈ Π½ΠΈ ΡΡΠ΄Π°).
Π’ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠ·ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅: Π΄Π»Ρ ΡΠΎΠ³ΠΎ Π»ΠΈ ΠΌΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π°ΠΉΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΡΠΆΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠ΄Π°ΡΡ 4 Π±Π°ΠΉΡΠ° ΡΡΠ°Π·Ρ? Π½Π΅ Π»ΡΡΡΠ΅ Π»ΠΈ Π±ΡΠ»ΠΎ Π½Π΅ ΡΠΆΠΈΠΌΠ°ΡΡ ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ? ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π½Π΅Ρ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΆΠ°ΡΠΈΡ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π°.
ΠΠΎ Π²ΡΠ±ΠΎΡΡ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π²Π΅Π»ΠΎΡΠΈΠΏΠ΅Π΄, Π° Π²ΠΎΠ·ΡΠΌΡΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ΅ΠΉΡΠ°Ρ CRC-32C.
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ 6 Π±ΠΈΡΠΎΠ²ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
Π΄ΠΎ 22 Π±Π°ΠΉΡ (ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΡΠ°ΠΌΡΠΉ ΡΠ°ΡΡΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π΄Π»Ρ Π½Π°c), 4 Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
Π΄ΠΎ 655 Π±Π°ΠΉΡ (ΡΠΎΠΆΠ΅ ΡΠ°ΡΡΡΠΉ ΡΠ»ΡΡΠ°ΠΉ Π΄Π»Ρ Π½Π°Ρ), 2 ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠ΅ Π½Π΅ΡΡΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π±ΠΈΡΠΎΠ²ΡΡ
ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ
Π»ΡΠ±ΠΎΠΉ ΡΠ°Π·ΡΠΌΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ Π΄Π΅ΡΠ°Π»ΠΈ
Π
ΠΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π°Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠΆΠ°ΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ: ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ ΡΠΆΠ°ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ ?
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ «Π·Π°» ΠΏΠΎΠ΄ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ :
- Π½Π°ΠΌ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ β Π²ΠΎΡ ΠΌΡ Π΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ (ΠΏΡΠΈ ΡΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π·Π°ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ/Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ, ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ Π±ΠΈΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ Ρ.ΠΏ.);
- Π°Π»Π³ΠΎΡΠΈΡΠΌ deflate Π² zlib ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·ΡΠ΅Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ°Π΄Π°ΡΡ ΠΏΡΠΈ «ΠΊΡΠΈΠ²ΡΡ » Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π·Π°ΡΠ°ΡΡΡΡ ΠΎΠ½ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅, ΡΠ½ΠΈΠ·ΠΈΠ² ΠΎΠ±ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π½Π΅ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ (ΠΏΡΠΎΠ²ΡΠ» ΡΠ΅ΡΡ Ρ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠ° Π² ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, zlib ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² ΡΡΠ΅ΡΠΈ ΡΠ»ΡΡΠ°Π΅Π²).
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ «ΠΏΡΠΎΡΠΈΠ²» ΠΏΠΎΠ΄ΡΡΡΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ :
- CRC «Π·Π°ΡΠΎΡΠ΅Π½» ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠ½Ρ Π΄Π»Ρ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΠΈ (Π±ΠΈΡΠΎΠ²Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΡΠΆΠ°ΡΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ, ΡΠΈΡΡΠΎ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ «ΠΏΠΎΠΉΠΌΠ°ΡΡ» ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ);
- ΠΌΠ½Π΅ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΎΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π±ΠΈΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅,
ΠΊΡΠΎ Π΅Π³ΠΎ Π·Π½Π°Π΅Ρ , ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΡΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ½ΡΡΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ .
Π Π΅Π·ΡΠΌΠ΅: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ CRC-32C, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ ΠΎΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΠΎ flash (ΠΏΠΎΡΠ»Π΅ ΡΠΆΠ°ΡΠΈΡ).
ΠΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΡ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ (Π·Π°ΡΠ°ΡΡΡΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠΈ) ΡΠ½ΠΈΠ·ΠΈΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π½Π΅Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΠΎΠΉ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠΎΠ΄Ρ Π₯ΡΠΌΠΌΠΈΠ½Π³Π° ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠ΅ Π±ΠΈΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΠ΄Ρ Π ΠΈΠ΄Π°-Π‘ΠΎΠ»ΠΎΠΌΠΎΠ½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΏΠΈΠΉ Π΄Π°Π½Π½ΡΡ
ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΡΡΠΌΠΌΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠΎΠ΄Π΅ RAID-6 ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΠΌΠ°ΡΡΠΎΠ²ΡΡ
ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Ρ Π±ΡΠ» Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° ΡΠΈΡΠΎΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅Ρ
ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠ°ΠΊΠΈΡ
ΠΎΡΠΈΠ±ΠΎΠΊ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ Π·Π°ΡΠΈΡΠΈΡΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ ΡΠΆΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΠ²Π»ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΡΡΡΠ΅Π΅. Π ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ?
- ΠΠ΅Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ (ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅, Π·Π°Π²ΠΈΡ Raspberry, …)
Π£Π²Ρ, Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌΠΈ; - ΠΡΠΈΠ±ΠΊΠΈ Π·Π°ΠΏΠΈΡΠΈ (ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π² flash-ΠΏΠ°ΠΌΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π»ΠΎΡΡ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°Π»ΠΎΡΡ)
ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π·Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π±ΡΠ΄Π΅ΠΌ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅; - ΠΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ;
- ΠΡΠΈΠ±ΠΊΠΈ ΡΡΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅.
Π’ΠΎ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° (ΡΠ°ΠΌΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½Π°Ρ ΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ) Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π±Π΅Π· ΠΏΠΎΠΌΠ΅Ρ ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΌΠ°Π΅ΡΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½Ρ.
Π Π΅Π·ΡΠΌΠ΅: Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠ° (Ρ ΡΠΆΠ΅ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΏΠΎ ΡΠ±ΠΎΡΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ).
ΠΡΠΎΡΠ΅Π΅
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠΎΡΠΌΠ°Ρ ΡΡΠ°ΡΡΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ (Π΄Π° ΠΈ Ρ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ ΠΈΡΡΡΠΊΠ»ΠΈ ΡΠΈΠ»Ρ), ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΏΡΠΎΠ±Π΅Π³ΡΡΡ ΠΏΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°ΠΌ, Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΡΡΠΌ ΡΠ°Π½Π΅Π΅.
- Π Π΅ΡΠ΅Π½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ «ΡΠ°Π²Π½ΠΎΠΏΡΠ°Π²Π½ΡΠΌΠΈ»
Π’ΠΎ Π΅ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΈ Ρ.ΠΏ., Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΅Π΄ΠΈΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΈΠ·Π½ΠΎΡ ΡΡΡΠ°Π½ΠΈΡ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ ΠΎΡΠΊΠ°Π·Π°, Π½Ρ ΠΈ ΠΏΡΠΎΡΡΠΎ Π½ΡΠ°Π²ΠΈΡΡΡ; - ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΡ ΡΠΎΡΠΌΠ°ΡΠ°.
Π€ΠΎΡΠΌΠ°Ρ Π±Π΅Π· Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ β Π·Π»ΠΎ!
ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ»Π΅ Ρ Π½Π΅ΠΊΠΈΠΌ Magic Number (ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ), ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° (Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΈΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π±ΡΠ΄Π΅Ρ Π΄Π°ΠΆΠ΅ Π΄Π΅ΡΡΡΠΎΠΊ); - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ (ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ) Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ, ΡΡΠ°ΡΠ°ΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΡΠ»ΡΡΠ°Π΅Π² ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² 1 Π±Π°ΠΉΡ;
- ΠΠ»Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Π΄Π»ΠΈΠ½Ρ ΠΎΠ±ΡΠ΅Π·Π°Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΆΠ°ΡΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
ΠΡΠ΅Π½Ρ ΠΏΠΎΠΌΠΎΠ³
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
Byte order
ΠΠΎΠ»Ρ, ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ, Ρ ΡΠ°Π½ΡΡΡΡ Π² big-endian ΡΠΎΡΠΌΠ°ΡΠ΅ (network byte order), ΡΠΎ Π΅ΡΡΡ 0x1234 Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ 0x12, 0x34.
ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ
ΠΡΡ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ°Π²Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π Π°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΡΠ°Π½ΠΈΡ 32ΠΠ±, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅, ΡΠ΅ΠΌ 1/4 ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ (Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ Π½Π° 4ΠΠ± ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ 128 ΡΡΡΠ°Π½ΠΈΡ).
ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Ρ ΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ (ΡΠΎ Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ).
ΠΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Ρ Π² Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ²), Π½Π°ΡΠΈΠ½Π°Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠ° 0 (Π½ΡΠ»Π΅Π²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ° 0, ΠΏΠ΅ΡΠ²Π°Ρ β Ρ 32ΠΠ±, Π²ΡΠΎΡΠ°Ρ β Ρ 64ΠΠ± ΠΈ Ρ.Π΄.)
ΠΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π±ΡΡΠ΅Ρ (ring buffer), ΡΠΎ Π΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΏΠΈΡΡ ΠΈΠ΄ΡΡ Π² ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 0, ΠΏΠΎΡΠΎΠΌ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 1, …, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ» ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ
Π Π½Π°ΡΠ°Π»Π΅ ΡΡΡΠ°Π½ΠΈΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡ 4-Π±Π°ΠΉΡΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (CRC-32C), Π΄Π°Π»Π΅Π΅ Ρ
ΡΠ°Π½ΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ «Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ°».
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡΡΠ°Π½ΠΈΡΡ (Π½Π° ΡΡ Π΅ΠΌΠ΅ Π³ΡΡΠ·Π½ΠΎ-Π·Π΅Π»ΡΠ½ΡΠΉ) ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·:
- Π΄Π²ΡΡ
Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Magic Number (ΠΎΠ½ ΠΆΠ΅ β ΠΏΡΠΈΠ·Π½Π°ΠΊ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ°)
Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° ΠΎΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ0xed00 β Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ
; - Π΄Π²ΡΡ Π±Π°ΠΉΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΡΠΈΠΊΠ° «ΠΠ΅ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΡ» (Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠΊΠ»Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ).
ΠΠ°ΠΏΠΈΡΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ deflate). ΠΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠΆΠΈΠΌΠ°ΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠΈΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ), Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΠΆΠ°ΡΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. Π’ΠΎ Π΅ΡΡΡ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ Π»ΡΠ±ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΡΠ΅Π±ΡΡΡΡΡ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Ρ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΡΠΎΠΉ).
ΠΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΡΠΆΠΈΠΌΠ΅ΡΡΡ Ρ ΡΠ»Π°Π³ΠΎΠΌ Z_SYNC_FLUSH, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΆΠ°ΡΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ 4 Π±Π°ΠΉΡΠ° 0x00, 0x00, 0xff, 0xff, ΠΏΡΠ΅Π΄Π²Π°ΡΡΠ½Π½ΡΠ΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π²ΡΠΌΡ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π±Π°ΠΉΡΠ°ΠΌΠΈ.
ΠΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ (Π΄Π»ΠΈΠ½ΠΎΠΉ 4, 5 ΠΈΠ»ΠΈ 6 Π±Π°ΠΉΡ) ΠΌΡ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ 1, 2 ΠΈΠ»ΠΈ 3 Π±Π°ΠΉΡΠ°, Ρ ΡΠ°Π½ΡΡΠΈΠ΅:
- ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ (T), ΠΎΠ·Π½Π°ΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΏ Π·Π°ΠΏΠΈΡΠΈ: 0 β ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, 1 β ΠΆΡΡΠ½Π°Π»;
- ΠΏΠΎΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (S) ΠΎΡ 1 Π΄ΠΎ 7 Π±ΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ΅Π΅ Π΄Π»ΠΈΠ½Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ «Ρ Π²ΠΎΡΡ», ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ;
- Π΄Π»ΠΈΠ½Ρ Π·Π°ΠΏΠΈΡΠΈ (L).
Π’Π°Π±Π»ΠΈΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ S:
S
ΠΠ»ΠΈΠ½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π±Π°ΠΉΡ
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ, Π±Π°ΠΉΡ
0
1
5 (00 00 00 ff ff
)
10
1
6 (00 00 00 00 ff ff
)
110
2
4 (00 00 ff ff
)
1110
2
5 (00 00 00 ff ff
)
11110
2
6 (00 00 00 00 ff ff
)
1111100
3
4 (00 00 ff ff
)
1111101
3
5 (00 00 00 ff ff
)
1111110
3
6 (00 00 00 00 ff ff
)
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, Π½Π΅ Π·Π½Π°Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ:
ΠΡΠ»ΡΡΠΌ ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΎ ΠΏΠΎΠ»Π΅ T, Π±Π΅Π»ΡΠΌ β ΠΏΠΎΠ»Π΅ S, Π·Π΅Π»ΡΠ½ΡΠΌ L (Π΄Π»ΠΈΠ½Π° ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
Π² Π±Π°ΠΉΡΠ°Ρ
), Π³ΠΎΠ»ΡΠ±ΡΠΌ β ΡΠΆΠ°ΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΡΠ°ΡΠ½ΡΠΌ β ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ Π±Π°ΠΉΡΡ ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΈΡΡΡΡΡ Π²ΠΎ ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΡΠ°ΠΌΠΎΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ (Π΄ΠΎ 63+5 Π±Π°ΠΉΡ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅) ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡΠΎΠΌ.
ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ° CRC-32C, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (init) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ.
CRC ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ «ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ», Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ (ΠΏΠ»ΡΡ-ΠΌΠΈΠ½ΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅) ΡΠ°ΠΊΠ°Ρ ΡΠΎΡΠΌΡΠ»Π°: .
Π’ΠΎ Π΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌ CRC Π²ΡΠ΅Ρ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
Π±Π°ΠΉΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Π΄Π°Π½Π½ΡΡ
Π½Π° ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΠ΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΠΎΠΉ Π»Π΅ΠΆΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π΅Π³ΠΎ Π±Π°ΠΉΡ Π±ΡΠ» Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΎΡ 0x00 ΠΈ 0xff (Π΅ΡΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΌΡ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌ 0xff, ΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΡΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ ΠΎΠ±Π»Π°ΡΡΡ; 0x00 ΠΆΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅).
ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ
Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΠΈ
ΠΡΠ±ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄ΡΡ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΡ.
ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ° Π½Π΅ ΡΠΎΡΠ»Π°ΡΡ β ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ-ΡΠ°ΠΊΠΈ Π²Π΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
(ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», Linux Π½Π΅ ΠΊΡΡΠΈΡΡΠ΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· NOR Flash, ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ)
ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅.
Π§ΠΈΡΠ°Π΅ΠΌ ΠΈΡ
.
ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌΠΈ β Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΡ Π½ΡΠ»ΡΠΌΠΈ ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅
ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΠ΅ΡΠ²ΡΡ (ΡΠΎΡΠ½Π΅Π΅ Π½ΡΠ»Π΅Π²ΡΡ) ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 1.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ (ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ UUID Π°Π²ΡΠΎΠΌΠ°ΡΠ° ΠΈ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ).
ΠΡΡ, ΡΠ»Π΅Ρ-ΠΏΠ°ΠΌΡΡΡ Π³ΠΎΡΠΎΠ²Π° ΠΊ ΡΠ°Π±ΠΎΡΠ΅.
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠ°
ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠΈΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 8 Π±Π°ΠΉΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ + CRC), ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌ Magic Number ΠΈΠ»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΌ CRC ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
ΠΠ· «ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ
» ΡΡΡΠ°Π½ΠΈΡ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ, ΠΈΠ· Π½ΠΈΡ
Π±Π΅ΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ.
Π‘ΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ Π·Π°ΠΏΠΈΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ CRC, Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ»Π°Π³Π° «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ». ΠΡΠ»ΠΈ Π²ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ β ΡΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ. ΠΡΠ»ΠΈ Π½Π΅Ρ β ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄ΡΠΌ «ΠΆΠΈΠ²ΡΡ» ΡΡΡΠ°Π½ΠΈΡΡ.
Π° Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ»Π°Π³ΠΎΠΌ «ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ» ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ.
Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π°ΡΡ zlib (Π½ΡΠΆΠ΅Π½ Π±ΡΠ΄Π΅Ρ Π΄Π»Ρ Π΄ΠΎΠ·Π°ΠΏΠΈΡΠΈ Π² ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ).
ΠΡΡ, Π·Π°Π³ΡΡΠ·ΠΊΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΆΡΡΠ½Π°Π»
Π‘ΠΆΠΈΠΌΠ°Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΡΠ»ΠΎΠ²Π°ΡΡΠΌ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Z_SYNC_FLUSH.Π‘ΠΌΠΎΡΡΠΈΠΌ, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π»ΠΈ ΡΠΆΠ°ΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅.
ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ (ΠΈΠ»ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ CRC) β Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ (ΡΠΌ. Π½ΠΈΠΆΠ΅).
ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ ΠΈ CRC. ΠΡΠ»ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° β Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ°
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ (ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ ΡΡΠΌΠΌΠΎΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΈΠ»ΠΈ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ). ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΈΡ
ΡΡΡΠ°Π½ΠΈΡ Π½Π΅Ρ β Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΈΠ· ΡΠ΅Ρ
, ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°Π²Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ.
ΠΠ΅Π»Π°Π΅ΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ erase. Π‘Π²Π΅ΡΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Ρ 0xff. ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠ°ΠΊ β Π±Π΅ΡΡΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ Ρ.Π΄.
ΠΠ° ΡΡΡΡΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ β Π½Π΅Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΆΡΡΠ½Π°Π»Π° (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π΅ΡΡΡ).
ΠΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡΡ ΡΠΎΡΠΌΠ°ΡΠ°
ΠΠΎ ΠΌΠΎΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠΆΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ (ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ, JSON, MessagePack, CBOR, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, protobuf) Π² NOR Flash.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎΡΠΌΠ°Ρ «Π·Π°ΡΠΎΡΠ΅Π½» ΠΏΠΎΠ΄ SLC NOR Flash.
ΠΠ³ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π½ΠΎΡΠΈΡΠ΅Π»ΡΠΌΠΈ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ BER, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ NAND ΠΈΠ»ΠΈ MLC NOR (Π° ΡΠ°ΠΊΠ°Ρ ΠΏΠ°ΠΌΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π΅ΡΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΆΠ΅? Π²ΡΡΡΠ΅ΡΠ°Π» ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°Π±ΠΎΡΠ°Ρ ΠΏΠΎ ΠΊΠΎΠ΄Π°ΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ).
Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Π΅Π³ΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉ FTL: USB flash, SD, MicroSD, etc (Π΄Π»Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Ρ Π΄Π΅Π»Π°Π» ΡΠΎΡΠΌΠ°Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡΡ Π² 512 Π±Π°ΠΉΡ, ΡΠΈΠ³Π½Π°ΡΡΡΠΎΠΉ Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ β ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΠ· «Π³Π»ΡΠΊΠ½ΡΠ²ΡΠ΅ΠΉ» ΡΠ»Π΅ΡΠΊΠΈ ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅).
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π·Π°Π΄Π°Ρ ΡΠΎΡΠΌΠ°Ρ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΡΠ»Π΅ΡΠΊΠ°Ρ ΠΎΡ 128ΠΠ±ΠΈΡ (16ΠΠ±) Π΄ΠΎ 1ΠΠ±ΠΈΡ (128ΠΠ±). ΠΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΠΌΠ°, ΡΠΎΠ»ΡΠΊΠΎ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ (ΠΠΎ ΡΡΡ ΡΠΆΠ΅ Π²ΡΡΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎΡΡΠΈ, ΡΠ΅Π½Π° Π½Π° NOR Flash Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° Π½Π΅ ΡΠ°Π΄ΡΠ΅Ρ).
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΡ-ΡΠΎ ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ, ΠΈ ΠΎΠ½ Π·Π°Ρ ΠΎΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ β ΠΏΠΈΡΠΈΡΠ΅, ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π½Π° github.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΠΌ, Π² ΠΈΡΠΎΠ³Π΅ ΡΠΎΡΠΌΠ°Ρ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΊΡΡΠ½ΡΠΌ.
Π ΡΡΠ°ΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΡΡ ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΡΡΠ΅: ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠΎ-ΡΠΎ Π½Π°Π²ΠΎΡΠΎΡΠ΅Π½Π½ΠΎΠ΅, Π½Π΅ΡΠ±ΠΈΠ²Π°Π΅ΠΌΠΎΠ΅, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ Π²ΡΠΆΠΈΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π΅ΡΠ½ΠΎΠ³ΠΎ Π²Π·ΡΡΠ²Π° Π² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π±Π»ΠΈΠ·ΠΎΡΡΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°Π·ΡΠΌ (Π½Π°Π΄Π΅ΡΡΡ) Π²ΡΡ-ΡΠ°ΠΊΠΈ ΠΏΠΎΠ±Π΅Π΄ΠΈΠ» ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΡΠ΄Π²ΠΈΠ½ΡΠ»ΠΎΡΡ ΠΊ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΠΈ.
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ Ρ ΠΎΡΠΈΠ±ΡΡ? ΠΠ°, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. ΠΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ ΠΌΡ Π·Π°ΠΊΡΠΏΠΈΠ»ΠΈ ΠΏΠ°ΡΡΠΈΡ Π½Π΅ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΈΠΊΡΠΎΡΡ Π΅ΠΌ. ΠΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΠΎ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ.
ΠΡΡΡ Π»ΠΈ Ρ ΠΌΠ΅Π½Ρ ΠΏΠ»Π°Π½ Π½Π° ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ? Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΏΠΎ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ Π²Ρ Π½Π΅ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΠ»Π°Π½ Π΅ΡΡΡ. Π Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΎΠ΄ΠΈΠ½.
ΠΡΠ»ΠΈ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΡΠ·Π½ΠΎ, ΡΠΎΡΠΌΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΈ ΠΊΠ°ΠΊ «ΠΏΡΠΎΠ±Π½ΡΠΉ ΡΠ°Ρ».
ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π° ΡΡΠΎΠ»Π΅ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π½Π° Π΄Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²ΡΡΠ½ΡΡΠΎ (ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ) Π½Π° ΡΠΎΡΠ½Π΅ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π² «Π±ΠΎΠ΅Π²ΠΎΠΉ» ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ (Π±Π»Π°Π³ΠΎ, Π½Π°Π΄Π΅ΡΡΡ, ΡΠΎΡΠΌΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Π΄ΡΠΆΠ½ΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ±ΠΎΠΈ; ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ). Π§Π΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΡΠ΅Π² ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Ρ (Π° Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ²Π΅Π·ΡΡ β ΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅).
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΈΡΠΎΠ³Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ°ΡΡΡ ΡΠ΅ΡΡΡΠ·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΡΡΡΡ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΠΎ Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π½Π°ΠΏΠΈΡΡ.
ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ°
ΠΠ΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π΄Π»ΠΈΠ½Π½ΡΠΉ Π½ΡΠ΄Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π³ΡΠ³Π» Π΅ΡΡΡ Ρ Π²ΡΠ΅Ρ .
Π’ΡΡ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π°Ρ ΠΎΠ΄ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΡΠ΅Π²Π°Π»ΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΅ΠΊΡΡ ΡΡΠ°ΡΡΠΈ, ΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΡΠ°Π»ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠ½ΠΊΡ:
- Π£ΡΠΈΠ»ΠΈΡΠ°
infgen ΠΎΡ Π°Π²ΡΠΎΡΠ° zlib. Π£ΠΌΠ΅Π΅Ρ Π² ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π°ΡΡ ΠΈΠ²ΠΎΠ² deflate/zlib/gzip. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ° deflate (ΠΈΠ»ΠΈ gzip) β Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com