¼¸¸öÖØÒªµÄLinuxÄÚºËÎļþ

¡¶¼¸¸öÖØÒªµÄLinuxÄÚºËÎļþ¡·ÕªÒª£º Linux·þÎñÆ÷Äں˱àÒë»ù´¡ --¼¸¸öÖØÒªµÄRedHat LinuxÄÚºËÎļþ½éÉÜ mynix±àÒë×Ô www.linux.org Ö®Linux HowToÖ®Kernel HowTo ÔÚÍøÂçÖУ¬²»ÉÙ·þÎñÆ÷²ÉÓõÄÊÇLinuxϵͳ¡£ÎªÁ˽øÒ»²½Ìá¸ß·þÎñÆ÷µÄÐÔÄ¡­

Linux·þÎñÆ÷Äں˱àÒë»ù´¡

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

mynix±àÒë×Ôwww.linux.orgÖ®Linux HowToÖ®Kernel HowTo

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

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

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

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

È»¶ø£¬ÔÚÓеÄÇé¿öÏ£¬ÎÒÃÇÐèÒªÖªµÀ·ûºÅµÄµØÖ·£¬»òÕßÐèÒªÖªµÀµØÖ·¶ÔÓ¦µÄ·ûºÅ¡£ÕâÓÉ·ûºÅ±íÀ´Íê³É£¬·ûºÅ±íÊÇËùÓзûºÅÁ¬Í¬ËüÃǵĵØÖ·µÄÁÐ±í¡£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£©Îļþ¡£

ccidnet

ÄãµÄλÖ㺵çÄÔ¹ÊÕÏÍø >> ²Ù×÷ϵͳ >> Linux/Unix >> ¼¸¸öÖØÒªµÄLinuxÄÚºËÎļþ