Re: fork and exec -- & OT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux