分类：电脑/网络-硬件
问题：什么是内存和虚拟内存 
回答： 物理，在应用中，自然是顾名思义，物理上，真实的插在板子上的内存是多大就是多大了。看机器配置的时候，看的就是这个物理内存。 虚拟内存，这个概念就要稍微了解一下CPU了，^_^，只是稍微，毕竟我们现在谈的是应用中的概念。我们应该知道，对于一般的32位CPU，有32根地址线，那么它的寻址空间就是4GB。也就是说，如果没有其他的限制，我们的主板上最大可以安装4GB的物理内存。哈哈，一般的机器是不会装那么多物理内存的，大把的银子啊，性价比可合不上。程序员可不管这个，我们对CPU编程，不能一台机器根据你物理内存的大小我编一个程序吧？那也太原始社会了吧。所以程序员都是直接使用的4GB的奢侈的进程空间（或许，不应该用奢侈这么短视的词。曾几何时，128M的物理内存也是我们不可想象的呢？）。这怎么办？总不能不用那些程序了吧。好吧，这个问题交给OS去解决吧。这样，OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制，而直接对4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中，那就从“虚拟内存”中来获取。这个虚拟内存可以是一个专门文件格式的磁盘分区（比如linux下的swap分区），也可以是硬盘上的某个足够大的文件（比如win下的那个i386文件，好像是这个名字）。物理内存中长期不用的数据，也可以转移到虚拟内存中。这样的交换由OS来控制，用户看起来就好像物理内存大了一样。有了虚拟内存的概念，我们就可以自由的使用4GB的进程空间了。但是，前提是你的硬盘由足够的空间，而且你舍得划分出（4GB-物理内存）大的虚拟内存空间来。^_^。一般情况下，虚拟内存的大小，各个OS也进行了限制（比如linux的swap分区的大小，win下也可以调整虚拟内存文件的大小和位置）。所以，我们程序所能使用的存储空间大小就是：物理内存＋虚拟内存。