当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2015-05-27

    本文导语:  我知道系统很大的情况下,硬盘交换空间是必须的,但是浪费一个分区,总感觉不爽,为什么linux不用交换文件呢,有没有方法改造呢? | 不用改造,linux支持用文件做swap,当然用文件的效率...

我知道系统很大的情况下,硬盘交换空间是必须的,但是浪费一个分区,总感觉不爽,为什么linux不用交换文件呢,有没有方法改造呢?

|
不用改造,linux支持用文件做swap,当然用文件的效率比分区低。
下面是RH手册里的:
 To add a swap file:
   1. Determine the size of the new swap file and multiple by 1024 to determine the block size. For example, the block size of a 64 MB swap file is 65536.
   2. At a shell prompt as root, type the following command with count being equal to the desired block size:
      dd if=/dev/zero of=/swapfile bs=1024 count=65536
   3. Setup the swap file with the command:
      mkswap /swapfile
   4. To enable the swap file immediately but not automatically at boot time:
      swapon /swapfile
   5. To enable it at boot time, edit /etc/fstab to include:
      /swapfile               swap                    swap    defaults        0 0
      The next time the system boots, it will enable the new swap file.
   6. After adding the new swap file and enabling it, make sure it is enabled by viewing the output of the command cat /proc/swaps or free.

|
这是为什么linxu用swap而不是交换文件的原因(摘自IBM《Linux 用户技术 FAQ》)
Like Windows, Linux uses a certain amount of space for holding programs temporarily, when
there is not enough available RAM (random access memory) to hold all the programs that are
running concurrently. Generally, the least recently used program (or part of a program) is
copied from memory to a file on your hard drive until it is needed again, at which time the
current least recently used program is swapped out in its place and the first program is loaded
back into memory. (This is an over-simplified explanation; there is much more to it, but this will
do for this question.) This file is called a swap file in Windows or OS/2 and “swap space” in
Linux, but in either case it is a form of data file that is read from and written to off and on as
long as your system is running.
Windows puts the swap file (a hidden system file with different names for different versions of
Windows) in the bootable data partition by default. OS/2 does the same, but by changing the
CONFIG.SYS file a user can put the swap file in any directory in any partition on any drive
they like. Linux, by default, requires a special swap partition in which to store the swap file.
(Actually, Linux does allow swap files to be put in data partitions, with caveats—see below for
more on this.)
下面是改造方法:(摘自IBM《Linux 用户技术 FAQ》)
If for some reason you can’t, or do not wish to, create Linux swap partitions—or if you have no
more available disk space to use for a new swap partition—it is possible to create swap files
within partitions that currently hold programs and/or data files. However, your first choice
should be for one or more Linux swap partitions.
__________________________________________________________________________________
Important Note: There are two disadvantages to locating swap files outside of dedicated swap partitions: 1) The performance of swap files that are located in data partitions is slower than that of swap files in swap partitions (due to file system overhead and noncontiguous data blocks), and 2) It is also possible that if the swap file is ever damaged it could corrupt the filesystem for that partition, resulting in lost data. For these reasons it is strongly recommended that you use swap partitions whenever possible, leaving swap files in data partitions as a last resort. Swap files might be appropriate if you temporarily need some extra swap space.
________________________________________________________________________________
You can create as many as eight swap files, if necessary. Linux will apportion the swapped
data between these files as appropriate.
To create a swap file in a data partition, use a command similar to the following:
dd if=/dev/zero of= bs= count=
For example:
dd if=/dev/zero of=/Swapdir/Swapfile bs=1024 count=65536
(Note: If /Swapdir does not yet exist, it must be created before running the dd command. For
example: mkdir /Swapdir or mkdir /home/Swapdir. In order to create the directory, you
must be running as the root operator.)
The dd command (sometimes called “data duplicator,” although the original meaning of the dd
acronym is lost in the mists of time) is used to create the swap file. The if= parameter
identifies the input file source for creating the swap file (device “zero”), of= is where you
specify the path to the output (swap) file you want to create, bs= is the block size to use and
count= is where you define how large to make the swap file, in increments of the block size.
In the preceding example, we are creating a 64MB swap file (65,536 * 1024 [1K] equals
65,536K, or 64MB), called Swapfile (use whatever name you prefer), in a directory called
Swapdir.
Next, to initialize (or make ready for use) the swap file, use the following command:
Preparing Today for Linux Tomorrow
10
mkswap /Swapdir/Swapfile 65536
(Use the same path as in the dd command and the file size you specified in the count=
parameter. If you get a “No such file or directory” error, verify that you typed the upper/lower
case correctly and did not omit the leading /.)
After initializing the file, “synchronize” it to ensure that it is properly written to disk:
sync
And, finally, to tell Linux to start using this new swap file:
swapon /Swapdir/Swapfile
This will activate the swap file temporarily (until the next time you log out or reboot). To make
it permanently active, use an appropriate tool (such as kfstab [see the earlier question, How
can I speed up performance by using multiple swap partitions?, for details], which knows the
exact layout of the file that fstab requires) to open the file /etc/fstab.
When you open fstab, you might see something like (without the headings):
 
