- UID
- 1029342
- 性别
- 男
|
当你想裁剪一个linux内核移植到你需要的开发板的时候,make menuconfig 之后,会出现很多让你选择的内核配置选项,当你在配置General setup中的现象的时候,你会发现有一个选项是Support for paging of anonymous memory (swap) 。这个选项是什么意思呢,就是说使你的内核支持虚拟内存,即是交换分区(swap)。如图所示。
for paging of anonymous memory " align="middle">
按理来说,虚拟内存是一种很好的解决内存不够用的方式,应该选上才是,但事实真的是这样吗?
首先来了解下交换分区(swap)有什么作用。交换分区类似windows下的虚拟内存,当一个长时间未使用(相对于cpu的时间来说的,不是我们所理解的长时间。)的程序或者数据会放在交换分区。以便腾出更大大空间来给正在运行的程序使用。在交换分区的程序或者数据需要运行或者使用的时候,又会被放回内存中运行。所以交换分区(swap)和内存之间有非常频繁的信息交互。换句话说就是,交换分区(swap)需要频繁地读写。
在来思考一下,你是否在嵌入式linux上看到过要设置交换分区的,但是在pc机上,在安装系统的时候是会提示你设置交换分区的。这是为什么呢?
接着继续思考,pc机和嵌入式设备不同在哪里,跟交换分区有关的设备?
想到没,静态存储设备!pc机上用的是磁盘,嵌入式设备上一般用的NANDFLASH。两者有什么不同?
其实两者除了在存储速度上有差别之外,还有就是寿命,磁盘的读写寿命远远大于闪存(flash)的寿命,闪存(flash)的读写次数一般为十万次。按照交换分区的那种读写频率的话很快就会把闪存的寿命消耗完。 |
|