看了下,说说我的想法,不知道对不对:
1.Intel的工具箱Trim做法,是在windows系统里生成很多2GB的空文件(数据为0x00,实际也就是不磨损介质)填充整个分区的容量,然后得到这些文件占用的地址并用DSM指令往SSD主控发送这些地址,让主控知道这些地址的数据都无效,好处是数据完整性高,虽然效率稍低,但不需要脱机运行。
2.你的工具利用NTFS元文件$Bitmap操作,跑的比Intel的windows文件操作更低一层,有点类似操作系统还原做的快照,但是要求拍照的时候停止一切IO,避免“成相”抖动造成数据结构完整性隐患,由于当前系统里有太多出问题的可能,比如杀毒软件,底层驱动之类,造成在系统里做快照的安全性降低,所以最好的办法是在系统启动这些非必要的驱动和服务之前对文件系统做快照,避免一切不必要的干扰,快照后把得到的信息用DSM传给SSD主控,好处是干净利落,缺点是需要重启。
3.如你所说,你接下去的开发目标是驱动层面分离出删除后的文件来进行Trim,这个你在发布前一定要多做数据完整性测试,并且建议安装一些比较底层的杀毒软件测试,因为这种出漏洞的几率非常高。
再一次支持你的开发成果并感谢分享,上面的理解如有错误也请指出。 |