©®linuxÉçÇø©® °®ÐÄÔ®Öú ©® LinuxÈÏÖ¤©®ÏµÁÐ½Ì³Ì ©® Òµ½ç¶¯Ì¬©® Õ¾ÎñÐÂÎÅ ©® ¹«Ë¾ÕÐÆ¸©® ½¨ÒéÁôÑÔ ©® ÍøÖ·´óÈ« ©®LPIרÌâ©® CISCOרÌâ
ÉèΪÊ×Ò³
¼ÓÈëÊÕ²Ø
¹ÜÀíÍŶÓ
JSP  
JAVA  
PERL  
 ÄúµÄλÖãºÊ×Ò³ > article > Linux¿ª·¢Çø > ÄÚºËÑо¿ >
À¸Ä¿µ¼À¸
×ÊÁÏËÑË÷
ÈÈÃÅÎÄÕÂ
¡¤linux-2.6ÄÚºËÉý¼¶Îĵµ
¡¤LinuxÔ´´úÂëµÄ×¢ÊÍ
¡¤linux2.6Äں˱àÒë·½·¨ÏêÊö
¡¤Linux²Ù×÷ϵͳÄں˱àÒëÏê½â
¡¤LinuxÄں˽ṹÏê½â
¡¤LinuxÅäÖÃÓë±àÒëÄÚºË
¡¤¶¨Ê±Æ÷
¡¤LinuxÄÚºËÉý¼¶È«¹¥ÂÔ
¡¤FC5(Fedora Core5)ϱàÒëÄÚºË×Ü
¡¤Ubuntu 6.06 dapper Äں˱àÒë³õ
¡¤Linux Äں˱àÒëÏê½â
¡¤LinuxÄں˹ÜÀí»ù´¡ÖªÊ¶¸ÅÊö
¡¤Linux2.4Éý¼¶µ½2.6ÄÚºËÉý¼¶Ö¸ÄÏ
¡¤µÚ°ËÕ É豸Çý¶¯
¡¤ÈçºÎ±àÒëlinuxÄÚºË
×îÐÂÎÄÕÂ
¡¤Linux Kernel ×îÐÂÎȶ¨°æ2.6.2
¡¤KernelÓ²¼þÖжϵijõʼ»¯Á÷³Ì
¡¤LinuxÄÚºËbootsplash¹¦ÄܵÄʵÏÖ
¡¤LinuxÄÚºË2.6.25ȫз¢²¼¼ÓÈëÖÚ
¡¤Debian Linuxϵͳ±àÒëÄں˱ê×¼
¡¤Linux2.4Äں˺Í2.6Äں˶ÔInitr
¡¤2.6.24Äں˱àÒë initrd-2.6.24
¡¤QtopiaÓ¦ÓóÌÐòÓëLinuxÄÚºËÊý¾Ý
¡¤Linux 2.6ÄÚºËÖÐsysfsÎļþϵͳ
¡¤Linux2.6ÄÚºËÇý¶¯ÒÆÖ²²Î¿¼
¡¤Andrew Morton:LinuxÄں˵ÄÖ´·¨
¡¤Fedora 8 LinuxϵͳµÄÄÚºËÅäÖÃ
¡¤KernelÖеÄirq.cº¯Êý
¡¤LinuxºËÐijöÏÖȨÏÞÀ©Õż°¼ÇÒäÌå
¡¤Linux 2.6±¾µØÈ¨ÏÞÌáÉý©¶´
Google
 
µÚ°ËÕ É豸Çý¶¯
[ ×÷Õß:LinuxÁªÃËÊÕ¼¯  ¼ÓÈëʱ¼ä:2006-06-22 20:24:00  À´×Ô:LinuxÁªÃËÊÕ¼¯ ]
²Ù×÷ϵͳµÄÄ¿µÄÖ®Ò»¾ÍÊǽ«ÏµÍ³Ó²¼þÉ豸ϸ½Ú´ÓÓû§ÊÓÏßÖÐÒþ²ØÆðÀ´¡£ÀýÈçÐéÄâÎļþϵͳ¶Ô¸÷ÖÖÀàÐÍÒѰ²×°µÄÎļþϵͳÌṩÁËͳһµÄÊÓͼ¶øÆÁ±ÎÁ˾ßÌåµ×²ãϸ½Ú¡£±¾Õ½«ÃèÐðLinuxºËÐĶÔϵͳÖÐÎïÀíÉ豸µÄ¹ÜÀí¡£

