3 ms·
I think you're asking two different questions here. What are some standard conventions for where system files are placed in Ubuntu & Linux? And how are filesyst
by digikata 10y ago
I think you're asking two different questions here. What are some standard conventions for where system files are placed in Ubuntu & Linux? And how are filesystems implemented.
For file placement you might start here:
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
Though I'd caution that it's not a strict standard, and you find that many linux distributions vary from it in particular ways.
For the implementation of file systems on Unix/Linux/Ubuntu, I'd say start at understanding inodes: (this link is just the first I found that seems like a reasonably short overview from my standpoint)
https://www.cs.nmsu.edu/~pfeiffer/classes/474/notes/inodefs.html https://www.cs.nmsu.edu/~pfeiffer/classes/474/notes/inodefs....
There are a world of different implementations when you get to the details, but the Linux kernel builds or reuses this core idea of inodes into many specific different filesystems. From there there is a lot of info, but the Linux VFS layer handles many common functions of of filesystems in Linux (even if you're system is using ext4 or btrfs, etc specifically). So the Linus Kernel vfs docs may be interesting if you're looking to go even deeper.
- loeg 10y ago> For file placement you might start here: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard And if you're at all interested in BSD file layout, there's hier(7): https://www.freebsd.org/cgi/man.cgi?hier(7) https://www.freebsd.org/cgi/man.cgi?hier(7) . Re: Linux inodes (FreeBSD calls them "vnodes," short for virtual inodes, to distinguish the generic API from filesystem-specific per-file data, which it calls inodes), there's vnode(9) and VFS(9) to get started: https://www.freebsd.org/cgi/man.cgi?vnode(9) https://www.freebsd.org/cgi/man.cgi?vnode(9) https://www.freebsd.org/cgi/man.cgi?VFS(9) https://www.freebsd.org/cgi/man.cgi?VFS(9)