All of lore.kernel.org
 help / color / mirror / Atom feed
* how does ld.so call ELF's entry?
@ 2013-04-07  2:19 ishare
  2013-04-07  3:13 ` Sofiane Akermoun
       [not found] ` <CAN0_x-Je1=2mtN8tY2mvBa-X7_P0dBoG9KRh0P63uW91eE5H2Q@mail.gmail.com>
  0 siblings, 2 replies; 11+ messages in thread
From: ishare @ 2013-04-07  2:19 UTC (permalink / raw)
  To: linux-assembly

 
  For an ELF ,which needs a interpreter , how is it  been called by the interpreter ?

  As I know the interpreter is loaded first and do something essential ,then call the main routine of ELF .
  How is this procedure implemented ?

  Thanks!

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  2:19 how does ld.so call ELF's entry? ishare
@ 2013-04-07  3:13 ` Sofiane Akermoun
       [not found] ` <CAN0_x-Je1=2mtN8tY2mvBa-X7_P0dBoG9KRh0P63uW91eE5H2Q@mail.gmail.com>
  1 sibling, 0 replies; 11+ messages in thread
From: Sofiane Akermoun @ 2013-04-07  3:13 UTC (permalink / raw)
  To: ishare; +Cc: linux-assembly

Hello,


The interpreter is specified during linking process and the program
header of your binary is filled with good values.
Then when the operating system load your binary, he finds next the
interpreter to use.
The linker ld sets the good values by default but you can overwrite it
or specify other values if you want.
The steps are:
1)The operating system loads your binary
2)The program loader system execute the Interpreter specifiy in the binary
3)The interpreter gather all the dynamic libraries needed in memory
4)The Control is passed to the entry point of your program

The entry point is specified in your code source as a "global". And
could be find in your object file by the linker.
In theory there are some defaults tag to specify entry point, like
"..start" for nasm, but you can also passed yours to the linker (ld
-e).

regards,

Sofiane Akermoun
akersof@gmail.com

2013/4/7 ishare <june.tune.sea@gmail.com>:
>
>   For an ELF ,which needs a interpreter , how is it  been called by the interpreter ?
>
>   As I know the interpreter is loaded first and do something essential ,then call the main routine of ELF .
>   How is this procedure implemented ?
>
>   Thanks!
> --
> To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Sofiane AKERMOUN
akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
       [not found] ` <CAN0_x-Je1=2mtN8tY2mvBa-X7_P0dBoG9KRh0P63uW91eE5H2Q@mail.gmail.com>
@ 2013-04-07  3:39   ` ishare
  2013-04-07  3:43     ` Chris Evans
  2013-04-07  4:40     ` Sofiane Akermoun
  0 siblings, 2 replies; 11+ messages in thread
From: ishare @ 2013-04-07  3:39 UTC (permalink / raw)
  To: Sofiane Akermoun; +Cc: linux-assembly

On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
> Hello,
> 
> 
> The interpreter is specified during linking process and the program header
> of your binary is filled with good values.
> Then when the operating system load your binary, he finds next the
> interpreter to use.
> The linker ld sets the good values by default but you can overwrite it or
> specify other values if you want.
> The steps are:
> 1)The operating system loads your binary
> 2)The program loader system execute the Interpreter specifiy in the binary
> 3)The interpreter gather all the dynamic libraries needed in memory


> 4)The Control is passed to the entry point of your program

  How does  the step 4 been  done ?
  
  thanks!
> 
> The entry point is specified in your code source as a "global". And could
> be find in your object file by the linker.
> In theory there are some default tag to specify entry point, like "..start"
> for nasm, but you can also passed it to the linker.
> 
> regards,
> 
> Sofiane Akermoun
> akersof@gmail.com
> 
> 
> 
> 
> 
> 2013/4/7 ishare <june.tune.sea@gmail.com>
> 
> >
> >   For an ELF ,which needs a interpreter , how is it  been called by the
> > interpreter ?
> >
> >   As I know the interpreter is loaded first and do something essential
> > ,then call the main routine of ELF .
> >   How is this procedure implemented ?
> >
> >   Thanks!
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-assembly"
> > in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 
> 
> 
> -- 
> Sofiane AKERMOUN
> akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  3:39   ` ishare
@ 2013-04-07  3:43     ` Chris Evans
  2013-04-07  3:45       ` ishare
  2013-04-07  4:40     ` Sofiane Akermoun
  1 sibling, 1 reply; 11+ messages in thread
