Hi;
I have just finished reading a couple of texts on the Linux kernel as
well as searching some questions down through the source code. I am
sitting back trying to build an initial minds-eye view of what I have
learned. I was hoping I could get some comments.
I don't need a detailed critic; just "yes basically you've got it" or
"No your way off the mark" or "Yes, but you have forgotten this
important piece"
So here goes:
The kernel is basically a set of tables (C struct) that are used
to transform human type info into machine usable data. Each
table has only a few fields in order to keep each row or record
within a machine (double, quadruple) word size and often only
has a few records per table. The kernel is usually in the
process of adding or deleting records from these tables.
The tables often have pointers to each other in order to build
up a full process. Some of the most important tables are; the
inode, the file descriptor, the socket, the process, the
interrupt handler, the signal handler and the error handler
tables. (If I am on the right track, but have forgotten an
important table please tell me).
At the top of the kernel or at least at the top of a kernel
process (function call) are #define -ed constants that reflect
the architecture of ones particular machine. At least that
seemed true when I dug down into the ultimate origin of each
constant.
If I throw in some re-usable functions to lock and block, I can
pretty well count on having a mental image of what's going on in
the kernel (barring lots of specialized curly-cues).
The description above is a first take, mind you. I am not looking for a
complete analysis of the kernel, I am just looking for a mental image as
a way into understanding.
All suggestions and corrections will be used for mental fodder.
--
Regards Bill;
Fedora 9, Gnome 2.22.3
Evo.2.22.3.1, Emacs 22.2.1
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
Please read the FAQ at http://kernelnewbies.org/FAQ