เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash

เบ›เบฐเบงเบฑเบ”เบชเบฒเบ”

เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบ‚เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบญเบญเบเปเบšเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡. เบžเบฒเบเปƒเบ™ Raspberry Pi เปเบฅเบฐเบชเบฒเบเป„เบŸเบšเบฒเบ‡เบญเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฐเบ”เบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เป€เบ„เบทเปˆเบญเบ‡เบฎเบฑเบšเบซเบผเบฝเบ™, เปƒเบšเบฎเบฑเบšเป€เบ‡เบดเบ™, เบชเบฐเบ–เบฒเบ™เบตเบ—เบฐเบ™เบฒเบ„เบฒเบ™เบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ ... เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™ flash drive (MicroSD), เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ” (เปƒเบŠเป‰เป‚เบกเป€เบ”เบฑเบก USB) เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบšเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ‚เบฒเบเบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ 1c, เบเบฑเบ‡เบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบงเบฒเบฅเบฐเบชเบฒเบ™เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™ - เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบŠเบต (เบฅเบฒเบเบฎเบฑเบš, เบเบฒเบ™เบ‚เบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก (เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰); เบ™เบตเป‰, เบซเบ™เบถเปˆเบ‡เบญเบฒเบ”เบˆเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบ™เบตเป‰.

เบšเบฑเบ™เบซเบฒ

Flash drives เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบญเบ‡เบงเปˆเบฒเป€เบ›เบฑเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบฒเบ. เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบด enviable. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฑเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบขเบธเบ”เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐ (เบ–เป‰เบฒเบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบšเบฑเบ™เบ—เบถเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเป‚เบญเบ™เบญเบญเบ™เป„เบฅเบ™เปŒ) เบเบฑเบšเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™.

เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ flash drive, เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบกเบตเป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบเบเปˆเบงเบฒเบฎเป‰เบญเบเบญเบธเบ›เบฐเบเบญเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบงเบฒเบฅเบฐเบชเบฒเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ USB flash drive, เบเบฑเบ‡เบกเบตเบšเบฑเบ™เบซเบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบœเบนเป‰เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™. เป€เบ”เบทเบญเบ™เปœเบถเปˆเบ‡เบขเบนเปˆเปƒเบ™เบซเบผเบฒเบเบชเบดเบšเบ„เบปเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบก flash drive เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบเบตเปˆเบซเปเป‰เบ—เบตเปˆเบกเบตเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ SLC, เปเบฅเบฐเบšเบฒเบ‡เบฎเบธเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบฒเบเบเปˆเบงเบฒเบ„เบปเบ™เบญเบทเปˆเบ™, เปเบ•เปˆเบเบฒเบ™เบ›เปˆเบฝเบ™ flash drives เบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ.

เบฅเบฐโ€‹เบกเบฑเบ”โ€‹เบฅเบฐโ€‹เบงเบฑเบ‡ เบญเปˆเบฒเบ™เปเบฅเป‰เบง! เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบปเบ™เปƒเบˆเปƒเบ™ "เป€เบ›เบฑเบ™เบซเบเบฑเบ‡", เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆ "เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”", เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ›เบเบปเบ‡ เปƒเบ™เบ—เบตเปˆเบชเบธเบ” เบšเบปเบ”เบ„เบงเบฒเบก.

เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เปƒเบˆเปเบกเปˆเบ™: เบเบปเบเป€เบฅเบตเบ MicroSD, เบ•เบดเบ”เบ•เบฑเป‰เบ‡, เบ•เบปเบงเบขเปˆเบฒเบ‡, SSD, เปเบฅเบฐ boot เบˆเบฒเบเบกเบฑเบ™. เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™, เปเบ•เปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปเบžเบ‡, เปเบฅเบฐเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰ (เบญเบฐเปเบ”เบšเป€เบ•เบต USB-SATA เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบก; เบชเบฐเบ–เบดเบ•เบดเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบชเปเบฒเบฅเบฑเบš SSDs เบ‡เบปเบšเบ›เบฐเบกเบฒเบ™เปเบกเปˆเบ™เบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™).

USB HDD เบเบฑเบ‡เบšเปเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบฒเบฎเบญเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰: เบญเบญเบเบˆเบฒเบเบเบฒเบ™ booting เบˆเบฒเบ MicroSD, เปเบ•เปˆเปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™, เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ (เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบšเบฒเบ‡เบชเปˆเบงเบ™ - เป€เบฅเบเบฅเปเบฒเบ”เบฑเบš, เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเป€เบŠเบฑเบ™เป€เบŠเบต, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™. .

เบซเบปเบงเบ‚เปเป‰เบ‚เบญเบ‡ FS เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบš raspberries เป„เบ”เป‰เบ–เบทเบเบชเบถเบเบชเบฒเปเบฅเป‰เบงเปƒเบ™เปเบฅเบฐเบ™เบญเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบšเปเปˆเบขเบนเปˆเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰. (เปเบ•เปˆเบ–เป‰เบฒเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆ, เบšเบฒเบ‡เบ—เบตเบ‚เป‰เบญเบเบˆเบฐเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เป‰เบญเบเป†เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰). เบˆเบธเบ”เบ”เบฝเบงเบ—เบตเปˆเบ‚เป‰เบญเบเบขเบฒเบเบชเบฑเบ‡เป€เบเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบ—เบฑเบ‡เบˆเบฒเบเบ›เบฐเบชเบปเบšเบเบฒเบ™เบชเปˆเบงเบ™เบ•เบปเบงเปเบฅเบฐเบˆเบฒเบเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบ‚เบญเบ‡เบœเบนเป‰เบ—เบตเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบง, เบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เปเบ•เบเบซเบฑเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เปเบ•เปˆเบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เปเบฅเบฐเบšเบฑเบ”เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป€เบญเบเบฐเบžเบฒเบš, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบ—เบตเปˆเบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

Hardware

เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ - NOR Flash.
เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡:

  • เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบšเบ‡เปˆเบฒเบเป† (เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบฅเบปเบ”เป€เบก SPI, เบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบตเบ›เบฐเบชเบปเบšเบเบฒเบ™เปƒเบŠเป‰เปเบฅเป‰เบง, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบเปˆเบฝเบงเบเบฑเบšเบฎเบฒเบ”เปเบงเปเบกเปˆเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™);
  • เบฅเบฒเบ„เบฒ ridiculous;
  • เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ (เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบตเป€เบ™เบฅเปเบฅเป‰เบง) Linux, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก, เป€เบŠเบดเปˆเบ‡เบเบฑเบ‡เบกเบตเบขเบนเปˆ, เบซเบผเบทเปเบกเปˆเบ™เปเบ•เปˆเบ‚เบฝเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡, เป‚เบŠเบเบ”เบต, เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ);
  • เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™:
    เบˆเบฒเบโ€‹เปเบœเปˆเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบดโ€‹: เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปเบกเปˆเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹เบชเปเบฒโ€‹เบฅเบฑเบš 20 เบ›เบตโ€‹, 100000 erase cycles เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ•เบฑเบ™โ€‹;
    เบˆเบฒเบเปเบซเบผเปˆเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก: BER เบ•เปˆเปเบฒเบ—เบตเปˆเบชเบธเบ”, postulates เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” (เบšเบฒเบ‡เบงเบฝเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ ECC เบชเปเบฒเบฅเบฑเบš NOR, เปเบ•เปˆเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบžเบงเบเบกเบฑเบ™เบเบฑเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ MLC NOR; เบ™เบตเป‰เบเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™).

เปƒเบซเป‰เบ›เบฐเป€เบกเบตเบ™เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™.

เบ‚เป‰เบญเบเบขเบฒเบเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบˆเบฐเบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบผเบฒเบเบกเบทเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเปƒเบ”เป†เบเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™, เบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เบ‚เบฒเบเบšเปเปˆเป„เบ”เป‰เบชเบนเบ™เป€เบชเบ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบธเบกเปƒเบชเปˆ 5 เบกเบทเป‰, เปƒเบ™เป„เบฅเบเบฐเบ™เบตเป‰ (เป€เบ–เบดเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบงเปˆเบฒโ€‹เบ„เปเบฒโ€‹เบ™เบถเบ‡โ€‹เป€เบ–เบดเบ‡โ€‹เบ—เป‰เบฒเบโ€‹เบญเบฒโ€‹เบ—เบดเบ”โ€‹เปเบฅเบฐโ€‹เบงเบฑเบ™โ€‹เบžเบฑเบโ€‹) เบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเป€เบเบฑเบšเบเปเบฒเบ›เบฐเบกเบฒเบ™ 100kb เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบกเบทเป‰ (3-4 เบžเบฑเบ™เบฅเบฒเบเบเบฒเบ™), เปเบ•เปˆเบ„เปˆเบญเบเป†เบ•เบปเบงเป€เบฅเบเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบง - เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปเบกเปˆเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™, เป€เบซเบ”เบเบฒเบ™เปƒเบซเบกเปˆเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเป€เบžเบตเปˆเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเบกเบตเบเบฒเบ™เบฅเบฐเป€เบšเบตเบ” (เบšเบฒเบ‡เป€เบŠเบฑเบ™เป€เบŠเบตเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ spamming เบเบฑเบšเบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡). เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ„เบดเบ”เป„เบฅเปˆเบชเปเบฒเบฅเบฑเบš 10 เบžเบฑเบ™เบšเบฑเบ™เบ—เบถเบ 100 bytes เปเบ•เปˆเบฅเบฐเบ„เบปเบ™ - megabytes เบ•เปเปˆเบกเบทเป‰.

เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, 5MB เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฐเบญเบฒเบ” (เบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบ”เบต) เบญเบญเบเบกเบฒ. เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ•เปเปˆเบเบฑเบšเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ (เบเบฒเบ™โ€‹เบ„เบฒเบ”โ€‹เบ„เบฐโ€‹เป€เบ™โ€‹เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹) 1MB เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบŠเบดเบš 8MB เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เบซเบผเบท 4MB เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบกเบฑเบ™. เบ•เบปเบงเป€เบฅเบเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ™เบตเป‰.

เบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™: เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบšเปเปˆเป€เบเบตเบ™เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡เปƒเบ™เบ—เบธเบเป† 5 เบกเบทเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบซเบผเบฒเบเบเบงเปˆเบฒ 10 เบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบžเบฑเบ™เบฎเบญเบšเบเบฒเบ™เบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ.
เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเป€เบ•เบทเบญเบ™เบ—เปˆเบฒเบ™เบงเปˆเบฒเบœเบนเป‰เบœเบฐเบฅเบดเบ”เบชเบฑเบ™เบเบฒเบซเบ™เบถเปˆเบ‡เบฎเป‰เบญเบเบžเบฑเบ™.

เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบš NOR vs NAND

เบกเบทเป‰เบ™เบตเป‰, เปเบ™เปˆเบ™เบญเบ™, เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ NAND เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบ™เบดเบเบปเบกเบซเบผเบฒเบ, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบกเบฑเบ™เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰: NAND, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš NOR, เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบ—เบตเปˆเบšเปเปˆเบ”เบต, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เปเบฅเบฐเบ‚เบฒเบ‚เบญเบ‡. เบŠเบดเบš NAND เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบซเบผเบฒเบเบซเบผเบฒเบ.

เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡ NOR เบ›เบฐเบเบญเบšเบกเบต:

  • เบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ (เปเบฅเบฐ, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบฅเบฒเบ„เบฒเบชเบนเบ‡เบ•เปเปˆ megabyte);
  • เบ„เบงเบฒเบกเป„เบงเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ•เปˆเปเบฒ (เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบเป‰เบญเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš serial เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง SPI เบซเบผเบท I2C);
  • เบเบฒเบ™เบฅเบถเบšเบŠเป‰เบฒ (เบ‚เบถเป‰เบ™เบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ•เบฑเบ™, เบกเบฑเบ™เปƒเบŠเป‰เป€เบงเบฅเบฒเบˆเบฒเบเบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบงเบดเบ™เบฒเบ—เบตเบซเบฒเบซเบผเบฒเบเบงเบดเบ™เบฒเบ—เบต).

เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบชเปเบฒเบ„เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบทเบšเบ•เปเปˆ.

เบ–เป‰เบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, microcircuit เป„เบ”เป‰เบ–เบทเบเป€เบฅเบทเบญเบ เบ—เบตเปˆ 25df321a (เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™, เบกเบตเบซเบผเบฒเบ analogues เปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เปƒเบ™ pinout เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ„เปเบฒเบชเบฑเปˆเบ‡; เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ microcircuit เบˆเบฒเบเบœเบนเป‰เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบฅเบฐ / เบซเบผเบทเบ‚เบฐเบซเบ™เบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบฅเบฐเบซเบฑเบ”).

เบ‚เป‰เบญเบเปƒเบŠเป‰เบญเบฑเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™ kernel Linux เป„เบ”เบฃเป€เบงเบต, เปƒเบ™ Raspberry, เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบŠเป‰เบญเบ™เบเบฑเบ™เบ‚เบญเบ‡เบ•เบปเป‰เบ™เป„เบกเป‰เบญเบธเบ›เบฐเบเบญเบ™, เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ - เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆเบเบฒเบ™เบŠเป‰เบญเบ™เบเบฑเบ™เบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเปเบฅเป‰เบงเปƒเบ™ /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. เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™เป€เบญเป€เบฅเบฑเบเป‚เบ•เบฃเบ™เบดเบ, เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™ banal เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ: microcircuit เบกเบตเบžเบฝเบ‡เปเบ•เปˆ 8 เบ‚เบฒ, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ”เบดเบ™, เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™, SPI (CS, SI, SO, SCK. ); เบฅเบฐเบ”เบฑเบšเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบ‚เบญเบ‡ Raspberry Pi, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบชเบฒเบเป„เบŸเป€เบžเบตเปˆเบกเป€เบ•เบตเบก - เบžเบฝเบ‡เปเบ•เปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ 6 pins เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰.

เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบซเบฒ

เบ•เบฒเบกเบ›เบปเบเบเบฐเบ•เบด, เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™เบšเบฑเบ™เบซเบฒเบˆเบฐเบœเปˆเบฒเบ™เบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡, เปเบฅเบฐเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบญเบเป€เบ–เบดเบ‡เป€เบงเบฅเบฒเบ•เปเปˆเป„เบ›. เบชเบฐเบ™เบฑเป‰เบ™เปƒเบซเป‰เบขเบธเบ”เป€เบŠเบปเบฒ, เป€เบญเบปเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เบฝเบ™เป„เบงเป‰เปเบฅเป‰เบง, เปเบฅเบฐเบŠเบตเป‰เปเบˆเบ‡เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ—เบตเปˆเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เป€เบ‡เบปเบฒ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ SPI NOR Flash.

NOR Flash เปเบกเปˆเบ™เบซเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰?

เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบฅเบฐโ€‹เป€เบซเบตเบโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เป„เบ”เป‰โ€‹เบชเบฒเบกโ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹:

  1. เบเบฒเบ™เบญเปˆเบฒเบ™:
    เบเบฒเบ™เบญเปˆเบฒเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”: เบžเบงเบเป€เบฎเบปเบฒเบชเบปเปˆเบ‡เบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบญเปˆเบฒเบ™เบซเบผเบฒเบ bytes เบ•เบฒเบกเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™;
  2. เบšเบฑเบ™เบ—เบถเบ:
    เบเบฒเบ™เบ‚เบฝเบ™ NOR flash เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เปเบšเบšเบ›เบปเบเบเบฐเบ•เบด, เปเบ•เปˆเบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเปเบ›เบเบ›เบฐเบซเบฅเบฒเบ”เบซเบ™เบถเปˆเบ‡: เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบžเบฝเบ‡เปเบ•เปˆ 1 เบซเบฒ 0, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เปƒเบ™เบ—เบฒเบ‡เบเบฑเบšเบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡: เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต 0x55 เปƒเบ™เป€เบŠเบฅเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบ‚เบฝเบ™ 0x0f เบเบฑเบšเบกเบฑเบ™, 0x05 เบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. (เป€เบšเบดเปˆเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰);
  3. เบฅเบถเบš:
    เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก - เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ 0 เบซเบฒ 1, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบถเบšเปเบกเปˆเบ™เปเบ—เป‰เป†. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบชเบญเบ‡เบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”, เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบฑเบš bytes, เปเบ•เปˆเบกเบตเบ•เบฑเบ™ (เบ•เบฑเบ™เบฅเบปเบšเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเปƒเบ™เบŠเบดเบšเป€เบฅเบทเบญเบเปเบกเปˆเบ™ 4kb). Erase เบ—เปเบฒเบฅเบฒเบเบ—เปˆเบญเบ™เป„เบกเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ”เบฝเบงเบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™ 0 เบซเบฒ 1. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash, เบ—เปˆเบฒเบ™เบกเบฑเบเบˆเบฐเบ•เป‰เบญเบ‡เบˆเบฑเบ”เบงเบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเป‰เบเบฑเบšเป€เบ‚เบ”เปเบ”เบ™เบ‚เบญเบ‡ block เบฅเบปเบš.
    เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™ NOR Flash:

เบ‚เปเป‰เบกเบนเบ™เบ–เบฒเบ™เบชเบญเบ‡

เบกเบฑเบ™เปเบกเปˆเบ™
01010101

เบšเบฑเบ™เบ—เบถเบ
00001111

เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™
00000101

เบšเบฑเบ™เบ—เบถเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›. เบ„เบงเบฒเบกเบเบฒเบงเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 30 เป„เบšเบ•เปŒ (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฒเบงเบซเบผเบฒเบเบเบดเป‚เบฅเป„เบšเบ•เปŒเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบšเบฒเบ‡เบ„เบฑเป‰เบ‡). เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบžเบงเบเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบ›เบฑเบ™เบŠเบธเบ”เบ‚เบญเบ‡ bytes, เปเบ•เปˆ, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเบ™เปƒเบˆ, CBOR เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเปƒเบ™เบšเบฑเบ™เบ—เบถเบ.

เบ™เบญเบโ€‹เบˆเบฒเบโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ "เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹" เบšเบฒเบ‡โ€‹, เบ—เบฑเบ‡โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เปเบฅเบฐโ€‹เบšเปเปˆโ€‹: ID เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เป€เบŠเบฑเบ™โ€‹เป€เบŠเบตโ€‹, เบ—เบธเบ‡ "เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เปเบกเปˆเบ™โ€‹เบŠเบปเปˆเบงโ€‹เบ„เบฒเบงโ€‹" เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†โ€‹.
เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบŠเบธเบ”โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹, เบเบฑเบ‡โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹เปƒเบ™ CBOR เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบผเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ™เบตเป‰ (เบšเปเปˆโ€‹เบซเบผเบฒเบโ€‹เบ›เบฒเบ™โ€‹เปƒเบ”โ€‹เบเบดโ€‹เป‚เบฅโ€‹เป„เบšโ€‹)โ€‹, เปเบฅเบฐโ€‹เบกเบฑเบ™โ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เป€เบฅเบทเป‰เบญเบเป†โ€‹.
เปƒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบญเบตเป‰เบ™เบกเบฑเบ™เบงเปˆเบฒเบชเบฐเบžเบฒเบšเบเบฒเบ™.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบทเปˆเบˆเปเบฒเบšเปˆเบญเบ™เบ—เบตเปˆเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เปเบฅเบฐ, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบฎเบฒเบ”เปเบงเบฅเบปเป‰เบกเป€เบซเบฅเบง / เบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบ.

เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเปƒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป„เบ”เป‰?

  • เบ›เบดเบ”เป€เบ„เบทเปˆเบญเบ‡เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ”เบณเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฝเบ™/เบฅเบถเบš. เบ™เบตเป‰เปเบกเปˆเบ™เบกเบฒเบˆเบฒเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ "เบšเปเปˆเบกเบต trick เบ•เป‰เบฒเบ™ crowbar."
    เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ เบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒ on stackexchange: เป€เบกเบทเปˆเบญเป„เบŸเบ–เบทเบเบ›เบดเบ”เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเปเบŸเบ”, เบ—เบฑเบ‡เบฅเบปเบš (เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 1) เปเบฅเบฐเบ‚เบฝเบ™ (เบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ 0) เบ™เปเบฒเป„เบ›เบชเบนเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”: เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰, เบ‚เบฝเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™ (เป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป‚เบญเบ™ 10 bytes / 80 bits. , เปเบ•เปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆ 45 bits), เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเบšเบฒเบ‡ bits เบˆเบฐเบขเบนเปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐ "เบ›เบฒเบ™เบเบฒเบ‡" (เบเบฒเบ™เบญเปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเบฐเบฅเบดเบ”เป„เบ”เป‰เบ—เบฑเบ‡ 0 เปเบฅเบฐ 1);
  • เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.
    BER, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ•เปเปˆเบฒเบซเบผเบฒเบ, เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ—เบปเปˆเบฒเบเบฑเบšเบชเบนเบ™;
  • เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบฅเบปเบ”เป€เบก
    เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™ SPI เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบปเบเบ›เป‰เบญเบ‡เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เบฑเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบšเบดเบ”เบ”เบฝเบงเปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” synchronization เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™ - เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบซเบผเบทเบเบฒเบ™เปเบŠเบเบšเบดเบ” (เป€เบŠเบดเปˆเบ‡เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบšเบดเบ”เป€เบšเบทเบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ);
  • เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” / เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบญเบทเปˆเบ™เป†โ€‹
    เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹, Raspberry glitchesโ€‹, เบเบฒเบ™โ€‹เปเบŠเบโ€‹เปเบŠเบ‡โ€‹เบกเบฐโ€‹เบ™เบธเบ”โ€‹เบ•เปˆเบฒเบ‡โ€‹เบ”เบฒเบง ...

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆ, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท:

  • เบšเบฑเบ™เบ—เบถเบเบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ”เบ—เบฑเบ™เบ—เบต, เบเบฒเบ™เบ‚เบฝเบ™เบ—เบตเปˆเบŠเบฑเบเบŠเป‰เบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ - เบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบกเบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบงเบ”เบžเบปเบšเปเบฅเบฐเบ›เบธเบ‡เปเบ•เปˆเบ‡เป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบงเป„เบ”เป‰ - เบฅเบฐเบšเบปเบšเบ•เป‰เบญเบ‡, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.
    (เบ•เบปเบงเบขเปˆเบฒเบ‡เบˆเบฒเบเบŠเบตเบงเบดเบ” "เบกเบฑเบ™เบšเปเปˆเบ„เบงเบ™เป€เบ›เบฑเบ™", เบ—เบตเปˆเบ‚เป‰เบญเบเบ„เบดเบ”เบงเปˆเบฒเบ—เบธเบเบ„เบปเบ™เป„เบ”เป‰เบžเบปเบš: เบซเบผเบฑเบ‡เบˆเบฒเบ reboot เบชเบธเบเป€เบชเบตเบ™, เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเปเบกเปˆเบ™ "เปเบ•เบ" เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเปเปˆ boot).

เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”, เบงเบดเบ—เบตเบเบฒเบ™, เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™

เป€เบกเบทเปˆเบญเบ‚เป‰เบญเบเป€เบฅเบตเปˆเบกเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบ„เบงเบฒเบกเบ„เบดเบ”เบซเบผเบฒเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบซเบปเบงเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡:

  • เปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™;
  • เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบฐเบซเบฅเบฒเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ headers เบšเบฑเบ™เบ—เบถเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ”เบซเบ™เบถเปˆเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญเป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒเปƒเบ”เป†;
  • เปƒเบŠเป‰เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เป‰เบญเบเป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบดเบ”เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™;
  • เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ checksums เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡;
  • เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบชเบฝเบ‡.

เบšเบฒเบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ„เบปเบ™เบญเบทเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ–เบดเป‰เบก. เปƒเบซเป‰เป„เบ›เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™

เป€เบซเบ”เบเบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบงเบฒเบฅเบฐเบชเบฒเบ™เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเป„เบ”เป‰ ("เบ–เบดเป‰เบกเบซเบผเบฝเบ™ 5 เบฎเบนเป€เบšเบตเบ™", "เบเบปเบ”เบ›เบธเปˆเบกเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡", ...). เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ„เบงเบ™เบˆเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ”เบต.

เบเบฒเบ™เบšเบตเบšเบญเบฑเบ” overhead เปเบกเปˆเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™ (เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบญเปเบฒเบ™เบฒเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ Pi เบ—เปเบฒเบญเบดเบ”เบกเบตเปเบเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ–เบตเปˆเบ‚เบญเบ‡ 700 MHz, เบฎเบธเปˆเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบกเบตเบซเบผเบฒเบเปเบเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ–เบตเปˆเป€เบเบตเบ™ gigahertz), เบญเบฑเบ”เบ•เบฒเปเบฅเบเบ›เปˆเบฝเบ™เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบกเปˆเบ™เบ•เปเปˆเบฒ (เบซเบผเบฒเบ. megabytes เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต), เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ–เป‰เบฒเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เบšเบงเบเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. (เบšเปเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบงเบดโ€‹เบˆเบฒเบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹, เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเปˆเบฒเบงโ€‹)เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเบญเบฑเบ™เบ—เบตเปˆเบเบฑเบ‡เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบˆเบดเบ‡, เปเบ•เปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ—เบณเบกเบฐเบ”เบฒ. Linux โ€” เบชเบฐเบ™เบฑเป‰เบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเปเปˆเบ„เบงเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบ (เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” เปเบฅเบฐ เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบเบกเบฑเบ™).

เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบ–เบทเบเป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ (1.7 MB, 70 เบžเบฑเบ™เบฅเบฒเบเบเบฒเบ™) เปเบฅเบฐเบ—เปเบฒเบญเบดเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰ gzip, lz4, lzop, bzip2, xz, zstd เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบต.

  • gzip, xz, zstd เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™ (40Kb).
    เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เบปเบเบ•เบฐเบฅเบถเบ‡เบงเปˆเบฒ xz เบ„เบปเบ™เบญเบฑเบšเป€เบ”เบ”: เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เปƒเบ™เบฅเบฐเบ”เบฑเบš gzip เบซเบผเบท zstd;
  • lzip เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบเบงเปˆเบฒเป€เบเบปเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ;
  • lz4 เปเบฅเบฐ lzop เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ”เบตเบซเบผเบฒเบ (150Kb);
  • bzip2 เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆ (18Kb).

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบšเบตเบšเบญเบฑเบ”เป„เบ”เป‰เบ”เบตเบซเบผเบฒเบ.
เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™ (เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบžเบปเบšโ€‹เบ‚เปเป‰โ€‹เบšเบปเบโ€‹เบžเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบฎเป‰เบฒเบโ€‹เปเบฎเบ‡โ€‹) เบˆเบฐโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบšเบตเบšโ€‹เบญเบฑเบ”โ€‹! เบžเบฝเบ‡เปเบ•เปˆเบเป‰เบญเบ™เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเบฒเบกเบฒเบ”เปƒเบชเปˆเปƒเบ™ flash drive เบ”เบฝเบงเบเบฑเบ™.

เบ‚เปเปƒเบซเป‰เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เป€เบชเบ.

เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบ—เปเบฒโ€‹เบญเบดเบ”โ€‹: เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ•เบปเบโ€‹เบฅเบปเบ‡โ€‹เปเบฅเป‰เบงโ€‹เบงเปˆเบฒโ€‹เบ—เบธเบโ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบ—เบฑเบ™โ€‹เปƒเบ”โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ› flashโ€‹. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, archiver เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบเบฐเปเบชเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบปเบ™เบเปˆเบงเบฒเบกเบฑเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เปƒเบ™เบ—เป‰เบฒเบเบญเบฒเบ—เบดเบ”. เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ—เบฑเบ™เบ—เบตเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เบฅเบฐเป€เบซเบตเบ.

เบ‚เป‰เบญเบเป€เบซเบฑเบ™เบชเบฒเบกเบงเบดเบ—เบต:

  1. เบšเบตเบšเบญเบฑเบ”เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบเป‚เบ”เบเปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡.
    เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบกเบฑเบ™. เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปƒเบ™เบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเป€เปเบฒเบฐเบชเบปเบกเบซเบผเบฒเบ เบซเบผเบทเปœเป‰เบญเบ, เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ•เป‰เบญเบ‡เบ–เบทเบ โ€œเบ›เบฑเบšโ€ เปƒเบซเป‰เป€เบ‚เบปเป‰เบฒเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐ, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฐเบ™เบณเป„เบ›เบชเบนเปˆเบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบฎเป‰เบฒเบเปเบฎเบ‡. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เป€เบˆเบฑเบšเบซเบปเบง - เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบธเบเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก; เปƒเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบšเบปเบ”โ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบŠเบตเป‰โ€‹เบšเบญเบโ€‹เบงเปˆเบฒโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ‚เบญเบ‡โ€‹เบงเบฑเบ”โ€‹เบˆเบฐโ€‹เบ™เบฒโ€‹เบ™เบธโ€‹เบเบปเบกโ€‹เบ—เบตเปˆโ€‹เบกเบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบšเบตเบšโ€‹เบญเบฑเบ” ...
  2. เบšเบตเบšเบญเบฑเบ”เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบเป‚เบ”เบเปƒเบŠเป‰เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ "เบ„เบฅเบฒเบชเบชเบดเบ", เปเบ•เปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™.
    เบชเบนเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เบตเป‰ (เบชเบดเบšเบ‚เบญเบ‡ bytes), เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบˆเบฐเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 1 (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบšเบตเบšเบญเบฑเบ”);
  3. เป€เบฎเบฑเบ” FLUSH เบซเบผเบฑเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ.
    เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบšเบตเบšเบญเบฑเบ”เบซเบผเบฒเบเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ FLUSH. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ (เบซเบผเบทเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”), เป€เบกเบทเปˆเบญเป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆ archiver เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™เบ™เป‰เปเบฒ compressed เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบŸเบทเป‰เบ™เบŸเบน. เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ” เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบฅเป‰เบง. เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง sync เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบซเบผเบท commit เปƒเบ™ sql.
    เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ•เปเปˆเบกเบฒเบˆเบฐเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ—เบตเปˆเบชเบฐเบชเบปเบกเปเบฅเบฐเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบˆเบฐเบšเปเปˆเบ—เบปเบ™เบ—เบธเบเป€เบ—เบปเปˆเบฒเบเบฑเบšเปƒเบ™เบฎเบธเปˆเบ™เบเปˆเบญเบ™.

เบ‚เป‰เบญเบเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบฒเบก, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก.

เบžเบปเบš เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ เบเปˆเบฝเบงเบเบฑเบš FLUSH เปƒเบ™ zlib.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ—เบปเบ”เบชเบญเบšเบซเบปเบงเป€เบ‚เบปเปˆเบฒเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบšเบปเบ”เบ„เบงเบฒเบก, เป€เบญเบปเบฒ 70 เบžเบฑเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒ 60Kb. (เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เป„เบ›โ€‹เบšเปˆเบญเบ™โ€‹เบ‚เบฐโ€‹เบซเบ™เบฒเบ”โ€‹เบซเบ™เป‰เบฒโ€‹เบžเบฒเบโ€‹เบซเบผเบฑเบ‡โ€‹) เป„เบ”เป‰เบฎเบฑเบš:

เบ‚เปเป‰เบกเบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™
เบเบฒเบ™เบšเบตเบšเบญเบฑเบ” gzip -9 (เบšเปเปˆเบกเบต FLUSH)
zlib เบเบฑเบš Z_PARTIAL_FLUSH
zlib เบเบฑเบš Z_SYNC_FLUSH

เบ›เบฐเบฅเบดเบกเบฒเบ™, KB
1692
40
352
604

เบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ”, เบฅเบฒเบ„เบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เป‚เบ”เบ FLUSH เปเบกเปˆเบ™เบชเบนเบ‡เป€เบเบตเบ™เป„เบ›, เปเบ•เปˆเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เปเบฅเป‰เบงเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบซเบ™เป‰เบญเบ - เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”, เบซเบผเบทเบเบฒเบ™เบšเบตเบšเบญเบฑเบ” (เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบ) เบ”เป‰เบงเบ FLUSH. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบšเปเปˆเบฅเบทเบกเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต 70 เบžเบฑเบ™เบšเบฑเบ™เบ—เบถเบ, เบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเป‚เบ”เบ Z_PARTIAL_FLUSH เปเบกเปˆเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆ 4-5 bytes เบ•เปเปˆเบšเบฑเบ™เบ—เบถเบ. เปเบฅเบฐเบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เป€เบเบทเบญเบš 5: 1, เป€เบŠเบดเปˆเบ‡เบซเบผเบฒเบเบเบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”.

เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เปเบ›เบ, เปเบ•เปˆ Z_SYNC_FLUSH เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ” FLUSH

เป€เบกเบทเปˆเบญเปƒเบŠเป‰ Z_SYNC_FLUSH, 4 bytes เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบˆเบฐเป€เบ›เบฑเบ™ 0x00, 0x00, 0xff, 0xff. เปเบฅเบฐเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบˆเบฑเบเบžเบงเบเบกเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบงเบเบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เบฐเบซเบ™เบฒเบ”เบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆ 324Kb.

เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบ:

เบšเบฅเบฑเบญเบเบ›เบฐเป€เบžเบ” 0 เปƒเปเปˆเบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเบซเบฒเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบ–เบทเบเบ•เปเปˆเบ—เป‰เบฒเบ.

เบšเบฅเบฑเบญเบเบ›เบฐเป€เบžเบ” 0 เบ—เบตเปˆเบกเบตเป€เบ™เบทเป‰เบญเปƒเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ:

  • เบซเบปเบงเบšเบฅเบฑเบญเบเบชเบฒเบกเบšเบดเบ”;
  • 0 เบซเบฒ 7 bits เป€เบ—เบปเปˆเบฒเบเบฑเบšเบชเบนเบ™, เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธเบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡ byte;
  • เบฅเปเบฒเบ”เบฑเบšเบชเบตเปˆเป„เบšเบ•เปŒ 00 00 FF FF.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰, เปƒเบ™เบšเบฅเบฑเบญเบเบชเบธเบ”เบ—เป‰เบฒเบเบเปˆเบญเบ™ 4 bytes เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบˆเบฒเบ 3 เบซเบฒ 10 เบšเบดเบ”เบชเบนเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบกเบตเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 10 เบชเบนเบ™.

เบกเบฑเบ™ turns เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบงเปˆเบฒ blocks เบชเบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป‚เบ”เบโ€‹เบ›เบปเบโ€‹เบเบฐโ€‹เบ•เบด (เบชเบฐโ€‹เป€เบซเบกเบตโ€‹?) เป€เบ‚เบปเป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ block เบ‚เบญเบ‡โ€‹เบ›เบฐโ€‹เป€เบžเบ” 1 (เบ•เบฑเบ™โ€‹เบ„เบปเบ‡โ€‹เบ—เบตเปˆโ€‹)โ€‹, เป€เบŠเบดเปˆเบ‡โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เบ”เป‰เบงเบ 7 เบชเบนเบ™โ€‹เบšเบดเบ”โ€‹, เปƒเบซเป‰โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ‚เบญเบ‡ 10-17 เบเบฒเบ™โ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™ zero bits (เปเบฅเบฐโ€‹เบชเปˆเบงเบ™โ€‹เบ—เบตเปˆโ€‹เป€เบซเบผเบทเบญโ€‹เบˆเบฐ เป€เบ›เบฑเบ™เบชเบนเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ›เบฐเบกเบฒเบ™ 50%).

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เปƒเบ™ 100% เบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบกเบตเบชเบนเบ™เบซเบ™เบถเปˆเบ‡ byte เบเปˆเบญเบ™ 0x00, 0x00, 0xff, 0xff, เปเบฅเบฐเปƒเบ™เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบชเปˆเบงเบ™เบชเบฒเบกเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบตเบกเบตเบชเบญเบ‡เบชเบนเบ™ bytes. (เบšเบฒเบ‡เบ—เบตเบ„เบงเบฒเบกเบˆเบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเปƒเบŠเป‰ CBOR binary, เปเบฅเบฐเป€เบกเบทเปˆเบญเปƒเบŠเป‰เบ‚เปเป‰เบ„เบงเบฒเบก JSON, เบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” 2 - เบšเบฅเบฑเบญเบเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ—เบปเปˆเบงเป„เบ›เบซเบผเบฒเบ, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบšเบฅเบฑเบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบนเบ™ bytes เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบžเบปเบš 0x00, 0x00, 0xff, 0xff).

เป‚เบ”เบเบฅเบงเบกเปเบฅเป‰เบง, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบซเบกเบฒเบฐเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 250Kb.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เป„เบ”เป‰เบญเบตเบเป€เบฅเบฑเบเบ™เป‰เบญเบเป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ” juggling เป€เบฅเบฑเบเบ™เป‰เบญเบ: เบชเปเบฒเบฅเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบปเบ™เปƒเบˆเบเบฒเบ™เบกเบตเบชเบนเบ™เบชเบญเบ‡เบชเบฒเบกเบšเบดเบ”เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ•เบฑเบ™, เบชเบญเบ‡เบชเบฒเบกเบšเบดเบ”เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ•เบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡ ...
เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบขเปˆเบฒเบ‡เปเบ‚เบ‡เปเบฎเบ‡เบ—เบตเปˆเบˆเบฐเบขเบธเบ”, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบญเบฑเบ”เบ•เบฒเบ™เบตเป‰เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ archiver เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡.

เปƒเบ™เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบˆเบฒเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ‚เป‰เบญเบเป„เบ”เป‰เบฎเบฑเบš 3-4 bytes เบ•เปเปˆเบเบฒเบ™เบ‚เบฝเบ™, เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 6: 1. เบ‚เป‰เบญเบเบˆเบฐเบŠเบทเปˆเบชเบฑเบ”: เบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง;

เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ”เบต, เปเบ•เปˆ zlib (deflate) เบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เบชเบนเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปเบšเบšเป€เบเบปเปˆเบฒ, เบชเบปเบกเบ„เบงเบ™เปเบฅเบฐเป€เบเบปเปˆเบฒเปเบเปˆเป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ 32Kb เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบตเบšเบญเบฑเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเปเบ›เบเบ›เบฐเบซเบฅเบฒเบ”เปƒเบ™เบกเบทเป‰เบ™เบตเป‰ (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ–เป‰เบฒเบšเบฒเบ‡เบšเบฅเบฑเบญเบเบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบเบฐเปเบชเบ‚เปเป‰เบกเบนเบ™ 40Kb เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบกเบฑเบ™เบˆเบฐเป€เบฅเบตเปˆเบกเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบˆเบฐเบšเปเปˆเบญเป‰เบฒเบ‡เบญเบตเบ‡เป€เบ–เบดเบ‡เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ). เปƒเบ™ archivers เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก, เบ‚เบฐเบซเบ™เบฒเบ”เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบกเบฑเบเบˆเบฐเบ–เบทเบเบงเบฑเบ”เปเบ—เบเป€เบ›เบฑเบ™ megabytes เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบเบดเป‚เบฅเป„เบš.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบทเบšเบ•เปเปˆเบเบฒเบ™เบชเบถเบเบชเบฒ mini-archivers เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ—เบปเบ”เบชเบญเบš bzip2 (เบˆเบทเปˆเป„เบงเป‰, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ FLUSH เบกเบฑเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบญเบฑเบ”เบ•เบฒเบชเปˆเบงเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”เป€เบเบทเบญเบš 100: 1). เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบšเปเปˆเบ”เบตเบซเบผเบฒเบเบเบฑเบš FLUSH;

เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง

Libbz2 เบชเบฐเป€เบซเบ™เบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบ flush, เป€เบŠเบดเปˆเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบˆเบฐเบฅเป‰เบฒเบ‡เบžเบปเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก (เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš Z_FULL_FLUSH เปƒเบ™ zlib);

เปเบฅเบฐเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบ—เบตเปˆเบˆเบฐเบ—เบปเบ”เบชเบญเบšเปเบกเปˆเบ™ zstd. เบญเบตเบ‡เบ•เบฒเบกเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™, เบกเบฑเบ™เบšเบตเบšเบญเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡ gzip, เปเบ•เปˆเป„เบงเบเบงเปˆเบฒเบซเบผเบฒเบ, เบซเบผเบทเบ”เบตเบเบงเปˆเบฒ gzip.

เบญเบฐเบ™เบดเบˆเบฒ, เบ”เป‰เบงเบ FLUSH เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ”เบตเบซเบผเบฒเบ: เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 700Kb.

ะฏ เบ–เบฒเบกเบ„เปเบฒเบ–เบฒเบก เปƒเบ™เบซเบ™เป‰เบฒ github เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ•เบญเบšเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ„เบงเบ™เบ™เบฑเบšเป€เบ–เบดเบ‡ 10 bytes เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบขเบนเปˆเปƒเบเป‰เบเบฑเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš;

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบขเบธเบ”เบขเบนเปˆเปƒเบ™เบˆเบธเบ”เบ™เบตเป‰เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฑเบš archivers (เปƒเบซเป‰เบ‚เป‰เบญเบเป€เบ•เบทเบญเบ™เป€เบˆเบปเป‰เบฒเบงเปˆเบฒ xz, lzip, lzo, lz4 เบšเปเปˆเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เบ•เบปเบงเป€เบญเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเบšเปเปˆเบกเบต FLUSH, เปเบฅเบฐเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบงเบดเบ—เบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ” exotic เบซเบผเบฒเบ).

เปƒเบซเป‰เบเบฑเบšเบ„เบทเบ™เบซเบฒเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบˆเบฑเบ”เป€เบเบฑเบšเป€เบ‚เบปเป‰เบฒเปเบŸเป‰เบก.

เบšเบฑเบ™เบซเบฒเบ—เบตเบชเบญเบ‡ (เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡, เบšเปเปˆเปเบกเปˆเบ™เบกเบนเบ™เบ„เปˆเบฒ) เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เปเบกเปˆเบ™เบชเบฒเบเบ™เป‰เปเบฒเบ”เบฝเบง, เป€เบŠเบดเปˆเบ‡เบกเบตเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เป€เบชเบเบซเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบนเบ™เป€เบชเบเบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบšเบฅเบฑเบญเบเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เปเบ•เปˆเบเบฑเบ‡เป€เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เปเปˆเป„เบ›เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰:

  1. เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™ - เป€เบžเบตเปˆเบกเบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เปเบฅเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”; เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบ•เปเปˆเบกเบฒ;
  2. เบซเบผเบธเบ”เบœเปˆเบญเบ™เบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ–เป‰เบฒเบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™
    เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบตเบšเบญเบฑเบ”เปเบ•เปˆเบฅเบฐเบšเบฅเบฑเบญเบเบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”, เปเบฅเบฐเบšเบฑเบ™เบซเบฒเบˆเบฐเบซเบฒเบเป„เบ›เบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡ (เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบ•เปเปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เบšเบฅเบฑเบญเบเบˆเบฐเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบšเบฅเบฑเบญเบเบ™เบตเป‰). เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบตเป‰เปเบกเปˆเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบ—เบตเปˆเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบˆเบฐเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš. เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเบ—เบตเปˆเบชเบธเบ”: เปƒเบŠเป‰เบŠเบดเบšเบ—เบฑเบ‡เบซเบกเบปเบ” 4MB เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบฑเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบญเบฑเบ™เบ”เบฝเบง, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”, เปเบ•เปˆเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบชเบเบซเบฒเบ.
    เปเบกเปˆเบ™เปเบฅเป‰เบง, เบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท. เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบซเบ™เบฑเบ‡เบ•เบตเบ‡เบ—เบตเปˆเบกเบต BER เบ•เปˆเปเบฒเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเป„เบฅเบเบฐเป€เบงเบฅเบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบเบฒเบ” 20 เบ›เบต.

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ„เบปเป‰เบ™เบžเบปเบšเบงเปˆเบฒเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบเปƒเบ™เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเปƒเบ™เบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเบตเบšเบญเบฑเบ”เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 10 KB เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”.
เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบงเปˆเบฒเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเปƒเบŠเป‰เปเบกเปˆเบ™ paged;

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเปเบกเปˆเบ™ 16Kb (เบกเบตเบชเบฐเบซเบ‡เบงเบ™เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™). เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง imposes เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบšเบฑเบ™เบ—เบถเบเบชเบนเบ‡เบชเบธเบ”.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบเบงเปˆเบฒเบชเบญเบ‡เบชเบฒเบกเบเบดเป‚เบฅเป„เบšเปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เบ‚เป‰เบญเบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเปƒเบŠเป‰เบซเบ™เป‰เบฒ 32Kb (เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” 128 เบซเบ™เป‰เบฒเบ•เปเปˆเบŠเบดเบš).

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก:

  • เบžเบงเบเป€เบฎเบปเบฒเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰ zlib (deflate);
  • เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ” Z_SYNC_FLUSH;
  • เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เป„เบšเบ•เปŒเบ•เปเปˆเบ—เป‰เบฒเบ (เป€เบŠเบฑเปˆเบ™: 0x00, 0x00, 0xff, 0xff); เปƒเบ™ header เบžเบงเบเป€เบฎเบปเบฒเบŠเบตเป‰เบšเบญเบเบˆเปเบฒเบ™เบงเบ™ bytes เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบฑเบ”เบญเบญเบ;
  • เบžเบงเบเป€เบฎเบปเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เปƒเบ™ 32Kb เบซเบ™เป‰เบฒ; เบกเบตเบเบฐเปเบชเบ”เบฝเบงเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบžเบฒเบเปƒเบ™เบซเบ™เป‰เบฒ; เปƒเบ™เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡.

เปเบฅเบฐ, เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเบˆเบฐเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบชเบญเบ‡เบชเบฒเบก bytes เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบ•เปเปˆเบšเบฑเบ™เบ—เบถเบ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบšเปเปˆเบ‚เบฐเบซเบเบฒเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบ—เบธเบเป† byte เบ™เบฑเบšเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบซเบปเบงเบ‚เปเป‰เบกเบนเบ™

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡ / เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ.

เบ‚เป‰เบญเบเบฎเบนเป‰เบชเบฒเบกเบงเบดเบ—เบต:

  1. เบšเบฑเบ™เบ—เบถเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ™เป‰เปเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เบ—เปเบฒเบญเบดเบ”เบกเบตเบซเบปเบงเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฒเบง, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเบฑเบ™เบ—เบถเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡.
    เปƒเบ™เบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เบ—เบฑเบ‡เบชเปˆเบงเบ™เบซเบปเบง เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เบกเบตเบ„เบงเบฒเบกเบเบฒเบงเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰.
    เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เบฝเบงเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ;
  2. เบชเปˆเบงเบ™เบซเบปเบง เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบชเบฐเบ•เบฃเบตเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.
    เป‚เบ”เบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ„เบปเบ‡เบ—เบตเปˆ, เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบ•เปเปˆเบซเบปเบงเบซเบ™เบถเปˆเบ‡เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบ„เบปเบ™เบญเบทเปˆเบ™.
    เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ;
  3. เบšเบฑเบ™เบ—เบถเบเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบชเบฒเบเบ™เป‰เปเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เบ‚เบญเบšเป€เบ‚เบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡ (เบฅเบฑเบเบชเบฐเบ™เบฐ / เบฅเปเบฒเบ”เบฑเบšเบ‚เบญเบ‡เบ•เบปเบงเบญเบฑเบเบชเบญเบ™เบ—เบตเปˆเบซเป‰เบฒเบกเบžเบฒเบเปƒเบ™เบšเบฅเบฑเบญเบเบ‚เปเป‰เบกเบนเบ™). เบ–เป‰เบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบ—เบถเบ, เบžเบงเบเป€เบฎเบปเบฒเปเบ—เบ™เบ—เบตเปˆเบกเบฑเบ™เบ”เป‰เบงเบเบฅเปเบฒเบ”เบฑเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡ (เบซเบ™เบตเบˆเบฒเบเบกเบฑเบ™).
    เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบžเบดเบ—เบตเบเบฒเบ™ PPP.

เบ‚เป‰เบญเบเบˆเบฐเบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ 1:
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash
เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: เบฎเบนเป‰เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบซเบปเบงเบ•เปเปˆเป„เบ›. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเบœเปˆเบฒเบ™เบซเบปเบงเบ‚เปเป‰เบˆเบปเบ™เบเปˆเบงเบฒเบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบเบฑเบšเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบ 0xff (เบžเบทเป‰เบ™เบ—เบตเปˆเบŸเบฃเบต) เบซเบผเบทเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบซเบ™เป‰เบฒ.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ 2:
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบšเบฑเบ™เบ—เบถเบ (เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ headers) เบ•เปเปˆเบซเบ™เป‰เบฒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบœเบตเบเปเบœเปˆเบชเปˆเบงเบ™เบซเบปเบงเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เบ—เบปเปˆเบงเบซเบ™เป‰เบฒเบ•เปˆเบฒเบ‡เป†, เปเบ•เปˆเบ‚เป‰เบญเบเบกเบฑเบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™: เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เบชเปˆเบงเบ™เบซเบปเบงเปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเบ”เบฝเบง, เปเบ•เปˆเบชเปˆเบงเบ™เบซเบปเบง (เบ‚เบฐเบซเบ™เบฒเบ”เบ„เบปเบ‡เบ—เบตเปˆ) เบกเบฒเบˆเบฒเบเบ•เบปเป‰เบ™เบซเบ™เป‰เบฒ, เปเบฅเบฐ เบ‚เปเป‰เบกเบนเบ™ (เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›) เบกเบฒเบˆเบฒเบเบ—เป‰เบฒเบ. เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒ "เบžเบปเบš" (เบšเปเปˆเบกเบตเบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบซเบกเปˆ), เบžเบงเบเป€เบฎเบปเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบซเบ™เป‰เบฒเบ™เบตเป‰เบชเปเบฒเป€เบฅเบฑเบ”.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ 3:
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash
เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเบเบฒเบงเบซเบผเบทเบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบชเปˆเบงเบ™เบซเบปเบง; เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™ / เบญเปˆเบฒเบ™.
เบ‚เป‰เบญเบเบˆเบฐเปƒเบŠเป‰ 0xff เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบ (เป€เบŠเบดเปˆเบ‡เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบซเบ™เป‰เบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบถเบš), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบŸเบฃเบตเบˆเบฐเบšเปเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™.

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ›เบฝเบšเบ—เบฝเบš:

Option 1
Option 2
Option 3

เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”
-
+
+

เบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™
+
-
+

เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”
*
**
**

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบ 1 เบกเบตโ€‹เบ‚เปเป‰โ€‹เบšเบปเบโ€‹เบžเปˆเบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบฎเป‰เบฒเบโ€‹เปเบฎเบ‡โ€‹: เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบปเบงโ€‹เบ‚เปเป‰โ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เป€เบชเบโ€‹เบซเบฒเบโ€‹, เบ•เปˆเบญเบ‡โ€‹เป‚เบชเป‰โ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบ—เปเบฒโ€‹เบฅเบฒเบโ€‹. เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŸเบทเป‰เบ™เบ•เบปเบงเบ‚เปเป‰เบกเบนเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.
เปเบ•เปˆเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบกเบฑเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบˆเบฐเบˆเบทเปˆเบˆเปเบฒเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบซเบ™เป‰เบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบ "เปเบ•เบ", เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบฅเบปเบšเบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”. เป€เบญเบปเบฒเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบต.

เบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™:

  • เปƒเบ™เบ•เบปเบงเป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบง;
  • เปƒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบขเบนเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบ„เบงเบฒเบกเบเบฒเบง; เบšเบฑเบ™เบ—เบถเบเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ„เบปเบ‡เบ—เบตเปˆ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบฒเบ”เบ„เบฐเป€เบ™ 4 bytes เบ•เปเปˆเบšเบฑเบ™เบ—เบถเบ (เบชเบญเบ‡ bytes เบชเปเบฒเบฅเบฑเบš offset, เปเบฅเบฐเบชเบญเบ‡ bytes เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเบฒเบง);
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบฒเบกเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบปเบงเบฅเบฐเบ„เบญเบ™เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ, เบšเบงเบเบเบฑเบšเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ 1-2% เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ›เบฐเบกเบฒเบ™ parity เบเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เปเบฒเบญเบดเบ”.

เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบญเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ•เบปเป‰เบ™เบ•เป (เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบ‚เบฝเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”). เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ›เบฐเบ–เบดเป‰เบกเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบธเบ”เบ—เป‰เบฒเบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”.

เบšเบฒเบ‡เบ—เบตเบกเบทเป‰เบซเบ™เบถเปˆเบ‡เบ‚เป‰เบญเบเบเบฑเบ‡เบˆเบฐเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบฎเบทเบญเบ—เบตเปˆเป€เบ”เบตเบ™เบ—เบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เป‚เบฅเบเปเบฅเบฐเบ”เบฒเบงเบญเบฑเบ‡เบ„เบฒเบ™, เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบขเปˆเบฒเบ‡เบชเบดเป‰เบ™เป€เบŠเบตเบ‡เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เบฅเบฑเบ‡เบชเบต cosmic, ...

เบชเปเบฒเบฅเบฑเบšเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเบชเบฒเบก: เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เปƒเบซเป‰เบกเบฑเบ™เบชเบญเบ‡เบ”เบฒเบงเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฝเบ‡เปเบ•เปˆเบเป‰เบญเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบฒเบกเบเบฒเบงเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบšเบฒเบ‡เบ—เบตเบ‚เป‰เบญเบเบกเบตเบ„เบงเบฒเบกเบฅเปเบฒเบญเบฝเบ‡, เปเบ•เปˆเบ‚เป‰เบญเบเบˆเบฐเบ•เป‰เบญเบ‡เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ” - เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบšเบฑเบ‡เบ„เบฑเบšเบ•เบปเบงเป€เบญเบ‡เปƒเบซเป‰เป€เบฎเบฑเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบšเปเปˆเบกเบฑเบ.

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก: เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ•เปˆเบญเบ‡เป‚เบชเป‰ "header เบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบง - เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›" เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Bit Fields เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฝเบ™

เบ‚เป‰เบญเบเบšเปเปˆเบˆเบทเปˆเบงเปˆเบฒเบ‚เป‰เบญเบเป„เบ”เป‰เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบขเบนเปˆเปƒเบช, เปเบ•เปˆเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:
เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบฅเบฒเบเบเบฒเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฑเบ”เบชเบฑเบ™เบซเบผเบฒเบเบšเบดเบ”เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบธเบ‡.
เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเปˆเบฒเบงเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบฅเบถเบš bits เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เป€เบ•เบฑเบกเป„เบ›เบ”เป‰เบงเบ 1s, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™ 1 เบซเบฒ 0, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบš "เบ—เบธเบ‡เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡" เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ 1, เบชเปเบฒเบฅเบฑเบš "เบ—เบธเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡" เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ 0.

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฒเบ™เบงเบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบŸเบ”เบญเบฒเบ”เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

  1. เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡ โ€œเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบเบฒเบงเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเป‰เบงโ€;
  2. เบšเบฑเบ™เบ—เบถเบเบ„เบงเบฒเบกเบเบฒเบง;
  3. เบเปเบฒเบ™เบปเบ” "เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™" เบ—เบธเบ‡;
  4. เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™;
  5. เบเปเบฒเบ™เบปเบ”เบ—เบธเบ‡ "เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡".

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบ—เบธเบ‡ "เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”", เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” 4 เบ—เบธเบ‡เบšเบดเบ”.

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡ "1111" - เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบšเปเปˆเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐ "1000" - เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”; เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบฑเบ”โ€‹เบ‚เบงเบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ„เบฒเบ”โ€‹เบ„เบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบฅเบฑเบ”โ€‹เบ›เบฒเบ™โ€‹เบเบฒเบ‡โ€‹, เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบงเบ”โ€‹เบžเบปเบšโ€‹เปเบฅเบฐโ€‹เบ›เบธเบ‡โ€‹เปเบ•เปˆเบ‡โ€‹.

เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เปเบ•เปˆเบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เบ›เบดเบ”เป„เบŸเบŸเป‰เบฒเบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™, เป€เบŠเบดเปˆเบ‡, เปเบ™เปˆเบ™เบญเบ™, เปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™, เปเบ•เปˆเบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเป„เบเบˆเบฒเบเป€เบซเบ”เบœเบปเบ™เบ”เบฝเบง (เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบ•เบปเป‰เบ™เบ•เป) เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก: เบ‚เปเปƒเบซเป‰เบเป‰เบฒเบงเบ•เปเปˆเป„เบ›เปƒเบ™เบเบฒเบ™เบŠเบญเบเบซเบฒเบ—เบฒเบ‡เบญเบญเบเบ—เบตเปˆเบ”เบต.

เป€เบŠเบฑเบsums

Checksums เบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ (เบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™) เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบญเปˆเบฒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ„เบงเบ™เบ‚เบฝเบ™. เปเบฅเบฐ, เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ™เป‰เบญเบเบ—เบตเปˆเบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบžเบงเบเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเบชเบฐเป€เบซเบกเบต.

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ checksum เบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบฎเบนเป‰เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡เบ•เบปเป‰เบ™เบเปเบฒเป€เบ™เบตเบ”เบ‚เบญเบ‡เบกเบฑเบ™. (เบเบปเบเป€เบงเบฑเป‰เบ™, เบšเบฒเบ‡เบ—เบต, เบชเปเบฒเบฅเบฑเบšเบกเบฐเบ™เบธเบ”เบ•เปˆเบฒเบ‡เบ”เบฒเบงเบ—เบตเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบ - เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบญเบกเปเบ›เบ‡เป€เบŠเบฑเบเป„เบ”เป‰เป€เบŠเบฑเปˆเบ™เบเบฑเบ™).

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ–เป‰เบฒเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™ intact, checksums เปเบกเปˆเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบ”เบต.

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ‚เบญเบ‡เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ checksum เบšเปเปˆเป„เบ”เป‰เบเบปเบเบ„เปเบฒเบ–เบฒเบกเปƒเบ”เป† - CRC. เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบฒเบ‡เบ„เบฐเบ™เบดเบ”เบชเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” 100% เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบชเบธเปˆเบก algorithm เบ™เบตเป‰เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™ collision เบšเปเปˆเบซเบผเบฒเบเบเปˆเบงเบฒเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเปเบกเปˆเบ™เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”, เบซเบผเบทเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ—เบฐเบเบฑเบ™, เปเบ•เปˆเบกเบฑเบ™เบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ: เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบ‚เป‰เบญเบเบžเบปเบš, เบšเปเปˆเบกเบตเบฎเบนเบšเปเบšเบšเปƒเบ”เป†เบ—เบตเปˆเบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเปเบกเปˆเบ™เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบชเบถเบเบชเบฒ volumetric: เบชเปˆเบงเบ™ 1, เบชเปˆเบงเบ™ 2 (เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบเบฑเบš narod.ruโ€‹, เบ‚เปโ€‹เบญเบฐโ€‹เป„เบžโ€‹).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบ checksum เปเบกเปˆเบ™เบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”; เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบเบฒเบง, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฅเบทเบญเบ polynomial.

เบเบฒเบ™เป€เบฅเบทเบญเบเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡ checksum เบšเปเปˆเปเบกเปˆเบ™เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบเป‰เบญเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ”.

เปƒเบซเป‰เบ‚เป‰เบญเบเบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡:
เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐ byte เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash เปเบฅเบฐ checksum เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก, เปƒเบซเป‰เบ„เบดเบ”เป„เบฅเปˆเบˆเปเบฒเบ™เบงเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบ•เปเปˆเบฅเป‰เบฒเบ™เบšเบฑเบ™เบ—เบถเบ:

เบ‚เปเป‰เบกเบนเบ™, byte
Checksum, byte
เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเบงเบ”เบžเบปเบš
เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡
เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบฑเบ‡เปเบปเบ”

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

เบกเบฑเบ™เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ - เบญเบตเบ‡เบ•เบฒเบกเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ›เป‰เบญเบ‡เบเบฑเบ™, เป€เบฅเบทเบญเบเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡ checksum เบ—เบตเปˆเบกเบตเบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบ‚เบญเบ‡เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ - เปเบฅเบฐ trick เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ–เบปเบ‡.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเบฑเบš checksums เบชเบฑเป‰เบ™: เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบ”เบตเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเบนเบ‡เบžเปเบชเบปเบกเบ„เบงเบ™เบ—เบตเปˆเบˆเบฐเบเบญเบกเบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบชเบธเปˆเบกเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบกเบตเบšเบปเบ”เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบš Habre เบญเบฐเบ—เบดเบšเบฒเบเบขเบนเปˆเปเบฅเป‰เบง เบšเบฑเบ™เบซเบฒเปƒเบ™เบŠเบตเบงเบดเบ”เบˆเบดเบ‡.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆ checksum เปเบšเบšเบชเบธเปˆเบกเป€เบเบทเบญเบšเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰ checksums เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฒเบง 32 bits เบซเบผเบทเบเบฒเบงเบเบงเปˆเบฒ. (เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบซเบผเบฒเบเบเบงเปˆเบฒ 64 เบšเบดเบ”, เบŸเบฑเบ‡เบŠเบฑเบ™ cryptographic hash เบกเบฑเบเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰).

เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ‚เบฝเบ™เป„เบงเป‰เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเป‚เบ”เบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบˆเบฐเปƒเบŠเป‰ checksum 32-bit (16 bits เปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป, เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ—เบฐเบเบฑเบ™เปเบกเปˆเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 0.01%; เปเบฅเบฐ 24 bits, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒ. เป€เบงเบปเป‰เบฒ, เบšเปเปˆเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เบซเบผเบทเบšเปเปˆเบกเบต).

เบเบฒเบ™เบ„เบฑเบ”เบ„เป‰เบฒเบ™เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบšเบฑเบ™เบ—เบถเบเบ—เบธเบ byte เปƒเบ™เป€เบงเบฅเบฒเป€เบฅเบทเบญเบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เป€เบžเบทเปˆเบญเบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰ 4 bytes เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบšเป? เบกเบฑเบ™เบ”เบตเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบšเปเปˆเบšเบตเบšเบญเบฑเบ”เบซเบผเบทเป€เบžเบตเปˆเบก checksum เบšเป? เปเบ™เปˆเบ™เบญเบ™, เบšเปเปˆเบกเบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ” เบšเปเปˆเป„เบ”เป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ, เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ polynomial, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆ reinvent เบฅเปเป‰, เปเบ•เปˆเป€เบญเบปเบฒ CRC-32C เบ—เบตเปˆเบ™เบดเบเบปเบกเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™.
เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบเบงเบ”เบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” 6 เบšเบดเบ”เปƒเบ™เปเบžเบฑเบเป€เบเบฑเบ”เป€เบ–เบดเบ‡ 22 เป„เบšเบ•เปŒ (เบšเบฒเบ‡เบ—เบตเบญเบฒเบ”เป€เบ›เบฑเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”เบชเบณเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ), เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” 4 เบšเบดเบ”เปƒเบ™เปเบžเบฑเบเป€เบเบฑเบ”เบชเบนเบ‡เป€เบ–เบดเบ‡ 655 เป„เบšเบ•เปŒ (เบเบฑเบ‡เป€เบ›เบฑเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›เบชเบณเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ), 2 เบซเบผเบทเบˆเบณเบ™เบงเบ™เบ„เบตเบเบ‚เบญเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เปเบžเบฑเบเป€เบเบฑเบ”. เบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปƒเบ”เป†.

เบ–เป‰เบฒเปƒเบœเบชเบปเบ™เปƒเบˆเบฅเบฒเบเบฅเบฐเบญเบฝเบ”

เบšเบปเบ”เบ„เบงเบฒเบกเบงเบดเบเบดเบžเบตเป€เบ”เบ เบเปˆเบฝเบงเบเบฑเบš CRC.

เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฅเบฐเบซเบฑเบ” CRC-32c เบชเบธเบ” เป€เบงเบฑเบšเป„เบŠเบ—เปŒ Koopman โ€” เบšเบฒเบ‡เบ—เบตเบœเบนเป‰เบŠเปˆเบฝเบงเบŠเบฒเบ™เบ”เป‰เบฒเบ™ CRC เบŠเบฑเป‰เบ™เบ™เปเบฒเปƒเบ™เป‚เบฅเบ.

ะ’ เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™ เบกเบตเปเบกเปˆเบ™ เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบ‚เป‰เบญเบเบšเปเปˆเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เปเบฅเบฐเบ‚เป‰เบญเบเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เปเบฅเบฐเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบ—เบตเปˆเบ”เบต.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™: เบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เบ„เบดเบ”เป„เบฅเปˆ checksum เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเบตเบšเบญเบฑเบ”เบซเบผเบทเบšเปเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบšเป?

เบ‚เปเป‰เป‚เบ•เป‰เปเบเป‰เบ‡เปƒเบ™เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ checksum เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบตเบšเบญเบฑเบ”:

  • เบžเบงเบเป€เบฎเบปเบฒเบชเบธเบ”เบ—เป‰เบฒเบเบ•เป‰เบญเบ‡เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™ - เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบกเบฑเบ™เป‚เบ”เบเบเบปเบ‡ (เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเบตเบšเบญเบฑเบ” / เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”, เบ„เบงเบฒเบกเป€เบชเบเบซเบฒเบเบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเปเบ•เบเบซเบฑเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†เบˆเบฐเบ–เบทเบเบเบงเบ”เบชเบญเบš);
  • เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ deflate เปƒเบ™ zlib เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปƒเบซเบเปˆเปเบฅเบฐ เบšเปเปˆเบ„เบงเบ™ เบซเบผเบธเบ”เบฅเบปเบ‡เบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™ "crooked" เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบกเบฑเบเบˆเบฐเบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฐเปเบชเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป‚เบ”เบเบฅเบงเบกเบ‚เบญเบ‡ undetecting เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ” (เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฑเบš inverting เบšเบดเบ”เบ”เบฝเบงเปƒเบ™เบšเบฑเบ™เบ—เบถเบเบชเบฑเป‰เบ™, zlib เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เปƒเบ™เบ›เบฐเบกเบฒเบ™เบซเบ™เบถเปˆเบ‡เบชเปˆเบงเบ™เบชเบฒเบกเบ‚เบญเบ‡เบเปเบฅเบฐเบ™เบต).

เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ•เปเปˆเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ checksum เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบตเบšเบญเบฑเบ”:

  • CRC เปเบกเปˆเบ™ "เบ›เบฑเบš" เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ” (เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบชเบฒเบเบ™เป‰เปเบฒเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเบฐเปเบชเบœเบปเบ™เบœเบฐเบฅเบดเบ”, เป€เบŠเบดเปˆเบ‡, เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ” "เบˆเบฑเบš" เบเบฒเบ™เบ‚เบฑเบ”เบเบฑเบ™);
  • เบ‚เป‰เบญเบเบšเปเปˆเบกเบฑเบเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเปเบ•เบเบซเบฑเบเป„เบ›เบซเบฒ decompressor, เปƒเบœโ€‹เบˆเบฐโ€‹เบฎเบนเป‰เบฅเบฒเบงเบˆเบฐเบ•เบญเบšเป‚เบ•เป‰เปเบ™เบงเปƒเบ”.

เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ deviate เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ checksum เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบšเบตเบšเบญเบฑเบ”.

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก: เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ CRC-32C, เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆ checksum เบˆเบฒเบเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆ flash (เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”).

เบŠเป‰เบณเบŠเป‰เบญเบ™

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบšเปเปˆเป„เบ”เป‰, เปเบ™เปˆเบ™เบญเบ™, เบฅเบปเบšเบฅเป‰เบฒเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™, เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ (เป‚เบ”เบเบ„เปเบฒเบชเบฑเปˆเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”) เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™ irrecoverable.

เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.
เบฅเบฐเบซเบฑเบ” Hamming เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบ, เบฅเบฐเบซเบฑเบ”เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ Reed-Solomon, เบชเปเบฒเป€เบ™เบปเบฒเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเบญเบฑเบ™เบฅเบงเบกเบเบฑเบš checksums, เบซเบผเบทเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบŠเบฑเปˆเบ™ RAID-6 เบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเบŸเบทเป‰เบ™เบ•เบปเบงเบ‚เปเป‰เบกเบนเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบชเปเป‰เบฅเบฒเบ”เบšเบฑเบ‡เบซเบผเบงเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.
เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบกเบธเปˆเบ‡เบซเบกเบฑเป‰เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบขเปˆเบฒเบ‡เปเบœเปˆเบซเบผเบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ•เป‰เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบ—เปเบฒเบญเบดเบ”เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบ•เบปเบงเป€เบฎเบปเบฒเป€เบญเบ‡เบˆเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบฅเบทเบญเบเป€เบญเบปเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

เบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบงเปˆเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบˆเบฑเบšเป„เบ”เป‰เป„เบงเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเบˆเบฐเป„เบงเป„เบ”เป‰. เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบžเบปเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบˆเบธเบ”เปƒเบ”เปเบ”เปˆ?

  1. เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ” (เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹เบšเบฒเบ‡โ€‹เบขเปˆเบฒเบ‡โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบเบฒเบ™โ€‹เบžเบฐโ€‹เบฅเบฑเบ‡โ€‹เบ‡เบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ›เบดเบ”โ€‹, Raspberry frozeโ€‹, ... )
    เบญเบฐเบ™เบดเบˆเบฒ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเปเปˆเบชเบปเบ™เปƒเบˆเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบนเบ™เป€เบชเบ;
  2. เบ‚เบฝเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” (เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เป€เบซเบ”เบœเบปเบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบชเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‚เบฝเบ™)
    เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ—เบฑเบ™เบ—เบตเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเปˆเบฒเบ™เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบ;
  3. เบเบฒเบ™เบšเบดเบ”เป€เบšเบทเบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ;
  4. เบเบฒเบ™เบญเปˆเบฒเบ™เบœเบดเบ”เบžเบฒเบ”
    เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบกเบฑเบ™, เบ–เป‰เบฒ checksum เบšเปเปˆเบเบปเบ‡เบเบฑเบ™, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบเบฒเบ™เบญเปˆเบฒเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเบชเบฒเบกเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เบเบฒเบ™เบชเปเป‰เบฅเบฒเบ”เบšเบฑเบ‡เบซเบผเบงเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ) เบšเปเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบฅเบฐเบซเบฑเบ”. เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบเบฑเบ‡เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบชเบธเบ”.

