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

dz̸LinuxµÄ¿ÉÖ´ÐÐÎļþ¸ñʽELF

 ÏÖ´úLinux²ÉÓÃELF×öΪÆä¿ÉÁ¬½ÓºÍ¿ÉÖ´ÐÐÎļþµÄ¸ñʽ£¬Òò´ËELF¸ñʽҲÏòÎÒÃÇ͸³öÁËÒ»µãLinuxºËÄÚµÄÇé¾°£¬¾ÍÏñϷ̨άĻÁôϵÄÒ»ÌõδÀ­Ñϵķ졣PCÊÀ½ç32ÈÔÊÇÖ÷Á÷£¬µ«64λµÄ½Å²½È´ÒÑÈç´ËµÄ±Æ½ü¡£±¾ÎÄ×ÅÖØ½²Êö32λELFµÄͬʱ¸½´øÁË64λµÄÐÅÏ¢£¬ÕâÁ½ÖÖ¸ñʽÈç´ËÀ×ͬ£¬ÒÔÖÂÓÚ³õ´Î½Ó´¥ELFµÄ¶ÁÕß²»±Ø¼æ¹Ë×óÓÒ¡£Èç¹ûÄã¶ÔWindows±È½ÏÊìϤ£¬±¾ÎÄ»¹½«Ê±Ê±°ÑÄã´ø»Øµ½PEÖУ¬ÔÚËüÃǵÄÏàËÆÖ®´¦ÉÔ×ö±È½Ï¡£ELFÎļþÒÔ“ELFÍ·”¿ªÊ¼£¬ºóÃæ¿ÉÑ¡ÔñµÄ¸úËæ×ųÌÐòÍ·ºÍ½ÚÍ·¡£µØÀíѧÓõȸßÏßÓëµÈÎÂÏß·Ö±ðչʾͬһµØÇøµÄµØÊÆºÍÆøºò£¬³ÌÐòÍ·ºÍ½ÚÍ·Ôò·Ö±ð´Ó¼ÓÔØÓëÁ¬½Ó½Ç¶ÈÀ´ÃèÊöEFLÎļþµÄ×éÖ¯·½Ê½¡£ÏÂÃæÎÒÃǽøÈëÕýÎÄ¡£
Ò»¡¢ELFÍ·
    ELFÍ·Ò²½ÐELFÎļþÍ·£¬ËüλÓÚÎļþÖÐ×ʼµÄµØ·½¡£ÎÒÓÃϵͳµÄÊÇFedora Core 2£¬ËüÔÚelf.hÎļþÖÐͬʱ¸ø³öÁËELFÍ·ÔÚ32λϵͳºÍ64λϵͳϵĽṹ£¬ÎÒÃÇÏÈÀ´¿´Ò»Ï£º
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;
Elf32_Half e_phentsize;
Elf32_Half e_phnum;
Elf32_Half e_shentsize;
Elf32_Half e_shnum;
Elf32_Half e_shstrndx;
} Elf32_Ehdr;
typedef struct
{
unsigned char e_ident[EI_NIDENT];
Elf64_Half e_type;
Elf64_Half e_machine;
Elf64_Word e_version;
Elf64_Addr e_entry;
Elf64_Off e_phoff;
Elf64_Off e_shoff;
Elf64_Word e_flags;
Elf64_Half e_ehsize;
Elf64_Half e_phentsize;
Elf64_Half e_phnum;
Elf64_Half e_shentsize;
Elf64_Half e_shnum;
Elf64_Half e_shstrndx;
} Elf64_Ehdr;
    elf.hÖйØÓÚELF¸ñʽËùÓнṹ¸ø³öµÄ¶¨Ò壬Æä³ÉÔ±×ֶεÄÀàÐÍÉùÃû¶¼ÊÇCÓïÑÔ»ù±¾ÀàÐ͵ıðÃû£¬²»»áÔÙǶÌ׽ṹ¡£¿ÉÒÔ¿´³ö32λϵͳºÍ64λϵͳÏÂELFÍ·µÄ½á¹¹»ù±¾Ïàͬ£¬²»Í¬µÄÊÇÁ½ÖֽṹÖеÄij¸ö³ÉÔ±×Ö¶ÎÕ¼ÓÃ×Ö½Ú¸öÊýÓÐËù±ä»¯¡£±ÈÈçe_entryÓÉ32λÏÂÕ¼4¸ö×Ö½ÚµÄElf32_Addr±äΪ64λÏÂÕ¼8¸ö×Ö½ÚµÄElf64_Addr£¬ÕâÊÇÒòΪÁ½ÖÖϵͳÏÂCPUѰַÄÜÁ¦²»Í¬Ôì³ÉµÄ¡£Í¬ÀíÎļþÆ«ÒÆÒ²´Ó4×Ö½ÚµÄElf32_Off±äΪ8×Ö½ÚµÄElf64_Off¡£ÓÐЩ³ÉÔ±×Ö¶ÎËäÈ»ÀàÐÍÉùÃû´ÓElf32_XXXX±ä³ÉÁËElf64_XXXX£¬¸ÃÓòËùÕ¼µÄ×Ö½Ú¸öÊý²¢Î´¸Ä±ä¡£ÈçElf32_HalfºÍElf64_Half¶¼Õ¼Á½¸ö×Ö½Ú£¬Elf32_Word¡¢Elf3