From: Chris Evans @ 2013-04-07  3:43 UTC (permalink / raw)
  To: ishare; +Cc: Sofiane Akermoun, linux-assembly

With a far jump to entry offset 


Sent from my iPad

On Apr 6, 2013, at 8:39 PM, ishare <june.tune.sea@gmail.com> wrote:

> On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
>> Hello,
>> 
>> 
>> The interpreter is specified during linking process and the program header
>> of your binary is filled with good values.
>> Then when the operating system load your binary, he finds next the
>> interpreter to use.
>> The linker ld sets the good values by default but you can overwrite it or
>> specify other values if you want.
>> The steps are:
>> 1)The operating system loads your binary
>> 2)The program loader system execute the Interpreter specifiy in the binary
>> 3)The interpreter gather all the dynamic libraries needed in memory
> 
> 
>> 4)The Control is passed to the entry point of your program
> 
>  How does  the step 4 been  done ?
> 
>  thanks!
>> 
>> The entry point is specified in your code source as a "global". And could
>> be find in your object file by the linker.
>> In theory there are some default tag to specify entry point, like "..start"
>> for nasm, but you can also passed it to the linker.
>> 
>> regards,
>> 
>> Sofiane Akermoun
>> akersof@gmail.com
>> 
>> 
>> 
>> 
>> 
>> 2013/4/7 ishare <june.tune.sea@gmail.com>
>> 
>>> 
>>>  For an ELF ,which needs a interpreter , how is it  been called by the
>>> interpreter ?
>>> 
>>>  As I know the interpreter is loaded first and do something essential
>>> ,then call the main routine of ELF .
>>>  How is this procedure implemented ?
>>> 
>>>  Thanks!
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-assembly"
>>> in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> 
>> 
>> 
>> -- 
>> Sofiane AKERMOUN
>> akersof@gmail.com
> --
> To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  3:43     ` Chris Evans
@ 2013-04-07  3:45       ` ishare
  2013-04-07  4:45         ` Sofiane Akermoun
  0 siblings, 1 reply; 11+ messages in thread
From: ishare @ 2013-04-07  3:45 UTC (permalink / raw)
  To: Chris Evans; +Cc: linux-assembly

On Sat, Apr 06, 2013 at 08:43:16PM -0700, Chris Evans wrote:
> With a far jump to entry offset 

  How does it know the entry point's address?

> 
> 
> Sent from my iPad
> 
> On Apr 6, 2013, at 8:39 PM, ishare <june.tune.sea@gmail.com> wrote:
> 
> > On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
> >> Hello,
> >> 
> >> 
> >> The interpreter is specified during linking process and the program header
> >> of your binary is filled with good values.
> >> Then when the operating system load your binary, he finds next the
> >> interpreter to use.
> >> The linker ld sets the good values by default but you can overwrite it or
> >> specify other values if you want.
> >> The steps are:
> >> 1)The operating system loads your binary
> >> 2)The program loader system execute the Interpreter specifiy in the binary
> >> 3)The interpreter gather all the dynamic libraries needed in memory
> > 
> > 
> >> 4)The Control is passed to the entry point of your program
> > 
> >  How does  the step 4 been  done ?
> > 
> >  thanks!
> >> 
> >> The entry point is specified in your code source as a "global". And could
> >> be find in your object file by the linker.
> >> In theory there are some default tag to specify entry point, like "..start"
> >> for nasm, but you can also passed it to the linker.
> >> 
> >> regards,
> >> 
> >> Sofiane Akermoun
> >> akersof@gmail.com
> >> 
> >> 
> >> 
> >> 
> >> 
> >> 2013/4/7 ishare <june.tune.sea@gmail.com>
> >> 
> >>> 
> >>>  For an ELF ,which needs a interpreter , how is it  been called by the
> >>> interpreter ?
> >>> 
> >>>  As I know the interpreter is loaded first and do something essential
> >>> ,then call the main routine of ELF .
> >>>  How is this procedure implemented ?
> >>> 
> >>>  Thanks!
> >>> --
> >>> To unsubscribe from this list: send the line "unsubscribe linux-assembly"
> >>> in
> >>> the body of a message to majordomo@vger.kernel.org
> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> 
> >> 
> >> 
> >> -- 
> >> Sofiane AKERMOUN
> >> akersof@gmail.com
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  3:39   ` ishare
  2013-04-07  3:43     ` Chris Evans
@ 2013-04-07  4:40     ` Sofiane Akermoun
  1 sibling, 0 replies; 11+ messages in thread
