百科问答小站 logo
百科问答小站 font logo



操作系统是不是也是加载到内存中再执行的? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

不是完全加载,只加载必要的组件。

在WinXP时代,如果使用“安全模式”启动Windows,是可以看到Windows具体加载了哪些内容:

可以看到Windows的核心组件并不多。要知道,即使是在WinXP里,Windows文件夹也是上GB的。

如果不看program files这些文件夹,只关注Windows文件夹的话,新装的系统里,里面的大头是System32,System32里主要放的是Windows的驱动和一些公共库。新装的系统可能有几百MB到上GB不等。

Windows启动加载的驱动大部分都在这里,但是非常的少,绝大多数驱动都用不上。但即使用不上,Windows安装的时候也会带上,原因是万一有一天用户更换硬件了,不需要重装Windows,也不一定需要找Windows的安装光盘。

类似的尺寸比较大的用户用不到的文件夹还有Windows字体,位于C:WindowsFonts,多数字体用户是从来不会用的,但Windows安装的时候会带上,没准哪一天就有用了。

对于64位Windows来说,它还附带一个32位库,用于支持32位应用,这也是一个非常巨大的文件夹,位于C:WindowsSysWOW64,这里的文件只有少部分对于用户才能用得上,但考虑到兼容性必须全带上。64位Windows相当于64位系统+32位系统。

真正Windows启动需要的东西,是列在了注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices下的各个表项里,启动类型是boot(0), system(1), auto(2)这三种的service都会被自动加载。

内核启动完成以后,剩下的就是用户外壳(shell),也就是explorer.EXE,用户看到的就是桌面这个东西,以及由explorer启动的放在用户启动项里的东西。

启动的大致过程就是由引导程序(boot partition)加载NTOSKRNL.EXE(截图的第一个文件名),然后加载CurrentControlSet里的service,启动explorer就完成了启动过程。

精心订制剪裁的Windows系统可以做的很小,但这样意义不大,万一有一天用户更换了硬件,系统就要重装了。

精心订制的系统,在非民用领域用的比较多,典型的就是嵌入式系统,一个带内核,带shell,甚至支持用户态的功能的RTOS,整个系统都可以控制在1MB以内,如果只要一个内核,可以剪裁到100KB甚至更少。但这种系统,只适用于某个特定型号的硬件,换一个硬件就要重新定制。


当Windows用的比较久以后:

最大的文件夹可能是C:WindowsInstaller(隐藏文件夹),Windows会把很多MSI类型的安装包备份到这里,后果就是这个文件夹会一直膨胀,并且难以清理,因为Windows自己也不太清楚具体哪些还有用,这是MSI设计的问题,也是各个厂商开发MSI安装包的时候没设计好的原因。

或者可能是C:WindowsWinSXS,WinSXS里可能包含着系统补丁、驱动备份之类的各种内容,跟MSI类似,删是不可以删的,至于里面哪些东西有用,哪些东西没有,没人说得清楚。

此外,Windows补丁备份等等这些也都是用户基本上用不到,但又不会有人删的内容(国内有些清理工具可以清理,但不建议用),路径位于C:Windowsservicing和C:WindowsSoftwareDistribution等位置。


加载的过程中,只要NTOSKRNL和基本的驱动加载完成了,Windows就可以运行东西了,Windows的桌面是单独的一个进程,理论上说,没有EXPLORER.EXE,Windows一样也可以用,只不过没桌面……任何非嵌入式系统,操作系统都是分步骤加载的,先加载一个基本内核,再一点点加载驱动、外壳等等,并不是一下就完全加载完。




  

相关话题

  能把windows系统装进优盘吗? 
  视频RAM与IO内存映射的问题,大家可以指导一下吗? 
  Windows NT 内核与 Linux 内核相比哪个更安全? 
  linux创建的硬链接为什么不占用磁盘空间? 
  Java中 栈内存的存取速度仅次于寄存器,如何做到的? 
  除了 Windows,macOS,类 Unix 之外还有别的选择么? 
  腾讯不积极开发 Linux 版微信和 QQ 是否阻碍了国内 Linux 用户群的发展? 
  苹果M1芯片真香,但是未来寿命如何,多久会被市场淘汰? 
  操作系统是不是也是加载到内存中再执行的? 
  假如世界上只有Windows和Android,从来没有iOS和macOS,生活会不会变得更简洁一点? 

前一个讨论
如何评价C语言让数组退化为指针的设计?
下一个讨论
如何看待京津铁路推出 30 日定期、20 次计次新型票制产品?将对京津跨城生活工作的乘客产生哪些影响?





© 2025-06-26 - tinynew.org. All Rights Reserved.
© 2025-06-26 - tinynew.org. 保留所有权利