Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔØ¼°½âÎö¹ý³Ì

http://hi.baidu.com/hust_chen/blog/item/54a8c516231d0c0ec93d6d3e.html
linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔØ¼°½âÎö¹ý³Ì£¨ZZ£©
2008-12-18 15:19
±íÃæÉÏ¿´£¬¶¯Ì¬Á´½Ó¿â£¨dll£©µÄ¼ÓÔØ¼°½âÎöÊÇÒ»¸öÊ®·Ö·±¸´µÄ¹ý³Ì£¬ÆäÖÐÇ£Éæµ½µÄÊý¾Ý½á¹¹¼°ÆäÖ®¼äµÄ¹ØÏµÒ²ÈÃÈËÍû¶øÉúη¡£Whatever£¬Ñ§Ï°Õâ ÊÂÇ飬˵µ½µ×ÊÇûÓнݾ¶¿É×ߵ쬳ýÁËËÀ¿Ð½öÓеÄһЩ×ÊÁÏ£¬ÈçELF format¡¢Loaders and Linkers£¬½èÓÃobjdump¼°gdbÀ´¸ú×Ù³ÌÐòµÄÖ´ÐÐÁ÷³Ì£¬¶ÔÓÚÀí½â¹ý³ÌÒ²ÊÇÆÄÓаïÖúµÄ£¬anyway£¬²»ÏÓ·³¾ÍºÃÁË¡£
ÔÚ²»Í¬µÄÌåϵÏ£¬dllµÄ¼ÓÔØ¼°½âÎö¹ý³ÌÊÇÓвî±ðµÄ£¬ÕâÊÇÒòΪ²»Í¬ÌåϵÏÂÉú³ÉµÄELFÎļþ²»¾¡Ïàͬ£¬Æ©Èç˵£¬ÔÚIA32Ï£¬»áÉú³É.pltÕâ¸ödynamic section£¬µ«µ½ÁËMIPSÏ£¬±ã³ÉÁË.MIPS.stubs¡£
¾¡¹ÜÈç´Ë£¬Åųý±íÃæÉϵIJîÒ죬Æä±¾ÖÊÈ´ÊÇÒ»Öµġ£ÏÈ˵˵ELFÎļþµÄformat£¬ELFʵÖÊÊÇ¿ÉÖ´ÐÐÎļþµÄÒ»ÖÖ¸ñʽ£¬¶ÔÓÚ»úÆ÷¶øÑÔ£¬ËùÓеĿÉÖ´ÐÐÎļþ²» ¹ýÊǶþ½øÖÆ´úÂëµÄÁ÷Ë®°ÕÁË£¬µ«ÎªÁË·½±ã¹ÜÀíÕâЩ¶þ½øÖÆ´úÂ룬±àÒëÆ÷±ã½«ÕâЩ»úÆ÷Âë·ÖΪ¼¸¸ö¶Î£¬²¢Í³¼Æ³öÏà¹ØµÄÐÅÏ¢£¬Í¨Ë×µØËµ£¬Ò²¾ÍÊǶԻúÆ÷Âë°ü×°°ü×°¶ø ÒÑ¡£Technically speaking, ÿ¸öELFÎļþ¶¼ÓÐÒ»¸öELF header£¬±£´æµÄÊÇprogram headerÓësection headerµÄÆ«ÒÆÁ¿¡£¹ØÓÚprogram headerÓësection header£¬ÒÔºóÔÙ˵ß¡£
Èç¹ûij¸öÎļþÊǶ¯Ì¬±àÒëµÄ£¬ÄÇôÆä¶ÔÓ¦µÄELFÎļþÖп϶¨»áÓÐÒ»¸ö.dynamic section£¬Õâ¸ösection°üº¬ÁËdllµÄ¼ÓÔØÓë½âÎöËùÐèÒªµÄÐÅÏ¢¡£.dynamicÖеÄentryÒòÀàÐͲ»Í¬¶ø±»¸³Ó費ͬµÄº¬Ò壬×îΪ³£ÓõÄÊÇÏÂÃæ¼¸ÖÖÀàÐ͵Äentry£º
·DT_NEEDED£ºd_tag=1£¬d_valÖеÄֵΪneeded libraryµÄnameÔÚstring tableÖÐÆ«ÒÆÁ¿¡£Èç¹ûËùÐèÒª¶¯Ì¬¿âµÄÊýÁ¿Îªn¸ö£¬ÔòÏàÓ¦ÀàÐÍΪDT_NEEDEDµÄentryÒ²Ó¦¸ÃÓÐnÌõ£»
·DT_PLTGOT£ºd_tag=3£¬d_ptrÖеÄֵΪ.plt£¨procedure linkage table£©»ò.got£¨global offset table£©µÄÆðʼµØÖ·£¬ÔÚMIPSÌåϵÏ£¬Õâ¸öÖµÊÇÖ¸Ïò.gotµÄÆðʼµØÖ·£»
·DT_HASH£ºd_tab=4£¬d_ptrÖеÄֵΪhash tableµÄÆðʼµØÖ·£»
·DT_STRTAB£ºd_tab=5£¬d_ptrÖеÄֵΪstring tableµÄÆðʼµØÖ·£»
·DT_SYMTAB£ºd_tab=6£¬d_ptrÖеÄֵΪsymbol tableµÄÆðʼµØÖ·£»
·DT_RPATH£ºd_tab=15£¬d_valÖеÄֵΪneeded libraryËùÔڵķ¾¶Ãû³Æ£¨×¢£ºneeded library²»Ò»¶¨¾Í»áÔÚÕâ¸ö·¾¶Ï£¬detail²Î¼ûdllµÄ¼ÓÔØ¹ý³Ì£©ÔÚstring tableÖÐµÄÆðʼµØÖ·¡£
ÕâÀïÃæÇ£Éæµ½ÁËÒ»Ð©ÖØÒªµÄÊý¾Ý½á¹¹£º
(1) hash table£ºÆä×÷ÓÃÊǸù¾Ýsymbol nameÕ


