Re: Execve
Re: Execve
- Subject: Re: Execve
- From: "Justin C. Walker" <email@hidden>
- Date: Wed, 28 May 2003 15:29:00 -0700
On Wednesday, May 28, 2003, at 03:03 PM, Robert Sandilands wrote:
I'm trying to determine how program execution is started in the
kernel. I know that there is an entry points trough
syscall[SYS_execve] and syscall[SYS_execv]. This seems to only catch
programs executed from the Terminal. But if you launch programs
through the dock, it does not seem to pass through those interfaces.
Any ideas of how executing something like iCal goes through the kernel?
All roads lead to execve. See xnu/bsd/kern/kern_exec.c.
Terminal plays no part in this. The shell is what you are talking to
when running Terminal, and it does just what Finder does, albeit in a
more limited way. In either case, your shell or Finder finally arrives
at a path to an executable, and it runs that executable with a variant
of the exec() system call.
For "apps" that actually aren't executables (in the Unix sense),
another program is launched (or contacted some how) to read in the
content of the file to be "executed" and set it up to execute in some
way (e.g., the Carbon/CFM apps are handled LaunchCFM; shell scripts by
a named shell).
The Dock is either using Finder or doing what Finder does (I don't know
the code).
Regards,
Justin
--
/~\ The ASCII Justin C. Walker, Curmudgeon-at-Large
\ / Ribbon Campaign
X Help cure HTML Email
/ \
_______________________________________________
darwin-kernel mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/darwin-kernel
Do not post admin requests to the list. They will be ignored.
References: | |
| >Execve (From: Robert Sandilands <email@hidden>) |