LinuxϵÄELFÎļþ¸ñʽ¼ò½é
£¨1£©¸ÅÊö
Executable and linking format(ELF)ÎļþÊÇx86 LinuxϵͳϵÄÒ»ÖÖ³£ÓÃÄ¿±êÎļþ(object file)¸ñʽ£¬ELFÎļþ¸ñʽ±È½Ï¸´ÔÓ£¬±¾ÎÄÖ»ÊǼòÒª½éÉÜËüµÄ½á¹¹¡£ÓÐÈýÖÖÖ÷ÒªÀàÐÍ£º
(1)ÊÊÓÚÁ¬½ÓµÄ¿ÉÖض¨Î»Îļþ(relocatable file)£¬¿ÉÓëÆäËüÄ¿±êÎļþÒ»Æð´´½¨¿ÉÖ´ÐÐÎļþºÍ¹²ÏíÄ¿±êÎļþ¡£
(2)ÊÊÓÚÖ´ÐеĿÉÖ´ÐÐÎļþ(executable file)£¬ÓÃÓÚÌṩ³ÌÐòµÄ½ø³ÌÓ³Ïñ£¬¼ÓÔص½ÄÚ´æÖ´ÐС£
(3)¹²ÏíÄ¿±êÎļþ(shared object file)£¬Á¬½ÓÆ÷¿É½«ËüÓëÆäËü¿ÉÖض¨Î»ÎļþºÍ¹²ÏíÄ¿±êÎļþÁ¬½Ó³ÉÆäËüµÄÄ¿±êÎļþ£¬¶¯Ì¬Á¬½ÓÆ÷Óֿɽ«ËüÓë¿ÉÖ´ÐÐÎļþºÍÆäËü¹²ÏíÄ¿±êÎļþ½áºÏÆðÀ´´´½¨Ò»¸ö½ø³ÌÓ³Ïñ¡£
£¨2£©Îļþ¸ñʽ
ELF headerÔÚÎļþ¿ªÊ¼´¦ÃèÊöÁËÕû¸öÎļþµÄ×éÖ¯£¬SectionÌṩÁËÄ¿±êÎļþµÄ¸÷ÏîÐÅÏ¢£¨ÈçÖ¸Áî¡¢Êý¾Ý¡¢·ûºÅ±í¡¢Öض¨Î»ÐÅÏ¢µÈ£©£¬Program header tableÖ¸³öÔõÑù´´½¨½ø³ÌÓ³Ïñ£¬º¬ÓÐÿ¸öprogram headerµÄÈë¿Ú£¬Section header table°üº¬Ã¿Ò»¸ösectionµÄÈë¿Ú£¬¸ø³öÃû×Ö¡¢´óСµÈÐÅÏ¢¡£
£¨3£©Êý¾Ý±íʾ
ELFÊý¾Ý±àÂë˳ÐòÓë»úÆ÷Ïà¹Ø£¬Êý¾ÝÀàÐÍÓÐÁùÖÖ£¬¼û±í1¡£
£¨4£© ELFÎļþÍ·
Ïóbmp¡¢exeµÈÎļþÒ»Ñù£¬ELFµÄÎļþÍ·°üº¬Õû¸öÎļþµÄ¿ØÖƽṹ¡£ËüµÄ¶¨ÒåÈçÏ£º
#define EI_NIDENT 16
typedef struct{
unsigned char e_ident[EI_NIDENT];
Elf32_Half e_type;
Elf32_Half e_machine;
Elf32_Word e_version;
Elf32_Addr e_entry;
Elf32_Off e_phoff;
Elf32_Off e_shoff;
Elf32_Word e_flags;
Elf32_Half e_ehsize;
El
Ïà¹ØÎĵµ£º
ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
¹Ù·½ÍøÕ¾£º http://fedoraproject.org/
ÔÚÕâ¶ùÑ¡ÔñÐèÒªµÄ¹âÅ̸ñʽ¾µÏñ£º http://fedoraproject.org/en/get-fedora-options#formats
i386Ìåϵ£º http://download.fedoraproject.org/pub/fedora/linux/releases/13/Fedora/i386/iso/Fedora-13-i386-DVD.iso
x86_64Ìåϵ£º http://download.fedoraproject.org/pub/fedora/lin ......
³ÉΪһÃû¾«Í¨ Linux ³ÌÐòÉè¼ÆµÄ¸ß¼¶³ÌÐòÔ±Ò»Ö±ÊDz»ÉÙÅóÓÑ×Î×ÎÒÔÇóµÄÄ¿±ê¡£¸ù¾ÝÖлªÓ¢²ÅÍøͳ¼ÆÊý¾Ý£¬±±¾©µØÇø Linux ³ÌÐòÔ±ÔÂнƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 1.8 ±¶¡¢Java ³ÌÐòÔ±µÄ 2.6 ±¶£¬ Linux ³ÌÐòÔ±ÄêÖÕ½±½ðƽ¾ùΪ Windows ³ÌÐòÔ±µÄ 2.9 ±¶¡£Í¬Ê±Êý¾ÝÏÔʾ£¬Ëæ׏¤×÷¾ÑéµÄÔö³¤£¬ Linux ³ÌÐòÔ±Óë Windows ³ÌÐòÔ±µÄÊÕÈë²î¾à» ......
LinuxϵÄÏß³ÌÊÇËùνµÄÇáÁ¿¼¶½ø³Ì£¨LWP: light weight process£©£¬ÆäÓëÆÕͨ½ø³ÌÒ»ÑùÓµÓÐÒ»¸öÅÓ´óµÄtask_struct½á¹¹Ì壬һ¸ö½ø³ÌÖеĶà¸öÏ̹߳²ÏíÄÚ´æ¿Õ¼ä£¬±Ï¾¹ËüÃÇÊôÓÚͬһ¸ö½ø³Ì£¬ËùÒÔÐèÒªÏòÍâ³ÊÏÖÒ»¸öͳһµÄpid£¬Òò´Ë¸÷Ï̵߳Äpid´æ·ÅµÄÊǽø³ÌºÅ£¬ÓÖÓÉÓÚÏß³ÌͬÑùÒ²Êǽø³Ì£¬Òò´ËÆäÓÐ×Ô¼ºµÄ½ø³ÌidºÅ£¬LinuxΪÁËÖ§³Ö¶àỊ̈߳¬ ......