µ±Ç°Î»ÖãºÊ×Ò³ > Linux/Unix > ϵͳ¿ª·¢ > ÕýÎÄ
 
 

¼¸¸öÖØÒªµÄRedHat LinuxÄÚºËÎļþ½éÉÜ

ÈÕÆÚ£º2006-10-21  µã»÷£º1235   ×÷ÕߣºÎ´Öª  À´Ô´£ºÌì¼«Íø  

ÔÚÍøÂçÖУ¬²»ÉÙ·þÎñÆ÷²ÉÓõÄÊÇLinuxϵͳ¡£ÎªÁ˽øÒ»²½Ìá¸ß·þÎñÆ÷µÄÐÔÄÜ£¬¿ÉÄÜÐèÒª¸ù¾ÝÌØ¶¨µÄÓ²¼þ¼°ÐèÇóÖØÐ±àÒëLinuxÄںˡ£±àÒëLinuxÄںˣ¬ÐèÒª¸ù¾Ý¹æ¶¨µÄ²½Öè½øÐУ¬±àÒëÄں˹ý³ÌÖÐÉæ¼°µ½¼¸¸öÖØÒªµÄÎļþ¡£±ÈÈç¶ÔÓÚRedHat Linux£¬ÔÚ/bootĿ¼ÏÂÓÐһЩÓëLinuxÄÚºËÓйصÄÎļþ£¬½øÈë/bootÖ´ÐС£

¡¡¡¡±àÒë¹ýRedHat LinuxÄں˵ÄÈË¶ÔÆäÖеÄSystem.map¡¢vmlinuz¡¢initrd-2.4.7-10.imgÓ¡Ïó¿ÉÄܱȽÏÉî¿Ì£¬ÒòΪ±àÒëÄں˹ý³ÌÖÐÉæ¼°µ½ÕâЩÎļþµÄ½¨Á¢µÈ²Ù×÷¡£ÄÇôÕ⼸¸öÎļþÊÇÔõô²úÉúµÄ?ÓÖÓÐʲô×÷ÓÃÄØ?±¾ÎĶԴË×öЩ½éÉÜ¡£

¡¡¡¡Ò»¡¢vmlinuz

¡¡¡¡vmlinuzÊÇ¿ÉÒýµ¼µÄ¡¢Ñ¹ËõµÄÄںˡ£¡°vm¡±´ú±í¡°Virtual Memory¡±¡£Linux Ö§³ÖÐéÄâÄڴ棬²»ÏñÀϵIJÙ×÷ϵͳ±ÈÈçDOSÓÐ640KBÄÚ´æµÄÏÞÖÆ¡£LinuxÄܹ»Ê¹ÓÃÓ²Å̿ռä×÷ΪÐéÄâÄڴ棬Òò´ËµÃÃû¡°vm¡±¡£vmlinuzÊÇ¿ÉÖ´ÐеÄLinuxÄںˣ¬ËüλÓÚ/boot/vmlinuz£¬ËüÒ»°ãÊÇÒ»¸öÈíÁ´½Ó£¬±ÈÈçͼÖÐÊÇvmlinuz-2.4.7-10µÄÈíÁ´½Ó¡£

¡¡¡¡vmlinuzµÄ½¨Á¢ÓÐÁ½ÖÖ·½Ê½¡£Ò»ÊDZàÒëÄÚºËʱͨ¹ý¡°make zImage¡±´´½¨£¬È»ºóͨ¹ý:¡°cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz¡±²úÉú¡£zImageÊÊÓÃÓÚСÄں˵ÄÇé¿ö£¬ËüµÄ´æÔÚÊÇΪÁËÏòºóµÄ¼æÈÝÐÔ¡£