From: Sofiane Akermoun @ 2013-04-07  4:40 UTC (permalink / raw)
  To: ishare; +Cc: linux-assembly

from 'man exeve':
if the executable is a dynamically linked ELF  executable,  the
interpreter named in the PT_INTERP segment is used to load the needed
shared libraries.  This interpreter is typically /lib/ld-linux.so.1
for  binaries  linked  with the Linux libc 5, or /lib/ld-linux.so.2
for binaries linked with the glibc 2.
If you really want to know what really happens then go to dig the
exec.c source of linux:
http://lxr.linux.no/#linux+v3.8.6/fs/exec.c and binfmt*.c. If you
follow the process you will find how the loader find, parse, and
handle the interpretor.

regards,

Sofiane Akermoun

2013/4/7 ishare <june.tune.sea@gmail.com>:
> On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
>> Hello,
>>
>>
>> The interpreter is specified during linking process and the program header
>> of your binary is filled with good values.
>> Then when the operating system load your binary, he finds next the
>> interpreter to use.
>> The linker ld sets the good values by default but you can overwrite it or
>> specify other values if you want.
>> The steps are:
>> 1)The operating system loads your binary
>> 2)The program loader system execute the Interpreter specifiy in the binary
>> 3)The interpreter gather all the dynamic libraries needed in memory
>
>
>> 4)The Control is passed to the entry point of your program
>
>   How does  the step 4 been  done ?
>
>   thanks!
>>
>> The entry point is specified in your code source as a "global". And could
>> be find in your object file by the linker.
>> In theory there are some default tag to specify entry point, like "..start"
>> for nasm, but you can also passed it to the linker.
>>
>> regards,
>>
>> Sofiane Akermoun
>> akersof@gmail.com
>>
>>
>>
>>
>>
>> 2013/4/7 ishare <june.tune.sea@gmail.com>
>>
>> >
>> >   For an ELF ,which needs a interpreter , how is it  been called by the
>> > interpreter ?
>> >
>> >   As I know the interpreter is loaded first and do something essential
>> > ,then call the main routine of ELF .
>> >   How is this procedure implemented ?
>> >
>> >   Thanks!
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-assembly"
>> > in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >
>>
>>
>>
>> --
>> Sofiane AKERMOUN
>> akersof@gmail.com



