我正在查看 mkswap 并试图了解它的工作原理。据我了解,它通过创建交换标头在分区上设置交换空间。这个交换头有多大?是一个街区吗?或者它总是一个一致的大小?
我确实尝试过查看 mkswap.c 源代码,但我的 C 知识不足以理解它。具体来说,我认为以下行写出了交换标头:
strncpy((char*)signature_page+PAGE_SIZE-10,"SWAP-SPACE",10);
Run Code Online (Sandbox Code Playgroud)
我可以看到 O'Reilly 由 Mssrs Bovet 和 Cesati 撰写的“了解 Linux 内核”,第 714 页(交换区)提供了这个问题的答案。换句话说,swap_header 由两个结构组成,“info”和“magic”。我上面粘贴的代码与魔法部分有关 - 它从字面上写出“SWAP-SPACE”作为第一页的最后 10 个字符(在某些版本中它是“SWAPSPACE2”)。
info 结构在前 1024 个字节之后开始,并有各种字段来描述交换机制。
归档时间: |
|
查看次数: |
787 次 |
最近记录: |