# 压缩文件的用途与技术

文件压缩技术一般用于的场景是:当文件容量很大的时候,想要降低一些容量,在网络中传输时间少,当然下载的人就能更快的下载完,还有数据归档使用 cd 或则 dvd 来存储,但是某些单一文件比这些传统的一次性存储媒体还要大、等等的场景。

简单说就是:这些大型文件通过压缩技术之后,可以将他的磁盘使用量降低,达到减低文件容量的效果

# 文件压缩的原理是什么?

计算机最小的计量单位是 bits,不过目前我们使用的计算机系统中都是使用 bytes 单位来计量的,1 bytes=8bits,计算机存储文件是二进制的,当这个 8 bits 中没有被填满时,就会出现大量的 bit 被 0 填充,实际上他们是没有什么意义的,一些工程师利用一些复杂的计算方式,将这些没有使用到的空间去掉,来达到让文件占用空间变小的目的,这就是 压缩技术

还有一种压缩技术是将重复的数据进行统计记录。比如:你的数据为「1111....」有 100 个 1,压缩技术会记录「100 个 1」,而不是真的写了 100 个 1 出来。这样也能达到减少文件体积的目的

简单说:文件里面有相当多的「空间」存在,并不是完全填满的,而压缩技术就是将这「空间」填满,让整个文件占用的容量下降。但是被压缩过的文件无法被直接使用,需要还原回未压缩前的模样,这就是 解压缩 技术。

压缩后与压缩的文件所占用的磁盘空间大小,就可以被称为是「压缩比」,更多的技术可以查阅 GZIP 文件格式规范

解压缩有什么好处呢?Linux 3.10.81(CentOS 7 用的延伸版本)完整核心大小约 570MB 左右,由于核心主要多是 ASCII code 的纯文本形态文件,这种文件的「多余空间」是比较多的。那么压缩之后的核心仅有 76MB 左右,相差几倍。网络传输时间减少,你的磁盘占用也减少。