-- 
Sofiane AKERMOUN
akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  3:45       ` ishare
@ 2013-04-07  4:45         ` Sofiane Akermoun
  2013-04-07  4:52           ` ishare
  0 siblings, 1 reply; 11+ messages in thread
From: Sofiane Akermoun @ 2013-04-07  4:45 UTC (permalink / raw)
  To: ishare; +Cc: linux-assembly

EntryPoint is set in the ELF Header at assembling/linking time.

2013/4/7 ishare <june.tune.sea@gmail.com>:
> On Sat, Apr 06, 2013 at 08:43:16PM -0700, Chris Evans wrote:
>> With a far jump to entry offset
>
>   How does it know the entry point's address?
>
>>
>>
>> Sent from my iPad
>>
>> On Apr 6, 2013, at 8:39 PM, ishare <june.tune.sea@gmail.com> wrote:
>>
>> > On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
>> >> Hello,
>> >>
>> >>
>> >> The interpreter is specified during linking process and the program header
>> >> of your binary is filled with good values.
>> >> Then when the operating system load your binary, he finds next the
>> >> interpreter to use.
>> >> The linker ld sets the good values by default but you can overwrite it or
>> >> specify other values if you want.
>> >> The steps are:
>> >> 1)The operating system loads your binary
>> >> 2)The program loader system execute the Interpreter specifiy in the binary
>> >> 3)The interpreter gather all the dynamic libraries needed in memory
>> >
>> >
>> >> 4)The Control is passed to the entry point of your program
>> >
>> >  How does  the step 4 been  done ?
>> >
>> >  thanks!
>> >>
>> >> The entry point is specified in your code source as a "global". And could
>> >> be find in your object file by the linker.
>> >> In theory there are some default tag to specify entry point, like "..start"
>> >> for nasm, but you can also passed it to the linker.
>> >>
>> >> regards,
>> >>
>> >> Sofiane Akermoun
>> >> akersof@gmail.com
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> 2013/4/7 ishare <june.tune.sea@gmail.com>
>> >>
>> >>>
>> >>>  For an ELF ,which needs a interpreter , how is it  been called by the
>> >>> interpreter ?
>> >>>
>> >>>  As I know the interpreter is loaded first and do something essential
>> >>> ,then call the main routine of ELF .
>> >>>  How is this procedure implemented ?
>> >>>
>> >>>  Thanks!
>> >>> --
>> >>> To unsubscribe from this list: send the line "unsubscribe linux-assembly"
>> >>> in
>> >>> the body of a message to majordomo@vger.kernel.org
>> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >>
>> >>
>> >>
>> >> --
>> >> Sofiane AKERMOUN
>> >> akersof@gmail.com
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Sofiane AKERMOUN
akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  4:45         ` Sofiane Akermoun
@ 2013-04-07  4:52           ` ishare
  2013-04-07  6:26             ` Sofiane Akermoun
  0 siblings, 1 reply; 11+ messages in thread
From: ishare @ 2013-04-07  4:52 UTC (permalink / raw)
  To: Sofiane Akermoun; +Cc: linux-assembly

On Sun, Apr 07, 2013 at 06:45:58AM +0200, Sofiane Akermoun wrote:
> EntryPoint is set in the ELF Header at assembling/linking time.

  how does the interpreter know this address?

