On Fri, 2008-07-11 at 08:04 +0200, Rene Herman wrote: > On 11-07-08 07:25, William Case wrote: > > Let's rejoin the list if we're going to continue this conversation anyway... Yes. And I apologize for getting grouchy. There is a personal explanation at the bottom, if you are interested. > >> Please do, even if only with a large brush. Until then, at least I > >> personally am going to view your model as a little ridiculous and > >> of no substance or use. > > > > Suggest another one then. His definition suggests a library of > > abstracted hardware access, device multiplexing (eg. multiple > > programs use the network card at once), storage and retrieval of data > > and other system services. How does that get me anywhere new? > > Why do you think you need to get anywhere new? We are both getting way off tack. I have done a substantial amount or reading a research to get to this point. As well as spending many hours exploring the kernel on line. I am now ready to download the source and using git to delve into the kernels workings. Some things I have learnt. The kernel code is long (over 6 million lines by one count I read). It is complex, convoluted and often confusing. Without changing the purpose of the Operating system, or the definition, one needs a mental model to find ones way around to understand what lines of code are being used for which process. > Operating systems are not > new and many intelligent people have thought about them over the decades > and the above model that you say that (snipped) "could have been cut and > pasted from the opening pages of any first year text" did not end up on > those first pages for nothing. I am not trying to write a new first year intro. Let that one stand. I have read it in several texts. I did find that as I read and explored, that, like in all things with computers, there are patterns. I assumed that if one could create a mental image of the most important patterns and use that as a model for find ones way through the kernel code. The only other alternative is to start at line 1 and memorize. Even if one only starts at line 1 of particular kernel task it could become a lifelong task. One pattern I noticed -- and it was not the only pattern -- was that each process started by looking up the data (i.e. by using pointers) supplied to it by a structure (struct). So that I didn't have to retain in my mind the side issues involved with creating a 'C' struct I could use the shorthand designation of 'a table'. I could also see a pointer interrelationship between these tables. A second pattern was the number and nature of #defined CONSTANTS that usually ultimately reflected the pieces of hardware on my system. It also seemed to me that in the end there where not that many structures nor did they have that many fields that they couldn't be quickly learnt. The code that was pointed to or the functions that were called could be learnt as the need or the desire arose. Which every the case, I would have a working bare bones mental image of the kernel to call on. > > You asked for (explicitly non-expansive) comments on your model, not for > readers to provide another one even though Rik in fact did. Ofcourse, if > you think you need more useful comments, the onus is on you to first > explain why your model helps any. Well, if it is accurate it helps me. And I am pretty certain that I am not the only one in this world that tends to have a visual mind and memory. > > If not, I could come in here and say I'd like to view kernels as large > collections of independent nano-bots and then demand that people tell > why they weren't. I haven't seen a pattern of nano-bots within the kernel, nor do I think, have you. Describing the kernel as a library, says to me there are 6 million lines of code and that is the only way to view it -- from top to bottom. You have to because all those lines are in random order. > Wouldn't you in that case agree I'd first have to > explain WHY I'd like to do such a ridiculous thing in order to indicate > to you that any comment you'd provide would have a chance of being > useful; wouldn't just be swallowed whole into my intellectual vanity? > No, I am not exercising intellectual vanity. I am trying to assemble an intellectual tool or template that allows me to dive in. The usual process with computing is to tell the student to select a problem, then sweat bullets and/or die of frustration trying to solve it. That to me is cruel -- it is the kind of thing that they do to medical interns and almost always unnecessary. > > As far as I can see each one of those tasks simply has code that > > points to further code in the library. Libraries are simply a list > > of definitions and functions. The particular library codes that have > > to be pointed to for each task are in stored in a structure. > > And why does that view help any? What does it explain? Frankly, this > table view you've outlined sounds as the kind of Unifying Encompassing > Model every single one of us will have thought up back when we were > naieve, beginning programmers. As indicated, you are here in very > pragmatic surroundings and reality is that operating system kernels > aren't collections of tables or any other neat abtraction but heaps and > heaps of messy code... > > And sure, you can talk anything to any model, even if only by insisting > that enough of that whch doesn't fit is an uninteresting detail (can you > see I walked this road?) but the question of it helping any is the > important one. All that I can say to that is I have made a very good living over the years deconstructing, analyzing, and reassembling and documenting logic gaps in businesses, public policy and government programs over the objections and obfuscations of experts, professionals, bureaucrats and politicians. In forty years I never found a system that didn't have patterns. I have used the same skills to learn computers. And in the end, over the same type of objections, those skills have seemed to prevail. -- 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