¶þÊÇÄں˱àÒëʱͨ¹ýÃüÁîmake bzImage´´½¨£¬È»ºóͨ¹ý:¡°cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz¡±²úÉú¡£bzImageÊÇѹËõµÄÄÚºËÓ³Ïñ£¬ÐèҪעÒ⣬bzImage²»ÊÇÓÃbzip2ѹËõµÄ£¬bzImageÖеÄbzÈÝÒ×ÒýÆðÎó½â£¬bz±íʾ¡°big zImage¡±¡£ bzImageÖеÄbÊÇ¡°big¡±Òâ˼¡£ zImage(vmlinuz)ºÍbzImage(vmlinuz)¶¼ÊÇÓÃgzipѹËõµÄ¡£ËüÃDz»½öÊÇÒ»¸öѹËõÎļþ£¬¶øÇÒÔÚÕâÁ½¸öÎļþµÄ¿ªÍ·²¿·ÖÄÚǶÓÐgzip½âѹËõ´úÂë¡£ËùÒÔÄã²»ÄÜÓÃgunzip »ò gzip €€dc½â°üvmlinuz¡£

¡¡¡¡ÄÚºËÎļþÖаüº¬Ò»¸ö΢Ð͵ÄgzipÓÃÓÚ½âѹËõÄں˲¢Òýµ¼Ëü¡£Á½ÕߵIJ»Í¬Ö®´¦ÔÚÓÚ£¬ÀϵÄzImage½âѹËõÄں˵½µÍ¶ËÄÚ´æ(µÚÒ»¸ö640K)£¬bzImage½âѹËõÄں˵½¸ß¶ËÄÚ´æ(1MÒÔÉÏ)¡£Èç¹ûÄں˱ȽÏС£¬ÄÇô¿ÉÒÔ²ÉÓÃzImage»òbzImageÖ®Ò»£¬Á½ÖÖ·½Ê½Òýµ¼µÄϵͳÔËÐÐʱÊÇÏàͬµÄ¡£´óµÄÄں˲ÉÓÃbzImage£¬²»ÄܲÉÓÃzImage¡£vmlinuxÊÇδѹËõµÄÄںˣ¬vmlinuzÊÇvmlinuxµÄѹËõÎļþ¡£

¡¡¡¡¶þ¡¢initrd-x.x.x.img

¡¡¡¡initrdÊÇ¡°initial ramdisk¡±µÄ¼òд¡£initrdÒ»°ã±»ÓÃÀ´ÁÙʱµÄÒýµ¼Ó²¼þµ½Êµ¼ÊÄÚºËvmlinuzÄܹ»½Ó¹Ü²¢¼ÌÐøÒýµ¼µÄ״̬¡£Í¼ÖеÄinitrd-2.4.7-10.imgÖ÷ÒªÊÇÓÃÓÚ¼ÓÔØext3µÈÎļþϵͳ¼°scsiÉ豸µÄÇý¶¯¡£

¡¡¡¡±ÈÈ磬ʹÓõÄÊÇscsiÓ²ÅÌ£¬¶øÄÚºËvmlinuzÖв¢Ã»ÓÐÕâ¸öscsiÓ²¼þµÄÇý¶¯£¬ÄÇôÔÚ×°ÈëscsiÄ£¿é֮ǰ£¬Äں˲»ÄܼÓÔØ¸ùÎļþϵͳ£¬µ«scsiÄ£¿é´æ´¢ÔÚ¸ùÎļþϵͳµÄ/lib/modulesÏ¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬¿ÉÒÔÒýµ¼Ò»¸öÄܹ»¶Áʵ¼ÊÄں˵ÄinitrdÄں˲¢ÓÃinitrdÐÞÕýscsiÒýµ¼ÎÊÌâ¡£initrd-2.4.7-10.imgÊÇÓÃgzipѹËõµÄÎļþ£¬initrdʵÏÖ¼ÓÔØÒ»Ð©Ä£¿éºÍ°²×°ÎļþϵͳµÈ¹¦ÄÜ¡£

¡¡¡¡initrdÓ³ÏóÎļþÊÇʹÓÃmkinitrd´´½¨µÄ¡£mkinitrdʵÓóÌÐòÄܹ»´´½¨initrdÓ³ÏóÎļþ¡£Õâ¸öÃüÁîÊÇRedHatרÓеġ£ÆäËüLinux·¢Ðаæ»òÐíÓÐÏàÓ¦µÄÃüÁî¡£ÕâÊǸöºÜ·½±ãµÄʵÓóÌÐò¡£¾ßÌåÇé¿öÇë¿´°ïÖú:man mkinitrdÏÂÃæµÄÃüÁî´´½¨initrdÓ³ÏóÎļþ¡£

