LinuxϵͳÏÂÄÚ´æÉêÇëÓ¦Óõķ½·¨ÔÀí×ܽá
1. µØÖ·¿Õ¼äµÄ¹ÜÀí
¡¡¡¡ÎïÀíµØÖ·¶¼ÊÇÓÐÄں˹ÜÀíµÄ£¬ node-->zone-->mem_map-->page, ËùÓеÄÎïÀíÒ³Ã涼ÔÚmem_mapÊý×éÖеÄÒ³Ö¡¶ÔÓ¦£¬ È»ºó²»Í¬µÄpageÓзÖΪDMA£¬normal£¬highmemÈý¸özone¡£
¡¡¡¡ÄÚºËÏßÐÔµØÖ·¿Õ¼ä£¬ ʵ¼ÊÉÏÖ»ÊǵͶËÄÚ´æ²ÅÓÐÏßÐÔµØÖ·£¬0---896MB²¿·Ö¡£
¡¡¡¡ÄÚºËÐéÄâµØÖ·£¬ µÍ¶ËÄÚ´æµÄÐéÄâµØÖ·ÓëÏßÐÔµØÖ·ÊÇÒ»ÑùµÄ¡£ ¸ß¶ËÄÚ´æÖ»ÓÐÔÚÓ³ÉäÁËÒÔºó²ÅÓÐÐéÄâµØÖ·
¡¡¡¡Óû§¿Õ¼äµØÖ·£¬ tast_struct ---> mmap --> mm_struct ---> vm_area_struct
¡¡¡¡2.ÄÚ´æµÄÉêÇë»òʹÓÃ
¡¡¡¡ÎïÀíÄÚ´æµÄ·ÖÅ䣬 ÔÚÄÚºËÖÐ×îÖÕ¶¼Òªµ÷ÓÃ__alloc_pages().ËüÊÇ×îºËÐĵķÖÅ亯Êý£¬ÉêÇë´óС×î´ó²»³¬¹ý2µÄMAX_ORDER´ÎÃÝ£¬ÔÚÏÖÔÚºÃÏñ×î´ó¶¨ÒåΪ4MB¡£
¡¡¡¡ÏßÐÔµØÖ·£¬ kmallocºÍget_free_pages,ÏßÐÔµØÖ·£¬ ¶ÔÓ¦µÄÎïÀíÄÚ´æ¾ÍÊǵͶËÄڴ棬kmallocÊÇ»ùÓÚslabµÄ·ÖÅä¼¼Êõ£¬ ×î´ó²»Äܳ¬¹ý128KB¡£
¡¡¡¡ÐéÄâµØÖ·£¬ vmallocÉêÇ룬 ËûÖ»ÊÇÔÚÄÚºËÖн¨Á¢ÀàËÆÓëÓû§¿Õ¼äµÄvm_areaµÄÒ»¸öÐéÄâÄÚ´æ¿Õ¼äµ½vmlistÖУ¬ ×îÖÕµÄÎïÀíÄÚ´æ·ÖÅ仹ÊÇ»ùÓÚȱҳµÄ¡£
¡¡¡¡Óû§¿Õ¼äµÄÐéÄâÄڴ棬 mallocÖ®ÀàµÄ£¬ ×îÖÕÔÚÄÚºËÖж¼ÊÇdo_map()ºÍdo_brk()¡£Êµ¼ÊÉÏÒ²Ö»Êǽ¨Á¢ÁËÒ»¿éÐéÄâ¿Õ¼ä£¬×îÖÕµÄÎïÀíÄڴ滹ÊÇÔÚȱҳÒ쳣ʱ·ÖÅäµÄ¡£
¡¡¡¡3. ÄÚ´æµÄ½»»»ÎÊÌâ
¡¡¡¡ÔÚpage½á¹¹ºÍÓû§²ãµÄvm_area_struct½á¹¹ÖУ¬ ¶¼°üº¬lockedºÍreserved±êÖ¾¡£Í¨¹ýºÏÊʵÄ;¾¶ÉèÖÃÕâЩ±êÖ¾£¬ ¿ÉÒÔÊÇÒ³ÃæËø´æÔÚÎïÀíÄÚ´æÖУ¬ ²»±»½»»»³öÈ¥¡£
¡¡¡¡4. É豸ÄÚ´æ¿ÉÒÔͨ¹ýioremapÓ³Éäµ½ÄÚºËÐéÄâµØÖ·¿Õ¼ä£¬ Ò²¿ÉÒÔͨ¹ýmmap·½·¨Ó³Éäµ½Óû§¿Õ¼ä¡£
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
µÚ1Õ Linux¸ÅÊö
ʲôÊÇLinux£¿ÔÚËùÓйØÓÚLinuxµÄÎÊÌâÖУ¬Ã»ÓбÈÕâ¸ö¸ü»ù±¾µÄÁË¡£¼òµ¥µØ˵£¬LinuxÊÇÒ»ÖÖ²Ù×÷ϵͳ£¬¿ÉÒÔ°²×°ÔÚ°üÀ¨·þÎñÆ÷¡¢¸öÈ˵çÄÔ¡¢ÄËÖÁPDA¡¢ÊÖ»ú¡¢´òÓ¡»úµÈ¸÷ÀàÉ豸ÖС£³¢ÊÔÒ»¸öеIJÙ×÷ϵͳÄÑÃâÈÃÈËÐij±ÅìÅÈ£¬Èç¹û¶ÁÕß֮ǰ»¹Ã»ÓнӴ¥¹ýLinuxµÄ»°£¬ÔÚÕýʽ¿ªÊ¼°²×°ºÍʹÓÃLinux֮ǰ£¬Ê×ÏÈÈÃ×Ô¼º·ÅËÉ£ ......
1.1 LinuxµÄÆðÔ´ºÍ·¢Õ¹
LinuxÆðÔ´ºÍ·¢Õ¹ÊÇÒ»¶ÎÁîÈË×ÅÃÔµÄÀúÊ·¡£ÕâÀïÃæ°üº¬×ÅÌ«¶àµß¸²“³£À픵ÄʼþºÍ˼Ï룬´Ù³ÉLinux³É³¤×³´óµÄ“ÉñÆæ”Á¦Á¿×ÜÊDZ»È˽ò½òÀÖµÀ£¬LinuxËù´´ÔìµÄ´«ÆæÓÐʱºòÈóõ´Î½Ó´¥ËüµÄÈ˸е½²»¿É˼Òé¡£
1.1.1 LinuxµÄÆðÔ´
1991Ä꣬һ¸öÃû²»¼û¾´«µÄ·ÒÀ¼Ñо¿Éú¹ºÂòÁË×Ô¼ ......
Ê×ÏÈÏÂÔØÁ½¸öÎļþ£º
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
wget http://prdownloads.sourceforge.net/awstats/awstats-6.7.tar.gz
cronologÊÇÓÃÀ´¸Ä±äÈÕÖ¾µÄ¸ñʽÒÔÊʺÏawstatsµÄ·ÖÎö
cronologºÜºÃ×°£¬ÏÂÔغó½â°ü£¬ÃüÁîÐа²×°
./configure
make
make install
½ÓÏÂÀ´ÐÞ¸ÄapacheÅäÖÃÎļþhttpd.c ......