月光下的狼

开开心心的赚钱,快快乐乐的生活
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  大家知道,我们读写硬盘的时候发送的命令为SCSI READ或SCSI WRITE。即SCSI读和SCSI写命令。但是READ和WRITE有很多种,这些命令的应用场合是什么呢?

  最重要的一点就是,这是跟硬盘的容量大小有关的。

  在很久以前,硬盘的容量很小,比如只有32MB。大家知道硬盘的LBA为512Byte。所以如果要表示32MB的空间需要2的16次方*512B=32MB

  也就是说2个byte即可表示一个32MB的地址。

  所以,在那个时候的读写命令就是read(6)和write(6),他们指定的LBA长度为2个byte!

  但是随着磁盘容量的变大,2个byte完全不能表示硬盘的空间地址。那如果我想读写更大空间的内容呢,所以就用到了write(10)、read(10),他们指定的LBA长度为4个byte,因此表示的最大容量为2的32次方*512B=2TB。所以2TB以内的硬盘都可以用write(10)和read(10)

  但是2TB显然不是终点,4个byte又不够了,怎么办,于是发展到了8个byte。这就是read(16)和write(16),他能表示的空间就大多了,估计在我们有生之年是彻底够用了。