I'm reading about NTFS, and I found out that NTFS uses LCN (Logical Cluster Number) addresses for files. The information about data blocks are stored in the FCB of the file which is located in MFT.
As I understand, Ii believe it goes like this:
When a file read/write is requested by a process, the process uses the LCN's and these LCN's are then translated to LBA addresses by multiplying the LCN * cluster size. Then these LBA addresses are send to the disk controller which in turn then translates these LBA addresses to the actual physical block where the data is present.
More specifically: a process issues a syscall open() specifying file name and access rights, then the corresponding file is found in the system wide table (say some other process is also using the file), FCB is copied to per process table, then file blocks are fetched by the FS using all these mappings depending on the process needs!
Is my understanding correct?
References:
Book: OS Concepts page: 568
same book page: 875
quote:
NTFS uses logical cluster numbers (LCNs) as storage addresses. It assigns them by numbering clusters from the beginning of the device to the end. Using this scheme, the system can calculate a physical storage offset (in bytes) by multiplying the LCN by the cluster size.