Hi,
To execute a program, the load_elf_binary() loads it and
descdes the value of elf_entry, start_code, start_data....etc..
Then , the start_thread(regs, elf_entry, bprm->p) will
trigger it.
But it just sets up the value of
regs->cp0_status, regs->cp0_epc, regs->regs[29] and
current->thread.current_ds.
Why can the start_thread() trigger a program?
Here is my situation :
The kernel boots up and mounts the filesystem, when it tries
to
execute /sbin/hello i don't see any output. (Ps: /sbin/hello is a simple testing program to replace the
real /sbin/init.
It just outputs some console message.) I looked at the memory and the code for hello is
present at "elf_entry",
so why does the start_thread not execute it ??
Any help would be really appreciated.
Thanks,
KJ |