AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 846163
Accepted
Sinoosh
Sinoosh
Asked: 2016-11-07 02:55:07 +0800 CST2016-11-07 02:55:07 +0800 CST 2016-11-07 02:55:07 +0800 CST

交换空间有文件系统吗?

  • 772

为了使用存储设备,我们需要一个文件系统,那么交换空间呢?

如果它没有文件系统,操作系统如何使用它?数据(从 RAM 中)如何写入磁盘,以及如何再次访问?

partitioning
  • 3 3 个回答
  • 10950 Views

3 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2016-11-07T03:34:58+08:002016-11-07T03:34:58+08:00

    交换技术上没有特定的文件系统。文件系统的全部目的是以某种方式构造数据。特别是交换分区没有结构,但它确实有一个特定的标题,它是由mkswap程序创建的。特别是这个(取自kernel.org):

     25 union swap_header {
     26     struct 
     27     {
     28         char reserved[PAGE_SIZE - 10];
     29         char magic[10];
     30     } magic;
     31     struct 
     32     {
     33         char     bootbits[1024];
     34         unsigned int version;
     35         unsigned int last_page;
     36         unsigned int nr_badpages;
     37         unsigned int padding[125];
     38         unsigned int badpages[1];
     39     } info;
     40 };
    

    每个分区都有与之关联的特定代码,并且根据TLDP:

    ext2 的代码是 0x83 而 linux swap 是 0x82

    当涉及交换文件时,情况略有不同。内核必须尊重文件系统可能有自己的数据结构方式这一事实。从同一个 kernel.org 链接:

    请记住,文件系统可能有自己的文件和磁盘存储方法,它不像交换分区那样简单,信息可以直接写入磁盘。如果后备存储是一个分区,那么只有一个页面大小的块需要 IO,并且由于不涉及文件系统,因此 bmap() 是不必要的。

    总之,从技术上讲,您可以将交换空间称为它自己类型的文件系统,但它与 NTFS 或 ext4 等文件系统不太可比

    你也问过

    我想知道如何在没有文件系统的存储空间中写入

    严格来说,没有必要对 RAM 进行结构化。但是,在类 Unix 操作系统下,部分 RAM 可以构造为tmpfs 。还有ramfs和 initramfs ,它们是在引导过程中加载的。但从技术上讲,RAM 数据应该只是原始的 1 和 0,因此无论如何都不需要构造它们。

    • 32
  2. Jake
    2016-11-07T03:04:16+08:002016-11-07T03:04:16+08:00

    内核使用交换空间来临时存储系统内存 (RAM) 变满时的页面。内核使用它自己的内部表来“记住”它在交换磁盘中放置页面的确切位置。结果,交换磁盘不包​​含正确的文件系统,通常只是磁盘上的空白分区。

    您可能感兴趣的是 RAM 磁盘,它是存储在系统内存中的小型文件系统。如果需要更多内存,内核会将其(和其他内容)推送到交换空间。有关设置的说明,请参见此处。

    • 15
  3. thomasrutter
    2016-11-07T21:11:53+08:002016-11-07T21:11:53+08:00

    交换空间被划分为与内存页大小相同的块(通常为 4kB),这些页到应用程序内存的映射记录形成了 CPU 和 OS 中虚拟内存子系统的扩展。

    也就是说,在应用内存空间和实际物理内存地址之间已经有了一个映射系统。应用程序被赋予一个大的内存地址空间,他们可以尽可能多地或尽可能少地使用它。随着更多的内存地址空间被实际使用,物理内存被映射到该应用程序以用作存储介质。

    当内存被交换到磁盘时,相关系统会维护应用程序内存空间到磁盘块的映射。

    映射表本身并不存储在磁盘上,磁盘上剩余的数据在重启后就没用了。

    • 14

相关问题

  • 是否有更好的方式为 /home/userX 构建分区/挂载

  • Linux 文件系统层次结构中的默认目录是什么意思?

  • 如何将 /usr 移动到新分区?

  • 如何从双启动计算机访问加密的主文件夹?

  • 您对台式机和家庭服务器的驱动器分区方案有什么建议?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve