This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
There's plenty of good literature on inodes and their functions, but the key thing is that it's different from DOS/Windows. In DOS, the directory referred directly to a file. In Unix/Linux, it's the inode that does that. The directory is basically a name/value pairing that associates an inode with a filename (along with some other things, like access rights).
The main consequences are
1. Multiple filenames in multiple directories can refer to the same file (hard links) as long as it's on the same device (inodes are not unique between different devices).
2. Locking is done on inodes, and not on directories. Which is one of the main reasons why Windows has "reboot fever" - Windows locks on the filename. In Unix/Linux, you can assign a new inode (file) to a directory entry, and running apps will continue to use the old file (usually), but new references will be via the new inode. So all that's required to update a system resource is to assign a new inode and restart the software that references that file. Instead of the whole OS.
I think I had a third item, but I've forgotten it already.
An IDE is no substitute for an Intelligent Developer.