CPU²¢²»ÊÇϵͳÖÐΨһµÄÖÇÄÜÉ豸£¬Ã¿¸öÎïÀíÉ豸¶¼ÓµÓÐ×Ô¼ºµÄ¿ØÖÆÆ÷¡£¼üÅÌ¡¢Êó±êºÍ´®ÐпÚÓÉÒ»¸ö¸ß¼¶I/OоƬͳһ¹ÜÀí£¬IDE¿ØÖÆÆ÷¿ØÖÆIDEÓ²Å̶øSCSI¿ØÖÆÆ÷¿ØÖÆSCSIÓ²Å̵ȵȡ£Ã¿¸öÓ²¼þ¿ØÖÆÆ÷¶¼Óи÷×ԵĿØÖƺÍ״̬¼Ä´æÆ÷£¨CSR£©²¢ÇÒ¸÷²»Ïàͬ¡£ÀýÈçAdaptec 2940 SCSI¿ØÖÆÆ÷µÄCSRÓëNCR 810 SCSI¿ØÖÆÆ÷ÍêÈ«²»Ò»Ñù¡£ÕâЩCSR±»ÓÃÀ´Æô¶¯ºÍÍ£Ö¹£¬³õʼ»¯É豸¼°¶ÔÉ豸½øÐÐÕï¶Ï¡£ÔÚLinuxÖйÜÀíÓ²¼þÉ豸¿ØÖÆÆ÷µÄ´úÂ벢ûÓзÅÖÃÔÚÿ¸öÓ¦ÓóÌÐòÖжøÊÇÓÉÄÚºËͳһ¹ÜÀí¡£ÕâЩ´¦ÀíºÍ¹ÜÀíÓ²¼þ¿ØÖÆÆ÷µÄÈí¼þ¾ÍÊÇÉ豸Çý¶¯¡£LinuxºËÐÄÉ豸Çý¶¯ÊÇÒ»×éÔËÐÐÔÚÌØÈ¨¼¶ÉϵÄÄÚ´æ×¤Áôµ×²ãÓ²¼þ´¦Àí¹²Ïí¿â¡£ÕýÊÇËüÃǸºÔð¹ÜÀí¸÷¸öÉ豸¡£

É豸Çý¶¯µÄÒ»¸ö»ù±¾ÌØÕ÷ÊÇÉ豸´¦ÀíµÄ³éÏó¸ÅÄî¡£ËùÓÐÓ²¼þÉ豸¶¼±»¿´³ÉÆÕͨÎļþ£»¿ÉÒÔͨ¹ýºÍ²Ù×ÝÆÕͨÎļþÏàͬµÄ±ê׼ϵͳµ÷ÓÃÀ´´ò¿ª¡¢¹Ø±Õ¡¢¶ÁÈ¡ºÍдÈëÉ豸¡£ÏµÍ³ÖÐÿ¸öÉ豸¶¼ÓÃÒ»ÖÖÌØÊâµÄÉ豸Ïà¹ØÎļþÀ´±íʾ(device special file)£¬ÀýÈçϵͳÖеÚÒ»¸öIDEÓ²Å̱»±íʾ³É/dev/hda¡£¿é£¨´ÅÅÌ£©É豸ºÍ×Ö·ûÉ豸µÄÉ豸Ïà¹ØÎļþ¿ÉÒÔͨ¹ýmknodÃüÁîÀ´´´½¨£¬²¢Ê¹ÓÃÖ÷´ÓÉ豸ºÅÀ´ÃèÐð´ËÉ豸¡£ÍøÂçÉ豸ҲÓÃÉ豸Ïà¹ØÎļþÀ´±íʾ£¬µ«LinuxѰÕҺͳõʼ»¯ÍøÂçÉ豸ʱ²Å½¨Á¢ÕâÖÖÎļþ¡£ÓÉͬһ¸öÉ豸Çý¶¯¿ØÖƵÄËùÓÐÉ豸¾ßÓÐÏàͬµÄÖ÷É豸ºÅ¡£´ÓÉ豸ºÅÔò±»ÓÃÀ´Çø·Ö¾ßÓÐÏàͬÖ÷É豸ºÅÇÒÓÉÏàͬÉ豸Çý¶¯¿ØÖƵIJ»Í¬É豸¡£ ÀýÈçÖ÷IDEÓ²Å̵Äÿ¸ö·ÖÇøµÄ´ÓÉ豸ºÅ¶¼²»Ïàͬ¡£Èç/dev/hda2±íʾÖ÷IDEÓ²Å̵ÄÖ÷É豸ºÅΪ3¶ø´ÓÉ豸ºÅΪ2¡£Linuxͨ¹ýʹÓÃÖ÷´ÓÉ豸ºÅ½«°üº¬ÔÚϵͳµ÷ÓÃÖеģ¨È罫һ¸öÎļþϵͳmountµ½Ò»¸ö¿éÉ豸£©É豸Ïà¹ØÎļþÓ³Éäµ½É豸µÄÉ豸Çý¶¯ÒÔ¼°´óÁ¿ÏµÍ³±í¸ñÖУ¬Èç×Ö·ûÉ豸±í£¬chrdevs¡£

