无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5661|回复: 15
打印 上一主题 下一主题

[讨论] 操作系统启动的过程中,对磁盘进行了哪些写入操作?

[复制链接]
跳转到指定楼层
1#
发表于 2021-9-27 17:09:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 swj9314 于 2021-9-27 17:12 编辑

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

点评

“无论你看到的变没变,其实都在不停的改变”。 对于文件来说,修改时间变了、文件大小变了,更进一步,哈希值校验值变了,那就是变了。如果以上都没发生改变,那就是没变。不像你说的那么神乎其神,不可捉摸  详情 回复 发表于 2021-9-28 08:39
1. 关于ntfs usn log,他的机制是在ntfs文件系统的特定位置通过改变或者写入特定的字节去记录ntfs文件系统发生变化的情况,所以ntfs usn log不会通过文件修改时间或者文件大小的变化体现出来。 2. 关于虚拟内存,我  详情 回复 发表于 2021-9-28 08:38
回复

使用道具 举报

3#
发表于 2021-9-28 06:45:10 | 只看该作者
谢谢
回复

使用道具 举报

4#
 楼主| 发表于 2021-9-28 08:38:23 | 只看该作者
lbw2007 发表于 2021-9-27 18:28
我认为但凡是NTFS文件系统磁盘写入都会体现在文件本身,NTFS日志也好、虚拟内存也好,对用户最明显的认知就 ...

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

使用道具 举报

5#
 楼主| 发表于 2021-9-28 08:39:53 | 只看该作者
lbw2007 发表于 2021-9-27 18:28
我认为但凡是NTFS文件系统磁盘写入都会体现在文件本身,NTFS日志也好、虚拟内存也好,对用户最明显的认知就 ...

“无论你看到的变没变,其实都在不停的改变”。
对于文件来说,修改时间变了、文件大小变了,更进一步,哈希值校验值变了,那就是变了。如果以上都没发生改变,那就是没变。不像你说的那么神乎其神,不可捉摸
回复

使用道具 举报

6#
发表于 2021-9-28 08:56:52 | 只看该作者
XP不是有开源代码吗,可以研究下NT内核的启动过程

点评

感谢,为我提供了一个好思路。 确实值得研究一下。  详情 回复 发表于 2021-9-28 09:00
回复

使用道具 举报

7#
 楼主| 发表于 2021-9-28 09:00:57 | 只看该作者
2011miyahanni 发表于 2021-9-28 08:56
XP不是有开源代码吗,可以研究下NT内核的启动过程

感谢,为我提供了一个好思路。
确实值得研究一下。
回复

使用道具 举报

8#
发表于 2021-9-28 14:18:58 | 只看该作者
本帖最后由 9zhmke 于 2021-9-28 14:20 编辑

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

点评

简单与好用 是有些冲突的. 即使是简单的fat32在实现上也不容易(有兴趣的可以自己研究下fatfs). 日志型文件系统也有优势. 某些情况下fat32甚至fat16有优势,但在windows下 ntfs 早已形成主流. 有些  详情 回复 发表于 2021-9-29 19:31
这个思路我也有想过,论坛上搜了搜,貌似win10不能装到fat32文件系统中。 ext还没有找到相关资料。  详情 回复 发表于 2021-9-29 08:29
回复

使用道具 举报

9#
发表于 2021-9-28 15:28:00 | 只看该作者
做vhd,用bcd的ramdiskimage类似wim启动或g4d map --mem

点评

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

使用道具 举报

10#
 楼主| 发表于 2021-9-29 08:29:23 | 只看该作者
9zhmke 发表于 2021-9-28 14:18
可不可以通过避开使用NTFS,比如用Ext Fat32之类来避免ntfs usn log ?当年从Win98转到Win2000时,我曾经测 ...

这个思路我也有想过,论坛上搜了搜,貌似win10不能装到fat32文件系统中。
ext还没有找到相关资料。
回复

使用道具 举报

11#
 楼主| 发表于 2021-9-29 08:31:34 | 只看该作者
szwp 发表于 2021-9-28 15:28
做vhd,用bcd的ramdiskimage类似wim启动或g4d map --mem

对的。这种方式就是先全部加载到内存中再启动,就跟全内存的ramos是一个道理了,区别不大,意义也不大。

点评

RAMOS文件系统没必要用NTFS,虚拟内存也不用设到系统盘。  详情 回复 发表于 2021-9-29 08:34
回复

使用道具 举报

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

RAMOS文件系统没必要用NTFS,虚拟内存也不用设到系统盘。
回复

使用道具 举报

13#
发表于 2021-9-29 08:40:48 | 只看该作者
是因为compactos才用的ntfs么?

点评

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

使用道具 举报

14#
 楼主| 发表于 2021-9-29 09:03:36 | 只看该作者
szwp 发表于 2021-9-29 08:40
是因为compactos才用的ntfs么?

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

至于compactos压缩,用或者不用,与是否以全内存的方式启动唯一有关系的是,用了压缩能使ramos系统本身占用内存小一点。

点评

可以试下系统安装到exfat。  详情 回复 发表于 2021-9-29 09:39
回复

使用道具 举报

15#
发表于 2021-9-29 09:39:28 | 只看该作者
swj9314 发表于 2021-9-29 09:03
不好意思,研究不深入,没太明白你回复的意思。
我的理解是,目前windows必须安装或者启动于ntfs文件系 ...

可以试下系统安装到exfat。
回复

使用道具 举报

16#
发表于 2021-9-29 19:31:54 | 只看该作者
9zhmke 发表于 2021-9-28 14:18
可不可以通过避开使用NTFS,比如用Ext Fat32之类来避免ntfs usn log ?当年从Win98转到Win2000时,我曾经测 ...

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

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

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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-19 11:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表