Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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 ³ÌÐòÄÚ²¿ ²é¿´¿ÉÖ´ÐгÌÐò·¾¶

linux shell pwd ÏÔʾµ±Ç°Â·¾¶
¼ÙÈôÓÐtest.cpp
g++ test.cpp -o test
./test
ÏëÔÚtestÖÐÕÒµ½µ±Ç°Ö´ÐгÌÐòËùÔڵķ¾¶
¿ÉÒÔÔÙtest.cppÖÐʹÓÃreadlinkº¯Êý
¾ßÌå¼ûÈçÏÂʵÀý£º
#include<iostream>
#include<unistd.h>
#include<dirent.h>
#include<string.h>
#include<string>
using ......

LinuxÖÐÎÄÂÒÂëÎÊÌâ


LinuxÖÐÎÄÂÒÂëÎÊÌâ
×î½ü£¬¹«Ë¾ÔÚXPϵͳÓÚLINUXÖ®¼ä´«Êý¾Ýʱ³öÏÖÁËÖÐÎÄÂÒÂëÎÊÌâ!
Ê×ÏÈ£¬½âÊÍÒ»ÏÂ×Ö·û¼¯£º
ºº×Ö±àÂë:
* GB2312×Ö¼¯ÊǼòÌå×Ö¼¯£¬È«³ÆΪGB2312(80)×Ö¼¯£¬¹²°üÀ¨¹ú±ê¼òÌ庺×Ö6763¸ö¡£ *
BIG5×Ö¼¯ÊÇ̨Íå·±Ìå×Ö¼¯£¬¹²°üÀ¨¹ú±ê·±Ì庺×Ö13053¸ö¡£ *
GBK×Ö¼¯ÊǼò·±×Ö¼¯£¬°üÀ¨ÁËGB×Ö¼¯¡¢BIG5×Ö¼¯ºÍһЩ·ûºÅ£ ......

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

1.¿ÉÖ´ÐгÌÐò
os.system('pgrep %s > %s' % (process, output))
   pidfile = open("output", 'r')
   totalpid = len(pidfile.readlines())
   pidfile.close()
   if totalpid == 0 :
         &nbs ......

linuxÉ豸Îļþϵͳsysfs½éÉÜ

      linuxÏÂÓÐרÃŵÄÎļþϵͳÓÃÀ´¶ÔÉ豸½øÐйÜÀí£¬devfsºÍsysfs¾ÍÊÇÆäÖÐÁ½ÖÖ¡£
1£¬devfs£ºdevfsÊÇÔÚ2.4Äں˾ͳöÏÖÁË£¬ËüÊÇÓÃÀ´½â¾ölinuxÖÐÉ豸¹ÜÀí»ìÂÒµÄÎÊÌ⣬linuxÄں˿ª·¢ÈËÔ±¿ª·¢ÁËdevfs¡£
2£¬sysfs£ºÊÇLinux ÄÚºËÖÐÉè¼Æ½ÏеÄÒ»ÖÖÐéÄâµÄ»ùÓÚÄÚ´æµÄÎļþϵͳ£¬ËüµÄ×÷ÓÃÓëproc ÓÐЩÀàËÆ£¬µ« ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