LinuxÖ§³ÖÈýÀàÓ²¼þÉ豸£º×Ö·û¡¢¿é¼°ÍøÂçÉ豸¡£×Ö·ûÉ豸ָÄÇЩÎÞÐ軺³åÖ±½Ó¶ÁдµÄÉ豸£¬ÈçϵͳµÄ´®¿ÚÉ豸/dev/cua0ºÍ/dev/cua1¡£¿éÉ豸Ôò½öÄÜÒÔ¿éΪµ¥Î»¶Áд£¬µäÐ͵Ŀé´óСΪ512»ò1024×Ö½Ú¡£¿éÉ豸µÄ´æÈ¡ÊÇͨ¹ýbuffer cacheÀ´½øÐв¢ÇÒ¿ÉÒÔ½øÐÐËæ»ú·ÃÎÊ£¬¼´²»¹Ü¿éλÓÚÉ豸Öк䦶¼¿ÉÒÔ¶ÔÆä½øÐжÁд¡£¿éÉ豸¿ÉÒÔͨ¹ýÆäÉ豸Ïà¹ØÎļþ½øÐзÃÎÊ£¬µ«¸üΪƽ³£µÄ·ÃÎÊ·½·¨ÊÇͨ¹ýÎļþϵͳ¡£Ö»ÓпéÉ豸²ÅÄÜÖ§³Ö¿É°²×°Îļþϵͳ¡£ÍøÂçÉ豸¿ÉÒÔͨ¹ýBSDÌ×½Ó¿Ú·ÃÎÊ£¬ÎÒÃǽ«ÔÚÍøÂçÒ»ÕÂÖÐÌÖÂÛÍøÂç×Óϵͳ¡£

LinuxºËÐÄÖÐËä´æÔÚÐí¶à²»Í¬µÄÉ豸Çý¶¯µ«ËüÃǾßÓÐһЩ¹²ÐÔ£º

ºËÐÄ´úÂë
É豸Çý¶¯ÊǺËÐĵÄÒ»²¿·Ö£¬ÏóºËÐÄÖÐÆäËü´úÂëÒ»Ñù£¬³ö´í½«µ¼ÖÂϵͳµÄÑÏÖØËðÉË¡£Ò»¸ö±àÐ´Ææ²îµÄÉ豸Çý¶¯ÉõÖÁÄÜʹϵͳ±ÀÀ£²¢µ¼ÖÂÎļþϵͳµÄÆÆ»µºÍÊý¾Ý¶ªÊ§¡£
ºËÐĽӿÚ
É豸Çý¶¯±ØÐëΪLinuxºËÐÄ»òÕ߯ä´ÓÊô×ÓϵͳÌṩһ¸ö±ê×¼½Ó¿Ú¡£ÀýÈçÖÕ¶ËÇý¶¯ÎªLinuxºËÐÄÌṩÁËÒ»¸öÎļþI/O½Ó¿Ú¶øSCSIÉ豸Çý¶¯ÎªSCSI×ÓϵͳÌṩÁËÒ»¸öSCSIÉ豸½Ó¿Ú£¬Í¬Ê±´Ë×ÓϵͳΪºËÐÄÌṩÁËÎļþI/OºÍbuffer cache½Ó¿Ú¡£
ºËÐÄ»úÖÆÓë·þÎñ

É豸Çý¶¯¿ÉÒÔʹÓñê×¼µÄºËÐÄ·þÎñÈçÄÚ´æ·ÖÅä¡¢ÖжϷ¢Ëͺ͵ȴý¶ÓÁеȵȡ£

¶¯Ì¬¿É¼ÓÔØ
¶àÊýLinuxÉ豸Çý¶¯¿ÉÒÔÔÚºËÐÄÄ£¿é·¢³ö¼ÓÔØÇëÇóʱ¼ÓÔØ£¬Í¬Ê±ÔÚ²»ÔÙʹÓÃÊ±Ð¶ÔØ¡£ÕâÑùºËÐÄÄÜÓÐЧµØÀûÓÃϵͳ×ÊÔ´¡£
¿ÉÅäÖÃ
LinuxÉ豸Çý¶¯¿ÉÒÔÁ¬½Óµ½ºËÐÄÖС£µ±ºËÐı»±àÒëʱ£¬ÄÄЩºËÐı»Á¬ÈëºËÐÄÊÇ¿ÉÅäÖõġ£
¶¯Ì¬ÐÔ
µ±ÏµÍ³Æô¶¯¼°É豸Çý¶¯³õʼ»¯Ê±½«²éÕÒËüËù¿ØÖƵÄÓ²¼þÉ豸¡£Èç¹ûij¸öÉ豸µÄÇý¶¯ÎªÒ»¸ö¿Õ¹ý³Ì²¢²»»áÓÐʲôÎÊÌâ¡£´Ëʱ´ËÉ豸Çý¶¯½ö½öÊÇÒ»¸öÈßÓàµÄ³ÌÐò£¬Ëü³ýÁË»áÕ¼ÓÃÉÙÁ¿ÏµÍ³ÄÚ´æÍâ²»»á¶ÔϵͳÔì³ÉʲôΣº¦¡£

