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 ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