无忧启动论坛

标题: 操作系统启动的过程中,对磁盘进行了哪些写入操作? [打印本页]

作者: swj9314    时间: 2021-9-27 17:09
标题: 操作系统启动的过程中,对磁盘进行了哪些写入操作?
本帖最后由 swj9314 于 2021-9-27 17:12 编辑

最近对这个问题很感兴趣。ramos之所以可以无盘运行,是因为将系统镜像到了内存盘中;
普通的操作系统都无法做到脱离磁盘运行,就是因为操作系统的正常运行必须频繁的对磁盘进行读写操作。
本贴主要关注“写”操作。
问题:以win10为例,windows10官方系统,从按下电源键到看到桌面,这个过程中,有哪些磁盘写入操作?
我先来:
我将其分为两类。
一类是在文件系统之上的,基于文件的写入。比如索引文件、日志文件、windows事件;
另一类是文件系统之下的,针对磁盘的写入,不会体现出文件的修改或创建。比如ntfs日志(ntfs usn log)、虚拟内存(这个可能是文件系统之上的?)
这两类中,我更想知道第二类的磁盘写入都有哪些。
作者: lbw2007    时间: 2021-9-27 18:28
我认为但凡是NTFS文件系统磁盘写入都会体现在文件本身,NTFS日志也好、虚拟内存也好,对用户最明显的认知就是被占用。而对应的文件则是由windows自带的消息轮循机制不停处理的,无论你看到的变没变,事实上都在不停地变
作者: lily9718    时间: 2021-9-28 06:45
谢谢
作者: swj9314    时间: 2021-9-28 08:38
lbw2007 发表于 2021-9-27 18:28
我认为但凡是NTFS文件系统磁盘写入都会体现在文件本身,NTFS日志也好、虚拟内存也好,对用户最明显的认知就 ...

1. 关于ntfs usn log,他的机制是在ntfs文件系统的特定位置通过改变或者写入特定的字节去记录ntfs文件系统发生变化的情况,所以ntfs usn log不会通过文件修改时间或者文件大小的变化体现出来。
2. 关于虚拟内存,我没查过,拍脑袋理解,可能是跟常提到的“页面文件”一个事吧,内存不够用启用虚拟内存的时候,用页面文件来作为虚拟内存,在磁盘和内存之间交换。但有一种情况,如果计算机关闭或者重启,本次运行过程中产生的页面文件,或者说虚拟内存文件会不会被删除,如果被删除的话,那么在文件系统中就没有了,但磁盘上原来保存页面文件的位置的比特位也就发生了变化。
3. 然后就是你提到的“被占用”的问题,被占用不一定意味着被写,甚至都不能等同于被读,仅仅是被某个进程或者操作系统使用或者锁定了,比如操作系统运行时,肯定是删除不了某些系统文件的,这可以理解为操作系统的自我保护,而不一定是文件被写入或者被改变了。
4. 操作系统可以通过调用文件系统来读写文件,那么一样,操作系统完全有可能直接调用磁盘驱动读写扇区,对前者可以通过文件比对来发现,对后者,我不知道该如何搜集和学习,所以抛出来大家一同讨论下。
作者: swj9314    时间: 2021-9-28 08:39
lbw2007 发表于 2021-9-27 18:28
我认为但凡是NTFS文件系统磁盘写入都会体现在文件本身,NTFS日志也好、虚拟内存也好,对用户最明显的认知就 ...

“无论你看到的变没变,其实都在不停的改变”。
对于文件来说,修改时间变了、文件大小变了,更进一步,哈希值校验值变了,那就是变了。如果以上都没发生改变,那就是没变。不像你说的那么神乎其神,不可捉摸
作者: 2011miyahanni    时间: 2021-9-28 08:56
XP不是有开源代码吗,可以研究下NT内核的启动过程
作者: swj9314    时间: 2021-9-28 09:00
2011miyahanni 发表于 2021-9-28 08:56
XP不是有开源代码吗,可以研究下NT内核的启动过程

感谢,为我提供了一个好思路。
确实值得研究一下。
作者: 9zhmke    时间: 2021-9-28 14:18
本帖最后由 9zhmke 于 2021-9-28 14:20 编辑

可不可以通过避开使用NTFS,比如用Ext Fat32之类来避免ntfs usn log ?当年从Win98转到Win2000时,我曾经测试过,在少量文件的读写上,Fat32效率是大于NTFS的

作者: szwp    时间: 2021-9-28 15:28
做vhd,用bcd的ramdiskimage类似wim启动或g4d map --mem
作者: swj9314    时间: 2021-9-29 08:29
9zhmke 发表于 2021-9-28 14:18
可不可以通过避开使用NTFS,比如用Ext Fat32之类来避免ntfs usn log ?当年从Win98转到Win2000时,我曾经测 ...

这个思路我也有想过,论坛上搜了搜,貌似win10不能装到fat32文件系统中。
ext还没有找到相关资料。
作者: swj9314    时间: 2021-9-29 08:31
szwp 发表于 2021-9-28 15:28
做vhd,用bcd的ramdiskimage类似wim启动或g4d map --mem

对的。这种方式就是先全部加载到内存中再启动,就跟全内存的ramos是一个道理了,区别不大,意义也不大。
作者: szwp    时间: 2021-9-29 08:34
swj9314 发表于 2021-9-29 08:31
对的。这种方式就是先全部加载到内存中再启动,就跟全内存的ramos是一个道理了,区别不大,意义也不大。

RAMOS文件系统没必要用NTFS,虚拟内存也不用设到系统盘。
作者: szwp    时间: 2021-9-29 08:40
是因为compactos才用的ntfs么?
作者: swj9314    时间: 2021-9-29 09:03
szwp 发表于 2021-9-29 08:40
是因为compactos才用的ntfs么?

不好意思,研究不深入,没太明白你回复的意思。
我的理解是,目前windows必须安装或者启动于ntfs文件系统。就算是ramos,也是在内存中开辟一块空间,虚拟成内存盘,这个内存盘也是ntfs文件系统。

至于compactos压缩,用或者不用,与是否以全内存的方式启动唯一有关系的是,用了压缩能使ramos系统本身占用内存小一点。
作者: szwp    时间: 2021-9-29 09:39
swj9314 发表于 2021-9-29 09:03
不好意思,研究不深入,没太明白你回复的意思。
我的理解是,目前windows必须安装或者启动于ntfs文件系 ...

可以试下系统安装到exfat。
作者: junyee    时间: 2021-9-29 19:31
9zhmke 发表于 2021-9-28 14:18
可不可以通过避开使用NTFS,比如用Ext Fat32之类来避免ntfs usn log ?当年从Win98转到Win2000时,我曾经测 ...

简单与好用 是有些冲突的.

即使是简单的fat32在实现上也不容易(有兴趣的可以自己研究下fatfs).

日志型文件系统也有优势.
某些情况下fat32甚至fat16有优势,但在windows下 ntfs 早已形成主流.
有些高级功能已经不可或缺.
如ntfs的权限管理,文件链接.








欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3