Re: fork and exec

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

 



On Sat, May 24, 2008 at 11:31 PM, Peter Teoh <htmldeveloper@xxxxxxxxx> wrote:
> Sent on behalf of William Case:
>
> From: William Case <billlinux@xxxxxxxxxx>
> Date: Sat, May 24, 2008 at 11:26 PM
> Subject: fork and exec
>
> Hi;
>
> I have a fundamental question about why Linux/Unix uses the parent and
> child modal to start and run new processes.
>
> I am having trouble making my question understood.  I tried to get an
> explanation from members of my local LUG who are usually quite
> responsive and helpful.  My question was met with some defensiveness as
> if I was challenging the basic way that *nixes do things.  I couldn't
> seem to get past answers that told me how fork() and exec() work to why
> things are done that way.  So ...
>
> I will try my question here:
>
> Quoting from http://en.wikipedia.org/wiki/Fork_%28operating_system%29
>
> "Under Unix and Unix-like operating systems, the parent and the child
> operations are selected by examining the return value of the fork()
> system call. ...", and,
>
> "The fork operation creates a separate address space for the child. The
> child process has an exact copy of all the memory segments of the parent
> process ... ", and,
>
> "More generally, forking is also performed by the shell each time a user
> issues a command. A child process is created by forking the shell, and
> the child process is overlaid, once again by exec, with the code
> associated with the program to be executed."
>
> I understand the mechanics of how this works.  Several manuals, texts
> and Wikipedia give very clear examples.
>
> To further quote that section of Wikipedia:
>
> "Forking is an important part of Unix, critical to the support of its
> design philosophy, which encourages the development of filters. In Unix,
> a filter is a small program that reads its input from stdin, and writes
> its output to stdout."
>
> My question is:  Why did the original designers of Multics/Unix choose
> to use the forking modal to start a new processes?  Do not other OSs use
> other modals?  What problem(s) did the fork overcome?  Couldn't a system
> have been designed that just (in some way) starts each process raw?

can u elaborate what is meant by "RAW"??

I like new ideas....please elaborate....things necessarily have to be
different all the time.....that's how Windows can survive in
business....

> Intuitively, copying a process then overwriting it seems wasteful or at
> least inelegant, so why is it needed?  How does a parent-to-child
> process enhance its (*nix's) design philosophy?
>
> Since forking is at the very core of the kernel, I would like to
> understand intellectually why the fork process is necessary?
>
> I am not being argumentative, or trolling, or proposing something
> different or better.  Although relatively new to kernel programming and
> 'C' I am not a complete newbie.  I would just like to see in my
> minds-eye what is going on and *why*.
>
> --
> Regards Bill
>


-- 
Regards,
Peter Teoh

--
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