3.12 ¶þ½øÖÆÎļþ¸ñʽ

¡¡¡¡ÒªÀí½âΪʲô FreeBSD ʹÓà elf(5) ¸ñʽ£¬ Äú±ØÐëÊ×ÏÈÁ˽âһЩ UNIX® ϵͳÖÐµÄ ÈýÖÖ ¡°Ö÷Òª¡± ¿ÉÖ´ÐÐÎļþ¸ñʽµÄÓйØÖªÊ¶£º

¡¡¡¡FreeBSD´Ó¡°¾­µä¡±ÕóÓªÖÐÀ´£¬Òò´ËʹÓÃÁËa.out(5)¸ñʽ£¬ ÖÚ¶àBSD°æ±¾µÄ·¢ÐÐ(Ö±µ½3.X·ÖÖ§µÄ¿ªÊ¼)Ò²Ö¤Ã÷ÁËÕâÖÖ¸ñʽµÄÓÐЧÐÔ¡£ ËäÈ»ÔÚÄÇÒÔǰµÄij¶Îʱ¼ä£¬ÔÚFreeBSDϵͳÉÏ´´½¨ºÍÔËÐÐELF¸ñʽ µÄ¶þ½øÖÆ¿ÉÖ´ÐÐÎļþ(ºÍÄÚºË)Ò²ÊÇ¿ÉÄܵ쬵«FreeBSDÒ»¿ªÊ¼²¢²»»ý¼«¡°½ø²½¡± µ½Ê¹ÓÃELF×÷ΪÆäȱʡµÄ¸ñʽ¡£ÎªÊ²Ã´£¿àÞ£¬µ±LinuxÕóÓªÍê³ÉÁË ×ª»»µ½ELF¸ñʽµÄÍ´¿àÀú³Ìºó£¬È´·¢ÏÖ²¢²»×ãÒÔÓɴ˶ø·ÅÆú a.out¿ÉÖ´ÐÐÎļþ¸ñʽ£¬ÒòΪÕýÊÇÓÉÓÚËüÃDz»Áé»îµÄ£¬ »ùÓÚÌø×ª±íµÄ¹²Ïí¿â»úÖÆ£¬Ê¹µÃÏúÊÛÉ̺Ϳª·¢ÕßÃǹ¹½¨¹²Ïí¿â·Ç³£À§ÄÑ¡£ Ö±µ½ÒÑÓеÄELF¹¤¾ßÌṩÁËÒ»ÖÖ½â¾ö¹²Ïí¿âÎÊÌâµÄ°ì·¨£¬ ²¢±»ÆÕ±éÈÏΪÊÇ¡°Ç°½ø·½Ïò¡±ÒÔºó£¬Ç¨áãµÄ´ú¼ÛÔÚFreeBSD½ç²Å±»½ÓÊÜ£¬ ²¢ÓÉ´ËÍê³ÉÁËǨáã¡£FreeBSDµÄ¹²Ïí¿â»úÖÆÆä»ù´¡¸üÀàËÆÓÚSun SunOS"µÄ¹²Ïí¿â»úÖÆ£¬ ²¢ÇÒÕýÒòΪ´Ë£¬ÆäÒ×ÓÃÐԺܺá£

¡¡¡¡ÄÇô£¬ÎªÊ²Ã´»áÓÐÕâô¶à²»Í¬µÄ¸ñÊ½ÄØ£¿

¡¡¡¡»ØËݵ½ÃÉÃÁºÍºÚ°µµÄ¹ýÈ¥£¬ÄÇʱֻÓмòµ¥µÄÓ²¼þ¡£ÕâÖÖ¼òµ¥µÄÓ²¼þÖ§³ÅÁËÒ»¸ö¼òµ¥ ºÍСÐ͵Äϵͳ¡£ÔÚÕâÑùµÄ¼òµ¥ÏµÍ³ÉÏ(PDP-11)a.out¸ñʽ ×ãÒÔʤÈαí´ï¶þ½øÖÆÎļþµÄÈÎÎñ¡£µ±ÈËÃǽ«UNIX´ÓÕâÖÖ¼òµ¥µÄϵͳÖÐÒÆÖ²³öÀ´µÄʱºò£¬ a.out¸ñʽ±»±£ÁôÁËÏÂÀ´£¬ÒòΪ¶ÔÓÚÔçÆÚ½«UNIXÒÆÖ²µ½ Motorola 68k£¬VAXenµÈϵͳÀ´Ëµ£¬Ëü»¹ÊÇ×ã¹»¿ÉÓõġ£