Ïà¹ØÎĵµ£º

LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â

Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......

[תÌû]LinuxÇý¶¯¿ª·¢Ñ§Ï°µÄһЩ±ØÒª²½Öè

 1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......

LinuxϵͳÐÂÊÖѧϰµÄ11µã½¨Òé

Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾­ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£ÕâÀï½éÉÜѧϰLinuxµÄһЩ½¨Òé¡£
Ò»¡¢´Ó»ù´¡¿ªÊ¼£º³£³£ÓÐЩÅóÓÑÔÚLinuxÂÛ̳ÎÊһЩÎÊÌ⣬²»¹ý£¬ÆäÖдó¶àÊýµÄÎÊÌâ¶¼ÊǺܻù´¡µÄ¡£ÀýÈ磺ΪʲôÎÒʹÓÃÒ»¸öÃüÁîµÄʱºò£¬ÏµÍ³¸æËßÎÒÕÒ²»µ½¸ÃĿ¼£¬ÎÒÒªÈçºÎÏÞÖÆÊ¹ÓÃÕß ......

LinuxÄÚºËÒÔ¼°Çý¶¯¼¼Êõ—¼òµ¥

ÎÞÂÛÊÇVC»¹ÊÇVB£¬»¹ÊÇC#£¬»¹ÊÇJSP PHPµÈµÈÓïÑÔ£¬ÔÚѧϰËûÃÇ֮ǰ×ÜÊÇÏÈÀ´Ò»¸öHELLO
WORLDµÄÀý×Ó£¬Õâ¸öºÃÏñ³ÉÁËÎÒÃdzÌÐòÈëÃŵıؾ­Ö®Â·¡£ËùÒÔÔÚÇý¶¯³ÌÐòµÄѧϰÉÏ£¬Ò²Àë²»¿ªÕâ¸ö²½Öè¡£µ«ÊÇÇý¶¯³ÌÐòµÄ¿ª·¢ÊÇÔËÐÐÔÚÄں˿ռäµÄ£¬¶øÓ¦ÓóÌÐò
ÊÇÔËÐÐÔÚÓû§¿Õ¼äµÄ£¬ËùÒÔÇý¶¯³ÌÐòµÄ¿ª·¢ºÐµ÷ÊÔºÍÓ¦ÓóÌÐòµÄ¿ª·¢¶¼ÓкܴóµÄÇø±ð¡£¶ÔÓÚÕ ......

Linux ÐéÄâÎļþϵͳ¸Å¹Û

Linux ÐéÄâÎļþϵͳ¸Å¹Û
×÷Õß Richard Gooch <rgooch@atnf.cs.iro.au>
·­Òë albcamus <albcamus@gmail.com>
×îºó¸üÐÂ:2007 Äê 6 Ô 24 ÈÕ
°æÈ¨:1999, Richard Gooch
°æÈ¨:2005, Pekka Enberg
±¾ÎļþÒÔ GPLv2 Ðí¿É·¢·Å
[·­Òë˵Ã÷:Richard Gooch µÄÕâ·Ý Overview of ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