* Linux 2.6.x.x Execution Process Question
@ 2005-07-09 2:28 u u
2005-07-09 9:52 ` Jirka Kosina
0 siblings, 1 reply; 2+ messages in thread
From: u u @ 2005-07-09 2:28 UTC (permalink / raw)
To: linux-kernel
Hello,
Im looking for some help on some research I am conducting. Im trying
to understand the complete execution process from start to finish of
an ELF executable object on the i386 platform in particular, but
x86_64 works as well. So far I have come up with the following:
Shell passes arguments and environment to execve() -> sys_execve() ->
do_execve() -> search_binary_handler() -> ?
Is this complete in a very generic way? What specifics happen along the way?
Most of the papers I have found on this are from older kernel versions
2.0 and 2.2. Im trying to find out the specifics of it all, for
example which registers are zeroed out before passing control to
userspace and where it happens. How does the stack look when control
is passed? These types of specifics are what I had in mind.
If anyone can point me in the right direction or provide an
explanation it would be helpful. Thank you.
-us
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Linux 2.6.x.x Execution Process Question
2005-07-09 2:28 Linux 2.6.x.x Execution Process Question u u
@ 2005-07-09 9:52 ` Jirka Kosina
0 siblings, 0 replies; 2+ messages in thread
From: Jirka Kosina @ 2005-07-09 9:52 UTC (permalink / raw)
To: u u; +Cc: linux-kernel
On Fri, 8 Jul 2005, u u wrote:
> Im looking for some help on some research I am conducting. Im trying to
> understand the complete execution process from start to finish of an ELF
> executable object on the i386 platform in particular, but x86_64 works
> as well. So far I have come up with the following:
> Shell passes arguments and environment to execve() -> sys_execve() ->
> do_execve() -> search_binary_handler() -> ?
If you are looking specifically for handling of the ELF format, then you
have stopped your sequence sooner than it began to be interesting :)
search_binary_handler() then passes, in the case of the ELF object, the
control to the function load_elf_binary(), implemented in fs/binfmt_elf.c
This is the place where the "execve() process" starts being object-type
specific.
> 2.0 and 2.2. Im trying to find out the specifics of it all, for example
> which registers are zeroed out before passing control to userspace and
> where it happens. How does the stack look when control is passed? These
> types of specifics are what I had in mind.
You will find all this in load_elf_binary() and it's surroudings.
--
JiKos.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-07-09 9:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-09 2:28 Linux 2.6.x.x Execution Process Question u u
2005-07-09 9:52 ` Jirka Kosina
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.