<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://gentoo-zh.org/extern.php?action=feed&amp;tid=601&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / 文件系统imap：inode节点位图(inodemap)管理空闲inode]]></title>
		<link>http://www.gentoo-zh.org/viewtopic.php?id=601</link>
		<description><![CDATA[文件系统imap：inode节点位图(inodemap)管理空闲inode 最近发表的帖子。]]></description>
		<lastBuildDate>Mon, 05 Dec 2022 03:36:56 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[文件系统imap：inode节点位图(inodemap)管理空闲inode]]></title>
			<link>http://www.gentoo-zh.org/viewtopic.php?pid=642#p642</link>
			<description><![CDATA[<p>摘取自骏马金龙的第4章ext文件系统机制原理剖析</p><p>在写文件(Linux中一切皆文件)时需要为其分配一个inode号。</p><p>其实，在格式化创建文件系统后，所有的inode号都已计算好（创建文件系统时会为每个块组计算好该块组拥有哪些inode号），因此产生了问题：要为文件分配哪一个inode号呢？又如何知道某一个inode号是否已经被分配了呢？</p><p>既然是&quot;是否被占用&quot;的问题，使用位图是最佳方案，像bmap记录block的占用情况一样。标识inode号是否被分配的位图称为inodemap简称为imap。这时要为一个文件分配inode号只需扫描imap即可知道哪一个inode号是空闲的。</p><p>这样理解更容易些，类似bmap块位图一样，inode号是预先规划好的。inode号分配后，文件删除也会释放inode号。分配和释放的inode号，像是在一个地图上挖掉一块，用完再补回来一样。</p><p>imap存在着和bmap和inode table一样需要解决的问题：如果文件系统比较大，imap本身就会很大，每次存储文件都要进行扫描，会导致效率不够高。同样，优化的方式是将文件系统占用的block划分成块组，每个块组有自己的imap范围。</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Mon, 05 Dec 2022 03:36:56 +0000</pubDate>
			<guid>http://www.gentoo-zh.org/viewtopic.php?pid=642#p642</guid>
		</item>
	</channel>
</rss>