> 
> 2013/4/7 ishare <june.tune.sea@gmail.com>:
> > On Sat, Apr 06, 2013 at 08:43:16PM -0700, Chris Evans wrote:
> >> With a far jump to entry offset
> >
> >   How does it know the entry point's address?
> >
> >>
> >>
> >> Sent from my iPad
> >>
> >> On Apr 6, 2013, at 8:39 PM, ishare <june.tune.sea@gmail.com> wrote:
> >>
> >> > On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
> >> >> Hello,
> >> >>
> >> >>
> >> >> The interpreter is specified during linking process and the program header
> >> >> of your binary is filled with good values.
> >> >> Then when the operating system load your binary, he finds next the
> >> >> interpreter to use.
> >> >> The linker ld sets the good values by default but you can overwrite it or
> >> >> specify other values if you want.
> >> >> The steps are:
> >> >> 1)The operating system loads your binary
> >> >> 2)The program loader system execute the Interpreter specifiy in the binary
> >> >> 3)The interpreter gather all the dynamic libraries needed in memory
> >> >
> >> >
> >> >> 4)The Control is passed to the entry point of your program
> >> >
> >> >  How does  the step 4 been  done ?
> >> >
> >> >  thanks!
> >> >>
> >> >> The entry point is specified in your code source as a "global". And could
> >> >> be find in your object file by the linker.
> >> >> In theory there are some default tag to specify entry point, like "..start"
> >> >> for nasm, but you can also passed it to the linker.
> >> >>
> >> >> regards,
> >> >>
> >> >> Sofiane Akermoun
> >> >> akersof@gmail.com
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> 2013/4/7 ishare <june.tune.sea@gmail.com>
> >> >>
> >> >>>
> >> >>>  For an ELF ,which needs a interpreter , how is it  been called by the
> >> >>> interpreter ?
> >> >>>
> >> >>>  As I know the interpreter is loaded first and do something essential
> >> >>> ,then call the main routine of ELF .
> >> >>>  How is this procedure implemented ?
> >> >>>
> >> >>>  Thanks!
> >> >>> --
> >> >>> To unsubscribe from this list: send the line "unsubscribe linux-assembly"
> >> >>> in
> >> >>> the body of a message to majordomo@vger.kernel.org
> >> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> Sofiane AKERMOUN
> >> >> akersof@gmail.com
> >> > --
> >> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> >> > the body of a message to majordomo@vger.kernel.org
> >> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 
> -- 
> Sofiane AKERMOUN
> akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  4:52           ` ishare
@ 2013-04-07  6:26             ` Sofiane Akermoun
  2013-04-07  6:56               ` ishare
  0 siblings, 1 reply; 11+ messages in thread
From: Sofiane Akermoun @ 2013-04-07  6:26 UTC (permalink / raw)
  To: ishare; +Cc: linux-assembly

The address is passed by the elf loader in something called "auxillary
vectors" structure.
In elf.h you can investigate on a_type/entry type and find that there
is defininition of AT_ENTRY.
As i wrote previsouly if you check in
http://lxr.linux.no/#linux+v3.8.6/fs/binfmt_elf.c you will find how
the elf loader prepare the execution of the interpreter.
To describe the step 4) i mentioned previously, with more accuracy...
the interpreter is executed
by the elf loader as a program loader with known parameters passed on the
stack through Elf32_auxv_t structure. For an easy to understand
explanation you can read an article from phrack 58:
http://www.phrack.org/issues.html?issue=58&id=5#article

regards,

Sofiane Akermoun
alersof@gmail.com

2013/4/7 ishare <june.tune.sea@gmail.com>:
> On Sun, Apr 07, 2013 at 06:45:58AM +0200, Sofiane Akermoun wrote:
>> EntryPoint is set in the ELF Header at assembling/linking time.
>
>   how does the interpreter know this address?
>
>>
>> 2013/4/7 ishare <june.tune.sea@gmail.com>:
>> > On Sat, Apr 06, 2013 at 08:43:16PM -0700, Chris Evans wrote:
>> >> With a far jump to entry offset
>> >
>> >   How does it know the entry point's address?
>> >
>> >>
>> >>
>> >> Sent from my iPad
>> >>
>> >> On Apr 6, 2013, at 8:39 PM, ishare <june.tune.sea@gmail.com> wrote:
>> >>
>> >> > On Sun, Apr 07, 2013 at 05:11:28AM +0200, Sofiane Akermoun wrote:
>> >> >> Hello,
>> >> >>
>> >> >>
>> >> >> The interpreter is specified during linking process and the program header
>> >> >> of your binary is filled with good values.
>> >> >> Then when the operating system load your binary, he finds next the
>> >> >> interpreter to use.
>> >> >> The linker ld sets the good values by default but you can overwrite it or
>> >> >> specify other values if you want.
>> >> >> The steps are:
>> >> >> 1)The operating system loads your binary
>> >> >> 2)The program loader system execute the Interpreter specifiy in the binary
>> >> >> 3)The interpreter gather all the dynamic libraries needed in memory
>> >> >
>> >> >
>> >> >> 4)The Control is passed to the entry point of your program
>> >> >
>> >> >  How does  the step 4 been  done ?
>> >> >
>> >> >  thanks!
>> >> >>
>> >> >> The entry point is specified in your code source as a "global". And could
>> >> >> be find in your object file by the linker.
>> >> >> In theory there are some default tag to specify entry point, like "..start"
>> >> >> for nasm, but you can also passed it to the linker.
>> >> >>
>> >> >> regards,
>> >> >>
>> >> >> Sofiane Akermoun
>> >> >> akersof@gmail.com
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> 2013/4/7 ishare <june.tune.sea@gmail.com>
>> >> >>
>> >> >>>
>> >> >>>  For an ELF ,which needs a interpreter , how is it  been called by the
>> >> >>> interpreter ?
>> >> >>>
>> >> >>>  As I know the interpreter is loaded first and do something essential
>> >> >>> ,then call the main routine of ELF .
>> >> >>>  How is this procedure implemented ?
>> >> >>>
>> >> >>>  Thanks!
>> >> >>> --
>> >> >>> To unsubscribe from this list: send the line "unsubscribe linux-assembly"
>> >> >>> in
>> >> >>> the body of a message to majordomo@vger.kernel.org
>> >> >>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Sofiane AKERMOUN
>> >> >> akersof@gmail.com
>> >> > --
>> >> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
>> >> > the body of a message to majordomo@vger.kernel.org
>> >> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-assembly" in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>>
>> --
>> Sofiane AKERMOUN
>> akersof@gmail.com



-- 
Sofiane AKERMOUN
akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  6:26             ` Sofiane Akermoun
@ 2013-04-07  6:56               ` ishare
  2013-04-07  7:47                 ` Sofiane Akermoun
  0 siblings, 1 reply; 11+ messages in thread
