操作系统是什么?
/bin/sh
, a.txt
, .../dev/tty
, /dev/sda
, ...最后没有解释的部分 (持久化)
理解 1-bit 在物理世界中是如何存储的,以及它们背后的存储设备
Persistence: “A firm or obstinate continuance in a course of action in spite of difficulty or opposition.”
为什么要在这门课讨论持久化?
持久化:有关 “操作系统对象” 的故事
持久化:需要 “non-volatility”
存储设备
用 “磁化方向” 表示 1-Bit 信息
例子:磁带
分析
今天的应用场景
“并行版” 磁带
“二维并行版” 磁带
依靠 3D 技术,有望突破 100 TB 存储
盘片 + 柱面 + 磁道 + 扇区 = 定位到 512 字节
分析
今天的应用场景
为了读/写一个扇区
通过缓存/调度等缓解
/sys/block/[dev]/queue
noop deadline [cfq]
降低交换数据的成本:把磁盘 (硬盘) 的读写头和盘片分开
分析
今天的应用场景
除了磁介质以外,还有别的办法可以存储 1-bit 吗?
能否克服只读的限制?
CD (740 MB)
DVD (4.7 GB)
Blue Ray (100 GB)
分析
今天的应用场景
之前的持久存储介质都有致命的缺陷
最后还得靠
Flash Memory “闪存”
分析
但有一个意想不到的
优盘容量大、速度快、相当便宜
放电 (erase) 做不到 100% 放干净
每一个 SSD 里都藏了一个完整的计算机系统
维护一个 block lookup table (BLT)
优盘, SD 卡, SSD 都是 NAND Flash
大家可记得修电脑引发的血案?
另一个 memory system 相关的安全问题
什么?硬件里的软件?
谁写出来的?那可得有 bug 啊!
这篇 paper 促进了硬件厂商对 FTL 的大幅改进
Device | Model | Year | Bug? |
---|---|---|---|
SSD#1, 10, 8, 9, 6, 2 | A | 2011 x 3, 2012 x 2, 2010 | Y |
SSD#2 | B | 2010 | Y |
SSD#3, 11, 12 | C | 2011 | Y |
SSD#4, 13 | D | 2011 | - |
SSD#5, 14, 7, 15 | E | 2009, 2011 x 2, 2012 | Y |
本次课内容与目标
Takeaway messages