“标准Linux的另一个待征是虚拟内存的能力。正是这种神奇的特征使应用程序员可以狂热的编写代码而不计后果,不管程序有多大。程序溢出到了磁盘交换区。在没有磁盘的嵌入式系统里,通常不能这么做。 <br /><br /> 在嵌入式系统里不需要这种强大的功能。实际上,你可能不希望它在实时的关键系统里,因为它会带来无法控制的时间因素。这个软件必须设计得更加精悍,以适合市面上物理内存,就象其它嵌入式系统一样。 <br /><br /> 注意由于CPU的原因,通常在Linux中保存虚拟内存代码是明智的,因为将它清除很费事。而且还有另外一个原因是它支持共享文本,这样就可以使许多程序共享一个软件。没有这个,每一个程序都要有它自己的库,就象printf一样。 <br /><br /> 虚拟内存的调入功能可以被关掉,只要将交换空间的大小设置为零。然后,如果你写的程序比实际的内存大,系统就会当作你的运行用尽了交换空间来处理;这个程序将不会运行,或者malloc将会失灵。 <br /><br /> 在许多CPU上,虚拟内存提供的内存管理可以将不同程序分开,防止它们写到其它地址的空间上。这在嵌入式系统上通常不可能,因为它只支持一个简单、扁平的地址空间。Linux的这种功能有助于其发展。它减少了胡乱的编写程序造成系统崩溃的可能性。许多嵌入式系统基于效率方面的原因有意识使用程序间可以共享的"全局"数据。这也可以通过Linux共享内存功能来支持,共享的只是指定的内存部分。<br />”
|