LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1772|回复: 12

linux为什么非要用swap分区,而不能象windows那样用交换文件

[复制链接]
发表于 2003-11-21 11:18:38 | 显示全部楼层 |阅读模式
我知道系统很大的情况下,硬盘交换空间是必须的,但是浪费一个分区,总感觉不爽,为什么linux不用交换文件呢,有没有方法改造呢?
发表于 2003-11-22 10:39:28 | 显示全部楼层
Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。这种现象对于计算机使用者是经常遇到的。 有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出去时,文件部分的数据就没有必要放到Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就能恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc(3C)和new函数生成的对象的数据则不同,需要Swap空间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”(Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等,所以说,Swap空间是“匿名”数据的交换空间。
发表于 2003-11-22 10:46:14 | 显示全部楼层
感觉SWAP很少用到.不过我相信"存在的一定是合理的"
发表于 2003-11-22 12:50:58 | 显示全部楼层
我每次查看swap, 都是全部free.
发表于 2003-11-22 13:53:29 | 显示全部楼层
沒什麼不好, 如果你一部電腦有多個linux 系統, 共用一個swap 有什麼不好不會浪費太多空間, 如果是一個98 一個xp 加上要支援休眠你想想用了多少空間
发表于 2003-11-25 18:11:53 | 显示全部楼层
交换文件还有产生碎片的缺点呢。
所以windows下经常要整理硬盘
发表于 2003-11-25 21:25:30 | 显示全部楼层

问一个问题

不用划分/swap分区,而直接用交换文件可以实现同样功能吗?
发表于 2003-11-25 23:35:59 | 显示全部楼层
看看kernel 有沒有支援, 好像是有的~~
下次編再看看~~
发表于 2003-11-26 07:34:41 | 显示全部楼层
可以用交换文件啊,我以前用过一个叫monkey linux的distro,就是用交换文件(可惜当时还什么都不懂,也没有仔细研究),而且基于umdos的distro目的就是不用重新分区,显然只能用交换文件
发表于 2003-11-30 17:22:22 | 显示全部楼层
先做个500M的文件。
ws945-53:/data# dd if=/dev/zero of=test.swap count=500 bs=1024K
读入了 500+0 个块
输出了 500+0 个块
524288000 bytes transferred in 9.537290 seconds (54972430 bytes/sec)

制做文件系统
ws945-53:/data# mkswap test.swap
Setting up swapspace version 1, size = 524283 kB

加载交换文件。(可以放到/etc/fstab里自动加载)
ws945-53:/data# swapon test.swap

卸载交换文件
ws945-53:/data# swapoff test.swap
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表