¡¡¡¡È»ºó£¬Ò»Ð©´ÏÃ÷µÄÓ²¼þ¹¤³ÌʦÈÏΪ£¬Èç¹û¿ÉÒÔÈÃÈí¼þÍê³ÉһЩ¼òµ¥µÄ´ÏÃ÷²Ù×÷£¬ ÄÇôËûÃǾͿÉÒÔÔÚÓ²¼þÉè¼ÆÖмõÉÙÈô¸ÉÃŵç·£¬²¢¿ÉÒÔÈÃCPUºËÐÄÔËÐеøü¿ì¡£ µ±a.out¸ñʽÓÃÓÚÕâÖÖÐÂÐ͵ÄÓ²¼þϵͳʱ(ÏÖÔÚÎÒÃǽÐËü RISC)£¬ÏԵò¢²»ºÏÊÊ¡£Òò´Ë£¬ÈËÃÇÉè¼ÆÁËÐí¶àеĸñʽ ÒÔ±ãÔÚÕâÑùµÄÓ²¼þϵͳÉÏÄÜ»ñµÃ±È¼òµ¥µÄa.out¸ñʽ¸üÓÅÔ½ µÄÐÔÄÜ¡£ÖîÈçCOFF£¬ECOFF£¬»¹ÓÐÆäËü һЩ»ÞɬÄѶ®µÄ¸ñʽÕýÊÇÔÚÕâ¸ö½×¶Î±»·¢Ã÷³öÀ´µÄ£¬ÈËÃÇÒ²Ñо¿ÁËÕâЩ¸ñʽµÄ¾ÖÏÞÐÔ£¬ ÂýÂýµØ×îÖÕÂäʵµ½ELF¸ñʽ¡£

¡¡¡¡Í¬Ê±£¬³ÌÐòµÄ´óС±äµÃÔ½À´Ô½´ó£¬´ÅÅ̿ռä(ÒÔ¼°ÎïÀíÄÚ´æ)Ïà¶ÔÀ´ËµÈ´ÈÔÈ»½ÏС£¬ Òò´Ë¹²Ïí¿âµÄ¸ÅÄî±ã²úÉúÁË¡£VMϵͳҲ±äµÃÔ½À´Ô½¸´ÔÓÁË¡£µ±ËùÓÐÕâЩ½ø²½¶¼½¨Á¢ÔÚ a.out¸ñʽµÄ»ù´¡ÉϵÄʱºò£¬ËüµÄ¿ÉÓÃÐÔËæ×Åÿ¸öÐÂÌØÐÔ µÄ²úÉú¾ÍÊܵ½ÁËÑÏÖØ¿¼Ñé¡£²¢ÇÒ£¬ÈËÃÇ»¹Ï£Íû¿ÉÒÔÔÚÔËÐÐʱ¶¯Ì¬×°ÔØÄ³Ð©¶«Î÷£¬»òÕß ÔÚ³õʼ»¯´úÂëÔËÐÐÒÔºó¿ÉÒÔ¶ªÆú²¿·Ö³ÌÐò´úÂ룬ÒÔ±ã½ÚÔ¼Ö÷´æ´¢Æ÷ºÍ½»»»Çø¡£±à³ÌÓïÑÔ Ò²±äµÃÔ½À´Ô½¸´ÔÓ£¬ÈËÃÇÏ£Íû¿ÉÒÔÔÚmain()º¯ÊýÖ´ÐÐ֮ǰ×Ô¶¯Ö´ÐÐijЩ´úÂ롣ΪÁËʵÏÖ ËùÓÐÕâЩ¹¦ÄÜ£¬ÈËÃǶÔa.out¸ñʽ×÷Á˺ܶà¸Ä¶¯(hack)£¬ ËûÃÇÔÚij¸ö½×¶ÎÀï»ù±¾Ò²ÊÇ¿ÉÐеġ£Ëæ×Åʱ¼äµÄÍÆÒÆ£¬a.out¸ñʽ ²»µÃ²»Ôö¼Ó´óÁ¿µÄ´úÂëºÍ¸´ÔÓ¶ÈÀ´Âú×ãÕâЩÐèÇó¡£ËäÈ»ELF¸ñʽ ½â¾öÁËÐí¶àÕâÑùµÄÎÊÌ⣬µ«ÊÇ´ÓÒ»¸ö¿ÉÓõÄÏµÍ³Ç¨ÒÆµ½ÁíÒ»¸öϵͳȴÊÇÍ´¿àµÄ¡£Òò´Ë Ö±µ½¼ÌÐø±£Áôa.out¸ñʽµÄ´ú¼Û±ÈÇ¨ÒÆµ½ELF¸ñʽ µÄ´ú¼Û»¹´óµÄʱºò£¬ÈËÃDzŻá×îÖÕת»»µ½ELF¸ñʽ¡£