เบชเบฐเบซเบผเบธเบšเบชเบฑเบ‡เบฅเบงเบก: เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ–เบดเป‰เบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™, เปเบ•เปˆเบ–เป‰เบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ™เบตเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบšเบฑเบ™เบซเบฒ (เบ”เป‰เบงเบเบชเบฐเบ–เบดเบ•เบดเบ—เบตเปˆเบชเบฐเบชเบปเบกเปเบฅเป‰เบงเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เป€เบฅเบทเบญเบเบ›เบฐเป€เบžเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”).

เบญเบทเปˆเบ™ เป†

เปเบ™เปˆเบ™เบญเบ™, เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบšเปเปˆเป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเปเบเป‰เป„เบ‚เบ—เบธเบเบฎเบนเบšเปเบšเบš (เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เป€เบ‚เบฑเป‰เบกโ€‹เปเบ‚เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบซเบกเบปเบ”โ€‹เป„เบ›โ€‹เปเบฅเป‰เบงโ€‹), เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป„เบ›เป„เบฅเบเบฐเบชเบฑเป‰เบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบšเบฒเบ‡เบˆเบธเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบชเปเบฒเบœเบฑเบ”เบเบฑเบšเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.

  • เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ” "เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™"
    เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบˆเบฐเบšเปเปˆเบกเบตเบซเบ™เป‰เบฒเบžเบดเป€เบชเบ”เบ—เบตเปˆเบกเบต metadata, เบเบฐเบ—เบนเป‰เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†, เปเบ•เปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบซเบปเบงเบ‚เปเป‰เบ”เบฝเบงเบ—เบตเปˆเบ‚เบฝเบ™เบ„เบทเบ™เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”.
    เบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เปƒเบชเปˆเปƒเบ™เบซเบ™เป‰เบฒเป€เบงเบฑเบšเบ•เปˆเบฒเบ‡เป†, เบšเปเปˆเบกเบตเบˆเบธเบ”เบ”เบฝเบงเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง, เปเบฅเบฐเบ‚เป‰เบญเบเบเปเปˆเบกเบฑเบเบกเบฑเบ™;
  • เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš.
    เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบšเปเปˆเบกเบตเปเบฒเบเป€เบฅเบเป€เบงเบตเบŠเบฑเบ™เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเปเบกเปˆเบ™เบŠเบปเปˆเบง!
    เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบกเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™ Magic (เบฅเบฒเบเป€เบŠเบฑเบ™) เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เปƒเบชเปˆเบซเบปเบงเบซเบ™เป‰เบฒ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเบตเป‰เบšเบญเบเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปƒเบŠเป‰. (เบ‚เป‰เบญเบเบšเปเปˆเบ„เบดเบ”เบงเปˆเบฒเปƒเบ™เบ—เบฒเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบฐเบกเบตเบซเบผเบฒเบเบชเบดเบšเบ„เบปเบ™);
  • เปƒเบŠเป‰ header เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบ—เบถเบ (เบŠเบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เบกเบตเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ), เบžเบฐเบเบฒเบเบฒเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบง 1 byte เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”;
  • เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบชเปˆเบงเบ™เบซเบปเบง เปเบฅเบฐเบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ—เบตเปˆเบ–เบทเบเบ•เบฑเบ”เบญเบญเบเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบšเบตเบšเบญเบฑเบ”, เปƒเบซเป‰เปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›.

