操作系统是什么?
/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]/queuenoop 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