¡¡¡¡È»¶ø£¬Ëæ×Åʱ¼äµÄÍÆÒÆ£¬FreeBSDϵͳ±¾ÉíµÄ±àÒ빤¾ß(ÌØ±ðÊÇ»ã±àÆ÷ºÍ×°ÔØÆ÷) ÀµÒÔÅÉÉúµÄ±àÒ빤¾ß£¬Æä·¢Õ¹È´ÐγÉÁËÁ½¸öƽÐеķÖÖ§¡£FreeBSDÕâ¸ö·ÖÖ§Ôö¼ÓÁ˹²Ïí¿â£¬ ²¢ÐÞ¸ÄÁËһЩ´íÎó¡£¶øÔ­ÏȱàдÁËÕâЩ¹¤¾ßµÄGNUÈËÔòÖØÐ´ÁËÕâЩ¹¤¾ß£¬²¢¶Ô½»²æ±àÒëÌṩÁË ¸ü¼ò»¯µÄÖ§³Ö£¬»¹ËæÒâ²åÈëÁ˲»Í¬¸ñʽµÄÖ§³Ö£¬µÈµÈ¡£ËäÈ»ºÜ¶àÈËÏ£Íû´´½¨Õë¶ÔFreeBSDµÄ ½»²æ±àÒëÆ÷£¬µ«ËûÃÇÈ´²¢Î´ÈçÔ¸ÒÔ³¥£¬ÒòΪFreeBSDµÄas ºÍldµÄÔ´´úÂë¸üΪÀϾɣ¬ËùÒÔÎÞ·¨Íê³ÉÕâ¸öÈÎÎñ¡£ еÄGNU¹¤¾ßÁ´(binutils)Ôòȷʵ֧³Ö½»²æ±àÒ룬ELF ¸ñʽ£¬¹²Ïí¿â£¬C++À©Õ¹£¬µÈµÈ¡£²¢ÇÒ£¬ÓÉÓںܶ๩ӦÉ̶¼·¢²¼ELF¸ñʽµÄ ¶þ½øÖÆÎļþ£¬Òò¶øÈÃFreeBSDÄܹ»ÔËÐÐËüÃǽ«ÊÇÒ»¸öºÜºÃµÄÊÂÇé¡£

¡¡¡¡ELF¸ñʽ±Èa.out¸ñʽ¿ªÏúÒª´óЩ£¬Í¬Ê±Ò² ÔÊÐí»ù´¡ÏµÍ³ÓиüºÃµÄÀ©Õ¹ÐÔ¡£ELF¸ñʽµÄÓйع¤¾ßÓÐןüºÃµÄά»¤£¬ ²¢ÇÒÌṩ½»²æ±àÒëÖ§³Ö£¬Õâ¶ÔÐí¶àÈËÀ´ËµÊǺÜÖØÒªµÄ¡£ELF¸ñʽ¿ÉÄÜ»áÉÔ΢ ÂýһЩ£¬µ«ºÜÄѲâÁ¿³öÀ´¡£ÁíÍ⣬ÔÚÕâÁ½ÕßÖ®¼ä£¬ÓÐÐí¶àϸ½ÚÒ²ÊDz»Í¬µÄ£¬±ÈÈçËüÃÇÓ³ÉäÒ³ÃæµÄ·½Ê½£¬ ´¦Àí³õʼ»¯´úÂëµÄ·½Ê½£¬µÈµÈ¡£ËùÓÐÕâЩ¶¼²»Ì«ÖØÒª£¬µ«ÕâҲȷʵÊDz»Í¬Ö®´¦¡£ÔÚ½«À´µÄÊʵ±Ê±ºò£¬ GENERICÄں˽«²»ÔÙÖ§³Öa.out¸ñʽ£¬²¢ÇÒ£¬ µ±²»ÔÙÐèÒªÔËÐÐÒÅÁôµÄa.out¸ñʽ³ÌÐòʱ£¬ÄÚºËÒ²½«²»ÔÙÌṩ¶ÔÆäµÄÖ§³Ö¡£

±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.