an inode
/ EYE-node /
Imagine a library where every book has a single index card. The card does not contain the story; it records who wrote it, when it arrived, who may borrow it, and exactly which shelves hold its chapters. The book's name on the spine is separate — it lives in the catalog drawer. In a Unix-style file system, that index card is the inode: one small structure per file that holds everything about the file except its name and its actual data.
Concretely, an inode stores the file's metadata: its type (regular file, directory, symbolic link, device), its owner and group, its permission bits (such as rwxr-xr-x), its size in bytes, its timestamps, a link count (how many directory names point at it), and — the heart of it — the pointers that say which physical disk blocks hold the file's data. The inode does not store the file's name; instead a directory entry is just a (name, inode number) pair, and several names can point at the same inode (that is what a hard link is). To open report.txt the kernel looks the name up in the directory to get an inode number, reads that inode, checks permissions, then follows the block pointers inside it to reach the data.
A crucial consequence: because the name and the inode are separate, a file is really kept alive by its inode, not its name. The file's data is freed only when the link count drops to zero AND no process still has it open. This is why deleting one of several hard links does not destroy the file, and why a program can keep reading a file you have already removed from every directory. The total number of inodes is usually fixed when the volume is formatted, so a disk can run out of inodes (lots of tiny files) even while it still has free space, or vice versa.
ls -li shows: 1048577 -rw-r--r-- 2 ann staff 2048 report.txt. The first number 1048577 is the inode number; the 2 is the link count, meaning two directory names point at this same inode. Remove one name and the file lives on under the other; remove both (and close it everywhere) and only then are its data blocks freed.
The inode is the file; the name is just a label in a directory pointing to it.
An inode does not contain the file name. Beginners often assume it does — but names live in directory entries, which is exactly what makes hard links and open-but-unlinked files possible.