8.1  ÂÖѯÓëÖжÏ

É豸±»Ö´ÐÐij¸öÃüÁîʱ£¬Èç¡°½«¶ÁÈ¡´ÅÍ·ÒÆ¶¯µ½ÈíÅ̵ĵÚ42ÉÈÇøÉÏ¡±£¬É豸Çý¶¯¿ÉÒÔ´ÓÂÖѯ·½Ê½ºÍÖжϷ½Ê½ÖÐÑ¡ÔñÒ»ÖÖÒÔÅжÏÉ豸ÊÇ·ñÒѾ­Íê³É´ËÃüÁî¡£

ÂÖѯ·½Ê½Òâζ×ÅÐèÒª¾­³£¶ÁÈ¡É豸µÄ״̬£¬Ò»Ö±µ½É豸״̬±íÃ÷ÇëÇóÒѾ­Íê³ÉΪֹ¡£Èç¹ûÉ豸Çý¶¯±»Á¬½Ó½øÈëºËÐÄ£¬ÕâʱʹÓÃÂÖѯ·½Ê½½«»á´øÀ´ÔÖÄÑÐÔºó¹û£ººËÐĽ«Ôڴ˹ý³ÌÖÐÎÞËùÊÂÊ£¬Ö±µ½É豸Íê³É´ËÇëÇó¡£µ«ÊÇÂÖѯÉ豸Çý¶¯¿ÉÒÔͨ¹ýʹÓÃϵͳ¶¨Ê±Æ÷£¬Ê¹ºËÐÄÖÜÆÚÐÔµ÷ÓÃÉ豸Çý¶¯ÖеÄij¸öÀý³ÌÀ´¼ì²éÉ豸״̬¡£ ¶¨Ê±Æ÷¹ý³Ì¿ÉÒÔ¼ì²éÃüÁî״̬¼°LinuxÈíÅÌÇý¶¯µÄ¹¤×÷Çé¿ö¡£Ê¹Óö¨Ê±Æ÷ÊÇÂÖѯ·½Ê½ÖÐ×îºÃµÄÒ»ÖÖ£¬µ«¸üÓÐЧµÄ·½·¨ÊÇʹÓÃÖжϡ£

»ùÓÚÖжϵÄÉ豸Çý¶¯»áÔÚËüËù¿ØÖƵÄÓ²¼þÉ豸ÐèÒª·þÎñʱÒý·¢Ò»¸öÓ²¼þÖжϡ£ÈçÒÔÌ«ÍøÉ豸Çý¶¯´ÓÍøÂçÉϽÓÊÕµ½Ò»¸öÒÔÌ«Êý¾Ý±¨Ê±¶¼½«ÒýÆðÖжϡ£LinuxºËÐÄÐèÒª½«À´×ÔÓ²¼þÉ豸µÄÖжϴ«µÝµ½ÏàÓ¦µÄÉ豸Çý¶¯¡£Õâ¸ö¹ý³ÌÓÉÉ豸Çý¶¯ÏòºËÐÄ×¢²áÆäʹÓõÄÖжÏÀ´Ð­ÖúÍê³É¡£´ËÖжϴ¦ÀíÀý³ÌµÄµØÖ·ºÍÖжϺŶ¼½«±»¼Ç¼ÏÂÀ´¡£ÔÚ/proc/interruptsÎļþÖÐÄã¿ÉÒÔ¿´µ½É豸Çý¶¯Ëù¶ÔÓ¦µÄÖжϺż°ÀàÐÍ£º

 0:     727432   timer
 1:      20534   keyboard
 2:          0   cascade
 3:      79691 + serial
 4:      28258 + serial
 5:          1   sound blaster
11:      20868 + aic7xxx
13:          1   math error
14:        247 + ide0
15:        170 + ide1

¶ÔÖжÏ×ÊÔ´µÄÇëÇóÔÚÇý¶¯³õʼ»¯Ê±¾ÍÒѾ­Íê³É¡£×÷ΪIBM PCÌåϵ½á¹¹µÄÒŲú£¬ÏµÍ³ÖÐÓÐЩÖжÏÒѾ­¹Ì¶¨¡£ÀýÈçÈíÅÌ¿ØÖÆÆ÷×ÜÊÇʹÓÃÖжÏ6¡£ÆäËüÖжϣ¬ÈçPCIÉ豸Öжϣ¬ÔÚÆô¶¯Ê±½øÐж¯Ì¬·ÖÅä¡£É豸Çý¶¯±ØÐëÔÚÈ¡µÃ¶Ô´ËÖжϵÄËùÓÐȨ֮ǰÕÒµ½ËüËù¿ØÖÆÉ豸µÄÖжϺţ¨IRQ£©¡£Linuxͨ¹ýÖ§³Ö±ê×¼µÄPCI BIOS»Øµ÷º¯ÊýÀ´È·¶¨ÏµÍ³ÖÐPCIÉ豸µÄÖжÏÐÅÏ¢£¬°üÀ¨ÆäIRQºÅ¡£

