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
Ïà¹ØÎĵµ£º
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àһЩӦÓÃ
³ÌÐò
£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯
µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod£¬ lsmod£¬ rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world£¬insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö
¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread£¬ write£¬ ioctl£¬ pollingµÈ¸ ......
Ò»¡¢°²×°
´´½¨°²×°Ä¿Â¼£¬ÔÚ/usr/local/javaϽ¨Á¢°²×°Â·¾¶£¬²¢½«Îļþ¿¼µ½¸Ã·¾¶Ï£º
# mkdir /usr/local/java
1¡¢jdk-6u11-linux-i586.bin
Õâ¸öÊÇ×Ô½âѹµÄÎļþ£¬ÔÚlinuxÉϰ²×°ÈçÏ£º
# chmod 755 jdk-6u11-linux-i586.bin
# ./jdk-6u11-linux-i586.bin
ÔÚ°´ÌáʾÊäÈëyesºó£¬jdk±»½âѹ¡£
......
mountÊÇÓÃÀ´¹ÒÔØÎļþϵͳµÄ£¬¿ÉÒÔÔÚÆô¶¯µÄʱºò¹ÒÔØÒ²¿ÉÒÔÔÚÆô¶¯ºó¹ÒÔØ¡£ÔÚÆô¶¯ºó¹ÒÔØ¿ÉÒÔʹÓÃmountÃüÁîʵÏÖ£¬ÒªÊµÏÖÆô¶¯Ê±×Ô¶¯¹ÒÔØÉ豸ÔòÐèÆô¶¯autofs·þÎñ¾ÍÌṩÕâÖÖ¹¦ÄÜ¡£¸Ã¹¦ÄܾÍÏñwindowsÖеĹâÇý×Ô¶¯´ò¿ª¹¦ÄÜ£¬Äܹ»¼°Ê±¹ÒÔØ¶¯Ì¬¼ÓÔØµÄÎļþϵͳ¡£ÃâÈ¥ÎÒÃÇÊÖ¶¯¹ÒÔÚÂé·³¡£ÒªÊµÏÖ¹âÇý£¬ÈíÅ̵ȵĶ¯Ì¬×Ô¶¯¹ÒÔØ£¬ÐèÒª½øÐÐÏà¹Øµ ......
»·¾³½éÉÜ£ºCentos5.2+2.6.18-8.el5Äںˣ¬±àÒëÆ÷ÊÇGCC4.1.2¡£
Òª±àÒëµÄÄÚºË2.6.18-8.el3
½ö½öÐÞ¸ÄÁ˲¿·ÖÄں˵ÄÅäÖÃÐÅÏ¢£¬Ã»ÓдóµÄ±ä»¯¡£
È»ºó£ºmake ;make modules;make modules_install;
±àÒëûÓгöÎÊÌ⣬Éú³ÉÁËÄںˣ¬mkinitrdÉú³ÉÁËinitrd£¬¼Óµ½lilo.confÖУ¬ÖØÆôÑ¡ÔñÐÂÄںˣ¬³öÏÖÒ»ÏÂÎÊÌ⣺
hub 3-0:1.0: USB hub fo ......
´ÓUbuntu 8.04µ½9.10£¬ÎÒµÄAcer Aspire 4920±¾×ÓµÄýÌå´¥Ãþ¿ØÖƼüʼÖÕ²»ÄÜÕý³£¹¤×÷¡£×î½üÕÒµ½ÁË´ËÎÊÌâµÄ½â¾ö·½·¨£¬¹©Ê¹ÓÃLinux²Ù×÷ϵͳ¼°ÓµÓÐAcer±Ê¼Ç±¾µÄÓû§²Î¿¼¡£ ÔÚUbuntu 9.10Ï£¬ÎÒµÄýÌå¿ØÖÆ¼ü±»Ê¶±ðΪÁíÒ»¿éSynaptics´¥Ãþ°å£¬²¢ÇÒËĸö¼ü·Ö±ð±»Ê¶±ðΪÉÏ¡¢Ï¡¢×ó¡¢ÓÒ·Ò³¼ü£¬µ¼ÖÂÎÞ·¨Õý³£¹¤×÷¡£ÐèҪͨ¹ýÐ޸İ´¼üÓ³Éä ......