ºìÁªLinuxÃÅ»§
Linux°ïÖú

Linux²Ù×÷ϵͳÄÚºËÄ£¿éÓëÓû§³ÌÐò¶Ô±È

·¢²¼Ê±¼ä:2006-11-23 09:40:40À´Ô´:ºìÁª×÷Õß:intelligent
¡¡¡¡ÄÚºËÄ£¿éÊÇÈçºÎ¿ªÊ¼ºÍ½áÊøµÄ

¡¡¡¡Óû§³ÌÐòͨ³£´Óº¯Êýmain()¿ªÊ¼£¬Ö´ÐÐһϵÁеÄÖ¸Áî²¢ÇÒµ±Ö¸ÁîÖ´ÐÐÍê³Éºó½áÊø³ÌÐò¡£ÄÚºËÄ£¿éÓÐÒ»µã²»Í¬¡£ÄÚºËÄ£¿éҪô´Óº¯Êýinit_module »òÊÇÄãÓúêmodule_initÖ¸¶¨µÄº¯Êýµ÷ÓÿªÊ¼¡£Õâ¾ÍÊÇÄÚºËÄ£¿é µÄÈë¿Úº¯Êý¡£Ëü¸æËßÄÚºËÄ£¿éÌṩÄÇЩ¹¦ÄÜÀ©Õ¹²¢ÇÒÈÃÄÚºË×¼±¸ºÃÔÚÐèҪʱµ÷ÓÃËü¡£µ±ËüÍê³ÉÕâЩºó£¬¸Ãº¯Êý¾ÍÖ´ÐнáÊøÁË¡£Ä£¿éÔÚ±»Äں˵÷ÓÃǰҲʲô¶¼²»×ö¡£

¡¡¡¡ËùÓеÄÄ£¿é»òÊǵ÷ÓÃcleanup_module»òÊÇÄãÓúê module_exitÖ¸¶¨µÄº¯Êý¡£ÕâÊÇÄ£¿éµÄÍ˳öº¯Êý¡£Ëü³·ÏûÈë¿Úº¯ÊýËù×öµÄÒ»ÇС£ ÀýÈç×¢ÏúÈë¿Úº¯ÊýËù×¢²áµÄ¹¦ÄÜ¡£

¡¡¡¡ËùÓеÄÄ£¿é¶¼±ØÐëÓÐÈë¿Úº¯ÊýºÍÍ˳öº¯Êý¡£¼ÈÈ»ÎÒÃÇÓв»Ö»Ò»ÖÖ·½·¨È¥¶¨ÒåÕâÁ½¸ö º¯Êý£¬ÎÒ½«Å¬Á¦Ê¹Óá°Èë¿Úº¯Êý¡±ºÍ¡°Í˳öº¯Êý¡±À´ÃèÊö ËüÃÇ¡£µ«Êǵ±ÎÒÖ»ÓÃinit_module ºÍcleanup_moduleʱ£¬ÎÒÏ£ÍûÄãÃ÷°×ÎÒÖ¸µÄÊÇʲô¡£

¡¡¡¡Ä£¿é¿Éµ÷Óõĺ¯Êý

¡¡¡¡³ÌÐòÔ±²¢²»×ÜÊÇ×Ô¼ºÐ´ËùÓÐÓõ½µÄº¯Êý¡£Ò»¸ö³£¼ûµÄ»ù±¾µÄÀý×Ó¾ÍÊÇ printf()ÄãʹÓÃÕâЩC±ê×¼¿â£¬libcÌṩµÄ¿âº¯Êý¡£ÕâЩº¯Êý(Ïñprintf()) ʵ¼ÊÉÏÔÚÁ¬½Ó֮ǰ²¢²»½øÈëÄãµÄ³ÌÐò¡£ ÔÚÁ¬½ÓʱÕâЩº¯Êýµ÷ÓòŻáÖ¸Ïò Äãµ÷ÓõĿ⣬´Ó¶øʹÄãµÄ´úÂë×îÖÕ¿ÉÒÔÖ´ÐС£

¡¡¡¡ÄÚºËÄ£¿éÓÐËù²»Í¬¡£ÔÚhello worldÄ£¿éÖÐÄãÒ²ÐíÒѾ­×¢Òâµ½ÁËÎÒÃÇʹÓõĺ¯Êý printk() ȴûÓаüº¬±ê×¼I/O¿â¡£ÕâÊÇÒòΪģ¿éÊÇÔÚinsmod¼Ó ÔØʱ²ÅÁ¬½ÓµÄÄ¿±êÎļþ¡£ÄÇЩҪÓõ½µÄº¯ÊýµÄ·ûºÅÁ´½ÓÊÇÄÚºË×Ô¼ºÌṩµÄ¡£ Ò²¾ÍÊÇ˵£¬Äã¿ÉÒÔÔÚÄÚºËÄ£¿éÖÐʹÓõĺ¯ÊýÖ»ÄÜÀ´×ÔÄں˱¾Éí¡£Èç¹ûÄã¶ÔÄÚºËÌṩÁËÄÄЩº¯Êý·ûºÅ Á´½Ó¸ÐÐËȤ£¬¿´Ò»¿´Îļþ/proc/kallsyms¡£

¡¡¡¡ÐèҪעÒâµÄÒ»µãÊǿ⺯ÊýºÍϵͳµ÷ÓõÄÇø±ð¡£¿âº¯ÊýÊǸ߲ãµÄ£¬ÍêÈ«ÔËÐÐÔÚÓû§¿Õ¼ä£¬ Ϊ³ÌÐòÔ±Ìṩµ÷ÓÃÕæÕýµÄÔÚÄ»ºóÍê³Éʵ¼ÊÊÂÎñµÄϵͳµ÷Óõĸü·½±ãµÄ½Ó¿Ú¡£ÏµÍ³µ÷ÓÃÔÚÄÚºË Ì¬ÔËÐв¢ÇÒÓÉÄÚºË×Ô¼ºÌṩ¡£±ê×¼C¿âº¯Êýprintf()¿ÉÒÔ±»¿´×öÊÇÒ»¸öͨÓõÄÊä³öÓï¾ä£¬µ«Ëüʵ¼Ê×öµÄÊǽ«Êý¾Ýת»¯Îª·ûºÏ¸ñʽµÄ×Ö·û´®²¢ÇÒµ÷ÓÃϵͳµ÷Óà write()Êä³öÕâЩ×Ö·û´®¡£

¡¡¡¡ÊÇ·ñÏë¿´Ò»¿´printf()¾¿¾¹Ê¹ÓÃÁËÄÄЩϵͳµ÷ÓÃ? ÕâºÜÈÝÒ×£¬±àÒëÏÂÃæµÄ´úÂë¡£

ÒýÓÃ:
#include
int main(void)
{ printf("hello"); return 0; }

¡¡
¡¡¡¡Ê¹ÓÃÃüÁîgcc -Wall -o hello hello.c±àÒë¡£ÓÃÃüÁî strace helloÐиÿÉÖ´ÐÐÎļþ¡£ÊÇ·ñºÜ¾ªÑÈ£¿Ã¿Ò»Ðж¼ºÍÒ»¸öϵͳµ÷ÓÃÏà¶ÔÓ¦¡£ strace[3] ÊÇÒ»¸ö·Ç³£ÓÐÓõijÌÐò£¬Ëü¿ÉÒÔ¸æËßÄã³ÌÐòʹÓÃÁËÄÄЩϵͳµ÷ÓúÍÕâЩϵͳµ÷ÓõIJÎÊý£¬·µ»ØÖµ¡£ÕâÊÇÒ»¸ö¼«ÓмÛÖµµÄ²é¿´³ÌÐòÔÚ¸ÉʲôµÄ¹¤¾ß¡£ÔÚÊä³öµÄĩ⣬ÄãÓ¦¸Ã¿´µ½ÕâÑùÀàËƵÄÒ»ÐÐ write(1, "hello", 5hello)¡£Õâ¾ÍÊÇÎÒÃÇÒªÕҵġ£²ØÔÚÃæ¾ßprintf() µÄÕæʵÃæÄ¿¡£¼ÈÈ»¾ø´ó¶àÊýÈËʹÓÿ⺯ÊýÀ´¶ÔÎļþI/O½øÐвÙ×÷(Ïñ fopen, fputs, fclose)¡£ Äã¿ÉÒԲ鿴man˵Ã÷µÄµÚ¶þ²¿·ÖʹÓÃÃüÁîman 2 write. ¡£man˵Ã÷µÄµÚ¶þ²¿·ÖרÃŽéÉÜϵͳµ÷ÓÃ(Ïñkill()ºÍread())¡£ man˵Ã÷µÄµÚÈý²¿·ÖÔòרÃŽéÉÜÄã¿ÉÄܸüÊìϤµÄ¿âº¯Êý£¬ (Ïñcosh()ºÍrandom())¡£

¡¡¡¡ÄãÉõÖÁ¿ÉÒÔ±àд´úÂëÈ¥¸²¸Çϵͳµ÷Óã¬ÕýÈçÎÒÃDz»¾ÃÒª×öµÄ¡£º§¿Í³£ÕâÑù×öÀ´ÎªÏµÍ³°²×°ºóÃÅ»òľÂí¡£ µ«Äã¿ÉÒÔÓÃËüÀ´Íê³ÉһЩ¸üÓÐÒæµÄÊ£¬ÏñÈÃÄÚºËÔÚÿ´ÎijÈËɾ³ýÎļþʱÊä³ö ¡° Tee hee, that tickles!¡± µÄÐÅÏ¢¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 2222 ÌõÆÀÂÛ

  1. 72.232.206.* ÓÚ 2006-11-29 16:20:37·¢±í:

    Nice site!
    My homepage | Cool site

  2. intelligent ÓÚ 2006-11-23 09:42:30·¢±í:

    ¡¡¡¡Device Drivers

    ¡¡¡¡Ò»ÖÖÄÚºËÄ£¿éÊÇÉ豸Çý¶¯³ÌÐò£¬ÎªÊ¹ÓÃÓ²¼þÉ豸ÏñµçÊÓ¿¨ºÍ´®¿Ú¶ø±àд¡£ ÔÚUnixÖУ¬ÈκÎÉ豸¶¼±»µ±×÷·¾¶/dev µÄÉ豸Îļþ´¦Àí£¬²¢Í¨¹ýÕâЩÉ豸ÎļþÌṩ·ÃÎÊÓ²¼þµÄ·½·¨¡£ É豸Çý¶¯ÎªÓû§³ÌÐò·ÃÎÊÓ²¼þÉ豸¡£¾ÙÀýÀ´Ëµ£¬Éù¿¨É豸Çý¶¯³ÌÐòes1370.o½«»á°ÑÉ豸Îļþ /dev/soundͬÉù¿¨Ó²¼þEnsoniq IS1370ÁªÏµÆðÀ´¡£ÕâÑùÓû§³ÌÐòÏñ mp3blaster ¾Í¿ÉÒÔͨ¹ý·ÃÎÊÉ豸Îļþ/dev/sound ÔËÐжø²»±ØÖªµÀÄÇÖÖÉù¿¨Ó²¼þ°²×°ÔÚϵͳÉÏ¡£

    ¡¡¡¡Major and Minor Numbers

    ¡¡¡¡ÈÃÎÒÃÇÀ´Ñо¿¼¸¸öÉ豸Îļþ¡£ÕâÀïµÄ¼¸¸öÉ豸Îļþ´ú±í×ÅÒ»¿éÖ÷IDEÓ²ÅÌÉϵÄÍ·Èý¸ö·ÖÇø£º

    ÒýÓÃ:
    # ls -l /dev/hda[1-3]
    brw-rw----¡¡1 root¡¡disk¡¡3, 1 Jul¡¡5¡¡2000 /dev/hda1
    brw-rw----¡¡1 root¡¡disk¡¡3, 2 Jul¡¡5¡¡2000 /dev/hda2
    brw-rw----¡¡1 root¡¡disk¡¡3, 3 Jul¡¡5¡¡2000 /dev/hda3


    ¡¡¡¡×¢Òâһϱ»¶ººÅ¸ô¿ªµÄÁ½ÁС£µÚÒ»¸öÊý×Ö±»½Ð×öÖ÷É豸ºÅ£¬µÚ¶þ¸ö±»½Ð×ö´ÓÉ豸ºÅ¡£ Ö÷É豸ºÅ¾ö¶¨Ê¹ÓúÎÖÖÉ豸Çý¶¯³ÌÐò¡£Ã¿ÖÖ²»Í¬µÄÉ豸¶¼±»·ÖÅäÁ˲»Í¬µÄÖ÷É豸ºÅ£» ËùÓоßÓÐÏàͬÖ÷É豸ºÅµÄÉ豸Îļþ¶¼ÊDZ»Í¬Ò»¸öÇý¶¯³ÌÐò¿ØÖÆ¡£ÉÏÃæÀý×ÓÖÐµÄ Ö÷É豸ºÅ¶¼Îª3£¬±íʾËüÃǶ¼±»Í¬Ò»¸öÇý¶¯³ÌÐò¿ØÖÆ¡£

    ¡¡¡¡´ÓÉ豸ºÅÓÃÀ´Çø±ðÇý¶¯³ÌÐò¿ØÖƵĶà¸öÉ豸¡£ÉÏÃæÀý×ÓÖеĴÓÉ豸ºÅ²»ÏàͬÊÇÒòΪËüÃDZ»Ê¶±ðΪ¼¸¸öÉ豸¡£

    ¡¡¡¡É豸±»´ó¸ÅµÄ·ÖΪÁ½Àࣺ×Ö·ûÉ豸ºÍ¿éÉ豸¡£Çø±ðÊÇ¿éÉ豸Óлº³åÇø£¬ËùÒÔËüÃÇ¿ÉÒÔ¶ÔÇëÇó½øÐÐÓÅ»¯ÅÅÐò¡£ Õâ¶Ô´æ´¢É豸ÓÈÆäÖØÒª£¬ÒòΪ¶ÁдÏàÁÚµÄÎļþ×ܱȶÁдÏà¸ôºÜÔ¶µÄÎļþÒª¿ì¡£ÁíÒ»¸öÇø±ðÊÇ¿éÉ豸ÊäÈëºÍÊä³ö ¶¼ÊÇÒÔÊý¾Ý¿éΪµ¥Î»µÄ£¬µ«ÊÇ×Ö·ûÉ豸¾Í¿ÉÒÔ×ÔÓɶÁдÈÎÒâÁ¿µÄ×Ö½Ú¡£´ó²¿·ÖÓ²¼þÉ豸Ϊ×Ö·ûÉ豸£¬ÒòΪËüÃÇ ²»ÐèÒª»º³åÇøºÍÊý¾Ý²»ÊÇ°´¿éÀ´´«ÊäµÄ¡£Äã¿ÉÒÔͨ¹ýÃüÁîls -lÊä³öµÄÍ·Ò»¸ö×Öĸʶ±ðÒ»¸ö É豸ΪºÎÖÖÉ豸¡£Èç¹ûÊÇ'b' ¾ÍÊÇ¿éÉ豸£¬Èç¹ûÊÇ'c'¾ÍÊÇ×Ö·ûÉ豸¡£ÒÔÉÏÄã¿´µ½µÄÊÇ¿éÉ豸¡£Õâ¶ù»¹ÓÐһЩ×Ö·ûÉ豸Îļþ£¨´®¿Ú£©£º

    ÒýÓÃ:
    crw-rw----¡¡1 root¡¡dial 4, 64 Feb 18 23:34 /dev/ttyS0
    crw-r-----¡¡1 root¡¡dial 4, 65 Nov 17 10:26 /dev/ttyS1
    crw-rw----¡¡1 root¡¡dial 4, 66 Jul¡¡5¡¡2000 /dev/ttyS2
    crw-rw----¡¡1 root¡¡dial 4, 67 Jul¡¡5¡¡2000 /dev/ttyS3

    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡Èç¹ûÄãÏë¿´Ò»ÏÂÒÑ·ÖÅäµÄÖ÷É豸ºÅ¶¼ÊÇЩʲôÉ豸¿ÉÒÔ¿´Ò»ÏÂÎļþ /usr/src/linux/Documentation/devices.txt¡£

    ¡¡¡¡ÏµÍ³°²×°Ê±£¬ËùÓеÄÕâЩÉ豸Îļþ¶¼ÊÇÓÉÃüÁîmknod½¨Á¢µÄ¡£È¥½¨Á¢Ò»¸öеÄÃû½Ð coffee'£¬Ö÷É豸ºÅΪ12ºÍ´ÓÉ豸ºÅΪ2µÄÉ豸Îļþ£¬Ö»Òª¼òµ¥µÄ Ö´ÐÐÃüÁîmknod /dev/coffee c 12 2¡£Äã²¢²»ÊDZØÐ뽫É豸Îļþ·ÅÔÚĿ¼ /devÖУ¬ÕâÖ»ÊÇÒ»¸ö´«Í³¡£Linus±¾ÈËÊÇÕâÑù×öµÄ£¬ËùÒÔÄã×îºÃÒ²²»ÀýÍâ¡£µ«ÊÇ£¬µ±Äã²âÊÔÒ»¸öÄ£¿éʱ£¬ÔÚ¹¤×÷Ŀ¼½¨Á¢Ò»¸öÉ豸ÎļþÒ²²»´í¡£ Ö»Òª±£Ö¤Íê³Éºó½«Ëü·ÅÔÚÇý¶¯³ÌÐòÕҵõ½µÄµØ·½¡£

    ¡¡¡¡ÎÒ»¹ÏëÉùÃ÷ÔÚÒÔÉÏÌÖÂÛÖÐÒþº¬µÄ¼¸µã¡£µ±ÏµÍ³·ÃÎÊÒ»¸öϵͳÎļþʱ£¬ ϵͳÄÚºËֻʹÓÃÖ÷É豸ºÅÀ´Çø±ðÉ豸ÀàÐͺ;ö¶¨Ê¹ÓúÎÖÖÄÚºËÄ£¿é¡£ÏµÍ³ Äں˲¢²»ÐèÒªÖªµÀ´ÓÉ豸ºÅ¡£ÄÚºËÄ£¿éÇý¶¯±¾Éí²Å¹Ø×¢´ÓÉ豸ºÅ£¬²¢ÓÃÖ®À´ Çø±ðÆä²Ù×ݵIJ»Í¬É豸¡£

    ¡¡¡¡ÁíÍ⣬ÎÒÕâ¶ùÌáµ½µÄÓ²¼þÊDZÈÄÇÖÖ¿ÉÒÔÎÕÔÚÊÖÀïµÄPCI¿¨ÉÔ΢³éÏóÒ»µãµÄ¶«Î÷¡£¿´Ò»ÏÂÏÂÃæµÄÁ½¸öÉ豸Îļþ£º

    ÒýÓÃ:
    % ls -l /dev/fd0 /dev/fd0u1680
    brwxrwxrwx¡¡ 1 root¡¡floppy¡¡ 2,¡¡0 Jul¡¡5¡¡2000 /dev/fd0
    brw-rw----¡¡ 1 root¡¡floppy¡¡ 2, 44 Jul¡¡5¡¡2000 /dev/fd0u1680

    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡ÄãÏÖÔÚÁ¢¼´Ã÷°×ÕâÊÇ¿ìÉ豸µÄÉ豸Îļþ²¢ÇÒËüÃÇÊÇÓÐÏàͬµÄÇý¶¯ÄÚºËÄ£¿éÀ´²Ù×Ý £¨Ö÷É豸ºÅ¶¼Îª2)£©¡£ÄãÒ²ÐíÒ²Òâʶµ½ËüÃǶ¼ÊÇÄãµÄÈíÅÌÇý¶¯Æ÷£¬¼´Ê¹Äãʵ¼ÊÉÏÖ»ÓÐÒ»¸öÈíÅÌÇý¶¯Æ÷¡£ÎªÊ²Ã´ÊÇÁ½¸öÉ豸Îļþ£¿ÒòΪËüÃÇÆäÖеÄÒ»¸ö´ú±í×Å ÄãµÄ1.44 MBÈÝÁ¿µÄÈíÇý£¬ÁíÒ»¸ö´ú±í×ÅÄãµÄ1.68 MBÈÝÁ¿µÄ£¬±»Ä³Ð©È˳ÆΪ¡°³¬¼¶¸ñʽ»¯¡±µÄÈíÇý¡£ Õâ¾ÍÊÇÒ»¸ö²»Í¬µÄ´ÓÉ豸ºÅ´ú±í×ÅÏàͬӲ¼þÉ豸µÄÀý×Ó¡£ÇëÇå³þµÄÒâʶµ½ÎÒÃÇÌáµ½µÄÓ²¼þÓÐʱ¿ÉÄÜÊǷdz£³éÏóµÄ¡£

  3. intelligent ÓÚ 2006-11-23 09:41:24·¢±í:

    ¡¡¡¡Óû§¿Õ¼äºÍÄں˿ռä

    ¡¡¡¡ÄÚºËȫȨ¸ºÔð¶ÔÓ²¼þ×ÊÔ´µÄ·ÃÎÊ£¬²»¹Ü±»·ÃÎʵÄÊÇÏÔʾ¿¨£¬Ó²ÅÌ£¬»¹ÊÇÄÚ´æ¡£ Óû§³ÌÐò³£ÎªÕâЩ×ÊÔ´¾ºÕù¡£¾ÍÈçͬÎÒÔÚ±£´æÕâ·ÝÎĵµÍ¬Ê±±¾µØÊý¾Ý¿âÕýÔÚ¸üС£ Îҵı༭Æ÷vim½ø³ÌºÍÊý¾Ý¿â¸üнø³ÌͬʱҪÇó·ÃÎÊÓ²ÅÌ¡£Äں˱ØÐëʹÕâЩÇëÇóÓÐÌõ²»ÎɵĽøÐУ¬¶ø²»ÊÇËæÓû§µÄÒâÔ¸Ìṩ¼ÆËã»ú×ÊÔ´¡£ Ϊ·½±ãʵÏÖÕâÖÖ»úÖÆ£¬ CPU ¿ÉÒÔÔÚ²»Í¬µÄ״̬ÔËÐС£²»Í¬µÄ״̬¸³Ó費ͬµÄÄã¶Ôϵͳ²Ù×÷µÄ×ÔÓÉ¡£Intel 80836 ¼Ü¹¹ÓÐËÄÖÖ״̬¡£ UnixֻʹÓÃÁËÆäÖÐ µÄÁ½ÖÖ£¬×î¸ß¼¶µÄ״̬(²Ù×÷״̬0,¼´¡°³¬¼¶×´Ì¬¡±£¬¿ÉÒÔÖ´ÐÐÈκβÙ×÷)ºÍ×îµÍ¼¶µÄ״̬ (¼´¡°Óû§×´Ì¬¡±)¡£

    ¡¡¡¡»ØÒäÒÔÏÂÎÒÃǶԿ⺯ÊýºÍϵͳµ÷ÓõÄÌÖÂÛ£¬Ò»°ã¿âº¯ÊýÔÚÓû§Ì¬Ö´ÐС£ ¿âº¯Êýµ÷ÓÃÒ»¸ö»ò¼¸¸öϵͳµ÷Ó㬶øÕâЩϵͳµ÷ÓÃΪ¿âº¯ÊýÍê³É¹¤×÷£¬µ«ÊÇÔÚ³¬¼¶×´Ì¬¡£ Ò»µ©ÏµÍ³µ÷ÓÃÍê³É¹¤×÷ºóϵͳµ÷Óþͷµ»Øͬʱ³ÌÐòÒ²·µ»ØÓû§Ì¬¡£

    ¡¡¡¡ÃüÃû¿Õ¼ä

    ¡¡¡¡Èç¹ûÄãÖ»ÊÇдһЩ¶ÌСµÄC³ÌÐò£¬Äã¿ÉΪÄãµÄ±äÁ¿ÆðÒ»¸ö·½±ãµÄºÍÒ×ÓÚÀí½âµÄ±äÁ¿Ãû¡£ µ«ÊÇ£¬Èç¹ûÄãдµÄ´úÂëÖ»ÊÇÐí¶àÆäËüÈËдµÄ´úÂëµÄÒ»²¿·Ö£¬ÄãµÄÈ«¾ÖһЩ¾Í»áÓëÆäÖеÄÈ«¾Ö±äÁ¿·¢Éú³åÍ»¡£ ÁíÒ»¸öÇé¿öÊÇÒ»¸ö³ÌÐòÖÐÓÐÌ«¶àµÄÄÑÒÔÀí½âµÄ±äÁ¿Ãû£¬ÕâÓֻᵼÖ±äÁ¿ÃüÃû¿Õ¼äÎÛȾ ÔÚ´óÐÍÏîÄ¿ÖУ¬±ØÐëŬÁ¦¼Çס±£ÁôµÄ±äÁ¿Ãû£¬»òΪ¶ÀÒ»ÎÞ¶þµÄÃüÃûʹÓÃÒ»ÖÖͳһµÄ·½·¨¡£

    ¡¡¡¡µ±±àдÄں˴úÂëʱ£¬¼´Ê¹ÊÇ×îСµÄÄ£¿éÒ²»áͬÕû¸öÄÚºËÁ¬½Ó£¬ËùÒÔÕâµÄÈ·ÊǸöÁîÈËÍ·Í´µÄÎÊÌâ¡£×îºÃµÄ½â¾ö·½·¨ÊÇÉùÃ÷ÄãµÄ±äÁ¿Îªstatic¾²Ì¬µÄ²¢ÇÒΪÄãµÄ·ûºÅʹÓÃÒ»¸ö¶¨ÒåµÄºÜºÃµÄǰ׺¡£´«Í³ÖУ¬Ê¹ÓÃСд×ÖĸµÄÄÚºËǰ׺¡£Èç¹ûÄã²»Ï뽫ËùÓеĶ«Î÷¶¼ÉùÃ÷Ϊstatic¾²Ì¬µÄ£¬ ÁíÒ»¸öÑ¡ÔñÊÇÉùÃ÷Ò»¸ösymbol table£¨·ûºÅ±í£©²¢ÏòÄÚºË×¢²á¡£ÎÒÃǽ«ÔÚÒÔºóÌÖÂÛ¡£

    ¡¡¡¡Îļþ/proc/kallsyms±£´æ×ÅÄÚºËÖªµÀµÄËùÓеķûºÅ£¬Äã¿ÉÒÔ·ÃÎÊËüÃÇ£¬ ÒòΪËüÃÇÊÇÄں˴úÂë¿Õ¼äµÄÒ»²¿·Ö¡£

    ¡¡¡¡´úÂë¿Õ¼ä

    ¡¡¡¡ÄÚ´æ¹ÜÀíÊÇÒ»¸ö·Ç³£¸´ÔӵĿÎÌâ¡£O'ReillyµÄ¡¶Understanding The Linux Kernel¡·¾ø´ó²¿·Ö¶¼ÔÚ ÌÖÂÛÄÚ´æ¹ÜÀí£¡ÎÒÃÇ ²¢²»×¼±¸×¨×¢ÓÚÄÚ´æ¹ÜÀí£¬µ«ÓÐһЩ¶«Î÷»¹ÊǵÃÖªµÀµÄ¡£

    ¡¡¡¡Èç¹ûÄãûÓÐÈÏÕ濼ÂǹýÄÚ´æÉè¼ÆȱÏÝÒâζ×Åʲô£¬ÄãÒ²Ðí»á¾ªÑȵĻñÖªÒ»¸öÖ¸Õë²¢²»Ö¸ÏòÒ»¸öÈ·ÇеÄÄÚ´æÇøÓò¡£µ±Ò»¸ö½ø³Ì½¨Á¢Ê±£¬ÄÚºËΪËü·ÖÅäÒ»²¿·ÖÈ·ÇеÄʵ¼ÊÄÚ´æ¿Õ¼ä²¢°ÑËü½»¸ø½ø³Ì£¬±»½ø³ÌµÄ´úÂ룬±äÁ¿£¬¶ÑÕ»ºÍÆäËüһЩ¼ÆËã»úѧµÄר¼Ò²ÅÃ÷°×µÄ¶«Î÷ʹÓÃ[4]¡£ÕâЩÄÚ´æ´Ó$0$ ¿ªÊ¼²¢¿ÉÒÔÀ©Õ¹µ½ÐèÒªµÄµØ·½¡£ÕâЩÄÚ´æ¿Õ¼ä²¢²»Öصþ£¬ËùÒÔ¼´Ê¹½ø³Ì·ÃÎÊͬһ¸öÄÚ´æµØÖ·£¬ÀýÈç0xbffff978£¬ÕæʵµÄÎïÀíÄÚ´æµØÖ·ÆäʵÊDz»Í¬µÄ¡£½ø³Ìʵ¼ÊÖ¸ÏòµÄÊÇÒ»¿é±»·ÖÅäµÄÄÚ´æÖÐÒÔ0xbffff978 ΪƫÒÆÁ¿µÄÒ»¿éÄÚ´æÇøÓò¡£¾ø´ó¶àÊýÇé¿öÏ£¬Ò»¸ö½ø³ÌÏñÆÕͨµÄ"Hello, World"²»¿ÉÒÔ·ÃÎʱðµÄ½ø³ÌµÄ ÄÚ´æ¿Õ¼ä£¬¾¡¹ÜÓÐʵÏÖÕâÖÖ»úÖƵķ½·¨¡£ÎÒÃǽ«ÔÚÒÔºóÌÖÂÛ¡£

    ¡¡¡¡ÄÚºË×Ô¼ºÒ²ÓÐÄÚ´æ¿Õ¼ä¡£¼ÈȻһ¸öÄÚºËÄ£¿é¿ÉÒÔ¶¯Ì¬µÄ´ÓÄÚºËÖмÓÔغÍжÔØ£¬ËüÆäʵÊǹ²ÏíÄÚºËµÄ ÄÚ´æ¿Õ¼ä¶ø²»ÊÇ×Ô¼ºÓµÓжÀÁ¢µÄÄÚ´æ¿Õ¼ä¡£Òò´Ë£¬Ò»µ©ÄãµÄÄ£¿é¾ßÓÐÄÚ´æÉè¼ÆȱÏÝ£¬Äں˾ÍÊÇÄÚ´æÉè¼ÆȱÏÝÁË¡£ Èç¹ûÄãÔÚ´íÎóµÄ¸²¸ÇÊý¾Ý£¬ÄÇôÄã¾ÍÔÚÆÆ»µÄں˵ĴúÂë¡£Õâ±ÈÏÖÔÚÌýÆðÀ´µÄ»¹Ôã¡£ËùÒÔ¾¡Á¿Ð¡ÐĽ÷É÷¡£

    ¡¡¡¡Ë³±ãÌáһϣ¬ÒÔÉÏÎÒËùÖ¸³öµÄ¶ÔÓÚÈκε¥ÕûÌåÄں˵IJÙ×÷ϵͳ¶¼ÊÇÕæʵµÄ[5]¡£ Ò²´æÔÚÄ£¿é»¯Î¢Äں˵IJÙ×÷ϵͳ£¬Èç GNU Hurd ºÍ QNX Neutrino¡£