Ïà¹ØÎĵµ£º

LinuxÉ豸Çý¶¯±à³ÌÖ®×èÈûÓë·Ç×èÈû

×èÈû²Ù×÷ÊÇÖ¸£¬ÔÚÖ´ÐÐÉ豸²Ù×÷ʱ£¬Èô²»ÄÜ»ñµÃ×ÊÔ´£¬Ôò½ø³Ì¹ÒÆðÖ±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þÔÙ½øÐвÙ×÷¡£·Ç×èÈû²Ù×÷µÄ½ø³ÌÔÚ²»ÄܽøÐÐÉ豸²Ù×÷ʱ£¬²¢²»¹ÒÆð¡£±»¹ÒÆðµÄ½ø³Ì½øÈësleep״̬£¬±»´Óµ÷¶ÈÆ÷µÄÔËÐжÓÁÐÒÆ×ߣ¬Ö±µ½µÈ´ýµÄÌõ¼þ±»Âú×ã¡£
¡¡¡¡ÔÚLinux
¡¡¡¡¹ØÓÚÉÏÊöÀý³Ì£¬ÎÒÃDz¹³ä˵һµã£¬Èç¹û½«Çý¶¯³ÌÐòÖеÄreadº¯Êý¸ÄΪ£º
stat ......

Linuxѧϰ±Ê¼ÇÁãÁãÈý

´æ´¢¹ÜÀí
MMUÓëÄÚºËÄÚ´æ¹ÜÀíµÄ¹ØÏµ
´ÓÏßÐÔµØÖ·µ½ÎïÀíµØÖ·µÄÓ³É䣬ͨ¹ýҳĿ¼±íºÍÒ³±íÀ´ÊµÏֵġ£
ÄÚºËΪ´æ´¢¹ÜÀíά»¤ÁËÒ»Ì׸´ÔÓµÄÊý¾Ý½á¹¹£¬Ò³Ä¿Â¼±íºÍÒ³±íÊÇÖ÷ÒªµÄ½á¹¹Ö®Ò»¡£ÕâЩ±íÒ²ÊÇ´æ´¢ÔÚÎïÀíÄÚ´æÒ³ÃæÖеģ¬Òò´Ë£¬Ò²ÊÇÒÔ4KΪµ¥Î»¡£
±íÖеÄÿ¸ö±íÏî¶¼¼Ç¼ÁËÒ»¸ö32λµÄµØÖ·£¬Îª4¸ö×Ö½Ú£¬Òò´Ë£¬Ò»¸ö±íÖÐ×î¶à¿ÉÒÔÓÐ1KÏî ......

LinuxÃüÁîÏê½â

linuxµÄÃüÁîÏê½â
cat cd 
chmod chown 
cp cut 
Ãû³Æ£ºcat 
ʹÓÃȨÏÞ£ºËùÓÐʹÓÃÕß 
ʹÓ÷½Ê½£ºcat [-abeensttuv] [--help] [--version] filename 
˵Ã÷£º°Ñµµ°¸´®Á¬½Óºó´«µ½»ù±¾Êä³ö£¨Ó©Ä»»ò¼Ó > filename µ½ÁíÒ»¸öµµ°¸£©  ......

linux½ø³Ì¿ØÖÆ£­execϵÁÐ

˵ÊÇexecϵͳµ÷Óã¬Êµ¼ÊÉÏÔÚLinuxÖУ¬²¢²»´æÔÚÒ»¸öexec()µÄº¯ÊýÐÎʽ£¬execÖ¸µÄÊÇÒ»×麯Êý£¬Ò»¹²ÓÐ6¸ö£¬·Ö±ðÊÇ£º




#include <unistd.h>
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const c ......

LinuxÏÂÓÃPYTHON²éÕÒͬÃû½ø³Ì

1.¿ÉÖ´ÐгÌÐò
os.system('pgrep %s > %s' % (process, output))
   pidfile = open("output", 'r')
   totalpid = len(pidfile.readlines())
   pidfile.close()
   if totalpid == 0 :
         &nbs ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