Èý¡¢System.map

¡¡¡¡System.mapÊÇÒ»¸öÌØ¶¨Äں˵ÄÄں˷ûºÅ±í¡£ËüÊÇÄ㵱ǰÔËÐеÄÄں˵ÄSystem.mapµÄÁ´½Ó¡£

¡¡¡¡Äں˷ûºÅ±íÊÇÔõô´´½¨µÄÄØ? System.mapÊÇÓÉ¡°nm vmlinux¡±²úÉú²¢ÇÒ²»Ïà¹ØµÄ·ûºÅ±»Â˳ö¡£

¡¡¡¡¶ÔÓÚ±¾ÎÄÖеÄÀý×Ó£¬±àÒëÄÚºËʱ£¬System.map´´½¨ÔÚ/usr/src/linux-2.4/System.map¡£ÏñÏÂÃæÕâÑù:

¡¡¡¡nm /boot/vmlinux-2.4.7-10 > System.map

¡¡¡¡ÏÂÃæ¼¸ÐÐÀ´×Ô/usr/src/linux-2.4/Makefile:

¡¡¡¡nm vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map

¡¡¡¡È»ºó¸´ÖƵ½/boot:

¡¡¡¡cp /usr/src/linux/System.map /boot/System.map-2.4.7-10

¡¡¡¡ÏÂͼÊÇSystem.mapÎļþµÄÒ»²¿·Ö:

¡¡¡¡ÔÚ½øÐгÌÐòÉè¼ÆÊ±£¬»áÃüÃûһЩ±äÁ¿Ãû»òº¯ÊýÃûÖ®ÀàµÄ·ûºÅ¡£LinuxÄÚºËÊÇÒ»¸öºÜ¸´ÔӵĴúÂë¿é£¬ÓÐÐíÐí¶à¶àµÄÈ«¾Ö·ûºÅ¡£

¡¡¡¡LinuxÄں˲»Ê¹Ó÷ûºÅÃû£¬¶øÊÇͨ¹ý±äÁ¿»òº¯ÊýµÄµØÖ·À´Ê¶±ð±äÁ¿»òº¯ÊýÃû¡£±ÈÈç²»ÊÇʹÓÃsize_t BytesReadÕâÑùµÄ·ûºÅ£¬¶øÊÇÏñc0343f20ÕâÑùÒýÓÃÕâ¸ö±äÁ¿¡£

¡¡¡¡¶ÔÓÚʹÓüÆËã»úµÄÈËÀ´Ëµ£¬¸üϲ»¶Ê¹ÓÃÄÇЩÏñsize_t BytesReadÕâÑùµÄÃû×Ö£¬¶ø²»Ï²»¶Ïñc0343f20ÕâÑùµÄÃû×Ö¡£ÄÚºËÖ÷ÒªÊÇÓÃcдµÄ£¬ËùÒÔ±àÒëÆ÷/Á¬½ÓÆ÷ÔÊÐíÎÒÃDZàÂëʱʹÓ÷ûºÅÃû£¬µ±ÄÚºËÔËÐÐʱʹÓõØÖ·¡£

¡¡¡¡È»¶ø£¬ÔÚÓеÄÇé¿öÏ£¬ÎÒÃÇÐèÒªÖªµÀ·ûºÅµÄµØÖ·£¬»òÕßÐèÒªÖªµÀµØÖ·¶ÔÓ¦µÄ·ûºÅ¡£ÕâÓÉ·ûºÅ±íÀ´Íê³É£¬·ûºÅ±íÊÇËùÓзûºÅÁ¬Í¬ËüÃǵĵØÖ·µÄÁÐ±í¡£ÉÏͼ¾ÍÊÇÒ»¸öÄں˷ûºÅ±í£¬ÓÉÉÏͼ¿ÉÖª±äÁ¿ÃûcheckCPUtypeÔÚÄں˵ØÖ·c01000a5¡£

