今天在cnbeta上看到一篇文章说chrome所以是浏览器安全标准的原因中提到了“沙盒”这个东东,于是百度谷歌了些资料,归纳如下:
沙箱其实就是一个硬盘过滤文件驱动,具体来说,就是你把要写的东西写到了硬盘上,但实际上并没有写到硬盘,而是到了一个转存处,读取内容需要判断是沙箱开启之前就存在的内容还是开沙箱之后写入的内容,要分别从不同的地方读取内容,重启之后把转存的地方清零。
文件过滤的驱动编写和加载方法(网上找到的,关键词是bitmap):就是一小块一小块的扇区,bitmap每一位对应磁盘上的一个扇区,N位就有N个扇区,这个位如果为0,就认为这个扇区的数据没有被存储到其他地方,如果为1就是存到了其他地方,写的时候把bitmap置1,读的时候就从bitmap为1的扇区从转存的地方读回来,如果为0就还是从原设备读取数据,重启后bitmap恢复为全0。
沙盒的一个具体应用提到的是Google Native Client,下文介绍其设计思路:

