Thanks for your comments Peter; Particularly, thank you for the http://www.osdev.org/phpBB2/ URL given to me by you in your follow-up post. I have been browsing there all morning. On Sun, 2008-05-25 at 15:51 +0800, Peter Teoh wrote: > i can see that there are not many specific questions here....just > asking "why".....and speaking of concepts... > > personally...i think knowing WHY things are done the way it is done is > more impt than knowing the details of HOW....but then it is chicken > and egg...until u know how they are done....then u began to ask > WHY....once u understood that.....design your own ideas based on new > understanding... > Now for the Off Topic part: In my experience, people learn things in one of three basic ways. They are not restricted to any one way, but one of each way is easier for them and predominates their learning and thinking. 1) Some people are "Task Oriented". That is they understand things better if it accomplishes something they are interested in. In computer terms, they are the ones that ask "Which button do I push". They are not primarily interested in why it works or how it works, just that it works. I am not belittling this style of learning. People who do this usually have a strong ability to memorize and build their knowledge by memorizing task after task and slowly integrating each piece into a comprehensive whole. As I remember, way back, from high school days, these where usually the girls who sat at the front of the class and got all 'A's. 2) Other people, usually those who find themselves in the scientific or technological world, are "Object Oriented". That is they understand things better if they view the world as made up of objects i.e. with set properties that they can manipulate and counted on to remain consistent. They ask "How to". Object Oriented people like to memorize a few basic principles, axioms, or assumptions and then retain "knowledge" of what logically or predictably flows from those principles. To them, learning a few major building blocks gives them mental access to large blocks of certain knowledge. 3) The third type of learning is done by individuals who are "People Oriented". That is not to say they have a soft and gooey world view, but it is to say, they find it easier to retain information if they understand why things are done the way they are. It is easier for them to resolve problems by asking themselves "What am I trying to accomplish", and/or, "Why is it done this way". For me, if I don't have a human context, it is all memorization. But the minute I can see people solving real problems, facts slip into a category of just "knowing" something, which for me is much easier to mentally access. > but life is a game of probability.....so probabilistically...i think u > will gain more and contribute more if u trying understanding HOW AND > WHY things are done concurrently....while at the same fallback on > design your own ideas once in a while..... > Learning things is more complex than an iterative process. Just using the three examples of learning orientation I gave above, it is more like a game of paper, scissors and rock -- with one mode of learning being the fallback position. Real life is far more complex than even that. > i can summarize a few key FEATURES or PROBLEMS u must have / solved, > in multiprocessor/multi-users/multiprocess user/process management > system (as for the current design....i really wish u or someone else > will overhaul the entire design of UNIX.....): > > a. u don't want them to step on each other's memory.....which is one > of the hidden reason for separation of memory space during forking... > > b. after forking...different process is will be protected via INTEL > CPU HARDWARE feature.....there are many....and u have to design the OS > to follow all these hardware features...(one of them is MMU, then task > register, context switching, memory page attributes protection etc) > > c. efficiency of execution....minimization of resources > (copy-on-write design)...performance tradeoff between harddisk storage > vs memory storage....(swapping).... > I am aware of the complexities you have outlined, Peter. I am on my second (perhaps third iteration of understanding). This is the point where one tends to say "Hey wait a minute, that doesn't make sense". Just as guidance, when someone asks fundamental questions, it does not usually mean they are at the beginning of understanding a process but rather that they are coming around for the second or third time. > Generally the field is huge....and endless argument ....and I have to > stop here.... > At the risk of appearing terribly arrogant, I don't anticipate that understanding Operating Systems will be that difficult as long as at crucial systems design points, I can put myself in the shoes of the original designers (given the hardware they had to deal with) and say here is my problem and how am I going to solve it. Once you have an understanding how and why they choose a particular solution, hundreds, thousands or even millions of consequences just naturally flow with little or no memorization required. > PS: Get hold of "The Magic Garden Explained".....my all-time > favorite on OS design.. > PS: I do not believe that the above polemic is just theory. I have made a very good living over the years as a consultant in non-IT areas analyzing Business Plans, Communication Strategies and Public Policy. The key has always been to dig down to the most fundamental driving forces (human and physical) and then re-build, checking that ever element made sense. I have taken the liberty of it being a slow Sunday morning to say an awful lot of things that have nothing to do with the Linux Kernel. I hope you will indulge me. -- Regards Bill -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