ÈçºÎ½«ÖжϷ¢Ë͸øCPU±¾ÉíÈ¡¾öÓÚÌåϵ½á¹¹£¬µ«ÊÇÔÚ¶àÊýÌåϵ½á¹¹ÖУ¬ÖжÏÒÔÒ»ÖÖÌØÊâģʽ·¢ËÍͬʱ»¹½«×èֹϵͳÖÐÆäËüÖжϵIJúÉú¡£É豸Çý¶¯ÔÚÆäÖжϴ¦Àí¹ý³ÌÖÐ×÷µÄÔ½ÉÙÔ½ºÃ£¬ÕâÑùLinuxºËÐĽ«ÄܺܿìµÄ´¦ÀíÍêÖжϲ¢·µ»ØÖжÏǰµÄ״̬ÖС£ÎªÁËÔÚ½ÓÊÕÖжÏʱÍê³É´óÁ¿¹¤×÷£¬É豸Çý¶¯±ØÐëÄܹ»Ê¹ÓúËÐĵĵײ㴦ÀíÀý³Ì»òÕßÈÎÎñ¶ÓÁÐÀ´¶ÔÒÔºóÐèÒªµ÷ÓõÄÄÇЩÀý³Ì½øÐÐÅŶӡ£

8.2  Ö±½ÓÄÚ´æ·ÃÎÊ (DMA)

Êý¾ÝÁ¿±È½ÏÉÙʱ£¬Ê¹ÓÃÖжÏÇý¶¯É豸Çý¶¯³ÌÐòÄÜ˳ÀûµØÔÚÓ²¼þÉ豸ºÍÄÚ´æÖ®¼ä½»»»Êý¾Ý¡£ÀýÈç²¨ÌØÂÊΪ9600µÄmodem¿ÉÒÔÿºÁÃë´«ÊäÒ»¸ö×Ö·û¡£Èç¹ûÓ²¼þÉ豸ÒýÆðÖжϺ͵÷ÓÃÉ豸Çý¶¯ÖжÏËùÏûºÄµÄÖжÏʱÑӱȽϴó£¨Èç2ºÁÃ룩ÔòϵͳµÄ×ÛºÏÊý¾Ý´«ÊäÂÊ»áºÜµÍ¡£Ôò9600²¨ÌØÂÊmodemµÄÊý¾Ý´«ÊäÖ»ÄÜÀûÓÃ0.002%µÄCPU´¦Àíʱ¼ä¡£¸ßËÙÉ豸ÈçÓ²ÅÌ¿ØÖÆÆ÷»òÕßÒÔÌ«ÍøÉ豸Êý¾Ý´«ÊäÂʽ«¸ü¸ß¡£SCSIÉ豸µÄÊý¾Ý´«ÊäÂʿɴﵽÿÃë40M×Ö½Ú¡£

Ö±½ÓÄÚ´æ´æÈ¡£¨DMA£©Êǽâ¾ö´ËÀàÎÊÌâµÄÓÐЧ·½·¨¡£DMA¿ØÖÆÆ÷¿ÉÒÔÔÚ²»ÊÜ´¦ÀíÆ÷¸ÉÔ¤µÄÇé¿öÏÂÔÚÉ豸ºÍϵͳÄÚ´æÖ®¼ä¸ßËÙ´«ÊäÊý¾Ý¡£PC»úµÄISA DMA¿ØÖÆÆ÷ÓÐ8¸öDMAͨµÀ£¬ÆäÖÐÆß¸ö¿ÉÒÔÓÉÉ豸Çý¶¯Ê¹Óá£Ã¿¸öDMAͨµÀ¾ßÓÐÒ»¸ö16λµÄµØÖ·¼Ä´æÆ÷ºÍÒ»¸ö16λµÄ¼ÇÊý¼Ä´æÆ÷¡£ÎªÁ˳õʼ»¯Êý¾Ý´«Ê䣬É豸Çý¶¯½«ÉèÖÃDMAͨµÀµØÖ·ºÍ¼ÇÊý¼Ä´æÆ÷ÒÔÃèÐðÊý¾Ý´«Êä·½ÏòÒÔ¼°¶ÁдÀàÐÍ¡£È»ºó֪ͨÉ豸¿ÉÒÔÔÚÈκÎʱºòÆô¶¯DMA²Ù×÷¡£´«Êä½áÊøÊ±É豸½«ÖжÏPC¡£ÔÚ´«Êä¹ý³ÌÖÐCPU¿ÉÒÔתȥִÐÐÆäËûÈÎÎñ¡£

