linux module Makefile
²»ÖªµÀÔÚʲçÛʱºò£¬×ªÔØLinux ³öÏÖÁË module ÕâÖÖ¶«Î÷£¬µÄÈ·£¬ËüÊÇ Linux µÄÒ»´ó¸ïС£ÓÐÁË module Ö®ºó£¬Ð´
device driver ²»ÔÙÊÇÒ»Ïî¶ñÃΣ¬ÐÞ¸Ä kernel Ò²²»ÔÙÊÇÒ»¼þÍ´¿àµÄÊÂÁË¡£ÒòΪÄã²»ÐèҪÿ´ÎÒª²âÊÔ driver ¾ÍÖØÐÂ
compile kernel Ò»´Î¡£ÄǼòÖ±ÊÇ»áÀÛËÀÈË¡£Module ¿ÉÒÔÔÊÐíÎÒÃǶ¯Ì¬µÄ¸Ä±ä kernel£¬¼ÓÔØ device
driver£¬¶øÇÒËüÒ²ÄÜËõ¶ÌÎÒÃÇ driver development µÄʱ¼ä¡£ÔÚÕâÆªÎÄÕÂÀÎÒ½«Òª¸ú¸÷λ½éÉÜһϠmodule
µÄÔÀí£¬ÒÔ¼°ÈçºÎдһ¸ö module¡£
module ·Òë³ÉÖÐÎľÍÊÇÄ£¿é£¬²»¹ý£¬ÊÂʵÉÏÈ¥·ÒëÕâ¸ö×ÖÒ»µã¶¼Ã»ÒâÒå¡£ÔÚ½²Ä£¿é֮ǰ£¬ÎÒÏȾÙÒ»¸öÀý×Ó¡£ÏàÐźܶàÈ˶¼Óùý RedHat¡£ÔÚ
RedHat ÀÎÒÃÇ¿ÉÒÔÖ´ÐÐ sndconfig£¬Ëü¿ÉÒÔ°ïÎÒÃÇ config Éù¿¨¡£config
ÍêÖ®ºóÈç¹û×½µÃµ½ÄãµÄÉù¿¨£¬ÄÇÄãµÄÉù¿¨ÂíÉϾͿÉÒÔ¶¯ÁË£¬¶øÇÒ»¹²»ÓÃÖØÐ¼¤»î¼ÆËã»ú¡£ÕâÊÇÔõçÛ×öµÄÄØ ? ¾ÍÊÇ¿¿module¡£module
ÆäʵÊÇÒ»°ãµÄ³ÌÐò¡£µ«ÊÇËü¿ÉÒÔ±»¶¯Ì¬Ôص½ kernel Àï³ÉΪ kernelµÄÒ»²¿·Ö¡£Ôص½ kernel ÀïµÄ module Ëü¾ßÓиú
kernel Ò»ÑùµÄȨÁ¦¡£¿ÉÒÔ access ÈκΠkernel µÄ data structure¡£ÄãÌý¹ý kdebug Âð ? ËüÊÇÓÃÀ´
debug kernel µÄ¡£Ëü¾ÍÊÇÏȽ«Ëü±¾ÉíµÄÒ»¸ö module ÔØµ½ kernel À¶øÔÚ user space µÄ gdb
¾Í¿ÉÒÔ¾ÓɸúÕâ¸ö module ¹µÍ¨£¬µÃÖª kernel ÀïµÄ data structure µÄÖµ£¬³ý´ËÖ®Í⣬»¹¿ÉÒÔ¾ÓÉÔØµ½ kernel µÄ
module È¥¸ü¸Ä kernel Àï data structure¡£
ÎÒÃÇÖªµÀ£¬ÔÚд C ³ÌÐòµÄʱºò£¬Ò»¸ö³ÌÐòÖ»ÄÜÓÐÒ»¸ö main¡£Kernel ±¾ÉíÆäʵҲÊÇÒ»¸ö³ÌÐò£¬Ëü±¾ÉíÒ²Óиö main£¬½Ð
start_kernel()¡£µ±ÎÒÃǰÑÒ»¸ö module ÔØµ½ kernel ÀïµÄʱºò£¬Ëü»á¸ú kernel ÕûºÏÔÚÒ»Æð£¬³ÉΪ kernel
µÄÒ»²¿·Ö¡£Çë¸÷λÏëÏ룬ÄÇ module ¿ÉÒÔÓÐ main Âð ? ´ð°¸ºÜÃ÷ÏԵģ¬ÊÇ No¡£ÀíÓɺܼòµ¥¡£Ò»¸ö³ÌÐòÖ»ÄÜÓÐÒ»¸ö main¡£ÔÚʹÓÃ
module ʱ£¬ÓÐÒ»µãÒª¼ÇסµÄÊÇ module ÊÇ´¦ÓÚ±»¶¯µÄ½ÇÉ«¡£ËüÊÇÌṩijЩ¹¦ÄÜÈñðÈËȥʹÓõġ£
Kernel ÀïÓÐÒ»¸ö±äÁ¿½Ð module_list£¬Ã¿µ± user ½«Ò»¸ö module ÔØµ½ kernel ÀïµÄʱºò£¬Õâ¸ö module
¾Í»á±»¼Ç¼ÔÚ module_list ÀïÃæ¡£µ± kernel ҪʹÓõ½Õâ¸ö module ÌṩµÄ function ʱ£¬Ëü¾Í»áÈ¥ search
Õâ¸ö list£¬ÕÒµ½ module£¬È»ºóÔÙʹÓÃÆäÌṩµÄ function »ò variable¡£Ã¿Ò»¸ö module ¶¼¿ÉÒÔ export
һЩ function »ò±äÁ¿À´ÈñðÈËʹÓᣳý´ËÖ®Í⣬module Ò²¿ÉÒÔʹÓÃÒÑ¾ÔØµ½ kernel ÀïµÄ module ÌṩµÄ
function¡£ÕâÖÖÇéÐνÐ×ö module stack¡£±È·½Ëµ£¬mod
Ïà¹ØÎĵµ£º
µ±ÎÒÃÇÔÚVmware»òÕ߯äËûÐéÄâ»úÖа²×°Linuxºó£¬ÏëÔÚX
WindowsÓëÐéÄâÖÕ¶ËÖ®¼äÇл»Ê±£¬È´·¢ÏÖCtrl+Alt+Fx²»Æð×÷Óã¬ÄÇôÎÒÃÇÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ£¿Æäʵ·½·¨ºÜ¼òµ¥£¬ÎÒÃÇÖ»ÐèÒª½«Vmware»ò
Õ߯äËûÐéÄâ»úÈí¼þµÄÈȼü¸Ä³ÉCtrl+Alt+Shift¼´¿É£¬ÈçVmware¾ßÌå·½·¨ÈçÏ£ºÖÐÎİ旗ѡÔñ±à¼—&mdash ......
vmstat 5 10 ºÍ vmstat -d
r-->;ÔÚÔËÐжÓÁÐÖеȴýµÄ½ø³ÌÊý
b-->;ÔڵȴýioµÄ½ø³ÌÊý
w-->;¿ÉÒÔ½øÈëÔËÐжÓÁе«±»Ìæ»»µÄ½ø³Ì
memoy
swap-->;ÏÖʱ¿ÉÓõĽ»»»Äڴ棨k±íʾ£©
free-->;¿ÕÏеÄÄڴ棨k±íʾ£©
pages
re££¡·»ØÊÕµÄÒ³Ãæ
mf££¡··ÇÑÏÖØ´íÎóµÄÒ³Ãæ
pi££¡·½øÈëÒ³ÃæÊý£¨k±íʾ£©
po£ ......
Ò»£®Ç°ÑÔ
¡¡¡¡LinuxÓµÓзḻ¸÷ÖÖÔ´´úÂë×ÊÔ´,µ«ÊǴ󲿷ִúÂëÔÚWindowsƽ̨Çé¿öÊÇÎÞ·¨Õý³£±àÒëµÄ¡£Windowsƽ̨¸ù±¾ÎÞ·¨Ö±½ÓÀûÓÃÕâЩԴ´úÂë×ÊÔ´¡£Èç¹ûÏëҪʹÓÃÍêÕûµÄ´úÂ룬¾ÍÒª×öÒÆÖ²¹¤×÷¡£ÒòΪC/C++ LibraryµÄ²»Í¬ºÍÆäËûµÄһЩÔÒò£¬ÒÆÖ²C/C++´úÂëÊÇÒ»ÏîÀ§ÄѵŤ×÷¡£±¾ÎĽ«ÒÔÒ»¸öʵ¼ÊµÄÀý×Ó£¨Tar£©À´ËµÃ÷ÈçºÎ°ÑLinux´úÂëÒÆÖ² ......
1
¡¢Ï̵߳Ĵ´½¨¡¢ÖÕÖ¹¼°¿ØÖÆ£º
Èκνø³ÌÔÚÆô¶¯Ê±¾ÍÒÑÓÐÁËÒ»¸öÖ÷Ị̈߳¬Èç¹ûÐèÒªÔÙÉú³ÉÏß³ÌÔòʹÓÃ
pthread_create
º¯Êý£¬Ôڸú¯ÊýÖпÉÒÔÖ¸¶¨Ï̵߳ÄÊôÐÔ¡¢Ïß³ÌÀý³Ì¡¢´«¸øÏß³ÌÀý³ÌµÄ²ÎÊý¡£Ïß³ÌÀý³ÌÊÇÒ»¸öÓû§×Ô¶¨ÒåµÄº¯Êý£¬¼°Ïß³ÌÖ´ÐеĴúÂë¡£µ±Ïß³ÌÀý³Ì·µ»ØÊ±£¬Ïß³ÌÔò½áÊøÔËÐУ¬ ......