i-node and UNIX file system

Ok I am confused with the way i-nodes and how it works... index 0-12 is used to be a pointer to the direct address... so therefore it can represent 48K, in other words each pointer can represent 4 bytes of data, if it's a 4 byte disk address... however I don't see how a 4 byte of disk address can represent 4 bytes of data... can someone please enlighten me
kuntilanakAsked:
Who is Participating?
 
omarfaridConnect With a Mentor Commented:
if you look to the figures in the picture you attached:

12 + 48K

if the file system is 4k data blocks (the green ones) then

(48 * 1024) / (4 * 1024)  = 12 which means that you need 12 blocks references to point to files up to 48k in size

1024 + 4M

(4 * 1024 * 1024) / (4 * 1024) = 1024 which means that you need 1024 blocks references to point to files up to 4M in size

0
 
arnoldCommented:
The disk address can represent as much data as needed.
inode -> disk location where the header of the file is. Each section if the file does not fit in a single contiguous location, has a reference to where the next section of this file is and so on and so forth until the section where the next section pointer is NULL.


Take a 10MB disk.
Divide it into 2 inodes where each inode represents 5MB
The first section will be 0 and the second section will be 1.

Now you create a 4MB file that is pointed to by inode 0 and you have 5MB of storage left.
Now you create a 64k file which is only accessible through inode 1 and you no longer have any storage left.

If you were to create a 6MB file rather than a 4mb, you would use inode 0 and will no longer have any space available.

0
 
kuntilanakAuthor Commented:
lets just take a look at the picture below first:


what is the size of each rectangle? assuming the size of each data block is 4K, does it mean that each rectangle size is 4K
IndirectBlocks.png
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
kuntilanakAuthor Commented:
what I mean by rectangle here is the gray rectangle with index 1.. is that a data block?
0
 
kuntilanakAuthor Commented:
what do you mean by 12 + 48K?
0
 
omarfaridCommented:
these are the figures show on top of each column in the diagram
0
 
kuntilanakAuthor Commented:
I am just confused how can the index 13 can have 1024
0
 
omarfaridCommented:
it is indirectly pointing to file. it points to other blocks which have indexes for the file blocks
0
 
kuntilanakAuthor Commented:
I know that it points to another blocks.. but how did you get 1024 from.. is it from 4KB/4 byte
0
 
omarfaridCommented:
please my previous comment: http://#24112133
0
 
kuntilanakAuthor Commented:
why did you divide it by 4*1024?
0
 
omarfaridCommented:
because the block size where the file data will be stored is 4k (4*1024)
0
 
kuntilanakAuthor Commented:
you're just converting k to bytes??
0
 
omarfaridCommented:
I did not understand your last comment
0
 
kuntilanakAuthor Commented:
when you do 4 * 1024,  4here is in KB and are you just multiplying it by 1024 to convert it to bytes?
0
 
omarfaridCommented:
yes
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.