LinuxÄں˵ÄPCI×ÜÏßÇý¶¯³ÌʽµÄʵÏÖ·ÖÎö±Ê¼Ç
§1£®PCI×ÜÏßÌåϵ½á¹¹¸ÅÊö
PCI×ÜÏßÌåϵ½á¹¹ÊÇÒ»ÖÖ²ã´ÎʽµÄ£¨Hierarchical£©Ìåϵ½á¹¹¡£ÔÚÕâÖÖ²ã´ÎʽÌåϵ½á¹¹ÖУ¬PCIÇÅÉ豸ռ¾Ý×ÅÖØÒªµÄµØ룬Ëû½«¸¸×ÜÏߺÍ×Ó×ÜÏßÁ¬½ÓÔÚÒ»Æ𣬴ӶøʹÕû¸öϵͳ¿´ÆðÀ´ÏñÒ»¿Åµ¹ÖõÄÊ÷Ðͽṹ¡£Ê÷µÄ¶¥¶ËÊÇϵͳµÄCPU£¬Ëûͨ¹ýÒ»¸ö½ÏΪÌرðµÄPCIÇÅÉ豸??Host£¯PCIÇÅÉ豸ºÍ¸ùPCI×ÜÏߣ¨root pci bus£©Á¬½ÓÆðÀ´¡£ÏÂͼ1ÊǸö½ÏΪµäÐ͵ÄPCI×ÜÏßÌåϵ½á¹¹Í¼¡£
£¨Í¼1£©
´ÓÉÏͼҲÄÜ¿´³ö£¬×÷ΪһÖÖÌرðµÄPCIÉ豸£¬PCIÇÅÓÖ°üÀ¨ÒÔϼ¸ÖÖ£º
£¨1£©Host/PCIÇÅ£ºÓÃÓÚÁ¬½ÓCPUºÍPCI¸ù×ÜÏߣ¨×¢Ò⣬the first root bus×ÜÊDZàºÅΪ0£©¡£ÓÉÓÚÏñMemory ControllerÕâÑùµÄÉ豸ͨ³£Ò²±»¼¯³Éµ½Host/PCIÇÅÉ豸оƬÖУ¬Òò´Ë£¬Host/PCIÇÅͨ³£Ò²±»³ÆΪ“±±ÇÅоƬ×飨North Bridge Chipset£©”¡£
£¨2£©PCI/ISAÇÅ£ºÓÃÓÚÁ¬½ÓÒÅÁôµÄISA×ÜÏß¡£Í¨³££¬Ïñi8359AÖжϿØÖÆÆ÷ÕâÑùµÄÉ豸Ҳ»á±»¼¯³Éµ½PCI/ISAÇÅÉ豸ÖУ¬Òò´Ë£¬PCI/ISAÇÅͨ³£Ò²±»³ÆΪ“ÄÏÇÅоƬ×飨South Bridge Chipset£©”¡£
£¨3£©PCI-to-PCIÇÅ£ºÓÃÓÚÁ¬½ÓPCIÖ÷×ÜÏߣ¨primary bus£©ºÍ´Î×ÜÏߣ¨secondary bus£©¡£PCIÇÅËù´¦µÄPCI×ÜÏß³ÆΪ“Ö÷×ÜÏß”£¨¼´´Î×ÜÏߵĸ¸×ÜÏߣ©£¬ÇÅÉ豸ËùÁ¬½ÓµÄPCI×ÜÏß³ÆΪ“´Î×ÜÏß”£¨¼´Ö÷×ÜÏßµÄ×Ó×ÜÏߣ©¡£
¸ü¶àÀàÐ͵ÄPCIÇÅ·ÖÀàÄܲμû¡¶PCI Local Bus Specification¡·Revision2.2µÄ¸½Â¼D¡£
±¾ÎÄÒÔϲ¿·Ö¼ÙÉè¶ÁÕ߶ÔPCI×ÜÏ߹淶ÓÐÒ»¶¨µÄÁ˽⣬Òò´Ë±¾ÎÄÊÇΪÄÇЩÏëÒªÉîÈëÁ˽âLinuxÄÚºËÊÇÔõôʵÏÖPCI×ÜÏßÇý¶¯³ÌʽµÄKernel Hacker¶øдµÄ¡£
§2 PCI×ÜÏßÇý¶¯³ÌʽµÄºËÐÄÊý¾Ý½á¹¹
´ÓÇ°ÃæµÄͼ1ÄÜ¿´³ö£¬ÔÚPCI×ÜÏßÌåϵ½á¹¹ÖУ¬ÓÐÁ½¸öºËÐĵĸÅÄî´æÔÚ£ºPCI×ÜÏߺÍPCIÉ豸£¨ÇÅÉ豸ÊÇÒ»ÖÖÌرðµÄPCIÉ豸£©¡£»ùÓÚ¶ÔÕâÁ½¸öºËÐĸÅÄîµÄ³éÏó£¬Linux PCI×ÜÏßÇý¶¯³Ìʽ¶¨ÒåÁËÁ½¸ö¹Ø¼üµÄÊý¾Ý½á¹¹£º½á¹¹ÀàÐÍpci_busºÍ½á¹¹ÀàÐÍpci_dev£¬ÒÔ·Ö±ðÃèÊöpci×ÜÏߺÍpciÉ豸¡£ÔÚ´Ë»ù´¡ÉÏ£¬ Linux PCI×ÜÏßÇý¶¯³ÌʽÓÖ½«ÏµÍ³Öе±Ç°´æÔÚµÄËùÓÐPCI×ÜÏßµÄpci_bus½á¹¹×éÖ¯³ÉÒ»ÕŲã´ÎʽµÄÁ´±íͼ£¬ÏÔÈ»¸ÃÁ´±íͼµÄ¶¥²ãÁ´±íÊÇϵͳÖÐËùÓиù×ÜÏßµÄ pci_bus½á¹¹Á´±í£¬Òò´ËÓÃÒ»¸ölist_head½á¹¹ÀàÐ͵ÄÈ«¾Ö±äÁ¿pci_root_busesÀ´ÃèÊö¸ÃÁ´±íͼÖеĶ¥²ãÁ´±í±íÍ·£¬Ò²¼´¸ù×ÜÏßÁ´±íµÄ±íÍ·¡£ÏµÍ³Öе±Ç°´æÔÚµÄËùÓÐPCIÉ豸µÄpci_dev½á¹¹Ò²±»×éÖ¯³ÉÒ»ÌõÁ´±í£¬³ÆΪ“È«¾ÖpciÉ豸Á´±í”£¬ÓÃÒ»¸ölist_head½á¹¹ÀàÐ͵ıäÁ¿ pci_devicesÀ´±íʾ¸ÃÁ´±íµÄ±íÍ·¡£Í¨¹ýÕâÁ½Ìõ×ÜÁ´±í£¬LinuxÄں˾ÍÄܵõ
Ïà¹ØÎĵµ£º
¶ÔÓںܶàÆÕͨÓû§À´ËµLinuxÊÇÉñÃصģ¬ºÜ¶àÅóÓÑ´Ó½Ó´¥PC¿ªÊ¼½Ó´¥µÄ¾ÍÊÇwindow£¬Ò»ÇÐÏ°¹ß¶¼Ô´ÓÚwindow£¬ÅóÓÑLinuxϵͳ¼¸ºõÊøÊÖÎ޲ߣ¨±ÊÕß»ù±¾¾ÍÕâÑù£¬ËùÒÔÔÚŬÁ¦Ñ§Ï°ing…£©£¬ÄÇôLinuxµ½µ×ÄÜ×öЩʲô£¬ÓÖÓÐʲôÓÃ;ÄØ£¿ÈÃÎÒÃÇÀ´Ò»Ì½¾¿¾¹¡£ÊÀ½çÉÏ×î´óµÄ¼¼ÊõÖ§³Ö¡¢Èí¼þºÍÓ²¼þ¹«Ë¾Ã¿ÌìÊ¹Ó ......
×î½üͨ¶ÁÁËÒ»ÏÂÈí¼þµ÷ÊÔµÄÒÕÊõ£¨The art of debugging with gdb,ddd,eclipse£©£¬×ÜÌåÀ´ËµÊÇÒ»°ãÈëÃż¶µÄµ÷ÊÔÓÃÊé¡£ÎÒ¸öÈ˸оõ¶Ô³õѧgdbµÄÓÐÒ»¶¨µÄ×÷Óã¬ÓÐÀ¢ÓÚÌâÄ¿art¡£ÎÒ¼òµ¥µÄ×ö¸ö×ܽᣬ¹©ÈëÃŲο¼¡£Ö÷Òª½²ÁËgdbµÄ³£ÓÃÃüÁîÒÔ¼°³£¼ûbugµÄµ÷ÊÔ¡£
³£ÓÃÃüÁ
1. ÔÝÍ£»úÖÆ
a.¶ÏµãµÄʹÓÃ
& ......
±àÒë²¢°²×°Busybox 1.15.3µ½L inux2.6.11.1,Æô¶¯ÏµÍ³
½øÈëshell Ìáʾ: ./ash : can't access tty; job control turned off.
·ÖÎö·¢ÏÖ
/etc/inittabÎļþÖÐÓÐÒ»ÐÐ:
::askfirst:/bin/ash
ÕâÔÚbusybox 1.2.1ÔËÐÐÕý³£
ÐÞ¸ÄΪ
tty1::askfirst:/bin/ash
ºóÕý³£. ......
ɱËÀ½ø³Ì×ȫµÄ·½·¨Êǵ¥´¿Ê¹ÓÃkillÃüÁ²»¼ÓÐÞÊηû£¬²»´ø±êÖ¾¡£Ê×ÏÈʹÓÃps -efÃüÁîÈ·¶¨ÒªÉ±ËÀ½ø³ÌµÄPID£¬È»ºóÊäÈëÒÔÏÂÃüÁ
# kill pid
×¢ÊÍ£º±ê×¼µÄkillÃüÁîͨ³£¶¼ÄܴﵽĿµÄ£¬ÏÔʾZ״̬µÄ½ø³ÌÒѾËÀÍö¡£ÖÕÖ¹ÓÐÎÊÌâµÄ½ø³Ì£¬²¢°Ñ½ø³ÌµÄ×ÊÔ´ÊͷŸøϵͳ¡£È»¶ø£¬Èç¹û½ø³ÌÆô¶¯ÁË×Ó½ø³Ì£¬Ö ......