百科问答小站 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一样也可以用,只不过没桌面……任何非嵌入式系统,操作系统都是分步骤加载的,先加载一个基本内核,再一点点加载驱动、外壳等等,并不是一下就完全加载完。




  

相关话题

  为何有不少人认为用中文编程需要先自研硬件或操作系统? 
  山寨机使用的是什么操作系统? 
  如何看待今天(8.9)华为在广东东莞举行的2019年开发者大会上,正式发布全新分布式操作系统:鸿蒙!? 
  在嵌入式商用里面哪款RTOS(实时操作系统)比较多人用? 
  你有自制的操作系统吗? 
  如果世界上某种操作系统马上消失,消失哪种操作系统对世界的冲击最大? 
  怎么看《一段关于国产芯片和操作系统的往事》? 
  华为 9 月 25 日全新发布的 openEuler 欧拉操作系统是不是套壳CentOS 操作系统? 
  为何微软不在新的操作系统中让 32 位支持大于 4GB 的内存? 
  为何音乐的在线播放要在硬盘缓存文件,下载到运存播放不就行了,还增强性能减少磁盘损耗,也没缓存关闭选项? 

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





© 2024-11-09 - tinynew.org. All Rights Reserved.
© 2024-11-09 - tinynew.org. 保留所有权利