From: ishare @ 2013-04-07  6:56 UTC (permalink / raw)
  To: Sofiane Akermoun; +Cc: linux-assembly


  yeah!

  I have found the work is done through create_elf_tables() function.

  at early time kernel copy args to bprm structure , then copy it to user stack.

  I am dealing with one problem .
  
  When kernel execute "/bin/sh" , it load ld.so successfully , but without jumping 
  to the elf's entry point ,it exit ,which cause  kernel panic . 

  how can I debug for this problem ? how to catch more information for resolving it?
  
  thanks! 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how does ld.so call ELF's entry?
  2013-04-07  6:56               ` ishare
@ 2013-04-07  7:47                 ` Sofiane Akermoun
  0 siblings, 0 replies; 11+ messages in thread
From: Sofiane Akermoun @ 2013-04-07  7:47 UTC (permalink / raw)
  To: ishare; +Cc: linux-assembly

I don't know what you are doing. if you are writing your proper
assembler, or whatever. But the standard tools are gdb, printing on
screen information like addresses. if it is kernel related then kdb
and an emulator like bochs, qemu or virtualbox to avoid kernel
freezing in performing remote debugging.

Although it is interesting, without asm code not sure it is the best
place to talk about inner operating system mechanism.

regards.

Sofiane Akermoun
akersof@gmail.com

2013/4/7 ishare <june.tune.sea@gmail.com>:
>
>   yeah!
>
>   I have found the work is done through create_elf_tables() function.
>
>   at early time kernel copy args to bprm structure , then copy it to user stack.
>
>   I am dealing with one problem .
>
>   When kernel execute "/bin/sh" , it load ld.so successfully , but without jumping
>   to the elf's entry point ,it exit ,which cause  kernel panic .
>
>   how can I debug for this problem ? how to catch more information for resolving it?
>
>   thanks!



-- 
Sofiane AKERMOUN
akersof@gmail.com

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2013-04-07  7:47 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-07  2:19 how does ld.so call ELF's entry? ishare
2013-04-07  3:13 ` Sofiane Akermoun
     [not found] ` <CAN0_x-Je1=2mtN8tY2mvBa-X7_P0dBoG9KRh0P63uW91eE5H2Q@mail.gmail.com>
2013-04-07  3:39   ` ishare
2013-04-07  3:43     ` Chris Evans
2013-04-07  3:45       ` ishare
2013-04-07  4:45         ` Sofiane Akermoun
2013-04-07  4:52           ` ishare
2013-04-07  6:26             ` Sofiane Akermoun
2013-04-07  6:56               ` ishare
2013-04-07  7:47                 ` Sofiane Akermoun
2013-04-07  4:40     ` Sofiane Akermoun

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.