Alexander Viro wrote:

> inode == (several?) blocks. No inode table per se.

A inode is of fixed size, much larger than their UFS counterpart, but
not that huge.

There is a inode table ($MFT), but it is stored as a data stream
("file") and not at a fixed location like in UFS. Only the first few
blocks of the MFT is stored at a fixed location.

> inode refers to a bunch of sub-objects. Their allocation data is
> stored in inode.

To each inode there is a bunch of attributes. Attributes represent
things such as data contents, ACL lists, named data streams and other
things. I.e. the file contents is only one attribute of a inode, no
different in structure from the other attributes.

If the contents of a attribute is small enought to fit inside the inode
then it is located there, else the inode refers to other disk blocks
where the data is located (by direct or indirect pointers, like UFS).

>         inode #0 refers to the inodes bitmap.

And to the inode table/file ($MFT). This is two separate data
streams/forks (or file contents if you so like) on the same inode.

>         inode #5 refers to the block bitmap.
> 
> Right? BTW, how inodes are refered in directories?

By inode number+generation number.

--
Henrik Nordstrom

Reply via email to