¡¡¡¡Linux ·ûºÅ±íʹÓõ½2¸öÎļþ:

¡¡¡¡/proc/ksyms

¡¡¡¡System.map

¡¡¡¡/proc/ksymsÊÇÒ»¸ö¡°proc file¡±£¬ÔÚÄÚºËÒýµ¼Ê±´´½¨¡£Êµ¼ÊÉÏ£¬Ëü²¢²»ÕæÕýµÄÊÇÒ»¸öÎļþ£¬ËüÖ»²»¹ýÊÇÄÚºËÊý¾ÝµÄ±íʾ£¬È´¸øÈËÃÇÊÇÒ»¸ö´ÅÅÌÎļþµÄ¼ÙÏó£¬Õâ´ÓËüµÄÎļþ´óСÊÇ0¿ÉÒÔ¿´³öÀ´¡£È»¶ø£¬System.mapÊÇ´æÔÚÓÚÄãµÄÎļþϵͳÉϵÄʵ¼ÊÎļþ¡£

¡¡¡¡µ±Äã±àÒëÒ»¸öÐÂÄÚºËʱ£¬¸÷¸ö·ûºÅÃûµÄµØÖ·Òª·¢Éú±ä»¯£¬ÄãµÄÀϵÄSystem.map¾ßÓеÄÊÇ´íÎóµÄ·ûºÅÐÅÏ¢¡£Ã¿´ÎÄں˱àÒëʱ²úÉúÒ»¸öеÄSystem.map£¬ÄãÓ¦µ±ÓÃеÄSystem.mapÀ´È¡´úÀϵÄSystem.map¡£

¡¡¡¡ËäÈ»Äں˱¾Éí²¢²»ÕæÕýʹÓÃSystem.map£¬µ«ÆäËü³ÌÐò±ÈÈçklogd£¬lsofºÍpsµÈÈí¼þÐèÒªÒ»¸öÕýÈ·µÄSystem.map¡£Èç¹ûÄãʹÓôíÎóµÄ»òûÓÐSystem.map£¬klogdµÄÊä³ö½«ÊDz»¿É¿¿µÄ£¬Õâ¶ÔÓÚÅųý³ÌÐò¹ÊÕÏ»á´øÀ´À§ÄÑ¡£Ã»ÓÐSystem.map£¬Äã¿ÉÄÜ»áÃæÁÙһЩÁîÈË·³ÄÕµÄÌáʾÐÅÏ¢¡£

¡¡¡¡ÁíÍâÉÙÊýÇý¶¯ÐèÒªSystem.mapÀ´½âÎö·ûºÅ£¬Ã»ÓÐΪÄ㵱ǰÔËÐеÄÌØ¶¨Äں˴´½¨µÄSystem.mapËüÃǾͲ»ÄÜÕý³£¹¤×÷¡£

¡¡¡¡LinuxµÄÄÚºËÈÕÖ¾ÊØ»¤½ø³ÌklogdΪÁËÖ´ÐÐÃû³Æ-µØÖ·½âÎö£¬klogdÐèҪʹÓÃSystem.map¡£System.mapÓ¦µ±·ÅÔÚʹÓÃËüµÄÈí¼þÄܹ»ÕÒµ½ËüµÄµØ·½¡£Ö´ÐÐ:man klogd¿ÉÖª£¬Èç¹ûûÓн«System.map×÷Ϊһ¸ö±äÁ¿µÄλÖøøklogd£¬ÄÇôËü½«°´ÕÕÏÂÃæµÄ˳Ðò£¬ÔÚÈý¸öµØ·½²éÕÒSystem.map:

¡¡¡¡/boot/System.map

¡¡¡¡/System.map

¡¡¡¡/usr/src/linux/System.map

¡¡¡¡System.mapÒ²Óа汾ÐÅÏ¢£¬klogdÄܹ»ÖÇÄܵزéÕÒÕýÈ·µÄÓ³Ïó(map)Îļþ¡£


ÓëºÃÓÑ·ÖÏí´Ë×ÊѶ£º