作者回复: 所有外设cpu都统一基于数据交换(io)的方式操作。cpu并不知道数据的含义,但是设备的使用方和设备知道。这种情况下你可以简单理解cpu只是一根网线,但是很重要的一点是它让设备使用方和设备可以交互。cpu并不负责磁盘io,但是它要等它结束以接收数据。这方面当然也有一些新技术出现改善这一点,可以想一想可能的优化路径,这里不表。
作者回复: 文件系统主要我觉得从架构上理解比较容易,所以没有特别交代太多。可能后面 review 的时候会适当重构一下这一篇。
作者回复: 真掌握了去哪里都easy ^_^
作者回复: 第一章会更偏基础体系,结合体系谈架构
作者回复: 不是一个层面,后面服务端开发部分会讨论分布式文件系统
作者回复: 1、操作系统;2、对的,以前用机械硬盘作为swap,有时候慢比较显著;现在电脑基本上都用固态硬盘做swap,慢的感觉基本上完全消失了。
作者回复: 1、外存的数据结构的特征是io是很费时的操作,所以外存数据结构+算法的优化方向是减少io次数,这个和内存很不一样。
2、平常数据结构大部分是内存;但一般数据结构书最后有几章会谈到外存数据结构+算法。
3、是的。
作者回复: 这种统一给我的感觉就像很多面向对象的类库,所有的类统一从Object类继承一样,是一个过度设计。
作者回复: 日志里面记录的是元数据的变更历史,所以可以恢复的是元数据破坏。如果文件内容坏了就没办法了
作者回复: 确实不一样,一个有建立搜索的索引,有额外的存储成本;一个是遍历(挨家挨户问过去)。
作者回复: 分区格式化其实一个普通的用户态应用程序就可以完成。文件系统管理程序不是驱动程序。
作者回复: 能够在头脑中把整体串起来就可以了,然后对某些东西有兴趣想进一步了解的,后面可以继续研究
作者回复: 频繁缺页说明活跃的内存页超过物理内存大小,导致一个页刚刚换进来又要换出去,就比较折腾
作者回复: 固态盘为何凉凉没有了解过
作者回复: 键盘和显示器就是很好的例子。stdin和stdout虽然能够用,但是实际上除了古老的命令行程序谁也不用他们。
作者回复: 希望增加什么方面的内容?
作者回复: 我想一下这个需求。要是极客时间有这个功能也不错。
作者回复: 1、会,swap访问越频繁,cpu呈现出来的性能越低,其实是因为访问存储的速度低,数据读写速度低,纯粹的计算是不影响的,但是这个世界没有脱离存储的计算。所有的计算你可以想象成从存储读出来数据,进行纯粹的计算得到结果,然后再把结果写回存储中去。所以计算的性能和存储性能密切相关。2、对的,这是非常常见的一种互斥手法。