É豸Çý¶¯Ê¹ÓÃDMAʱ±ØÐëÊ®·ÖСÐÄ¡£Ê×ÏÈDMA¿ØÖÆÆ÷ûÓÐÈκÎÐéÄâÄÚ´æµÄ¸ÅÄËüÖ»´æÈ¡ÏµÍ³ÖеÄÎïÀíÄڴ档ͬʱÓÃ×÷DMA´«Ê仺³åµÄÄÚ´æ¿Õ¼ä±ØÐëÊÇÁ¬ÐøÎïÀíÄÚ´æ¿é¡£ÕâÒâζ×Ų»ÄÜÔÚ½ø³ÌÐéÄâµØÖ·¿Õ¼äÄÚÖ±½ÓʹÓÃDMA¡£µ«ÊÇÄã¿ÉÒÔ½«½ø³ÌµÄÎïÀíÒ³Ãæ¼ÓËøÒÔ·ÀÖ¹ÔÚDMA²Ù×÷¹ý³ÌÖб»½»»»µ½½»»»É豸ÉÏÈ¥¡£ÁíÍâDMA¿ØÖÆÆ÷Ëù´æÈ¡ÎïÀíÄÚ´æÓÐÏÞ¡£DMAͨµÀµØÖ·¼Ä´æÆ÷´ú±íDMAµØÖ·µÄ¸ß16λ¶øÒ³Ãæ¼Ä´æÆ÷¼Ç¼µÄÊÇÆäÓà8λ¡£ËùÒÔDMAÇëÇó±»ÏÞÖÆµ½ÄÚ´æ×îµÍ16M×Ö½ÚÖС£

DMAͨµÀÊǷdz£Õä¹óµÄ×ÊÔ´£¬Ò»¹²²ÅÓÐ7¸ö²¢ÇÒ»¹²»Äܹ»ÔÚÉ豸Çý¶¯¼ä¹²Ïí¡£ÓëÖжÏÒ»Ñù£¬É豸Çý¶¯±ØÐëÕÒµ½ËüÓ¦¸ÃʹÓÃÄǸöDMAͨµÀ¡£ÓÐЩÉ豸ʹÓù̶¨µÄDMAͨµÀ¡£ÀýÈçÈíÅÌÉ豸×ÜʹÓÃDMAͨµÀ2¡£ÓÐʱÉ豸µÄDMAͨµÀ¿ÉÒÔÓÉÌøÏßÀ´ÉèÖã¬Ðí¶àÒÔÌ«ÍøÉ豸ʹÓÃÕâÖÖ¼¼Êõ¡£Éè¼ÆÁé»îµÄÉ豸½«¸æËßϵͳËü½«Ê¹ÓÃÄĸöDMAͨµÀ£¬´ËʱÉ豸Çý¶¯½öÐèÒª´ÓDMAͨµÀÖÐѡȡ¼´¿É¡£

Linuxͨ¹ýdma_chan£¨Ã¿¸öDMAͨµÀÒ»¸ö£©Êý×éÀ´¸ú×ÙDMAͨµÀµÄʹÓÃÇé¿ö¡£dma_chan½á¹¹Öаüº¬ÓÐÁ½¸öÓò£¬Ò»¸öÊÇÖ¸Ïò´ËDMAͨµÀÓµÓÐÕßµÄÖ¸Õ룬ÁíÒ»¸öָʾDMAͨµÀÊÇ·ñÒѾ­±»·ÖÅä³öÈ¥¡£µ±ÇÃÈëcat /proc/dma´òÓ¡³öÀ´µÄ½á¹û¾ÍÊÇdma_chan½á¹¹Êý×é¡£

8.3  ÄÚ´æ

É豸Çý¶¯±ØÐë½÷É÷ʹÓÃÄÚ´æ¡£ÓÉÓÚËüÊôÓÚºËÐÄ,ËùÒÔ²»ÄÜʹÓÃÐéÄâÄڴ档ϵͳ½ÓÊÕµ½ÖжÏÐźÅʱ»òµ÷¶Èµ×²ãÈÎÎñ¶ÓÁд¦Àí¹ý³Ìʱ£¬É豸Çý¶¯½«¿ªÊ¼ÔËÐУ¬¶øµ±Ç°½ø³Ì»á·¢Éú¸Ä±ä¡£É豸Çý¶¯²»ÄÜÒÀÀµÓÚÈκÎÔËÐеÄÌØ¶¨½ø³Ì£¬¼´Ê¹µ±Ç°ÊÇΪ¸Ã½ø³Ì¹¤×÷¡£ÓëºËÐĵįäËü²¿·ÖÒ»Ñù£¬É豸Çý¶¯Ê¹ÓÃÊý¾Ý½á¹¹À´ÃèÐðËüËù¿ØÖƵÄÉ豸¡£ÕâЩ½á¹¹±»É豸Çý¶¯´úÂëÒÔ¾²Ì¬·½Ê½·ÖÅ䣬µ«»áÔö´óºËÐĶøÒýÆð¿Õ¼äµÄÀË·Ñ¡£¶àÊýÉ豸Çý¶¯Ê¹ÓúËÐÄÖзÇÒ³ÃæÄÚ´æÀ´´æ´¢Êý¾Ý¡£