/dev/hda1 / ext2 defaults 0 1
/dev/hda2 /usr ext2 defaults 0 1
/dev/hda3 none swap sw 0 0
(There may be other disk partitions listed if you have other swap and/or data partitions.) To
activate your new swap file, add a line similar to the following immediately after the last
partition listing. Then save and close the /etc/fstab file.
/Swapdir/Swapfile none swap sw 0 0
Should you later decide that you no longer need the swap file, it is easy enough to remove.
First, use the swapoff command to disable the use of the file:
swapoff /Swapdir/Swapfile
Then, simply delete the file:
rm /Swapdir/Swapfile

|
gz

|
to fierygnu(va_list) :为什么说用文件的效率比分区低呢?

|
“but by changing the
CONFIG.SYS file a user can put the swap file in any directory in any partition on any drive
they like.”
在win的config.sys里怎么写了?

|
用文件要通过文件系统。

|
文件系统的效率在于文件块的分布情况 而swap文件必然是凌乱不堪的 而且由于和别的文件放在一起也不能做有效的清理

|
可以把SWAP关掉,而且LINUX下的SWAP性能远远不如WINDOWS下。

|
这也和安全因素有关,交换分区比文件安全的多。

    
 
 

您可能感兴趣的文章:

  • ■■救救我的Linux,我用PartitionMagic把第二个主分区改为扩展分区后或在linux分区前新增一个分区后,Linux连Rescue模式都进不了
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • 谁知道在分区的时候linux swap是作为主分区还是逻辑分区,linux ext2呢??急!急!急!
  • 安装linux时,已经有windows,我有2个主分区了,如果装linux不分boot分区会不会有什么问题?
  • 重新安装linux,重新分配/分区,其他分区不变,对其他分区内的数据有影响嘛?
  • xp下装linux双系统,从现有磁盘中分出一段来供LINUX使用.请问linux分区时 / 是不是一定要强制为主分区?
  • 我在linux下有几个分区。现在发现其中一个分区不够用了。我能不能把其他分区的空间弄过来?
  • 关于linux分区与主分区和扩展分区的疑惑。。。求解!!
  • 菜鸟在c盘装了win2000,想在剩下的空间装Red Hat Enterprise Linux 3,在创建linux分区的时候,不知道都创建什么分区??我知道要创建一个
  • 在linux下如何把空闲的分区建成ext3格式的分区
  • 请问如何删除LINUX分区记录而重新建立分区?
  • 请问如何才能将LINUX的分区写到磁盘分区表里!
  • 在装蓝点Linux时提示需要ext2分区,请问如何分区。用何工具?
  • 请问Linux有没有主分区和逻辑分区这个么一个说法呢!一般比较主流的应该怎么分呢?
  • 分区问题:我已经装了2000SERVER,想装LINUX,但没法分区了。。。详情请进!
  • 如何通过mount命令将DOS文件分区挂接到Linux系统上访问DOS分区
  • Linux native分区与swap分区最大是多少?
  • 据说linux分区只能在前8G,40G的硬盘分区先装windows怎么做到呢?
  • LINUX 下如何将一个已用完的分区链接到一个有大量空间的分区
  • 在Linux下如何察看硬盘有几个分区,并且获知其分区格式
  • Linux的交换分区与/tmp目录有关系么?
  • linux交换分区怎么设置
  • 如何在Linux系统上配置交换机(高分求解)
  • linux和windows通过交换机联网的问题
  • windows于linux文件交换的问题
  • linux与windows交换文件
  • 怎样让window98与linux交换信息
  • 请教,Linux操作系统,用hub只能访问局域网,不能访问互联网,但用交换机是好的
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • 我准备装linux 7.3,大家能给点意见吗,我1GB的内存,那么交换区设多大? oracle9i能在7.3上通过吗?
  • 我的linux的交换分区柱面超过了1023,lilo不能用了,怎么办?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • tar.xz如何解压:linux和windows下tar.xz解压命令介绍
  • windows 和linux双系统,重装windows后,无法启动linux?
  • MTU介绍以及在windows和linux下怎么设置MTU值
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • windows,linux如何实现文件共享(windows,linux安在同一台机)?
  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中 iis7站长之家
  • 晕哦,刚在windows下用虚拟机装个linux,不知道怎么把windows下的文件复制到linux里????
  • 用linux(服)windows(客)传输文件,windows端可以,linux端不可以,怎么回事???
  • 同机装有Windows和Linux两套系统(先装Win后装Linux),如何使计算机使用Windows的启动模块而不是Linux的启动模块?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 域内共享的问题?Linux机器可以访问Window机器,但是Window机器不能访问Linux机器?
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • 为什么虚拟机VM里的linux ping不通window 7,但是window 7可以ping通linux?
  • ■■有关RH Linux的在线更新(OnLine Update)?Linux下有没有如Windows下的Windows Update一样的工具呀,可下载补丁和Update组件?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • secureCRT下Linux终端汉字乱码解决方法
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux c字符串中不可打印字符转换成16进制
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3