I'm starting to read Linux Systems Programming, 2nd Ed., and I was curious about the file table that is a "per-process list of open files." Is the file table like a table in a SQL db with the fds used as primary keys? If so, does this mean that the entries are repeated, or is it split into separate tables and normalized?
Or does it work entirely differently since we're dealing with straight C/assembly? If so, what data structures are used?
Where in the source is this subsystem defined? Most of the reason I'm doing this is to understand both C and Linux better. If I know where to find it, that would give me a better idea.