LinuxΪÉ豸Çý¶¯ÌṩÁËÒ»×éºËÐÄÄÚ´æ·ÖÅäÓë»ØÊÕ¹ý³Ì¡£ºËÐÄÄÚ´æÒÔ2µÄ´ÎÃÝ´óСµÄ¿éÀ´·ÖÅä¡£Èç512»ò128×Ö½Ú£¬´Ëʱ¼´Ê¹É豸Çý¶¯µÄÐèÇóСÓÚÕâ¸öÊýÁ¿Ò²»á·ÖÅäÕâô¶à¡£ËùÒÔÉ豸Çý¶¯µÄÄÚ´æ·ÖÅäÇëÇó¿ÉµÃµ½ÒÔ¿é´óСΪ±ß½çµÄÄÚ´æ¡£ÕâÑùºËÐĽøÐпÕÏпé×éºÏ¸ü¼ÓÈÝÒס£

ÇëÇó·ÖÅäºËÐÄÄÚ´æÊ±LinuxÐèÒªÍê³ÉÐí¶à¶îÍâµÄ¹¤×÷¡£Èç¹ûϵͳÖпÕÏÐÄÚ´æÊýÁ¿½ÏÉÙ£¬Ôò¿ÉÄÜÐèÒª¶ªÆúЩÎïÀíÒ³Ãæ»ò½«ÆäдÈë½»»»É豸¡£Ò»°ãÇé¿öÏÂLinux½«¹ÒÆðÇëÇóÕß²¢½«´Ë½ø³Ì·ÅÖõ½µÈ´ý¶ÓÁÐÖÐÖ±µ½ÏµÍ³ÖÐÓÐ×ã¹»µÄÎïÀíÄÚ´æÎªÖ¹¡£²»ÊÇËùÓеÄÉ豸Çý¶¯£¨»òÕßÕæÕýµÄLinuxºËÐÄ´úÂ룩¶¼»á¾­ÀúÕâ¸ö¹ý³Ì£¬ËùÒÔÈç·ÖÅäºËÐÄÄÚ´æµÄÇëÇó²»ÄÜÁ¢¿ÌµÃµ½Âú×ã,Ôò´ËÇëÇó¿ÉÄÜ»áʧ°Ü¡£Èç¹ûÉ豸Çý¶¯Ï£ÍûÔÚ´ËÄÚ´æÖнøÐÐDMA£¬ÄÇôËü±ØÐ뽫´ËÄÚ´æÉèÖÃΪDMAʹÄܵġ£ÕâÒ²ÊÇΪʲôÊÇLinuxºËÐĶø²»ÊÇÉ豸Çý¶¯ÐèÒªÁ˽âϵͳÖеÄDMAʹÄÜÄÚ´æµÄÔ­Òò¡£

8.4  É豸Çý¶¯ÓëºËÐĵĽӿÚ

LinuxºËÐÄÓëÉ豸Çý¶¯Ö®¼ä±ØÐëÓÐÒ»¸öÒÔ±ê×¼·½Ê½½øÐл¥²Ù×÷µÄ½Ó¿Ú¡£Ã¿Ò»ÀàÉ豸Çý¶¯£º×Ö·ûÉ豸¡¢¿éÉ豸 ¼°ÍøÂçÉ豸¶¼ÌṩÁËͨÓýӿÚÒÔ±ãÔÚÐèҪʱΪºËÐÄÌṩ·þÎñ¡£ÕâÖÖͨÓýӿÚʹµÃºËÐÄ¿ÉÒÔÒÔÏàͬµÄ·½Ê½À´¶Ô´ý²»Í¬µÄÉ豸¼°É豸Çý¶¯¡£ÈçSCSIºÍIDEÓ²Å̵ÄÇø±ðºÜ´óµ«Linux¶ÔËüÃÇʹÓÃÏàͬµÄ½Ó¿Ú¡£