เบŠเปˆเบงเบเบซเบผเบฒเบ เป€เบ„เบทเปˆเบญเบ‡เบเปเบฒเป€เบ™เบตเบ”เบญเบญเบ™เป„เบฅเบ™เปŒ เบฅเบฐเบซเบฑเบ” Huffman. เปƒเบ™เป€เบงเบฅเบฒเบžเบฝเบ‡เบชเบญเบ‡เบชเบฒเบกเบ™เบฒเบ—เบตเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบฅเบฐเบซเบฑเบ”เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ›เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™.

เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™

เบ„เปเบฒเบชเบฑเปˆเบ‡ byte

เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบเปˆเบเบงเปˆเบฒเปœเบถเปˆเบ‡เป„เบšเบ•เปŒเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเปƒเบซเบเปˆเบชเบธเบ” (เบฅเบณเบ”เบฑเบšเป„เบšเบ•เปŒเบ‚เบญเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ), เบ™เบฑเป‰เบ™เบ„เบท 0x1234 เบ–เบทเบเบ‚เบฝเบ™เป€เบ›เบฑเบ™ 0x12, 0x34.

Pagination

เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปเบŸเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™.

เบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™ 32Kb, เปเบ•เปˆเบšเปเปˆเป€เบเบตเบ™ 1/4 เบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบŠเบดเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (เบชเปเบฒเบฅเบฑเบšเบŠเบดเบš 4MB, 128 เบซเบ™เป‰เบฒเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบš).

เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบˆเบฒเบเบซเบ™เป‰เบฒเบญเบทเปˆเบ™เป† (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเบซเบ™เบถเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเบญเบทเปˆเบ™).

เบซเบ™เป‰เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ•เบปเบงเป€เบฅเบเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ—เปเบฒเบกเบฐเบŠเบฒเบ” (เปƒเบ™เบฅเปเบฒเบ”เบฑเบšเบ•เบฑเป‰เบ‡เป„เบ›เบซเบฒเปƒเบซเบเปˆเบ‚เบญเบ‡เบ—เบตเปˆเบขเบนเปˆ), เป‚เบ”เบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเป€เบฅเบ 0 (เบซเบ™เป‰เบฒเบชเบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ 0, เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆ 32Kb, เบซเบ™เป‰เบฒเบ—เบตเบชเบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆ 64Kb, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เบŠเบดเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบงเบปเบ‡เบˆเบญเบ™ buffer (ring buffer), เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบเบฒเบ™เบ‚เบฝเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เป„เบ›เบซเบฒเบซเบ™เป‰เบฒ 0, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบซเบกเบฒเบเป€เบฅเบ 1, ..., เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบซเบ™เป‰เบฒเบชเบธเบ”เบ—เป‰เบฒเบ, เบฎเบญเบšเบงเบฝเบ™เปƒเบซเบกเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบฅเบฐเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบชเบทเบšเบ•เปเปˆเบˆเบฒเบเบซเบ™เป‰เบฒเบชเบนเบ™. .

เบžเบฒเบเปƒเบ™เบซเบ™เป‰เบฒ

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash
เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒ, เบซเบปเบงเบซเบ™เป‰เบฒ 4-byte เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบ›เบฑเบ™ header checksum (CRC-32C), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบšเบฑเบ™เบ—เบถเบเบˆเบฐเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบš "header, เบ‚เปเป‰เบกเบนเบ™, checksum".

เบซเบปเบงเบ‚เปเป‰เปœเป‰เบฒ (เบชเบตเบ‚เบฝเบงเป€เบ›เบทเป‰เบญเบ™เบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ”) เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ:

  • เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป€เบฅเบ Magic เบชเบญเบ‡เป„เบš (เบเบฑเบ‡เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบ‚เบญเบ‡เบชเบฐเบšเบฑเบšเบฎเบนเบšเปเบšเบš)
    เบชเปเบฒเบฅเบฑเบšเบชเบฐเบšเบฑเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบกเบฑเบ™เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเป€เบ›เบฑเบ™ 0xed00 โŠ• ะฝะพะผะตั€ ัั‚ั€ะฐะฝะธั†ั‹;
  • เป‚เบ•เบ™เบฑเบšเบชเบญเบ‡เป„เบšเบ•เปŒ โ€œเบชเบฐเบšเบฑเบšเปœเป‰เบฒโ€ (เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณเบ‚เบฝเบ™เบ„เบทเบ™เปเบฒเบเป€เบฅเบเบฎเบญเบšเบงเบฝเบ™).

เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเป€เบงเบฑเบšเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบšเบตเบšเบญเบฑเบ” (เบฅเบฐเบšเบปเบšเบเบฒเบ™ deflate algorithm เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰). เบšเบฑเบ™เบ—เบถเบเบ—เบฑเบ‡เปเบปเบ”เบขเบนเปˆเปƒเบ™เปœเป‰เบฒเบ”เบฝเบงเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบขเบนเปˆเปƒเบ™เบเบฐเบ—เบนเป‰เบ”เบฝเบง (เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ—เบปเปˆเบงเป„เบ›เบ–เบทเบเปƒเบŠเป‰), เปเบฅเบฐเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปœเป‰เบฒเปƒเปเปˆเปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เบˆเบฐเป€เบฅเบตเปˆเบกเปƒเปเปˆ. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบžเบทเปˆเบญเบšเบตเบšเบญเบฑเบ”เบšเบฑเบ™เบ—เบถเบเปƒเบ”เป†, เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบซเบ™เป‰เบฒเบ™เบตเป‰ (เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบญเบฑเบ™เบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™.

เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบˆเบฐเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบ”เป‰เบงเบเบ—เบธเบ‡ Z_SYNC_FLUSH, เปเบฅเบฐเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบเบฐเปเบชเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบˆเบฐเบกเบต 4 เป„เบšเบ•เปŒ 0x00, 0x00, 0xff, 0xff, เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เบณเปœเป‰เบฒเบ”เป‰เบงเบเปœเบถเปˆเบ‡ เบซเบผเบท เบชเบญเบ‡เบชเบนเบ™เป„เบšเบ—เปŒ.
เบžเบงเบเป€เบฎเบปเบฒเบเบปเบเป€เบฅเบตเบเบฅเปเบฒเบ”เบฑเบšเบ™เบตเป‰ (เบเบฒเบง 4, 5 เบซเบผเบท 6 เป„เบšเบ•เปŒ) เป€เบกเบทเปˆเบญเบ‚เบฝเบ™เปƒเบชเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash.

เบซเบปเบงเบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™ 1, 2 เบซเบผเบท 3 bytes เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ:

  • one bit (T) เบŠเบตเป‰เบšเบญเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบ: 0 - context, 1 - log;
  • เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบเบฒเบงเบ•เบปเบงเปเบ› (S) เบˆเบฒเบ 1 เบซเบฒ 7 bits, เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡ header เปเบฅเบฐ "เบซเบฒเบ‡" เบ—เบตเปˆเบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบšเบฑเบ™เบ—เบถเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ decompression;
  • เบ„เบงเบฒเบกเบเบฒเบงเบšเบฑเบ™เบ—เบถเบ (L).

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบกเบนเบ™เบ„เปˆเบฒ S:

S
เบ„เบงเบฒเบกเบเบฒเบงเบชเปˆเบงเบ™เบซเบปเบง, เป„เบšเบ•เปŒ
เบเบปเบเป€เบฅเบตเบเปƒเบ™เบเบฒเบ™เบ‚เบฝเบ™, byte

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)

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเปเบˆเป‰เบ‡เปเบ™เบงเปƒเบ”:
เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash
เบชเบตเป€เบซเบผเบทเบญเบ‡เปƒเบ™เบ™เบตเป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ T, เบชเบตเบ‚เบฒเบงเบžเบฒเบเบชเบฐเบซเบ™เบฒเบก S, เบชเบตเบ‚เบฝเบง L (เบ„เบงเบฒเบกเบเบฒเบงเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เป€เบ›เบฑเบ™ bytes), เบชเบตเบŸเป‰เบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”, เบชเบตเปเบ”เบ‡เบ‚เบญเบ‡ bytes เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆ flash memory.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบซเบปเบงเบšเบฑเบ™เบ—เบถเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบงเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ” (เป€เบ–เบดเบ‡ 63 + 5 bytes เปƒเบ™เบฎเบนเบšเปเบšเบšเบšเบตเบšเบญเบฑเบ”) เปƒเบ™เบซเบ™เบถเปˆเบ‡ byte.

เบซเบผเบฑเบ‡เบˆเบฒเบเปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบ, เป€เบŠเบฑเบ CRC-32C เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰, เป€เบŠเบดเปˆเบ‡เบ„เปˆเบฒ inverted เบ‚เบญเบ‡ checksum เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™ (init).

CRC เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡ "เป„เบฅเบเบฐเป€เบงเบฅเบฒ", เบชเบนเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบ (เบšเบงเบเบซเบผเบทเบฅเบปเบšเบšเบดเบ” inversion เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™): เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” ring buffer เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ NOR flash.
เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เป„เบฅเปˆ CRC เบ‚เบญเบ‡เบ—เบธเบ bytes เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ‚เบญเบ‡ headers เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.

เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก checksum เป‚เบ”เบเบเบปเบ‡เปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบปเบงเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเป„เบ›.

header เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆ byte เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบˆเบฒเบ 0x00 เปเบฅเบฐ 0xff (เบ–เป‰เบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ byte เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ header เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบžเบปเบš 0xff, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰; 0x00 เบชเบฑเบ™เบเบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”).

เบ•เบปเบงเบขเปˆเบฒเบ‡ Algorithms

เบเบฒเบ™เบญเปˆเบฒเบ™เบˆเบฒเบ Flash Memory

เบเบฒเบ™เบญเปˆเบฒเบ™เปƒเบ”เป†เบเปเปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบš checksum.
เบ–เป‰เบฒ checksum เบšเปเปˆเบเบปเบ‡เบเบฑเบ™, เบเบฒเบ™เบญเปˆเบฒเบ™เบ–เบทเบเบŠเป‰เปเบฒเบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปƒเบ™เบ„เบงเบฒเบกเบซเบงเบฑเบ‡เบ—เบตเปˆเบˆเบฐเบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡.

(เบ™เบฑเป‰เบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเปเบฒเบ, Linux เบšเปเปˆเป„เบ”เป‰เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบˆเบฒเบ NOR Flash, เบขเบทเบ™เบขเบฑเบ™เปเบฅเป‰เบง)

เบ‚เบฝเบ™เปƒเบชเปˆ flash memory

เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™.
เปƒเบซเป‰เป€เบฎเบปเบฒเบญเปˆเบฒเบ™เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ.

เบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเปˆเบฒเบ™เบšเปเปˆเบเบปเบ‡เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ‚เบฝเบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบกเบตเบชเบนเบ™เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.

เบเบฒเบ™เบเบฐเบเบฝเบก microcircuit เปƒเบซเบกเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™

เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบชเปˆเบงเบ™เบซเบปเบงเบ—เบตเปˆเบกเบตเบฎเบธเปˆเบ™ 1 เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบชเปˆเบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ” (เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบนเบ™).
เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบชเบฐเบžเบฒเบšเบเบฒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ–เบทเบเบ‚เบฝเบ™เปƒเบชเปˆเบซเบ™เป‰เบฒเบ™เบตเป‰ (เบ›เบฐเบเบญเบšเบ”เป‰เบงเบ UUID เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ flash เปเบกเปˆเบ™เบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰.

เบเบณเบฅเบฑเบ‡เป‚เบซเบผเบ”เป€เบ„เบทเปˆเบญเบ‡

เป€เบกเบทเปˆเบญเป‚เบซเบฅเบ”, 8 bytes เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒ (header + CRC) เบ–เบทเบเบญเปˆเบฒเบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบต Magic Number เบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบˆเบฑเบเบซเบผเบท CRC เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.
เบˆเบฒเบเบซเบ™เป‰เบฒ "เบ–เบทเบเบ•เป‰เบญเบ‡", เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบฎเบธเปˆเบ™เบชเบนเบ‡เบชเบธเบ”เปเบกเปˆเบ™เบ–เบทเบเป€เบฅเบทเบญเบ, เปเบฅเบฐเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบžเบงเบเบกเบฑเบ™.
เบšเบฑเบ™เบ—เบถเบเบ—เปเบฒเบญเบดเบ”เบ–เบทเบเบญเปˆเบฒเบ™, เบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡ CRC เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบ—เบธเบ‡ "เบชเบฐเบžเบฒเบšเบเบฒเบ™" เบ–เบทเบเบเบงเบ”เบชเบญเบš. เบ–เป‰เบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ”เบต, เบซเบ™เป‰เบฒเบ™เบตเป‰เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบ–เป‰เบฒเบšเปเปˆ, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบซเบ™เป‰เบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบˆเบปเบ™เบเปˆเบงเบฒเบžเบงเบเป€เบฎเบปเบฒเบŠเบญเบเบซเบฒเบซเบ™เป‰เบฒ "เบชเบปเบ”".
เปเบฅเบฐเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบžเบปเบšเป€เบซเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบญเปˆเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบเบฑเบšเบ—เบธเบ‡ "เบชเบฐเบžเบฒเบšเบเบฒเบ™".
เบšเบฑเบ™เบ—เบถเบเบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก zlib (เบกเบฑเบ™เบˆเบฐเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบžเบตเปˆเบกเปƒเบชเปˆเบซเบ™เป‰เบฒเบ™เบตเป‰).

เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆเบ™โ€‹เบกเบฑเบ™โ€‹, เบเบฒเบ™โ€‹เบ”เบฒเบงโ€‹เป‚เบซเบผเบ”โ€‹เปเบกเปˆเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ”โ€‹เบชเบปเบกโ€‹เบšเบนเบ™โ€‹, เบชเบฐโ€‹เบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบนโ€‹, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹.

เบเบฒเบ™เป€เบžเบตเปˆเบกเบฅเบฒเบเบเบฒเบ™เบงเบฒเบฅเบฐเบชเบฒเบ™

เบžเบงเบเป€เบฎเบปเบฒเบšเบตเบšเบญเบฑเบ”เบšเบฑเบ™เบ—เบถเบเบ”เป‰เบงเบเบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบกเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบฅเบฐเบšเบธ Z_SYNC_FLUSH เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบ–เบทเบเบšเบตเบšเบญเบฑเบ”เบ™เบฑเป‰เบ™เป€เบซเบกเบฒเบฐเบเบฑเบšเบซเบ™เป‰เบฒเบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบผเบทเบšเปเปˆ.
เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก (เบซเบผเบทเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ” CRC เปƒเบ™เบซเบ™เป‰เบฒ), เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบ™เป‰เบฒเปƒเบซเบกเปˆ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰).
เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐ CRC. เบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเบ™เป‰เบฒเปƒเบซเบกเปˆ.

เปœเป‰เบฒเปƒเปเปˆ

เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบเบซเบ™เป‰เบฒเบŸเบฃเบตเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ (เบžเบงเบเป€เบฎเบปเบฒเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบซเบ™เป‰เบฒเบŸเบฃเบตเป€เบ›เบฑเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบต checksum เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบชเปˆเบงเบ™เบซเบปเบงเบซเบผเบทเบกเบตเบชเบฐเบšเบฑเบšเบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบซเบ™เป‰เบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™). เบ–เป‰เบฒเบšเปเปˆเบกเบตเบซเบ™เป‰เบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบฅเบทเบญเบเป€เบญเบปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบกเบตเบชเบฐเบšเบฑเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบซเบ™เป‰เบฒเบ›เบฐเบˆเบธเบšเบฑเบ™.
เบžเบงเบเป€เบฎเบปเบฒเบฅเบถเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฅเบทเบญเบ. เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เบชเบญเบšเป€เบ™เบทเป‰เบญเปƒเบ™เบ”เป‰เบงเบ 0xff. เบ–เป‰เบฒเบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”, เป€เบญเบปเบฒเบซเบ™เป‰เบฒเบŸเบฃเบตเบ•เปเปˆเป„เบ›, เปเบฅเบฐเบญเบทเปˆเบ™เป†.
เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™ header เปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบฅเบปเบš, เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบชเบฐเบžเบฒเบšเบเบฒเบ™, เบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ‚เบฝเบ™ (เบ–เป‰เบฒเบกเบตเบซเบ™เบถเปˆเบ‡).

เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ™เบณเปƒเบŠเป‰

เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบฑเบ™เป„เบ”เป‰เบเบฒเบเบกเบฒเป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ (เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เปเบฒเบกเบฐเบ”เบฒ, JSON, MessagePack, CBOR, เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ protobuf) เปƒเบ™ NOR Flash.

เปเบ™เปˆเบ™เบญเบ™, เบฎเบนเบšเปเบšเบšเปเบกเปˆเบ™ "เบ›เบฑเบšเปเบ•เปˆเบ‡" เบชเปเบฒเบฅเบฑเบš SLC NOR Flash.

เบกเบฑเบ™เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบเบฑเบšเบชเบทเปˆ BER เบชเบนเบ‡เป€เบŠเบฑเปˆเบ™ NAND เบซเบผเบท MLC NOR (เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเบณเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบกเบตเปƒเบซเป‰เบ‚เบฒเบเบšเป? เบ‚เป‰เบญเบเป€เบ„เบตเบเป€เบซเบฑเบ™เบกเบฑเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚).

เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบšเปเปˆเบ„เบงเบ™เปƒเบŠเป‰เบเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบต FTL เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡: USB flash, SD, MicroSD, เปเบฅเบฐเบญเบทเปˆเบ™เป† (เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒเบ‚เบญเบ‡ 512 bytes, เบฅเบฒเบเป€เบŠเบฑเบ™เปƒเบ™เบ•เบญเบ™เบ•เบปเป‰เบ™เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบซเบ™เป‰เบฒเปเบฅเบฐเบ•เบปเบงเป€เบฅเบเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ - เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบŸเบทเป‰เบ™เบ•เบปเบงเบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบ flash drive "เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด" เป‚เบ”เบเบเบฒเบ™เบญเปˆเบฒเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเบ‡เปˆเบฒเบเบ”เบฒเบ).

เบญเบตเบ‡เบ•เบฒเบกเบงเบฝเบเบ‡เบฒเบ™, เบฎเบนเบšเปเบšเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™ flash drive เบˆเบฒเบ 128Kbit (16Kb) เบซเบฒ 1Gbit (128MB). เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบŠเบดเบšเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เปเบ•เปˆเบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบซเบ™เป‰เบฒ (เปเบ•เปˆเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบฒเบ‡เป€เบชเบ”เบ–เบฐเบเบดเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปเบฅเป‰เบง; เบฅเบฒเบ„เบฒเบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ NOR Flash เบšเปเปˆเป„เบ”เป‰เบŠเบธเบเบเบนเป‰).

เบ–เป‰เบฒเปƒเบœเบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบžเบปเบšเป€เบซเบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบกเบฑเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบ›เบตเบ”, เบ‚เบฝเบ™, เบ‚เป‰เบญเบเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบŠเบญเบเบซเบฒเป€เบงเบฅเบฒ, เบ‚เบฑเบ”เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเป‚เบžเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ github.

เบชเบฐเบซเบฅเบธเบš

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰, เปƒเบ™เบ—เบตเปˆเบชเบธเบ”เบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเป€เบ›เบฑเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ เปเบฅเบฐเปเบกเป‰เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญ.

เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบงเบดเบงเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ‚เบญเบ‡เบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบก, เปเบ•เปˆเป€เบŠเบทเปˆเบญเบ‚เป‰เบญเบ: เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ‚เป‰เบญเบเบขเบฒเบเบชเป‰เบฒเบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ—เปเบฒเบฅเบฒเบเป„เบ”เป‰, เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบขเบนเปˆเบฅเบญเบ”เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบฐเป€เบšเบตเบ”เบ‚เบญเบ‡เบ™เบดเบงเป€เบ„เบฅเบเบขเบนเปˆเปƒเบเป‰เป†. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบซเบ”เบœเบปเบ™ (เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒ) เบเบฑเบ‡เบ„เบปเบ‡เป„เบ”เป‰เบฎเบฑเบšเป„เบŠเบŠเบฐเบ™เบฐเปเบฅเบฐเบ„เปˆเบญเบเป†เบ›เปˆเบฝเบ™เบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบ„เบงเบฒเบกเบซเบ™เบฒเปเบซเบ™เป‰เบ™.

เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ‚เป‰เบญเบเบœเบดเบ”เบšเป? เป€เบˆเบปเป‰เบฒโ€‹เปเบ™เปˆโ€‹เบ™เบญเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบŠเบทเป‰ microcircuits เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ•เปˆเปเบฒเบŠเบธเบ”เบซเบ™เบถเปˆเบ‡. เบซเบผเบทเบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบญเบทเปˆเบ™เป†, เบญเบธเบ›เบฐเบเบญเบ™เบˆเบฐเบšเปเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡เบ‚เบญเบ‡เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท.

เบ‚เป‰เบญเบเบกเบตเปเบœเบ™เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เบšเป? เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบชเบปเบ‡เปƒเบชเบงเปˆเบฒเบกเบตเปเบœเบ™เบเบฒเบ™. เปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เปเบ•เปˆเบ„เบปเบ™เบ”เบฝเบง.

เปƒเบ™เบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบเบงเปˆเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ, เบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบฑเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเป€เบ›เบฑเบ™ "เบ›เบนเบกเป€เบ›เบปเป‰เบฒเบ—เบปเบ”เบฅเบญเบ‡".

เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบต, เปƒเบ™เบกเบทเป‰เบญเบทเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบˆเบฐเบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰ (เบ›เบฐเบกเบฒเบ™) เปƒเบ™เบซเบผเบฒเบเบฎเป‰เบญเบเบญเบธเบ›เบฐเบเบญเบ™, เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ "เบชเบนเป‰เบฎเบปเบš" (เป‚เบŠเบเบ”เบต, เบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒเบฎเบนเบšเปเบšเบšเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเป„เบ”เป‰เบขเปˆเบฒเบ‡เบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท; เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบเปเบฒเบชเบฐเบ–เบดเบ•เบดเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ). เปƒเบ™เบชเบญเบ‡เบชเบฒเบกเป€เบ”เบทเบญเบ™เบกเบฑเบ™เบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบผเบธเบš (เปเบฅเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เป‚เบŠเบเบšเปเปˆเบ”เบต, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบฑเป‰เบ™).

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ, เบญเบตเบ‡เบ•เบฒเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰, เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เป„เบ”เป‰เบ–เบทเบเบ„เบปเป‰เบ™เบžเบปเบšเปเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบ‚เบฝเบ™เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™.

Literature

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบšเบทเปˆเบญเบเบฒเบงเบ‚เบญเบ‡เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบง; เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เบธเบเบ„เบปเบ™เบกเบต Google.

เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบญเบญเบเบˆเบฒเบเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบเบฑเบšเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒ, เปเบ•เปˆเบ„เปˆเบญเบเป†เบžเบงเบเป€เบ‚เบปเบฒเป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก, เปเบฅเบฐเบฅเบฒเบเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ:

  1. เบ›เบฐเป‚เบซเบเบ” infgen เบˆเบฒเบเบœเบนเป‰เบ‚เบฝเบ™ zlib. เบชเบฒเบกเบฒเบ”เบชเบฐเปเบ”เบ‡เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡ deflate/zlib/gzip เป„เบ”เป‰เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบš deflate (เบซเบผเบท gzip), เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ‚เปเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบกเบฑเบ™เบชเบนเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster