prehistory
á¨áŤáłá˝á ááľá áŤáá¸á á¨á˝áŤá áá˝áá˝ á áᢠá Raspberry Pi ááľáĽ áĽá á ááłááľ áááśá˝ á á°áᨠá°ááł ááᢠáłáá˛á á°ááŁáᣠá˘á á°ááŁáᣠá¨áŁáá á°áááá á°áááá°áá... ááá ááá á¨áááŁá á¨á á áŤáľ á¨á°áťá ááŽááŤá ááᢠááá á¨áľáŤ áłáŞá á ááá˝ á ááá (áááᎠá¤áľá˛) áá áŁáá áááἠáá ááááᣠá¨ááŤá á á˘áá°áááľ (á áŠá¤áľá˘ áá°á á áá áá) áá° á áááአá¨áá°áááá á áá¨á ááą ááľáĽ áá¨ááťáᢠá¨á˝áŤá áá¨á á 1c ááľáĽ á°áááᣠáááľáľá ááá á¨áá á¨áľá á áááá˝á á áᣠááá°á˘
áŤá áááľ áá˝ááą á áŁá á áľááá áá - áááłáĽ á áŤáŤá (áá˘, á˝áŤá, ááá°), ááľáľá (áááá á áááľ ááľááśá˝ áĽá ááá˝ á¨ááá áááłáá˝); áá ᣠá ááľ á°á áľááá áá˝á áŤáá áá¨á áá áá ááŁá áá˝ááá˘
á˝áá
ááá˝ á ááááá˝ á áŁá á áľá°ááá áŤááá ááłáŞáŤáá˝ áááá¸áá áŤáłáŤáᢠá ááŤáľáá áá°á áááľ áááľááᢠáá áá° áááąá á¨áá˝á áá፠áá áĽá (á áá ááááŤáľ áááἠááľáłááťá á ááľáá áá áá°ááá á¨ááá˝á á¨áá) áá° á¨ááἠááĽááľ áááŤáá˘
áá ááá˝ á ááááá˝á á¨áá áá á¨ááááŞáŤ á°ááᎠá áá°áá ᣠá¨áá á ááľ á¨ááś á áá ááłáŞáŤáá˝ áŤááľ áá ááŽáááľ áá á ᣠáá˝ááą á áŠá¤áľá˘ ááá˝ á ááááá˝ áá á°á¨áá˝áˇá ᣠá á áľá°áááááľ áá á˝ááŽá˝á áá አᣠá ááłááľ áá áŤáá°áłáŤáá¸á á°áá˝ ááĽá á ááľ áá á á°áááá˝ ááľáĽ áá á. á¨á°ááŤáŠ ááá˝ á ááááá˝á ááá¨áááŁáĽáŤááľ áŤáá¸á SLC áá á°á¨ áľááľáł áŤáá¸ááŁáĽá á ááłááľ áá´áá˝ á¨áááš á¨á áá á áľá°ááá áá¸ááŁááá áá ááá˝ á ááááá˝á áá°áŤáľ á˝ááŠá á¨áľá áá°á¨áą á áááłááá˘
áĽáŁáá áἠáá á! á¨á
á á ááĽáĽ! "ááá" ááááľ á¨ááááľ ááá áá "áĽáá´áľ" áá áĽáť, á ááĽáł áááľ áá˝áá
ááłá
áá° á áĽááŻá˝á á¨áááŁá á¨ááááŞáŤá ááá áááᎠá¤áľá˛áá áá°áᾠᣠáááłá á¤áľá¤áľá˛ ááŤá áĽá á¨áĽáą áŤáľááąá˘ á ááľá-ááłáĽ ááťááᣠááááŁáľáŁ áá á á ááťáŤáááľ ááľáŁ áĽá á áŁá á áľá°ááá á áá°áá (USB-SATA á áľáá á°á¨ááŻáᣠá¨á ááľ á¤áľá¤áľá˛áá˝ ááľááľ áľáłá˛áľá˛ááľ áĽáá˛á á á á¨áłá˝ á áá°áá)á˘
áŠá¤áľá˘ á¤á˝á˛á˛ á á°áá á¨ááľáĽ áááľá á áááľááá˘
áľááá áĽá áá°áá á ááŤá á°áá°áá-á¨áááᎠá¤áľá˛ ááľááłáľá áá°á ᣠáá á ááŁáĽ-áĽáť áááł áá áááŁá¸á ᣠáĽá á¨ááś áĽáá áááἠááľáłááťáá áŤá¨ááš (áĽá áá ááľ á¨á°áá°á á¨áááľáá ááá áአá¨áá ááá˝ áá¨ááá˝ - á¨áá፠ááĽá ᣠá¨áłáłá˝ áááŞáŤáὠᣠááá°.) áá áŚáłá˘ .
á Raspberries ááŁáĽ-áĽáť FS ááá° ááłá ááľááá á ááľáĽá áá á áá á°á ááˇá ᣠá áá á˝áá ááľáĽ á á á°ááŁá á ááááŽá˝ áá á áááá ᢠ(ááááľ áŤá áá á áá áááľ áá áľáá˝ á˝áá áĽá˝ááá). ááľá°áá á¨ááááá áĽá¸áá ááĽáĽ á¨áá áááłá¸áá áá áá°á á˛á á¨á°á°áá áŠáľ áááááá˝ á á áľá°ááá áááł ááľáĽ áľáá á áᢠá á ᣠáĽáá˝áśá˝á áá á áá áááľáááľ á¨áááťá áá ᣠáá áľááááťá¸áá á á¨áá°á áááł ááááľ á áŁá ááťááᢠáĽá áŤááśáš á¨á°áááą áĽá¨áá áá, áá á áá áááááľ á°áŤá°áá˝ áá°áŤáľ á áŁá ááá áŤá°áááá.
áááľ áá
áľá áá
á°á¨ áľááľáł á áááľ áá፠ááá áአáĽááŁáŹ á ááá á¨á - NOR Flash.
áá᪠áĽá´áśá˝
- ááá áááááľ (áĽááá áá áá°á á˛á á¨áá áá áááľ áŤáá ᨠSPI á ááśáĄáľ, áľááá ááá á¨áááľáá á˝ááŽá˝ á ááłáŠá);
- á áľáá áá;
- áá°á á á¨á á áŤá ááŽáśáŽá (áľáá áŤá ááľááá á ááááľ á¨ááá ááľáĽ á á ᣠá¨ááá ᣠá¨áśáľá°á ááá ááá°áľ áá˝áá ᣠáĽáąá áĽáá˛á áááá ᣠááá á¨áŤáľáá ááá ᣠáĽáá° áĽáľá áá ááá ááá ááá áá);
- á áľá°áááááľ áĽá ááĽáľ;
á¨á°ááá°á á¨ááἠáá : áá¨á á 20 áááłáľ áá¨ááťá, ááĽáŤááłááą áĽááł 100000 á¨ááĽááľ áá°áľ;
á¨áśáľá°á ááá áááŽá˝: áĽá á á áŁá áá á°á BER, á¨áľá á°áľ ááľá°áŤá¨áŤ áŽáśá˝ á áŤáľáááá (á ááłááľ áľáŤáá˝ ECCá áNOR áááá¨áłááŁááá áá á áĽáááá áá MLC NOR áááľ áááŁáá á áá¨á°áłá).
ááľáá˝ áĽá áááĽáľ á¨ááŤáľááááľá ááľáááśá˝ áĽááááľ.
ááᥠááĽá áááľ áĽáá˛ááἠááľáľá áĽáá˛á°á á áĽáááááᢠáá á ááááá á¨áááááľ á˝áá ááľáĽ á¨á˝áŤá áłáŞá áĽááłáá á á áľááá áá. á áá áá ááľáĽ á 5 áááľ áá áĽáá°áŠáŤáá (á áłáá áĽááľá áĽá á áááľá áĽááłá áááľ ááľáĽ á ááľááŁáľ) á˝áአáááł áá˝áá.
á á áá áá á áá áá° 100 áŞ.ᣠá¨áááἠááľáłááťáá˝ áĽáá°á áľáŁáá (3-4 áşá áá¤áśá˝), ááá áá ááľ á ááľ áá ááĽá áĽáŤá°á áá - áááአáĽá¨á¨áᨠáá, á áłá˛áľ ááľá°áśá˝ áĽá¨á°á¨áአáá. á á°á¨ááŞá ᣠá ááłááľ áá áááłáłáá˝ á á (á ááłááľ áłáłážá˝ á áá¸áľ á áááłá áá¨ááá˝ á áááá áááĽááľ ááľá¨á ááááŤá ᣠáááłá)ᢠá 10 áşá ááááĽáľ áĽáá°ááá 100 áŁááľ áĽáŤááłááłá¸á - áááŁááľ á ááá˘
á á á ááá 5 áᣠáášá (á á°áἠá¨á°á¨áá) ááἠáááŁá. ááĽááą á¨á áá (áááłá áááľ) 1 áᣠá¨á áááááľ áááĽá˘
áááľá áááá፠áŤáá°á ááá 8MB áşá ááá á¨á°á áááá áľ 4MB áŤáľáááááᢠááá ááááą áá á°á¨ áľááľáł á áŁá áĽááá°á ááĽáŽá˝á˘
ááĽáąá á á°ááá¨á°áĄ- á¨ááľáłááľ á˝ááłá á 5 áááľ ááľáĽ á¨á ááľ áá á áá áĽáá˛áťá áŤááľá ᨠ10 áááłáľ á áá á áááááľ á¨á ááľ áşá
áŤááą á¨áľáá áá°áśá˝á áĽáááááá˘
á ááŤáš á ááľ ááś áşá
áá áĽáá°áᣠááľáłááľá.
áľá NOR vs NAND áľáá˝
ááŹ, á áĽáááĽ, NAND áá á°á¨ áľááľáł á áŁá áłáá áá, ááá áá ááá ááŽáááľ á áá ááá áľá: NAND, ᨠNOR á á°áá¨, á¨ááľ á¨áľá á°áľ ááľá°áŤá¨áŤ áŽáśá˝á, á¨ááĽá áĽááłáá˝ á á¨á´á, ááá° áĽá áĽáá˛áá á¨áĽáá áĽáá áŤáľááááá. NAND áşááľ áĽááá áá á¨á áá á˘
ᨠNOR ááłáśá˝ á¨áá¨á°ááľá áŤáŤáľáłá:
- á ááľá°á áá á (áĽá, á áá áá á¨áľ, á á ááľ áááŁááľ á¨áá°á áá);
- áá á°á á¨áááá ááĽááľ (á á áĽááá ááááŤáľ á°á¨áłáłá á áááá˝ áĽá á áá á¨áááá, áĽááá áá SPI ááá I2C);
- ááľ áĽá áá°áá°áľ (á áĽááłá áá á áá á áááľá¨áľ á¨á°á¨ááľ ááááá áĽáľá¨ áĽá á°á¨ááśá˝ áááľáłá)á˘
ááĽá ááá ááłá ááá áŤá á áááľáá, áľááá áĽáááĽááá.
ááááŽáš áľáŠá¨áľ á¨ááľáĄ á¨áá, áááᎠá°ááŠáą á°ááá§á
á ááááľ á¨ááá ááľáĽ á¨á°á°áŤáá ážáá áĽá ááááᤠá 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 áá áĽáť áŤááá.
á¨á˝áአááá
áĽáá°á°ááá°á á¨á˝áአááá፠á á ááŤáł áľáááážá˝ ááľáĽ áŤááá, áĽá áááŁáŠ ááá á áá áĽáá°áá áá°ááá. áľááá áá áĽáá á¨á°áťááá á ááľ áá á°áĽá°áĽ á áľááá á áĽá ááľáĽ á¨ááŠáľá ááááŽá˝ áĽááĽáŤáŤá˘
áľááá , áááἠááľáłááťá á SPI NOR Flash ááľáĽ áĽáá˛á¨áá˝ ááľááá.
áááŤáááľ ááá˝ áááľá áá?
áá áśáľáľ áááááá˝á á¨ááŤá°ááá áľ á¨áááááἠáá á°á¨ áľááľáł áá-
- ááŁáĽ
á áŁá á¨á°ááá°á ááŁáĽ: á áľáŤáťáá áĽááľá°ááááá áĽá á¨ááááááá áŤá á áŁááľ áĽáááŁáá; - á
áł
áá° NOR ááá˝ ááá áá°á á áááľááᣠáá á ááľ áአáŁá ᪠á ááᥠ1 áá° 0 áĽáť ááá¨á áá˝ááᣠáá á á°ááŤáá á áá°ááᢠáááłá áŁá áá á°á¨ áľááľáł á´á ááľáĽ 0x55 á¨áá á¨á ᣠá¨á፠0x0f á¨ááá á áá ᣠ0x05 ááľááá áĽá፠áá¨ááťáᢠ(á¨áłá˝ áŤááá á°áá á¨áĽ áááá¨áą); - á°ááľáľ
áĽááἠáá, á°ááŤááá ááś áĽáá ááľá¨á ááťá á ááĽá - 0 áá° 1 ááááŠ, áá á¨ááĽááľ áľáŤá á áľááá áá. á¨ááááŞáŤááš áááą á á°áᨠá áŁááľ áłááá á áĽááŽá˝ áá á¨áá°áŤá (á á°áá¨á á áşá ááľáĽ áŤáá á ááľá°á áá°áá°áľ 4 áŞáŁ áá)ᢠááĽááľ áááá áĽáá áŤá áá áĽá 0 áá° 1 ááááἠáĽá¸áá ááááľ áá. áľááá á ááá˝ áá á°á¨ áľááľáł á˛á°áŠ áĽááá áá á¨ááἠááá áŽá˝á áá° áá°áá°áľ áá°á áááŁá á á ááĽááľ.
á NOR ááá˝ áá áłáľáĄ
áááľáŽá˝ áááĽ
áá á
01010101
á°áááá§á
00001111
ááá
00000101
áááἠááľáłááťá áŤáą á°áááá ááááľ áŤáá¸áá ááááŚá˝ á á°á á°á¨á°á áŤáłáŤáᢠá¨á°ááá°á á¨áááἠááááľ 30 áŁááľ (á ááŤáł áŞááŁááľ ááááľ áŤáá¸á ááááŚá˝ á ááłááľ áá áá¨á°áłá)ᢠá áá á ááŁá á¨áĽááą áá á ááá áĽáá° áŁááľ áľáĽáľáĽ áĽáá°áŤááᣠááá áá ááááľ áŤáá ᣠCBOR á ááááŚáš ááľáĽ áĽá á áá ááááá˘
á¨áááἠááľáłááťá á á°á¨á᪠á ááłááľ "á
áá
áśá˝" áá¨ááá˝á áá¨áá¸áľ á ááĽá, áááąá á¨á°ááá áĽá áŤááá: á¨á°áá°á á¨ááłáŞáŤ ááłáááŤ, á´áá°á áááŞáŤáá˝, "ááŁáŞáŤá áááá á°á°áááá" áŁáá˛áŤ, ááá°.
áá
áá¨á á CBOR ááľáĽ á¨á°á¨áḠá¨ááá áá ááááĽáľ ááᢠáĽá áá¨á á¨ááá (á˘á á áĽááľ áŞááŁááľ) áĽá á áá á áá ááťáťááá˘
á áá¨á°áá á ááľ áĽáááááá˘
áá á˝áá á¨áľ áĽáá°ááᨠáŤáľáłááľá, á áľá°ááá á¨áá¨á áá¨ááť áĽá, á¨á°áťá, á¨áááľáá ááľááśá˝ / á¨ááἠáĽáá˝áľ á˘á¨á°áľá, ááŁáááľ áŤáá á á áŤá áá¨ááἠá áŁá á áľááá áá.
áá ááááľ á¨á˝ááŽá˝ áááŽá˝ ááłáŠ áá˝áá?
- á ááťá/á ááĽááľ áá ááá áŤáĽáᢠáá
á¨"ááŽááŁá áá ááá á°ááŽá á¨áá" á¨ááá ááľáĽ ááá˘
áá¨á á¨ááááśá˝ á stackexchange ááᥠá ááá˝ á˛á°áŤ ááá á˛á á áááąá áá°ááľáą (áá° 1 á°áááĽá¨áá) áĽá ááá (áá° 0) áá° áŤáá°ááḠáŁá ᪠áááŤáᥠáłáł ááá áá˝áá á¨áá áááá (á áááľ 10 áŁááľ/80 á˘áľ á áľá°ááááá) , ááá áá áá 45 á˘áľ áĽáť ááťá á ááťáá), áĽáá˛áá á ááłááľ á˘áľ á "ááŤá¨áá" áááł ááľáĽ ááá áá˝áá (ááá ἠáááąáá 0 áĽá 1 ááŤáᣠáá˝áá); - á ááá˝ áá
á°á¨ áľááľáł á áŤáą ááľáĽ áľá
á°áśá˝.
BER, á áŁá áá á°á á˘ááá, á¨áᎠáá áĽáŠá ááá á áá˝áá; - á¨á ááśáĄáľ áľá
á°áśá˝
á SPI á áŠá á¨áá°áááá áá¨á á ááááá ááááľ á¨á°á á á á áá°ááᤠáááąá áá á áľá á°áśá˝ áĽá á¨áááłá°á áľá á°áśá˝ áá¨á°áą áá˝áá - á˘áľ ááĽááľ ááá ááľááŁáľ (áá á áá° á¨áá°á á¨ááἠáááŁáľ áŤááŤá)ᢠ- ááá˝ áľá
á°áśá˝ / ááľááśá˝
á áŽáą ááľáĽ áľá á°áśá˝áŁ Raspberry glitchesᣠáĽáááł áŁáá ááĽááľ...
ááľáááśá˝á á ááá áťáá ᣠá áĽá á áľá°áŤá¨áľ ᣠáłááááľá ááá¨ááἠá áľááá á¨áááľá ááááľ
- ááááŚá˝ áá˛áŤáá áá° ááá˝ áá᪠áááŁáľ á ááŁá¸áᣠá¨á°ááአá
ááá˝ áááľ ááľáĽ á áááĄá ᣠ- áľá
á°áľ á¨á°áá ᨠá á°áťá ááĽááľ á°áááś ááľáŤáľ á áá ᾠᣠ- áľáááą á¨á°áťá á¨áľá
á°áśá˝ áááá á áá áľá˘
(á¨á áááľ ááłá "áĽáá´áľ ááá áĽáá°ááá áľ", ááá á°á á ááĽááłá áĽáŹ á áľáŁáá: á¨á á°á áá áłáá ááľááłáľ á áá, á¨ááá áľáááą "á°á°áĽáŻá" áĽá áľááá° áááá á áááłá)
ááłáŚá˝, á ááŤá¨áŚá˝, áá¸áĽáŤáá˝
áľááá á˝áá áá°áĽ áľááá áĽá ááłáŚá˝ á ááá áá´ ááľáĽ áááąáŁ áááłááĄ-
- á¨ááἠáááá፠áá áá;
- áĽáá á¨áá¨á á ááááŽá˝á áá áá ᣠáááłá ᣠá¨áŞáŽááľ áŤáľááá˝á á¨ááááŚáš áŤáłá¸á áá¨áá¸áľ ᣠáľáááá á ááááá áááἠááľáĽ áľá á°áľ áŤá ᣠá¨áá¨áá áŤá ááá á˝áá ááá ἠáá˝áá áŁ
- ááá á˛á á á¨áá áłáľá áá ááá ááááŁá á á¨á˘áľ ááľáŽá˝á áá áá;
- á¨áá¨ááť áźáŽá˝ áááá ááá;
- á ááłááľ á áááľ áľáá˝á á¨áááá áŽáľ áá ááá˘
á¨áĽááá ááłáŚá˝ ááŤá¨á á ááłááśáš áĽá á áá ááá áá á, ááá˝ á°áá ááá°á á°ááľááá. á á á°á á°á¨á°á áĽáááľ.
á¨ááἠáááááŤ
á áá˝ááą ááľáĽ á¨ááááłá¸á ááľá°áśá˝ áĽáŤáłá¸á á°ááłáłá áĽá áá°áá á¨áá˝á áá¸á (â5 áŠáĽá áłáá˛á áŁáâᣠâááἠáááľá áľ áááá á°áŤáâáŁâŚ)ᢠáľááá , áááá á áŁá áá¤áłá ááá á áá áľ.
á¨áá¨áááŤá á áá áá á¨ááá (á¨áĽá ááŽá°á°á á áŁá áááá áá ᣠá¨ááááŞáŤá á áĽááłá á ááľ áŽá á 700 áá¸á áľáááá˝ á áá ᣠá¨á áá áá´áá˝ á¨á ááľ ááá¸ááľá á áá áľáááá˝ áŤáá¸á áĽá áŽáŽá˝ á áá¸á) ᣠá¨áá¨ááťá áá áŤáá á¨áááᏠáá áá á°á áá (á ááŤáł áááŁááľ á á°á¨ááľ), á¨ááááŚáš áá á áľáá˝ áá. á á á ááá, áá¨ááá á á áááá áá á°á˝áĽá áŤáłá°á¨, á áááłá áĽáť áááá. (ááá áľá˝áľ á¨áá˝áŁ á áááá˝ áĽáť). á á°á¨ááŞá ᣠáĽá áĽááá°á á¨á°á¨á°á° ᣠáá áá°á á ááááľ á¨ááá - áľááá á á°ááŁá አáĽá áĽá¨áľ á áŤáľááááá (á¤á°-áá˝áááąá áááááľ áĽá á¨áĽáą áĽá á°ááŁáŤáľá áá áá áĽáť á á áá)á˘
á¨áááἠááľáłááťá á ááľ ááŤá á¨áá°áŤ ááłáŞáŤ (1.7 áᣠᣠ70 áşá ááááŚá˝) á°ááľáś á ááááŞáŤ á áŽáááŠá°á áá á¨áááá gzip ᣠlz4 ᣠlzop ᣠbzip2 ᣠxz ᣠzstd á áá áá áááá፠áááŠá á°á¨ááá á˘
- gzipᣠxzᣠzstd á°ááłáłá áá¤áśá˝á á áłááˇá (40Kb)á˘
áĽá áá˝á xz áĽáá gzip ááá zstd á°á¨á áá áŤáąá ááłá¨áą á°áá¨ááŠ; - lzip á ááŁáŞ á áá áśá˝ áľáá˝ á¨á¨á áá¤áśá˝á á°áĽáˇá;
- lz4 áĽá lzop á áŁá áĽáŠ áá¤áľ á ááłáŠá (150Kb);
- bzip2 á ááŤáľá°áá áááł áĽáŠ áá¤áľ (18 áŞáŁ) á áłááˇáá˘
áľááá
ááᥠá á°áἠá°á¨áááá˘
áľááá
(áááľ á¨ááłáá ááľááśá˝ áŤáááá) áá¨ááá
áááŤá! á°á¨á᪠áá¨á á á°ááłáłáŠ ááá˝ á ááá áá áľáááᣠáĽáťá˘
áľá ááłáśáš áĽááľáĽá˘
á¨ááááŞáŤ á˝ááᥠáĽáŤááłááą áááἠáá˛áŤáá áá° áĽáááł áááľ áĽááłáá áľ á áľááľáá á°áľááá°ááᢠá á°áááśáŁ áááᥠá áłáá áĽááľ áááťá ááá áĽáá°áá áĽáľáŞááľá áľá¨áľ á¨áá¤áľ áĽá¨áą áá áá¨áá áá°á áľáŁáᢠáá˛áŤáá á¨áłáá á¨ááἠáĽáá ááá á áĽá á áááááἠáá á°á¨ áľááľáł ááľáĽ áá¨áá¸áľ á ááĽáá˘
áśáľáľ ááááśá˝á á áŤááá˘
- á¨áá á¨á°ááášáľ áľáá° áááŽá˝ ááá
áááá áááľá á áá áá áĽáŤááłááąá áááἠá¨ááá˘
áá á áá á¨áá°áŤ á ááŤá áá, áá á ááá°áá. áĽá ááá áŁáá° á¨á á¨áá¨áá á°á¨áá ááá¨ááἠáááá áááą áá°áá°á áá¨ááá˝ âá¨á°á áâ ááá á ááŁá¸áᤠááááá ááἠá¨á¨áááľ á°á¨á á á á°áá áááł áĽáá˛ááľá áŤá°áááᢠá áá, á˝áአá á˛áľ á¨áááá -áááľá áľáŞáľ á ááá á áááł áá˝áá, ááá áá áá áŤáľ ááłáľ áá - áááá á¨áááá -áááľ áľáŞáśá˝ áá¨áá¸áľ áŤáľááááá; á áĽáŤááłááą áá¤áľ á á¨áľáá á¨áááá -áááą áľáŞáľ áĽáá°á°á¨áá áá áá á ááĽáᢠ- "ááá˛áŤá" áľáá° áááŽá˝á á áá áá áĽáŤááłááąá áááἠá¨áá
ᣠáá á¨áááš á á°áá¨á˘
á¨áááľ ááľáĽ áŤááľ á¨áááá፠áľáá° áááŽá˝ á¨áá áá á (á á áľá áŁááľ) ááááŚá˝ áá áááľáŤáľ á¨á°áá°á á áá°áá ᣠá¨áááááŤá áĽáááł á ááá ᨠ1 áŤáá° áááá (áá á á¨áá¨áá ááá á¨áá¨ááá áá á áá¨ááŤá)ᢠ- á¨áĽáŤááłááą á
á á áá FLUSH áŤáľááá˘
áĽá áááá፠á¤á°-ááááá˝ á FLUSH áľáá á áá¸áᢠáá áľáĽáá (ááá á¨áá¨áááŤá áá°áľ ááŹáľ) áá ᣠá˛á°áá°á áá á°áŠ á¨áłáá áĽá¨áľ ááá°ááłá áľááá á áá°áá á¨á áľ ááááľ áá á ááᢠááá á áľááľá á¨á°á¨á°á áŤáá°á¨áá áááĽá˘ áĽáá°áá áŤá á ááásync
á ááá áľáááśá˝ ááácommit
á áŤáŹ.
á áľáááá ááá ááŁá á¨ááá áľáŤáá˝ á¨á°á¨áḠáááá -áááľá áá áá ááťá áĽá á¨áá¨áááŤá áĽáááł áá áĽáá° ááľáá áľáŞáľ á áááłáá.
áŚáľá°ááá á ááŤá áĽáá°áá¨áĽáŠ ááá˝ áá áĽáŹ á áľáŁáá, á¨á áá á áááá áĽáááá¨á°á.
á°áááˇá
á á˝áá áá á áááľá¨áľ á¨ááá áľ áá¨áŤ á áľáááŤááᣠá¨áĽááá°á ááłáŞáŤ 70 áşá á¨áááἠááľáłááťáá˝á ááľááá ᣠá¨áá˝ áá á 60 áŞáŁ (áá° áá˝ áá á á áá áĽááááłáá) á°ááĽááááĄ
áĽáŹ áááĽ
áááá፠gzip -9 (ááá˝ á¨áá)
zlib á¨Z_PARTIAL_FLUSH áá
zlib á¨Z_SYNC_FLUSH áá
áá áᣠáŞ.á˘
1692
40
352
604
á ááááŞáŤ áĽááłáŁ á FLUSH á¨áá¨ááá áá á¨áá á á áá á¨á áŤá ááᣠááá áá á áĽáááą áĽá áĽáá áá፠á¨ááá - á¨ááś áááá¨áá ááá á FLUSH ááááá (áĽá á áŁá áá¤áłá á áá ááááľ)ᢠ70 ááááŚá˝ áĽááłáá áááááľ á¨ááĽáá á Z_PARTIAL_FLUSH á¨áá¨á á á°á°áááááľ á á ááľ áááἠ4-5 áŁááľ áĽáť ááᢠáĽá á¨áá¨áááŤá áĽáááł áá° 5áĄ1 áá á áťáᣠáá á á¨áĽáŠ áá¤áľ á áá ááá˘
ááŤáľááá áá˝áá ááá áá Z_SYNC_FLUSH FLUSH áááľá¨á á¨á áá áááŁá ááááľ áá
Z_SYNC_FLUSHá á˛á áá á¨áĽáŤááłááą áá¤áľ á¨áá¨á¨áťááš 4 áŁááľ áááá 0x00ᣠ0x00ᣠ0xffᣠ0xff ááááᢠáĽá áŤáá áá¸á, á¨ááŤá áá¨áá¸áľ á¨ááĽáá, áľááá á¨áá¨á¨áťá áá á 324 áŞ.ᣠáĽáť áá.
áŤáááááľ á˝áá ááĽáŤáŞáŤ á áááĄ-
áŁáś áááľ áŤáá á á˛áľ ááááľ 0 áĽáá á°á¨ááŻáá˘
áŁáś áááľ áŤáá ááááľ 0 áĽáá á¨áá¨á°ááľá áŤá áááá
- á¨áśáľáľ-á˘áľ áĽááł áŤáľá;
- ᨠ0 áĽáľá¨ 7 á˘áľ á¨áᎠáá áĽáŠá á¨áá, á¨áŁááľ á á°ááá áááľá¨áľ;
- áŁáá áŤáľ áŁááľ á á°á á°á¨á°á 00 00 FF FF.
á ááá áĽáá°áááá¨áąáľ á¨ááá 4 áŁááľ á ááľ áŁáá á¨áá¨á¨áť áĽáá ááľáĽ á¨3 áĽáľá¨ 10 áᎠá˘áľ á áᢠááá ááᣠááááľ áĽáá°ááŤáłá¨á á áĽáááą á˘áŤááľ 10 áᎠá˘áľáá˝ á áá˘
áĽáá˛á ááááą á áŤáá á¨áá¨á ááśá˝ áĽááá áá (áááá?) á 1 á ááááľ (áá áĽáá) á¨á°áá°á አáá¸á ᣠáĽáąá á ááľ á 7 áᎠá˘áľ áŤá áá ᣠá áľáአá¨10-17 ááľáľá áŤáá áᎠá˘áľ (á¨á°áá¨áá áááá) áá° 50% á¨ááá áĽáľá áᎠáááá˘
áľááá , á áá¨áŤ áá¨á áá, á 100% á¨ááá ááłáŽá˝ ᨠ0x00, 0x00, 0xff, 0xff á ááľ á ááľ áᎠáŁááľ á á, áĽá á¨áśáľá°áá á áá á áá ááłáŽá˝ ááľáĽ áááľ áᎠáŁááľ á á. (ááááŁáľá áĽáááłá áĽá áááľáŽá˝ CBORá áĽá áááá ᣠáĽá á˝áá JSON á áá ááá áľ áá ᣠââᨠ2 ááááľ áĽááŽá˝ - á°áááá áĽááłáá˝ á áŁá á¨á°áááą áááá ᣠá á á°á á°á¨á°á ᣠáŤá á°á¨á᪠áᎠáŁááľ áĽááŽá˝ ᨠ0x00 ᣠ0x00 ᣠ0xff ᣠ0xff á ááľ ááááá).
á á á áááᣠáŤááá á¨áá¨áŤ áá¨á á áá ááᣠá¨250Kb áŁáá° á¨á°á¨áá áá¨á ááľáĽ ááľááŁáľ ááťááá˘
á˘áľáľ á áááłáľ áľáá˝ á°á¨á᪠ááá ἠáá˝ááᥠáá áá á áĽáአáá¨á¨áť áá áĽááľ áᎠá˘áľ áááŤá¸áá á˝á áĽááᣠá áĽáአááááŞáŤ áá áŤá áĽááľ á˘áľáľ áĽáá˛á á ááááĄá...
áá á¨á፠áááá á á ááŤáŤ ááááľ ááłá áá°áአᣠáŤááá áá á áá
ááĽááľ á¨áŤá´á áááἠá¤áľ áááááľ áĽá˝áááá˘
á á á áááᣠá¨áá°áᏠáá¨á 3-4 áŁááľ á á áá á°ááĽáŤáááŁá¨áá¨áááŤá áĽáááł á¨6áĄ1 á áá áááᢠáĽáááľ áĽááá: áĽáá°áá á áááľ áá¤áľ á áá á á áŠá áá á, á áĽá á áľá°áŤá¨áľ, ᨠ2: 1 á¨á°áťá ááá ááľááá á¨á¨áááľá á á ááá á¨ááŤá¸áľá áá¤áľ áá.
ááá ááá á°á á ááᣠááá áá ááἠ(deflate) á ááá áĽááłáᣠá ááᣠá¨á°áᣠáĽá áľáá˝ á¨áᨠá¨áááá፠áľáá°-ááá ááᢠáŤááá 32 áŞáŁ áŤáá°á¨áá á¨ááἠáĽá¨áľ áĽáá° áááá -áááľ áĽá á áá ááá áᏠáĽáááł áááľáá (áááľá á ááłááľ á¨ááἠáĽááłáá˝ á¨40 áŞáŁ á ááľ á áá¤áľ áĽá¨áą ááľáĽ á¨áá á¨á áá á áŁá á°ááłáłá á¨áá áĽáá°áá á áá á°á áááἠááááŤáᢠáĽá áŤáááá ááľá°áľ á áŤááááľá). á áá˝á áááá ááááĽáľ ááľáĽ, á¨áááá -áááą áá á áĽááá áá á¨áŞááŁááľ ááá á áááŁááľ áááŤá.
áľááá á¨áá á ááľá°á á¨áááἠá¤áľ áĽááľ áĽáááĽáááá˘
á ááá á bzip2á áá¨áá (áŤá FLUSH áá áá° 100áĄ1 á¨áá°ááľ áľáá á¨áá¨áá፠ááĽáĽá á áłááˇá)ᢠáĽáá° á áááłá°á ááᣠá FLUSH á áŁá á°áŤá á ááťá¸á á áłááˇáᤠá¨á°á¨ááá ááἠáá á áŤáá°á¨ááá ááἠá¨á áá ááá˘
áľá ááľááą ááááŤáśá˝ á¨áĽá áááśá˝
Libbz2 á¨ááŤááá á á ááľ á¨ááá°áť á ááŤá áĽáť ááᣠáĽáąá áááá áááąá á¨ááŤá¸áł á¨áááľáá (á ááἠááľáĽ á¨Z_FULL_FLUSH áá á°ááłáłá áá)ᤠá¨áá á áá áľá ááá áá¤áłá áááá ááá áááá á¨ááá˘
áĽá á¨áá¨á¨áťá á¨á°áá°áá zstd ááᢠá áááŞáŤááš áá á áááľá¨áľáŁ áá á gzip á°á¨áᣠáá á áŁá ááŁáᣠááá á¨ááá á¨á°áťá áá¨áááá˘
ááŽáŁ á FLUSH á áŁá áĽáŠ á áá°áŤáᥠá¨á°á¨ááá áá¨á áá á 700Kb á áŤáŁá˘ áá áá˘
ĐŻ
á¨áááἠá¤áśá˝ áá áŁá°á¨áŠáľ áá¨áŤ á áá áá áááá áá°áአ( xz, lzip, lzo, lz4 áŤá FLUSH á áá¨áŤ á°á¨á áá áĽááłá áĽáŤáłá¸áá áĽááłááłáŠ áĽá á¨á áá áŤáá°áááą á¨áááá፠áľáá° áááŽá˝á áááľ ááľáĽ á ááľááŁáá)á˘
áá° áá á°á ááľááἠá˝ááŽá˝ áĽááááľá˘
ááá°áá (á áĽá´áą áłááá á á á°á á°á¨á°á áĽáá°áááľ) á˝áá á¨á°á¨ááá áá¨á á ááľ áá á áĽá¨áľ áá, á ááľáĄá áŤáááá¨áĽ áá° áá°ááľ áááá˝ ááŁááťáá˝ á á. áľááá ᣠá¨áłáá áá¨á ááá á¨á°á áḠᣠáŤáá°á¨áá áá¨áá áĽáť áłááá áááá á°á¨áłá á¨áááľáá áĽááŁáá á˘
áá áá á˝áá ááááłáľ á ááľ áá´ á á-
- á˝áአáĽááłáá¨á°áľ áá¨áá¨á - á á°á¨ááá áá¨á áá áľáááá˝ áá¨áአᣠáá á áľá á°áśá˝á áááá¨áľ áĽá áááľá°áŤá¨á áŤáľá˝áááłá ᢠáľááá ááłá á áá áĽáááááŤáá;
- á˝áá á¨á°á¨á°á° áá¤áąá ááááą
á áľááľáá áĽáŤááłááąá á¨ááἠáĽáá á á°ááĽá áááá áĽáá°ááľá˝á á°ááá¨áá á˝áአá áŤáą áá áá (á á ááľ áĽáá áá á¨áá°áá°á ááłáľ ááá áĽáá áĽáť á¨ááἠááĽááľ áŤáľá¨áľáá)ᢠáááᣠáá á¨ááἠáá¨ááá áá¤áłá á¨ááááá áľ áĽá á á áŁá á¨áŁáľ ááłá ááᢠá°ááŤáá á˝ááᥠáááá 4MB á¨áĽáá áşá áĽáá° á ááľ áá á°á áá ááᣠáá á áĽá á á áŁá áĽáŠ áááá፠áá°á ááᣠááá áá á áá¨á áá áá¸áľ áá á áľá¨á áááá˘
á ááᣠá¨á áľá°áááááľ á ááá áľááááľ áŤáľááááᢠááá áá áĽá á á áŁá áá á°á BER áĽá á20 á ááłáľ á áłáá á¨ááἠáá¨ááť áá áá°áááá áŤááá áá á°á¨ áľááľáł á¨ááἠáá¨ááť á áá¸áľ áĽá¨á°áŤá áááá ááľáłááľ á ááĽáá˘
á áá¨áŤááš áá
áľáŁ á áá¨áááŤá á°á¨á áá áĽá ááá áŤáá° á¨ááłá áŞáłáŤáá˝ á¨10 áŞáŁ áŁáá° áá á á á°á¨áá á¨ááἠáĽááŽá˝ áá áĽáá°áááአá°á¨áľáťááá˘
áá°á á˛á áĽá
á áá á¨ááá áá
á°á¨ áľááľáł á áá˝ áá áĽáá°ááá á°á á
áˇá ᣠâá ááľ áá˝ - á ááľ á¨áłáá áłáł á ááľ áĽááâ á¨áááĽááľ áááἠáĽá
á áá á¨ááááá áľ ááááŤáľ á ááłá¨ááá˘
áááľá áá á°áá ááááŤáłá á¨áá˝ áá á 16 áŞáŁ áá (áá áááááľ áá¨á á¨á°áŤá)ᢠááá áĽáá áĽáá˛á ááááą áľáá˝ áá˝ áá á á á¨áá°áá á¨áááἠáá á áá á¨áá°á áá°áŚá˝á áŤáľááľáłá.
ááá áĽááłá á¨áĽááľ áŞááŁááľ á áá á¨áá ááááŚá˝á á á°á¨áá ááአáĽáľáŤáá áŁáá áĽá áᣠ32Kb áážá˝á ááá áá áá°áአ(á á á ááá 128 ááá˝ á á ááľ áşá)á˘
áá áááŤ-
- zlib (deflate) á áá áá á¨á°á¨áá áá¨áá áĽáá¨ááťáá;
- ááĽáŤááłááą áá¤áľ Z_SYNC_FLUSH á ááá á°ááá˘
- ááĽáŤááłááą á¨áłáá ááááĽáŁ á°á¨áłá áŁááľ áĽááááŁááᢠ(áááłá 0x00ᣠ0x00ᣠ0xffᣠ0xff); á áááą ááľáĽ áá áŤá á áŁááľ áĽáá°áá¨áĽá áĽáá áááá á˘
- áá¨áá á 32Kb áážá˝ ááľáĽ áĽáá¨ááťáá; á ááš ááľáĽ á ááľ áá á á¨áłáá ááἠá á ᣠá áĽáŤááłááą áá˝ áá áĽáá°áá áááá áĽááááŤáá.
áĽá áŁá áááá á¨áá¨á¨áľá á ááľ áŁá áĽáŤááłááą áááἠááľáĽ áĽááľ áŁááľ á¨á°á¨áá áá¨á áĽáť áĽááłáá áľáŠá¨áľáá áááłá áĽááááá áŁáľááá á¨á áááááľ áá¨áá ááááľááľ áĽá á á áŁá á áľááá áá áŁáĽáŤááłááą áŁááľ áĽáá ááá áŤáá˘
á¨ááἠáŤáľááá˝á áá¨áá¸áľ
á¨á°áááá ááááľ ááááĽáľ áľáááᣠá¨ááááŚá˝á á ááááĽ/áá°á áĽáá°ááá ááá°á á ááĽáá˘
áśáľáľ ááááśá˝á á áááá
- ááá ááááŚá˝ á á°á¨áłáłá áĽá¨áľ ááľáĽ áá¨ááťáᣠááááŞáŤ ááááąá á¨áŤá á¨áŞá¨ááľ áááľ á áᣠá¨ááŤá áááᥠáŤáąá˘
á áá áááᣠáááąá áŤáľááá˝ áĽá áá¨ááá˝ á°áááá ááááľ áááŤá¸á áá˝ááá˘
á áá á¨áą, áá áá áĽá á áá á¨ááá áá á á¨á°ááá áááá áĽááááá; - áŤáľááá˝ áĽá ááááŚáš áĽáŤáłá¸á á á°áᨠá
á¨áśá˝ ááľáĽ ááááŁáá˘
áá ááááľ áŤáá¸áá áŤáľááá˝ á áá ááᣠá á ááą áŤáľá áá á¨áá°áá°á ááłáľ ááášá áĽáá°ááááł áĽáá¨áááŁááá˘
á°ááłáłá á ááŤá¨áĽ áĽá á áá áááá, áááłá, á áĽá á¨ááá áľáááśá˝; - ááááŚá˝ á á°á¨áłáłá áĽá¨áľ ááľáĽ áá¨ááťá, á¨ááááá˘áŤ áá°á á¨ááá°áá á á°áá°á ááááľ ááľá¨á፠(á áá¨á áĽááłáá˝ ááľáĽ á¨á°á¨áá¨á ááá / á¨ááááá˝ á
á°á á°á¨á°á) áá. á áááᥠááľáĽ ááááľ ááľá¨á፠áŤá, á¨ááŤá á á°áá°á á
á°á á°á¨á°áá˝ áĽáá°áŤáá (á áááĽáá).
á°ááłáłá á ááŤá¨áĽ áááłá á á.á.á. ááŽáśáŽá ááľáĽ áĽá á áá áááá.
á ááłá áĽáááťááá˘
á ááŤá 1:
áĽáá
ááá ááá á áŁá ááá áá: á¨ááááĄá ááááľ ááá
, á¨áááĽááá áŤáľá á áľáŤáť ááľááľ áĽáá˝ááá. áľááá
á 0xff (ááť á áŤáŁá˘) á¨á°áá á áŤáŁá˘ ááá á¨ááš áá¨á¨áť áĽáľááááá áľá¨áľ á á ááĽáľáśáš ááľáĽ áĽáááááá˘
á ááŤá 2:
á á°áááá á¨áááἠááááľ ááááŤáľ á áá˝ áá áŤá
á ááááŚá˝ (áĽá áľááá
áŤáľááá˝) áĽáá°ááŤáľáááá á áľááľáá áááá á áá˝ááᢠáŤáľááá˝á áĽá áááĄá áĽáŤáłá¸á á á°ááŤáŠ ááá˝ áá áá°áŤá¨áľ áá˝áá, áá á¨á°áᨠá ááŤá¨áĽ áĽáááŁáá: áááąáá áŤáľááá˝ áĽá áááĄá á á ááľ áá˝ áá áĽááľáááŁáá, ááá áá áŤáľááá˝ (áá ââáá á áŤáá¸á) á¨ááš ááááŞáŤ áá áááŁá, áĽá ááἠ(á¨á°áááá ááááľ) á¨áááŁá á¨áá¨á¨áťá áá. áá âáĽáá°á°áááâ (áá á˛áľ áá¤áľ á á áá áŚáł á¨áá)ᣠáá
áá˝ áĽáá°á°á ááá áĽáááĽá¨áááá˘
á ááŤá 3:
á áááą ááľáĽ áľá áá¨áá áŚáł áááá ááá áá áá¨á áá¨áá¸áľ á áŤáľáááá, á¨ááááŚášá áá°á á¨ááŤááááą á áááá˝ á á áá¸á. ááá áá, á˛á˝á / á˛áŤáᥠááᥠáá°á¨á á áá áľ.
0xffá áĽáá° ááááľ ááľá¨á፠áĽá áááá (á¨á á á áá áášá áááá) áľááá
ááá áŚáł á áĽááá áááľ áĽáá° ááἠá ááá ááá˘
á¨áá˝á˝á á°áá á¨áĽáĄ
á ááŤá 1
á ááŤá 2
á ááŤá 3
áľá
á°áľ ááťáťá
-
+
+
á áľá°áááááľá˘
+
-
+
á¨áľáá ፠ááľáĽáľáĽááľ
*
**
**
á ááŤá 1 ááłá ááľááľ á áá: ááááá áŤáľááá˝ á¨á°á ááš, ááŁáŠ á°áá°ááľ á áá á°á°ááľáˇá. á¨á°ááŠáľ á ááŤáŽá˝ á¨áá°á ááłáľ á˘á°ááľá á ááłááľ áá¨ááá˝á ááá°á áĽáá˛áŤáá áŤáľá˝áááłá.
áĽáá
áá áááĄá á á°á¨áá ááá áááľááἠáĽáá°áá°áá ááľáłááą á°áᢠáá ᣠáĽá áľááá
âá¨á°á°á á¨â áááἠá áá á ááš áá áŤááá áá¨á áá áĽááŁáá ᣠááá áĽááłá á á áá á¨áĄ ááľáĽ á
áá˝ á˘ááá ᣠáĽá á áá°áááᢠáááľ ááľáĽ áŤáľááĄ.
ááąáááľáĄ-
- á ááááŞáŤá á ááŤá ááááá áĽáť á áááą ááľáĽ áá¨áá¸áľ á ááĽá ᣠá°áááá ááááľ á˘áá˛áá á¨á°á ááá ᣠá¨á፠á á áĽááááš áááłáá˝ á á ááľ áŁááľ ááááľ áĽáá˝ááá áŁ
- á ááá°áá á ááŤá á¨áááť á áľáŤáťáá áĽá ááááąá áá¨áá¸áľ áŤáľááááá; áááᥠáá áá á ááá á áá áľ, á áĽáŤááłááą áááἠ4 áŁááľ áĽáááłáá (áááľ áŁááľ áááŤáŤáť áĽá áááľ áŁááľ ááááą);
- áŚáľá°áá á ááŤá á¨áá¨áťáá ááááŞáŤ ááááá¨áľ á ááľ ááá áĽáť ááááá ᣠá á°á¨ááŞá áá¨áťá áŤáą á áá¨á፠ááááŤáľ á¨1-2% áá¨ááŤáᢠá á á ááá ᣠá¨ááááŞáŤá á ááŤá áá á áááľ á°ááłáłáááľá˘
ááááŞáŤ áá, ááá°ááá á ááŤá áĽáá° ááá (áĽáá˛áŤáá á á°ááŁá áŠá á˝á áá á). á¨á°ááŠáľ á áá¨á¨áť áááá፠ááá áá áľááľá ááá˘
ááááŁáľ á ááľ áá á ááá á°ááłáłá á ááŤá áĽá áááá. áááłáᣠá ááŹáľ áĽá á áááľ ááŤá¨á áááá ááá¨áĽ á¨áá¨á áá¨ááťá ááľá°áááľ áŤááĽáᣠááłááááľáŁ ááŽáľáá á¨á¨áŽá˝áŁ ... áá ááá á¨á°ááŤáŠ ááľáááśá˝ áááŤáá˘
áľá áŚáľá°áá á ááŤá: á áá¨á፠ááŞáŤ áá¨ááá , á áá°áą ááľáĽ áŤááá ááááľ ááá¨á, ááá° áľáááááľ áĽáť ááľáá áŤá á áľá¸ááŞááľ áááľ áŽá¨áŚá˝á á°á ááľ. á áᣠááááŁáľ á áľáá ááᣠáá áŽáąá ááá á ááĽá - ááá áĽáŤáľá á á¨ááľáá°áá ááá áĽááľáłá°áá á áľááľáľá˘
áá áááŤ- á¨áá¨ááť á ááŤáŠá á á°áá°ááľ ááá áĽááááŁáá "áŤáľá á¨ááááľ - á°áááá ááááľ áŤáá áááĽ" á á áááá áĽá áááááľ ááááŤáľ.
á¨ááá áľáŤáá˝á áľáŹáľ ááá¨áłá°á á˘áľ ááľáŽá˝á áá áá
ááłáĄá á¨á¨áľ áĽááłááááľ á áá á ááľáłááľáᣠáá áá
á áááľááá˘
ááĽáŤááłááą áá¤áľ áŁáá˛áŤáá˝á áááľááἠáĽá á˘áľ áĽáááľáŁááá˘
áá°á áĽáá áĽáá°á°ááááá á¨ááĽááľ á áá ááá á˘áľáľ á 1s á°ááá°áá, áĽá 1 áá° 0 ááá¨á áĽáá˝ááá, áá á á°ááŤáá á áá°áá. áľááá
"áŁáá˛áŤá á áá°áááá" áááá 1 áĽáá áááá "áŁáá˛áŤá á°ááá§á" 0 áĽáá áááá.
á¨á°áááá-ááááľ áááἠáá° ááá˝ ááľááŁáľ áá áááľá áĽáá°áá˝á áĽáááĄ-
- "ááááľ áá¨áť á°áááŻá" á¨áááá áŁáá˛áŤ áŤááá;
- ááááąá áááááĄ;
- "á¨ááἠáá¨áť á°áááŻá" á¨áááá áŁáá˛áŤ áŤááá;
- áá¨áá áĽáááááŁáá;
- á¨"áá¨áť á ááá" áŁáá˛áŤ á ááá á˘
á á°á¨ááŞáᣠá á á ááá 4 á˘áľ áŁáá˛áŤáá˝ á¨"áľá á°áľ á°á¨áľáˇá" áŁáá˛áŤ ááá¨ááá˘
á áá áááł áááľ á¨á°á¨áá áááśá˝ á áá "1111" - áá¨áť á áá°ááá¨á áĽá "1000" - áá¨áť á¨á°áłáŤ áá á; á¨áá¨áťá áá°áľ áŁáá°á á á áááł ááá¨áĽ á áá¨á°áľá áľ áá ááŤá¨áá áááśá˝á áĽááá ááá, á¨ááŤá ááá ááááľ áĽá ááŤááľ áĽáá˝ááá.
á ááŤá¨áĄ á áľá°áłá˝ áá, ááá áá á¨áľááá°á á¨á¤áááľáŞá áááŤá¨áĽ áĽá á°ááłáłá ááľááśá˝ áĽáť áá áĽáá, á áĽááἠá áľááá áá, ááá áá áá á¨ááťááľ ááľááśá˝ áĽá¸áá (ááá ááá) ááááŤáľ á áŁá á¨áŤá áá.
áá áááŤ- áĽáŠ áááľá ááá áĽáááĽáá˘
áźáŽá˝
áźááąá áĽáá˛á ááá á¨áá á¨áĽáá á áľááá áĽáŤáá áĽá áááá (á á°ááŁáŁá áĽáľá) ááá¨ááἠáŤáľá˝ááᢠáĽá, á¨áá á¨á°ááášáľ á¨á˘áľ ááľáŽá˝ á á°áá¨, ááááá áá°áŤá.
á¨áá á¨á°ááá¨áľáá¸á á¨á˝ááŽá˝ ááá ááá á¨áá˝ááľá áááá á¨áááľ ááľáĽ áŤáľááŁá áźááąá á¨á¨áľááá áááťá ááá ááá áá áľá á°áľá ááá áá˝áá (ááááŁáľá á¨á°ááŽá á áá ááťá°áá˝ á áľá°áá - áźááąáá áááĽáŠ áá˝áá).
áľááá ááŁá˝á áá¨áá áŤáá°á፠áááá áá¨ááἠá¨ááᣠáźáŽá˝ á áŁá áĽáŠ ááłáĽ áá¸áá˘
áźááąá áááľááľ á¨á áááŞáá áá፠ááá á áááľ áĽáŤá á áááłá - CRC. á á ááľ á áŠá áŁá¨ááŁáĽ áŁá áŞáŤáľ á¨á°áá°á áľá á°áśá˝á 100% áááŤá áŤáľá˝áá ᣠá áá á áŠá ᣠá áááá° áá¨á áá áá áľáá°-ááá áĽááá áá á¨áááśá˝á ááľá á¨ááľá-ááłáŁá áá°á áĽáá áŤáá áá áŤáłáŤáᢠ. á áŁá ááŁá áľáá°-ááá áááá áá˝áá, ááá áááá á¨áááśá˝ áĽááľ á ááťá áá á°áá á áá°áá, ááá áá á áŁá á áá áĽáŤáľ á áá: áŁáá áá áá¨áŤáá˝ ááľáĽ, á ááá˝ áŤáá°áłáŤáá¸á ááá á áŚá˝ á ááá áŠá. á áá ááłá áá áá¨áááľ ááá áĽáŤáľ áá.
á¨áľáá˝ áá á áĽááľ ááłááĄ-
áááᣠá¨áźá áááŤá á¨ááá¨áĽ á°ááŁá á áá°á ááááᤠCRC áá á¨áźá áąá á¤á°á°áĽ ááᢠááááąá ááá°á áŤáľáááááłá, áĽá á¨á፠ááááá ááá¨áĄ.
á¨áźáá°á ááááľá ááá¨áĽ á ááááŞáŤ á á¨á¨ááł áĽáá°áááľáá ááá áĽáŤá á áá°áá.
á ááłá ááľá¨áłáĄ-
á áĽáŤááłááą áŁááľ ááľáĽ á¨áľá
á°áľ áĽáľá ááá¨á áĽá áĽáŠ á¨áá°áť ááłáĽáŁ áĽáľá˛ á á ááŤá á¨áľá
á°áľ áĽááľ á áááŽá ááááĽáľ áĽáá°áá˘
áááĽáŁ áŁááľ
ChecksumᣠáŁááľ
áŤáá°áá áľá
á°áśá˝
á¨áá¸áľ áľá
á°áľ ááááŤ
á á
áá á¨áá¸áľ á áááłá áá¤áśá˝
1
0
1000
0
1000
1
1
4
999
1003
1
2
â0
1997
1997
1
4
â0
3990
3990
10
0
9955
0
9955
10
1
39
990
1029
10
2
â0
1979
1979
10
4
â0
3954
3954
1000
0
632305
0
632305
1000
1
2470
368
2838
1000
2
10
735
745
1000
4
â0
1469
1469
ááá ááá ááá áááľáá - áĽáá°á°á á áá áá¨á ááááľ á ááá°á á¨áźááąá ááááľ á áľááš á¨á°áłáłáą á áááłá áááŽá˝á ááá¨áĄ - áĽá áĽáááą á á¨á¨á˘áą ááľáĽ ááá˘
ááá ááᣠá á áá áźáŽá˝ áá á˝áá ááá áŤáᥠááá áĽááłá áá á áľá
á°áśá˝á á ááá¨áľ á¨ááľ áĽáŠ á˘áááᣠá áŁá á¨áá°á á áá ááľá áá á áá á¨áááá° áá¨áá áĽáá° áľáááá ááá á áá˝ááᢠáá áŹá á¨áááá˝ á˝áá á áľááľá áá áá˘
áľááá ᣠá¨áááá° á¨áźáá°á ááĽá፠áá˝á á¨áááťá áááľá¨áᣠ32 á˘áľ ááá á¨á፠á áá ááááľ áŤáá¸áá áźáŽá˝ áá áá áŤáľáááááłáᢠ(á¨64 á˘áľ á áá ááá ááááśá˝áŁ ááľá ፠áá˝ á°ááŁáŤáľ áĽááá áá áĽá á áá áááá).
á ááááá ááááľ áŚáł ááá ἠáĽááłááĽá áá°á áĽáŹ á¨áťááŠáľ á˘áááᣠá ááá áŁá 32-á˘áľ áźá áĽáá áááá (16 á˘áľ á á á áá°ááᣠá¨ááá¨áľ áĽáľá ᨠ0.01% á áá ááᣠáĽá 24 á˘áľ áĽáá°ááą)ᢠáĽáá ááá áĽá፠á áá°áá áá á) .
áĽáá á°ááá áááł áá˝ááᥠá áá 4 áŁááľ á á ááľ áá áááľá áľ áĽáŤááłááąá áŁááľ áááá á á áááááĽá áľ áá á áľááá áá? áźá áłáłá¨áá ááá áŁáá¨áአá ááťáá? á áĽááἠá áá°áá, ááá áááá á¨áá áááľ á áá°ááá˘, á¨áłááááľ áá¨ááἠá áŤáľááááá.
ááááá á áááááĽá áľ áá á°á˝á¨ááŤáŞáá áĽáá°áá á áááĽáá, ááá áá á áá áłáá á¨áááá CRC-32C ááá°áą.
áá
áŽáľ áĽáľá¨ 6 áŁááľ á áá°ááą áĽá˝áá˝ áá 22 á˘áľ áľá
á°áśá˝á (ááááŁáľá ááĽá á áŁá á¨á°ááá°á ááłá)ᣠ4 á˘áľ áľá
á°áśá˝ áĽáľá¨ 655 áŁááľ áľá¨áľ áŁá áĽá˝áá˝ áá (ááĽáá á¨á°ááá° ááłá)ᣠ2 ááá ááááá áĽáááł á¨áá á¨á˘áľ áľá
á°áśá˝ á ááŹáśá˝ áá áááááá ááááŤáłá ááááľ.
ááááŽášá á¨áááá áŤá
Đ
áĽáá˛áá á¨áĽá áá¨á á¨á°á¨áá áľááá áĽáŤáá á¨áááłá-á¨á°á¨áá ááá áŤáá°á¨áá áá¨áá áźá áĽáá°ááá?
áŤáá°á¨áá á¨ááἠáźá áľááá áááľááľ á¨áá°áá ááááŽá˝áĄ-
- á áá¨á¨áťá á¨ááἠáá¨ááťáá á°á áááľ áá¨ááἠá ááĽá - áľááá áĽá á ááĽáł áĽáááľáťáá (á á°ááłáłá áá á¨áááá፠/ á¨ááááľ áľáá ፠áá ááá á¨áá˝á áľá á°áśá˝, á á°á°á ᨠáá á°á¨ áľááľáł ááááŤáľ á¨áá°ááľ ááłáľ, ááá°. ááá¨ááŤá);
- á ááἠááľáĽ áŤáá á¨á˛áááľ áľáá°-ááá á áľááá á¨á á°á á á°ááŁá á á ááᢠá áááŁá âá¨á°áŁááâ á¨áá¤áľ ááἠáááľáá ᣠá á°á¨ááŞá ᣠáĽááá áá á áá¤áľ áĽá¨áą ááľáĽ áŤá áľá á°áśá˝á á á°ááĽá ááá áá˝áá ᣠáá á áľá á°áľá á¨ááá á á ááá áĽáľáá ááááłá (á á áá áááἠááľáĽ á ááľ á˘áľ á áááá ἠáá¨áŤ á áľááá ᣠzlib áľá á°áľ á áááˇá) á¨ááłáŽá˝ á ááľ áŚáľá°á áá°á)á˘
áŤáá°á¨áá á¨ááἠáźá áľááá áááľááľ á¨áááá ááááŽá˝áĄ-
- CRC á á°áá áááá˝ áá á°á¨ áľááľáł áŁá ᪠ááááľ áĽááľ á˘áľ áľá á°áśá˝ "á¨á°á á" áá (á á°á¨áá áĽá¨áľ ááľáĽ áľáá˝ áľá á°áľ á áá¤áą áĽá¨áą áá áľáá ááἠááŤáᣠáá˝áá ᣠá ááľá-ááłáĽ áĽáť áááľá "ááŤá" áĽáá˝ááá);
- áá ááš á¨áá˝á áá¨ááá˝á áá° á˛áŽáááŹá°á á¨ááľá°ááá ááłáĽá á áĽáááľ á áááľáá˘
áá áŤááá áĽáá´áľ ááá˝ áĽáá°áá°áĽ.
á áá ááŽáááľ ááľáĽ áŤáá°á¨áá áá¨áá áźá ááá¨áá¸áľ á á á ááá á°ááŁáááľ áŤáá á á áŤá áááŤá áá°ááŠ.
áá áááŤ- CRC-32C áĽáá áááá, áźáŠá á¨áá¨áá áá áĽáá°ááá (á¨á¨áá á áá) á á°ááá áľ á á˝ áá.
áľáááá˝
á°á°ááá áŽáľ áá áá á áĽááἠá¨ááἠááĽááľá á áŤáľáááľá, ááá áá, á á¨áá°á áááł (áĽááá áá á áĽá áľáááá˝) ááááľ á¨ááá˝á á¨ááἠááĽááľ áĽáľáá ááááłá.
áľá
á°áśá˝á áááľá°áŤá¨á á¨á°ááŤáŠ á¨áľáá ááááśá˝á áá áá áĽáá˝áááá˘
áááá áŽáśá˝ áá á áľá
á°áśá˝áᣠáŞáľ-á°ááá á¨ááá áŽáśá˝áᣠá ááŤáł á¨ááἠá
ááá˝á á¨áźáŽá˝ áá á ááŁááᣠááá áĽáá° RAID-6 áŤá á˘ááŽá˛áá á¨áá°á ááľá á˘áá áá áá¨áá áááś áááááľ áá¨áłáá˘
ááááŞáŤ áá áľáá°áľá á¨áááá áŽáľ ááľá áľá á á°áá ááá áá ááᏠáá áᣠááá áá á ááááŞáŤ áŤáłá˝áá á¨á¨áľááš áľá
á°áśá˝ áá á á
áĽáá°ááááá áĽá á¨ááŤá áŽáľ ááľá¨áá ááá¨áĽ áĽááłááĽá á°ááááĽáŠá˘
áá°á á˛á áľá á°áśá˝ á á°áťá ááĽááľ ááŤá áĽááłááŁá¸á á°ááá¨áá. áľá á°áśá˝á á áá ááĽáĽ áá áááá áĽáá˝ááá?
- áŤáá¨á¨á° áá¨áť (á á°áá¨á¸á áľ áá
áľ á áá ááááŤáľ ááá á ááˇáᣠRaspberry á á¨áśáŁ ...)
ááŽ, áĽáá°áá á áááľ áľá á°áľ á˛á¨á°áľ, á¨ááá¨á áá áŤááá ááááŚá˝á á˝á áááľ áĽá á¨á ááá ááἠáááľ ááľáĽ ááľááŁáľ áá; - áľá
á°áśá˝á ááá (á á°áá°á ááááŤáśá˝ áá° ááá˝ áá
á°á¨ áľááľáł á¨á°áťáá á¨á°áťáá á áá°áá)
á¨á°ááł á áá áá˛áŤáá á¨ááŁáĽ áá¨áŤ áŤá°á¨áá áĽáá°ááá áŤááľá áľá á°áśá˝ áá˛áŤáá ááááľ áĽáá˝ááá; - á áá¨ááť áá á áá á°á¨ áľááľáł ááľáĽ á¨ááἠáááŁáľ;
- á¨ááŁáĽ áľá
á°áśá˝
ááá¨á, áźááąá á¨ááááłá°á á¨áá, ááŁáĄá áĽá áá ááľáá á á áá.
áááľá á¨áŚáľá°áá ááááľ áľá á°áśá˝ áĽáť (á áá¨ááť áá áľááá°á á¨ááἠáĽáášááľ) áŤá áľá á°áľ á°á¨ááŤá áŽáľ ááłá¨á á áá˝ááᢠáĽáá°áá áŤá áľá á°áśá˝ á ááá á áŁá á¨áááťá áááľáá.
áá áááŤ- á°á°ááá áŽáľ ááľá áľá ááá°á á°ááľáá ᣠáá áááá á¨áá á ááłá áľá á°áľ áŤáłá¨ áá° ááłáŠ ááááą (á áľáááśá˝ áá ááľááá á¨á°á¨áḠáľáłá˛áľá˛áᾠᣠáá á áľáááááá áŽáľ ááá¨áĽ áŤáľá˝áá)á˘
ĐŃĐžŃоо
áĽááἠáá, á¨á˝áá á áá¸áľ áĽáŤááłááąá ááá á á áá¸áą áá ááá˝á°á á ááá áľá (áĽá áĽááŤáŹáŹ ááľááá á ááá)áľááá á¨áá áá°á áŤáá°áአá ááłááľ ááĽáŚá˝á áŁáአáĽááá¨áłááá˘
- áááá áážá˝ "áĽáŠá" áááľá¨á á°ááľáá.
áááľáᣠááłáłáłáŁá¨á°ááŤáŠ ááŽá˝áŁááá° áŤá áአááá˝ á áááŠá ááááá áááá áážá˝ á á¨á°áŤ á¨áá˝á áá á ááá˘
áá áážá˝ áá áĽááł ááá áľ áŤá¨áááŁá, ááľááľ ááá áá á ááĽáĽ, áĽá áĽá áá áĽáá°; - á¨á
áá¸áąá áľáŞáľ áá
á¨áĽ á áľááá áá.
á áááą ááľáĽ áŤá á¨áľáŞáľ ááĽá á áá¸áľ ááĽá áá!
á ááš áŤáľá áá á¨á°áá°á á¨á áľááľ ááĽá (ááá) áŤáá ááľá áá¨á á á áá, áá á áĽá á áá á¨áááá á áá¸áľ áľáŞáľ áŤáłáŤá. (á á°ááŁá á ááľ á°ááá áĽááłá á¨ááአá áááľááá); - á á áĽááááš ááłáŽá˝ 1 áŁááľ á¨á á áááľá¨á á ááá¨á áááááŚá˝ (á¨áá ááľáĽ áĽá áŤá) á°áááá-ááááľ áŤáľáá áá ááá˘
- á¨áŤáľááá ááááľ áĽá á¨á°á¨á¨á¨ááá á¨á°á¨áááá áááἠááá ááááľ ááá°á á ᣠá°áááá ááááľ áŤáá¸áá áááľáŽá˝ áŽáśá˝ áá ááá˘
áĽá á¨áľáˇáá˘
á¨ááἠáá¨ááť á
áá¸áľ ááááŤ
áŁááľ áľáĽáá
á¨á ááľ áŁááľ á áá á¨áá ááľáŽá˝ á áľáá á˘áá˛áŤá á áá¸áľ (á¨á ááłá¨ áá¨áĽ áŁááľ á á°á á°á¨á°á) ááááŁáᣠáááľáᣠ0x1234 á 0x12ᣠ0x34 á°á˝ááá˘
áá áá˝á
ááá á¨ááá˝ áá á°á¨ áľááľáł áĽáŠá áá á áŤáá¸á ááá˝ áá¨ááá.
ááŁáŞ á¨áá˝ áá á 32 áŞáŁ ááᣠááá áá á¨á á ááá á¨áá á°á¨ áľááľáł áşá áá á ᨠ1/4 á áá ááĽá (á 4MB áşá 128 ááá˝ áááá)á˘
áĽáŤááłááą áá˝ á¨áááš á°áááś áá¨áá áŤá¨ááťá (áá á á á ááľ áá˝ áá áŤáá ááἠá áá áá˝ áá áá¨áá á áá á áľá)á˘
ááá ááá˝ á á°ááĽáŽ á á°á á°á¨á°á á°ááĽá¨áá (á á áľáŤáťáá˝ á á°á á°á¨á°á) ᣠá¨ááĽá 0 ááᎠ(áá˝ áᎠá á áľáŤáť 0 ááááŤá ᣠá¨ááááŞáŤá áá˝ á 32 áŞáŁ ááááŤá ᣠááá°áá áá˝ á 64 áŞáŁ ááááŤá ᣠááá°.)
á¨ááľáłááť áşá áĽáá° áłááá ááľ (ááá áľ ááľ) áĽá á áá ááááᣠáááľáᣠááááŞáŤ ááá áá° áá˝ ááĽá 0ᣠá¨ááŤá áá° ááĽá 1ᣠ...ᣠá¨áá¨á¨áťáá áá˝ áľááá á á˛áľ áá°áľ ááááŤá áĽá áá¨áť á¨áá˝ áᎠáááĽááᢠ.
á ááš ááľáĽ
á ááš ááááŞáŤ áá áŁá 4 áŁááľ áá˝ áŤáľá áá¨ááťáᣠá¨ááŤá á¨áŤáľá áźá (CRC-32C)ᣠá¨ááŤá ááááŚá˝ á "áŤáľáᣠáłáłáŁ áźáá°á" á
áá¸áľ ááááŁáá˘
á¨ááš áááľ (á áĽááá ááááŤá áá ááťáť á á¨ááá´) á¨áá¨á°ááľá áŤá áááá
- áŁá áááľ áŁááľ á¨á áľááľ ááĽá ááľá (áĽáá˛áá á¨á
áá¸áą áľáŞáľ ááááľ)
áá áá á¨á áá¸áą áľáŞáľ áĽáá° áá°áá0xed00 â Đ˝ĐžĐźĐľŃ ŃŃŃаниŃŃ
; - áŁá áááľ áŁááľ ááŁáŞ "á¨áá˝ áľáŞáľ" (á¨áá á°á¨ áľááľáł áá°áľ ááĽá áĽáá°áá ááá).
á ááš áá áŤá áá¤áśá˝ á á°á¨áá ááá ááááŁá (á¨á˛áááą á áááŞáá áĽá á áá áááá)ᢠá á ááľ áá˝ áá áŤá ááá ááááŚá˝ á á ááľ áá ááľáĽ á°á¨áááá (á¨á°ááá° áááá -áááľ áĽá á áá áááá) áĽá á áĽáŤááłááą á á˛áľ áá˝ áá áááá áĽáá°áá ááááŤáᢠáŤá áááľ, áááááá áááἠáááĽááľ, á¨áá áá˝ ááá ááłá ááááŚá˝ (áĽá áá áĽáť) áŤáľáááá.
áĽáŤááłááą áááἠá Z_SYNC_FLUSH áŁáá˛áŤ áá¨áááᣠáĽá á á°á¨ááá áĽá¨áľ áá¨á¨áť áá 4 áŁááľ 0x00ᣠ0x00ᣠ0xffᣠ0xffᣠááááŁáľá á¨á ááľ ááá áááľ á°á¨á᪠áᎠáŁááľ áááľááá˘
áá° ááá˝ áá
á°á¨ áľááľáł áľáá˝á áá
áá á
á°á á°á¨á°á (4, 5 ááá 6 áŁááľ ááááľ) áĽááľáááłáá.
á¨áááᥠáŤáľá 1ᣠ2 ááá 3 áŁááľ áá¨ááť áááĄ-
- á ááľ á˘áľ (á˛) á¨ááááĄá á áááľ á¨ááŤááááľ: 0 - á ááľ, 1 - áá;
- á°áááá á¨ááááľ ááľá (á¤áľ) ᨠ1 áĽáľá¨ 7 á˘áľ, á¨áŤáľááá ááááľ áĽá "á áŤáľ" ááá áľá áľ áá° áááἠááľáĽ áá¨áá áŤáá áľá ááá°á;
- á¨áááἠááááľ (L).
á¤áľ áĽá´áľ á°áá á¨áĽáĄ
S
á¨áŤáľá ááááľáŁ áŁááľ
á á˝ááᣠáŁááľ á°áĽááá˘
0
1
5 (00 00 00 ff ff
)
10
1
6 (00 00 00 00 ff ff
)
110
2
4 (00 00 ff ff
)
1110
2
5 (00 00 00 ff ff
)
11110
2
6 (00 00 00 00 ff ff
)
1111100
3
4 (00 00 ff ff
)
1111101
3
5 (00 00 00 ff ff
)
1111110
3
6 (00 00 00 00 ff ff
)
á ááłá áááľá¨áłáľ áá¨ááŠáŁ áĽáá´áľ á ááá
áĽáá° áá á ááá
ááĄ-
á˘áŤ áĽáá
T ááľá, áá S ááľá, á á¨ááá´ L (á¨áłáá ááἠá áŁááľ ááááľ) á°ááŤá á¨áłáá áááĽ, áá áá° ááá˝ áá
á°á¨ áľááľáł áŤáá°áááá á¨áłáá ááἠá¨áá¨á¨áť áŁááľ.
áľááá , á áŁá á¨á°ááá°á ááááľ (áĽáľá¨ 63 + 5 áŁááľ á á°á¨áá á áá˝) áŞáŽááľ á ááĽáľáśá˝á á á ááľ áŁááľ ááťá áĽáá˝ááá.
á¨áĽáŤááłááą áááἠá áá CRC-32C áźá áá¨ááťáᣠá áá ááľáĽ á¨áá°áá áźá á¨á°ááá á áá áĽáá° ááááŞáŤá áĽá´áľ (init) áĽá á áá ááááá˘
CRC á¨"áááł" ááĽá¨áľ á ááᣠá¨áá¨á°áá ááá áá°áŤá (á áá°áą ááľáĽ á¨áľáá˝ ááááŁá ἠá˛á°áá ááá á˛áááľ) .
áŤá áááľáŁ á áĽáááąáŁ á áá
áá˝ áá áŤááľá áááá á¨áá°ááľ áŁááľ áŁááľ áĽá ááἠCRC áĽáá°áááá˘
áźááąá á ááĽáł áá¨á°á á¨áááĽáá áááἠáŤáľá ááá˘
áŤáľáá á¨á°áá°áá á¨ááááŞáŤá áŁááľ áá áá á¨0x00 áĽá 0xff á áááá áľ ááááľ áá (á¨ááááŞáŤá áŁááľ áŤáľá áááł 0xff áŤáá áá áá áááľ áĽá á áá áŤááá áŚáł áá áááľ ááᣠ0x00 áľá á°áľá áŤáłáŤá)á˘
ááłá á áááŞáá
á¨ááá˝ áá á°á¨ áľááľáł ááá áĽ
ááááá ááŁáĽ á¨áźá áźá áá áááŁáá˘
áźááąá á¨ááááłá°á á¨áá áľáááááá áá¨á áááá ἠá°áľá á ááľá¨á ááŁáĄ áĽá áá áá°ááááá˘
(áá ááááŤáłá ááᣠááááľ á¨NOR ááá˝ áá¸á፠á ááá áĽáᣠá°ááľáá)
áá° ááá˝ áá á°á¨ áľááľáł ááá
áá¨ááá áĽáááááŁáá.
áĽáááĽáŁá¸áá˘
á¨á°áá á á áá¨á á¨á°ááá áá¨á áá á¨ááááłá°á á¨áá, áŚáłáá á ááŽáá˝ áĽááááá áĽá áľá á°áľ áĽááłá ááááľ áĽáá°áááá.
á á˛áľ áááᎠá°ááŠááľ áááĽáŤáľ á áááááľ áá
áááááᣠáĽáŞáľ 1 áŤáá áŤáľá áá° ááááŞáŤá (ááá áááááľ ááŽ) áá˝ ááťááá˘
á¨á፠á áá, á¨áááť á ááľ áá°áá
áá˝ ááťáá (á¨áá˝áá UUID áĽá ááŁáŞ á
ááĽáŽá˝á ááá).
፠áá ᣠá¨ááá˝ áá á°á¨ áľááľáł áá áááááľ ááá ááá˘
áá˝áá á ááŤá áá
á ááŤáá áľ áá á¨áĽáŤááłááą áá˝ á¨ááááŞáŤááš 8 áŁááľ (áŤáľá + á˛á áá˛) ááá áŁáᣠáŤááłáá á¨á áľááľ ááĽá ááá á¨á°áłáłá° CRC áŤáá¸á áážá˝ á˝á ááŁááá˘
ᨠ"áľáááá" áážá˝, á¨áá°áá áľáŞáľ áŤáá¸á áážá˝ á°ááá áá, áĽá á¨áá°á ááĽá áŤáá áá˝ á¨ááą ááá°áłá.
á¨ááááŞáŤá áááἠá°áá§á, ᨠCRC áľááááááľ áĽá ᨠ"á ááľ" áŁáá˛áŤ ááááľ á°á¨ááá§á. ááá ááá áĽáŠ á¨áá, áá
áá˝ áĽáá° áá
áłá ááá áŤá. áŤáááᣠâá¨ááĽáłâ áá˝ áĽáľáááá áľá¨áľ áá° áá°áá áĽááááłááá˘
áĽá á á°ááá áá˝ áá áááá ááááŚá˝ áĽáááŁáá, ᨠ"á ááľ" áŁáá˛áŤ áá á¨ááá ááá.
á¨ááἠáááá áááľ á áľááἠ(áá°áá
áá˝ ááá¨áá á áľááá áááá)á˘
፠áĽáť áá, ááá¨áą á°á áá áá, á ááľ á°áááˇá, ááľáŤáľ áá˝áá.
á¨áááá áá¤áľ áá¨áá
Z_SYNC_FLUSHá á áááá˝ ááááĄá á áľááááá áááá -áááľ áĽááááááá˘á¨á°á¨ááá áááἠá áá áŁáá áá˝ áá ááľáá áĽáá°áá áĽááŤááá˘
á¨ááááĽá á¨áá (ááá á ááš áá á¨CRC áľá
á°áśá˝ áá áŠ) á á˛áľ áá˝ áááአ(á¨áá
á áłá˝ áááá¨áą)á˘
ááááĄá áĽá CRCá áĽáá˝ááá. áľá
á°áľ á¨á°áá á¨, á á˛áľ áá˝ ááááŠ.
á á˛áľ áá˝
áá
á°áá ááĽá áŤáá áá áá˝ áĽááááŁáá (áá áá˝ á á áááľáľ áá á¨á°áłáłá° áźá ááá á¨á áá áŤáá° áľáŞáľ áŤáá áá˝ áá áĽáá áĽáááĽáŤáá)ᢠáĽáá°áá
á áááľ áážá˝ á¨áá, á áá áŤáá áá áĽáŠá á¨áá áľáŞáľ áŤáá¸á áá
á°áá ááĽá áŤááá áá˝ ááá¨áĄ.
á¨á°áá¨á áá áá˝ áĽáá°áááá. áááąá á 0xff áĽáááľáťáá. á¨áá ááá á¨á°áłáłá°áŁ ááŁáŠá áá áá˝ ááá°áąáŁ ááá°.
á á°á°áá°á°á áá˝ áá á áááľáľ áĽáá˝ááá, á¨ááááŞáŤá áá¤áľ á áá áŤáá á¨á ááľ áááł áá, ááŁáŠ áŤáá°áťá á¨áááἠááľáłááť (áŤá) áá.
á°ááŁáŤáááľ á áá¸áľ
á áĽá á áľá°áŤá¨áľáŁ ááááá á°á¨á᪠ááá áŁáá° ááłáá á¨áá˝á á¨áá¨á áĽá¨áśá˝á (ááá˝ á˝ááᣠJSONᣠMessagePackᣠCBORᣠááááŁáľá ááŽáśáĄá) á NOR Flash ááľáĽ ááá¨áá¸áľ áĽáŠ á áá¸áľ áá á°áááˇáá˘
á áĽááἠá áá¸áą áSLC NOR ááá˝ "á¨á°á á" ááá˘
áĽáá° NAND ááá MLC NOR áŤá á¨áá°á ᨠBER áá˛áŤáá˝ áá áá áá á¨áá áľá (áĽáá˛á áŤá áá á°á¨ áľááľáł áá˝áŤá áĽááłá áááá? áĽá á¨áá¨á á áá¨á áŽáśá˝ áá áĽáť áá).
á¨áá á á áá á¨áŤáłá¸á á¤áá˛á¤á áŤáá¸á ááłáŞáŤáá˝ áá áá áá á¨áá áľá: áŠá¤áľá˘ ááá˝, á¤áľá˛, áááᎠá¤áľá˛, ááá° (ááĽáá°áá ááááą áá á°á¨ áľááľáł á¨áá˝ áá á 512 áŁáᾠᣠá áĽáŤááłááą áá˝ ááááŞáŤ áá ááá áĽá áአá¨áááἠááĽáŽá˝á á¨áŤá á áá¸áľ áá áአ- á ááłááľ áá áááá áá¨ááὠᨠâá¨á°áłáłá°â ááá˝ á ááá á ááá á°á¨áłáłá ááŁáĽ ááááľ ááťá áá á).
á á°ááŁáŽáš áá á áááľá¨áľ, á áá¸áą ᨠ128Kbit (16Kb) áĽáľá¨ 1Gbit (128MB) á ááá˝ á ááááá˝ áá áŤá ááἠáá áá ááťáá. á¨á°ááá á áľááá áşáá˝ áá áá ááá áľ áá˝áá, áá ááááŁáľ á¨áášá áá á ááľá°áŤá¨á áŤáľáááááłá (ááá áá áĽáá áá á¨á˘áŽáá á ááááľ áĽáŤá ááľááá á°ááľáˇá, áľáá áá á áŤáá NOR ááá˝ áá á á á¨áłá˝ á áá°áá).
á ááľ á°á á áá¸áąá á áľá°áłá˝ áá áŤááá áĽá áááľ á áá ááŽáááľ ááľáĽ áá ááá áľ á¨ááá, ááá, áááá áááááľ áĽáááŤáá, áŽáąá á áťá˝áá áĽá á github áá áááá á.
áá°áá°ááŤ
áĽáá°áááá¨áąáľ, á áá¨á¨áť á áá¸áą ááá áá á°áááˇá áĽá áĽáá˛áŤáá á á°ááş.
á á ááá ááľáĽ á¨áĽáá á áááŤá¨áľ áááá° ááἠáááááŁá¨á á áľá¸á᪠áá, ááá áá áĽááá: ááááŞáŤ áá á á áἠáááľ áá á¨áááá áááłáł áĽááłá áłááá áááľá¨á á¨ááŤáľá˝á ááľáĽáľáĽ, á¨ááá áá˝, á¨áá ááá ááá á áĽááá áá á. áááᣠááááŤáľ (á°áľá á á°áááá) á ááá á á¸ááá áĽá ááľ á ááľ á áľá፠á¨áá°áŁá¸á áááŽá˝ áá° áááááľ áĽá ááąáááľ á°á¸áááŠá˘
á°áłáľáź ááá áá˝áá? á á áĽááἠáá. ááááŁáľ áĽáŠ ááá áá˝áá, áááłá, áá á°á áĽáŤáľ áŤáá¸á áááᎠá°ááŽá˝ áľáĽáľáĽ ááá. ááá á áá ááááŤáľ ááłáŞáŤá á áľá°áááááľ á¨áá á ááľá á áŤááá.
ááá áĽá áľ á áá? áĽá áĽáá°ááľá á á˝ááá áŤáá ᥠá áá áĽá áľ áĽááłá á áá áŤá áŠá. áĽá áĽáťáá á áá°áá.
á áľááš á¨á áľ áŤá ááľáłááťáŁ á áá¸áą áĽáá° á¨áľáŤ á ááŤá áĽá áĽáá° âá¨áá¨áŤ ááâ á°ááá áˇáá˘
á á áá áá á á á¨á´áá áá áŤáá ááá áá á áĽáŠ áááł áĽá¨á°áŤ áá, á áĽáŹá á áá áá áááľáá áá°áááá (á áááľ) á ááśáá˝ á ááá አááłáŞáŤáá˝ áá, á "áááŤ" á á áŤá ááľáĽ áá áĽáá°ááá á áĽáá (áĽáá° áĽáľá áá, á áá¸áą ááľááśá˝á á á áľá°ááá áááł áááá¨áľ áĽáá°ááá áľáááľ á°áľá á á°áááá, áľááá áá áľáłá˛áľá˛ááľá áá°áĽá°áĽ áá˝áá). á áĽááľ ááŤáśá˝ ááľáĽ áá°áá°ááŤáá˝á ááľá¨á ááťáá (áĽá áĽáľáá áŤáááá áá°á áĽáá á˘áá).
á á á ááá áá¤áśá˝ áá á ááááŽá á¨áŁáľ á˝ááŽá˝ á¨á°áá áĽá ááťáťáŤáá˝ á¨á°ááá á áĽááá áááľ áľááĽáą áĽá˝ááá á˘
áľáá áá
á¨á á á á°ááş á¨áá áŤáááá áľáŤáá˝ áááá áááŁáľ á ááááŠáᤠáááአááá á°á ááá á ááá˘
áĽáá á á°áá ááĽá á áľá°áłá˝ á¨áááľááľá áááśá˝ áááá ááá°á áá°áአᣠáá ááľ á ááľ á ááĽáł áá° ááŁáĽá á˝áá á°á°á°áą ᣠáĽá á ááľ ááĽá á áááአááľáĽ áááˇá á˘
- áááááŤ
infgen á¨á°áŤá˛á áááĽ. á¨deflate/zlib/gzip áá á°áŽá˝á áááśá˝ á ááá ááłá¨áľ áá˝ááᢠá¨á˛ááľ (ááá gzip) á áááľá ááľáŁá ááá á áááá áŤááĽááľ á áŁá áĽáááŤáá.
ááá: hab.com