linuxÖÐELF¼ÓÔØ¹ý³Ì·ÖÎö
sys_execve
| - do_execve
|
| - search_binary_handler
|- linux_binfmt= elf_format
|- elf_format-> load_elf_binary
| - elf_entry = load_elf_interp()
|-
| if (BAD_ADDR(elf_entry))
| force_sig(SIGSEGV, current);
| retval =-EINVAL;
binfmt_elf.c: line 1024
elf_entry = loc->elf_ex.e_entry;
if (BAD_ADDR(elf_entry)) {
force_sig(SIGSEGV, current);
retval = -EINVAL;
goto out_free_dentry;
}
ELF¿ÉÐеµµÄÔØÈ룺
ÄÚºËÖÐʵ¼ÊÖ´ÐÐ
execv()
»ò
execve()
ϵͳµ÷ÓõijÌÐòÊÇ
do_execve()
£¬Õâ¸öº¯ÊýÏÈ´ò¿ªÄ¿±êÓ³ÏñÎļþ£¬²¢´ÓÄ¿±êÎļþµÄÍ·²¿
(
´ÓµÚÒ»¸ö×Ö½Ú¿ªÊ¼
)
¶ÁÈëÈô¸É
(128)
×Ö½Ú£¬È»ºóµ÷ÓÃÁíÒ»¸öº¯Êý
search_binary_handler()
£¬ÔÚÄÇÀïÃæÈø÷ÖÖ¿ÉÖ´ÐгÌÐòµÄ´¦Àí³ÌÐòǰÀ´ÈÏÁìºÍ´¦Àí¡£ÄÚºËËùÖ§³ÖµÄÿÖÖ¿ÉÖ´ÐгÌÐò¶¼Óиö
struct linux_binfmt
Êý¾Ý½á¹¹£¬Í¨¹ýÏòÄں˵ǼǹÒÈëÒ»¸ö¶ÓÁС£¶ø
search_binary_handler()
£¬ÔòɨÃèÕâ¸ö¶ÓÁУ¬Èø÷¸öÊý¾Ý½á¹¹ËùÌṩµÄ´¦Àí³ÌÐò¡¢¼´¸÷ÖÖÓ³Ïñ¸ñʽ¡¢ÖðһǰÀ´ÈÏÁì¡£Èç¹ûij¸ö¸ñʽµÄ´¦Àí³ÌÐò·¢ÏÖÌØÕ÷Ïà·û¶ø£¬±ãÖ´ÐиøñʽӳÏñµÄ×°ÈëºÍÆô¶¯¡£
ÎÒÃÇ´Ó
ELF
¸ñʽӳÏñµÄ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
linuxÄÚºËÖÐ×î³£¼ûµÄËøÊÇ×ÔÐýËø(spin lock)¡£×ÔÐýËø×î¶àÖ»Äܱ»Ò»¸ö¿ÉÖ´ÐÐÏ̳߳ÖÓС£Èç¹ûÒ»¸öÖ´ÐÐÏß³ÌÊÔͼ»ñµÃÒ»¸ö±»ÕùÓõÄ×ÔÐýËø£¬ÄÇô¸ÃÏ߳̾ͻáÒ»Ö±½øÐÐæѻ·µÈ´ýËøÖØÐ¿ÉÓá£ÒªÊÇËøÎ´±»ÕùÓã¬ÇëÇóËøµÄÖ´ÐÐÏ̱߳ãÄÜÁ¢¿ÌµÃµ½Ëü£¬¼ÌÐøÖ´ÐС£ÔÚÈÎÒâʱ¼ä£¬×ÔÐýËø¶¼¿ÉÒÔ·ÀÖ¹¶àÓÚÒ»¸öµÄÖ´ÐÐÏß³Ìͬʱ½øÈëÁÙ½çÇø¡£
......
ÔÎÄÁ´½Ó:http://www.linuxdiyf.com/bbs/viewthread.php?tid=92084
ºÜ¾ÃºÜ¾ÃÒÔǰ£ºÒ»¸ö½Ð×öMark HemmentµÄ¸ç¶ùÃÇдÁËSlab¡£ÔÚ½ÓÏÂÀ´µÄһЩÄêÀÆäËûÈ˶ÔSlab½øÐÐÁËÍêÉÆ¡£Ò»Äê°ëÒÔǰ£¬SLOBÎÊÊÀÁË¡£SLOBµÄÄ¿±êÊÇÕë¶ÔǶÈëʽϵͳµÄ£¬Ö÷ÒªÊÇÊÊÓÃÓÚÄÇЩÄÚ´æ·Ç³£ÓÐÏÞµÄϵͳ£¬±ÈÈç32MBÒÔϵÄÄڴ棬Ëü²»Ì«×¢ÖØlarge smpϵͳ£ ......
ÈçºÎÔÚlinuxϲ鿴µ±Ç°µÇ¼µÄÓû§£¬²¢ÇÒÌßµôÄãÈÏΪӦ¸ÃÌßµôµÄÓû§£¿
¿´ÁËÍøÂçÖеÄһЩÀý×Ó.ÔÚÕâÀï×ܽáÒ»ÏÂ.Ö÷ÒªÓõ½µÄÃüÁîÓÐ,w,who,ps,kill,pkill
²é¿´µ±Ç°µÇ¼Óû§:
node8:/home # who
root :0 2009-11-04 16:26
root pts/0 &n ......
ÍøÉÏÕÒÁ˺ܶ࣬Õâ¸ö×îÓÐЧ£¬×ªÔØÏÂ
ÏÂÔØ³É¹¦ºóÉÏ´«ÖÁ·þÎñÆ÷ÈÎÒâĿ¼
2. ÔÚµ±Ç°Ä¿Â¼ÊäÈë
sh jdk-6u2-linux-i586-rpm.bin
3.¿´µ½ °²×°³ÌÐòÔÚѯÎÊÄúÊÇ·ñ×ðÊØÐí¿ÉÐÒéÒ³Ãæ ,»Ø³µ ......