linuxϵÄELFÎļþ·ÖÎö
from:http://www.dzjs.net/html/qianrushixitong/2008/0509/3125.html
1 ÒýÑÔ
ELF(Executable and Linkable Format)¼´¿ÉÖ´ÐÐÁ¬½ÓÎļþ¸ñʽ£¬ÊÇLinux£¬SVR4ºÍSolaris2.0ĬÈϵÄÄ¿±êÎļþ¸ñʽ£¬Ä¿Ç°±ê×¼½Ó¿ÚίԱ»áTISÒѽ«ELF±ê×¼»¯ÎªÒ»ÖÖ¿ÉÒÆÖ²µÄÄ¿±êÎļþ¸ñʽ£¬ÔËÐÐÓÚ32-bit IntelÌåϵ΢»úÉÏ£¬¿ÉÓë¶àÖÖ²Ù×÷ϵͳ¼æÈÝ¡£·ÖÎöelfÎļþÓÐÖúÓÚÀí½âÒ»Ð©ÖØÒªµÄϵͳ¸ÅÄÀýÈç³ÌÐòµÄ±àÒëºÍÁ´½Ó£¬³ÌÐòµÄ¼ÓÔØºÍÔËÐеÈ
2 ELFÎļþ¸ñʽ
2.1 ELFÎļþµÄÀàÐÍ
ELFÎļþÖ÷ÒªÓÐÈýÖÖÀàÐÍ£º
(1)¿ÉÖØ¶¨Î»Îļþ°üº¬ÁË´úÂëºÍÊý¾Ý£®¿ÉÓëÆäËüELFÎļþ½¨Á¢Ò»¸ö¿ÉÖ´Ðлò¹²ÏíµÄÎļþ£º
(2)¿ÉÖ´ÐÐÎļþʱ¿ÉÖ±½ÓÖ´ÐеijÌÐò£º
(3)¹²ÏíÄ¿±êÎļþ°üÀ¨´úÂëºÍÊý¾Ý£¬¿ÉÒÔÔÚÁ½¸öµØ·½Á´½Ó¡£µÚÒ»£¬Á¬½ÓÆ÷¿ÉÒÔ°ÑËüºÍÆäËü¿ÉÖØ¶¨Î»ÎļþºÍ¹²ÏíÎļþÒ»Æð´¦ÀíÒÔ½¨Á¢ÁíÒ»¸öELFÎļþ;µÚ¶þ£¬¶¯Ì¬Á´½ÓÆ÷°ÑËüºÍÒ»¸ö¿ÉÖ´ÐÐÎļþºÍÆäËü¹²ÏíÎļþ½áºÏÔÚÒ»Æð½¨Á¢Ò»¸ö½ø³ÌÓ³Ïñ¡£
2.2 ELFÎļþµÄ×éÖ¯
ELFÎļþ²ÎÓë³ÌÐòµÄÁ¬½Ó(½¨Á¢Ò»¸ö³ÌÐò)ºÍ³ÌÐòµÄÖ´ÐÐ(ÔËÐÐÒ»¸ö³ÌÐò)£¬±àÒëÆ÷ºÍÁ´½ÓÆ÷½«ÆäÊÓΪ½ÚÍ·±í(section header table)ÃèÊöµÄһЩ½Ú(section)µÄ¼¯ºÏ£¬¶ø¼ÓÔØÆ÷Ôò½«ÆäÊÓΪ³ÌÐòÍ·±í(program header table)ÃèÊöµÄ¶Î(segment)µÄ¼¯ºÏ£¬Í¨³£Ò»¸ö¶Î¿ÉÒÔ°üº¬¶à¸ö½Ú¡£¿ÉÖØ¶¨Î»Îļþ¶¼°üº¬Ò»¸ö½ÚÍ·±í£¬¿ÉÖ´ÐÐÎļþ¶¼°üº¬Ò»¸ö³ÌÐòÍ·±í¡£¹²ÏíÎļþÁ½Õß¶¼°üº¬ÓС£Îª´Ë£¬ELFÎļþ¸ñʽͬʱÌṩÁËÁ½ÖÖ¿´´ýÎļþÄÚÈݵķ½Ê½£¬·´Ó³Á˲»Í¬ÐÐΪµÄ²»Í¬ÒªÇó¡£ÏÂͼÏÔʾÁËELFÎļþµÄ×éÖ¯¡£
2.3 ÎļþÍ·(Elf header)
ElfÍ·ÔÚ³ÌÐòµÄ¿ªÊ¼²¿Î»£¬×÷ΪÒý·±íÃèÊöÕû¸öELFµÄÎļþ½á¹¹£¬ÆäÐÅÏ¢´óÖ·ÖΪËIJ¿·Ö£ºÒ»ÊÇϵͳÏà¹ØÐÅÏ¢£¬¶þÊÇÄ¿±êÎļþÀàÐÍ£¬ÈýÊǼÓÔØÏà¹ØÐÅÏ¢£¬ËÄÊÇÁ´½ÓÏà¹ØÐÅÏ¢ ÆäÖÐϵͳÏà¹ØÐÅÏ¢°üÀ¨elfÎļþħÊý(±êʶelfÎļþ)£¬Æ½Ì¨Î»Êý£¬Êý¾Ý±àÂ뷽ʽ£¬elfÍ·²¿°æ±¾£¬Ó²¼þƽ̨e_machine£¬Ä¿±êÎļþ°æ±¾e_version£¬´¦ÀíÆ÷ÌØ¶¨±êÖ¾e_ftags£ºÕâЩÐÅÏ¢µÄÒýÈ뼫´óÔöÇ¿ÁËelfÎļþµÄ¿ÉÒÆÖ²ÐÔ£¬Ê¹½»²æ±àÒë³ÉΪ¿ÉÄÜ¡£Ä¿±êÎļþÀàÐÍÓÃe_typeµÄÖµ±íʾ£¬¿ÉÖØ¶¨Î»ÎļþΪ1£¬¿ÉÖ´ÐÐÎļþΪ2£¬¹²ÏíÎļþΪ3;¼ÓÔØÏà¹ØÐÅÏ¢ÓУº³ÌÐò½øÈëµãe_entry£®³ÌÐòÍ·±íÆ«ÒÆÁ¿e_phoff£¬elfÍ·²¿³¤¶Èe_ehsize£¬³ÌÐòÍ·±íÖÐÒ»¸öÌõÄ¿µÄ³¤¶Èe_phentsize£¬³ÌÐòÍ·±íÌõÄ¿ÊýÄ¿e_phnum;Á´½ÓÏà¹ØÐÅÏ¢ÓУº½ÚÍ·±íÆ«ÒÆÁ¿e_shoff£¬½ÚÍ·±íÖÐÒ»¸öÌõÄ¿µÄ³¤¶Èe_shentsize£¬½ÚÍ·±íÌõÄ¿¸öÊýe_shnum £¬½ÚÍ·±í×Ö·ûË÷Òýe shstmdx¡£¿ÉʹÓÃreadelf -h
Ïà¹ØÎĵµ£º
ÔÚʹÓÃWindowsÃüÁîÐвÙ×÷MySQLÊý¾Ý¿âµÄʱºò£¬ÒÔutf8¸ñʽ´æ´¢ÔÚMySQLÊý¾Ý¿âÖеÄÊý¾Ý£¬´ÓÃüÁîÐжÁÈ¡³öÀ´×ÜÊÇÂÒÂ룬ÏÔʾȫÊÇÎʺš£»òÕß´ÓÃüÁîÐвåÈëÐÂÊý¾Ý£¬½á¹ûÏà·´£¬ÔÚÃüÁîÐÐÖÐÏÔʾÊÇÕý³£µÄ£¬µ«ÊÇÔÚPHPMyAdminÖÐÈ´ÊÇÂÒÂë¡£
¡¡¡¡¾¹ýÉÏÍø²éÕÒÑо¿£¬·¢ÏÖmysqlµÄÃüÁîÐпͻ§¶Ë¸ù±¾ÎÞ·¨ÒÔutf-8µÄÐÎʽ·µ»ØÊý¾Ý£¬½â¾öÈçÏ¡£
¡¡¡¡² ......
1¡¢ÏÂÔØMySQLµÄLinux°²×°Îļþ
¡¡¡¡Linuxϰ²×°MySQLÐèÒªÏÂÃæÁ½¸öÎļþ£º
¡¡¡¡MySQL-server-5.1.7-0.i386.rpm
¡¡¡¡ÏÂÔØµØÖ·Îª£ºhttp://dev.mysql.com/downloads/mysql/5.1.html£¬´ò¿ª´ËÍøÒ³£¬ÏÂÀÍøÒ³ÕÒµ½“Linux x86 generic RPM (statically linked against glibc 2.2.5) downloads”ÏÕÒµ½“Ser ......
# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(²é¿´µ±Ç°²Ù×÷ϵͳÄÚºËÐÅÏ¢)
# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(²é¿´µ±Ç°²Ù×÷ϵͳ·¢ÐаæÐÅÏ¢)
# cat /proc/cpuinfo | grep name | cut -f2 -d: ......
ÔÎļû£ºhttp://www.cppblog.com/flashboy/articles/47012.html
1¡¢ÐÞ¸ÄÓû§½ø³Ì¿É´ò¿ªÎļþÊýÏÞÖÆ
ÔÚLinuxƽ̨ÉÏ£¬ÎÞÂÛ±àд¿Í»§¶Ë³ÌÐò»¹ÊÇ·þÎñ¶Ë³ÌÐò£¬ÔÚ½øÐи߲¢·¢TCPÁ¬½Ó´¦Àíʱ£¬×î¸ßµÄ²¢·¢ÊýÁ¿¶¼ÒªÊܵ½ÏµÍ³¶ÔÓû§µ¥Ò»½ø³Ìͬʱ¿É´ò¿ªÎļþÊýÁ¿µÄÏÞÖÆ(ÕâÊÇÒòΪϵͳΪÿ¸öTCPÁ¬½Ó¶¼Òª´´½¨Ò»¸ösocket¾ä±ú£¬Ã¿¸ ......