以下是引用TonyDeng在2012-9-1 10:05:33的发言:
所有操作系统的内核都不会大。Windows系统的主要文件无非就是三个,Kernel32.DLL(1114112Byte)、User32.DLL(833024)、GDI32.DLL(311296Byte),全部加起来也不过2M多,也是全功能的。其实Windows最早就是运行在DOS下的外壳程序,用DOS作核心的,也就是说,真正的内核其实就是DOS那几百K的东西(越来越大是因为对应的硬件复杂性和资源管理越来越大),其余全是花巧界面,道理与Linux开启图形桌面暴占内存是完全一样(由此可见这实在是最低开销,不管谁自称技术多牛,都得使用那么多的资源)。
图形界面程序,只不过是一种人机交互方式,通过方便的操作,把人发出的指令记录下来,在内部形成参数,发送到对应的内部或外部指令(外部指令就是外部程序文件)上,根本操作还是那些命令行程序在做。如果熟悉那些庞大的文件名称和参数用法,用命令行也完全可以完成同样的工作。使用Windows的,很多时候通过【启动】-【运行】(快捷键是旗子+R)键入操作的速度比打开资源管理器查找命令的快得多,因为在Windows的PE文件中,所有.EXE和.DLL都是可执行程序,完全可以直接运行的,那些就是Linux中的小程序。图形界面就是为了帮助用户不用记忆那几千个命令和上万的参数而已,你用Linux记得住吗?我用DOS的时候,就已经为记那些东西烦恼了,为此要写各种各样的批处理菜单,甚至写程序做综合界面,直至pctools的问世把我们自己做的东西扫到垃圾堆。
不能按你这个主要文件的说法论内核的大小吧。最起码,所有要转到内核模式执行的代码和数据结构都得算到内核里吧。
linux 的内核要大大小于 windows,肯定是个事实。最多只能怀疑能少多少罢了。linux 的内核几乎不用改动就能放到移动设备上运行,就能看出来它对硬件资源的要求是远远低于 windows 的。
linux 的图形模式的运行资源应该比 windows 的多。因为它的图形界面是一个外部程序,和内核交换数据是很费劲的。windows 的内核代码里有很多部分专门就是搞图形界面的。所以它的图形界面的组织和对内核数据的访问要比 linux 这种形式紧密的多,应该更省资源也更快速。这是 xp 年代的知识,不知道现在还对不对。