Linux¶¯Ì¬ÐÔºÜÇ¿¡£Ã¿´ÎLinuxºËÐÄÆô¶¯Ê±ÈçÓöµ½²»Í¬µÄÎïÀíÉ豸½«ÐèÒª²»Í¬µÄÎïÀíÉ豸Çý¶¯¡£LinuxÔÊÐíͨ¹ýÅäÖýű¾ÔÚºËÐÄÖØ½¨Ê±½«É豸Çý¶¯°üº¬ÔÚÄÚ¡£É豸Çý¶¯ÔÚÆô¶¯³õʼ»¯Ê±¿ÉÄܻᷢÏÖϵͳÖиù±¾Ã»ÓÐÈκÎÓ²¼þÐèÒª¿ØÖÆ¡£ÆäËüÉ豸Çý¶¯¿ÉÒÔÔÚ±ØÒªÊ±×÷ΪºËÐÄÄ£¿é¶¯Ì¬¼ÓÔØµ½¡£ÎªÁË´¦ÀíÉ豸Çý¶¯µÄ¶¯Ì¬ÊôÐÔ£¬É豸Çý¶¯ÔÚ³õʼ»¯Ê±½«Æä×¢²áµ½ºËÐÄÖÐÈ¥¡£Linuxά»¤×ÅÒÑ×¢²áÉ豸Çý¶¯±í×÷ΪºÍÉ豸Çý¶¯µÄ½Ó¿Ú¡£ÕâЩ±íÖаüº¬Ö§³Ö´ËÀàÉ豸Àý³ÌµÄÖ¸ÕëºÍÏà¹ØÐÅÏ¢¡£

8.4.1  ×Ö·ûÉ豸

zKALinuxÁªÃË
ͼ8.1 ×Ö·ûÉ豸

×Ö·ûÉ豸ÊÇLinuxÉ豸ÖÐ×î¼òµ¥µÄÒ»ÖÖ¡£Ó¦ÓóÌÐò¿ÉÒԺʹæÈ¡ÎļþÏàͬµÄϵͳµ÷ÓÃÀ´´ò¿ª¡¢¶Áд¼°¹Ø±ÕËü¡£¼´Ê¹´ËÉ豸Êǽ«LinuxϵͳÁ¬½Óµ½ÍøÂçÖеÄPPPºǫ́½ø³ÌµÄmodemÒ²ÊÇÈç´Ë¡£×Ö·ûÉ豸³õʼ»¯Ê±£¬ËüµÄÉ豸Çý¶¯Í¨¹ýÔÚdevice_struct½á¹¹µÄchrdevsÊý×éÖÐÌí¼ÓÒ»¸öÈë¿ÚÀ´½«Æä×¢²áµ½LinuxºË ÐÄÉÏ¡£É豸µÄÖ÷É豸±êÖ¾·ûÓÃÀ´¶Ô´ËÊý×é½øÐÐË÷Òý£¨Èç¶ÔttyÉ豸µÄË÷Òý4£©¡£É豸µÄÖ÷É豸±êÖ¾·ûÊǹ̶¨µÄ¡£

chrdevsÊý×éÿ¸öÈë¿ÚÖеÄdevice_structÊý¾Ý½á¹¹°üº¬Á½¸öÔªËØ£»Ò»¸öÖ¸ÏòÒÑ×¢²áµÄÉ豸Çý¶¯Ãû³Æ£¬ÁíÒ»¸öÔòÊÇÖ¸ÏòÒ»×éÎļþ²Ù×÷Ö¸Õë¡£ËüÃÇÊÇλÓÚ´Ë×Ö·ûÉ豸Çý¶¯ÄÚ²¿µÄÎļþ²Ù×÷Àý³ÌµÄµØÖ·Ö¸Õ룬ÓÃÀ´´¦ÀíÏà¹ØµÄÎļþ²Ù×÷Èç´ò¿ª¡¢¶ÁдÓë¹Ø±Õ¡£/proc/devicesÖÐ×Ö·ûÉ豸µÄÄÚÈÝÀ´×ÔchrdevsÊý×é¡£

µ±´ò¿ª´ú±í×Ö·ûÉ豸µÄ×Ö·ûÌØÊâÎļþʱ£¨Èç/dev/cua0£©£¬ºËÐıØÐë×÷ºÃ×¼±¸ÒÔ±ãµ÷ÓÃÏàÓ¦×Ö·ûÉ豸Çý¶¯µÄÎļþ²Ù×÷Àý³Ì¡£ÓëÆÕͨµÄĿ¼ºÍÎļþÒ»Ñù£¬Ã¿¸ö×Ö·ûÌØÊâÎļþÓÃÒ»¸öVFS½Úµã±íʾ¡£Ã¿¸ö×Ö·ûÌØÊâÎļþʹÓõÄVFS inodeºÍËùÓÐÉè±¸ÌØÊâÎļþÒ»Ñù£¬°üº¬×ÅÉ豸µÄÖ÷´Ó±êÖ¾·û¡ LinuxÁªÃËÊÕ¼¯ÕûÀí ,תÌùÇë±êÃ÷ԭʼÁ´½Ó,ÈçÓÐÈκÎÒÉÎÊ»¶Ó­À´±¾Õ¾LinuxÂÛ̳ÌÖÂÛ

·ÖÒ³£º[1] 2 3 4
¡¾ÆÀÂÛ¡¿¡¾¼ÓÈëÊղؼС¿¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿¡¾¹Ø±Õ¡¿
¡ù Ïà¹ØÁ´½Ó
ÎÞÏà¹ØÐÅÏ¢