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 kernel ¹ØÓÚkeyboard²¿·Ö
keyboard.c ÓÃÓÚ´¦ÀíºÍ¼üÅÌÏà¹ØµÄinput_handler¡£ÆäÖаüÀ¨ºóÐøµÄ¼üÂëת»»ºÍÊä³ö
atkbd.c ³£ÓõļüÅ̲¼¾Ö£¬ÓÃÓÚ»ñµÃɨÃèÂ룬²¢½«Æä·¢Ë͵½input_handler Á´±íÖÐ
struct input_handler kbd_handler; ¼´Îªinput_handler Á´±íÖеÄÒ»¸öhandler
Òªhook¼üÅÌ»òÕ߯äËûinput²ãϵÄÉ豸ÐÅÏ¢£¬¾ ......
Ê×ÏÈҪ˵Ã÷µÄÊÇÔÚLinuxϵͳÖУ¬¿ÉÖ´ÐÐÎļþûÓÐͳһµÄºó׺£¬ÏµÍ³´ÓÎļþµÄÊôÐÔÀ´Çø·Ö¿ÉÖ´ÐÐÎļþºÍ²»¿ÉÖ´ÐÐÎļþ¡£¶øgccÔòͨ¹ýºó׺À´Çø±ðÊäÈëÎļþµÄÀà±ð£¬ÏÂÃæÎÒÃÇÀ´½éÉÜgccËù×ñѵIJ¿·ÖÔ¼¶¨¹æÔò¡£Ò»°ã
.cΪºó׺µÄÎļþ£¬CÓïÑÔÔ´´úÂëÎļþ£»
.aΪºó׺µÄÎļþ£¬ÊÇÓÉÄ¿±êÎļþ¹¹³ÉµÄµµ°¸¿âÎļþ£»
.C£¬.cc»ò.cxxΪºó׺µÄÎļþ£¬ÊÇC ......
ΪÁË·½Ã棬ÎÒдÁ˸ö½Å±¾×Ô¶¯sshµÇ¼Զ¶Ë»úÆ÷£¬ÈçÏ£¬Õâ¸ö½Å±¾ÐèÒª°²×°expect°ü
================================
#!/usr/bin/expect
set timeout 30
spawn ssh -l root 192.168.1.117
expect "password:"
send "nopasswd\r"
interact
================================
set timeout 30
ÉèÖÃ ......
from: http://yangsq.javaeye.com/blog/162649
ƽʱµÄÍŶӿª·¢£¬ÉÙ²»ÁËÒªÓÃÒ»¸öÐ×÷¹¤¾ß¡£¶ÔÓÚÒÔǰ£¬ÎÞÒÉcvsÊǸöÎÞ´íµÄÑ¡Ôñ£¨ÏñIBMµÄÈ«Çò´úÂëά»¤£©¡£µ«ÊÇ£¬¿Æ¼¼ÔÚ·¢Õ¹Âð£¬ÏÖÔÚÓÐÁ˸üºÃµÄsvnÁË£¬ËùÒÔÖ±½Ó¾ÍÊÇsvn°É¡£ÓйØsvnµÄ¾ßÌåÐÅÏ¢¿ÉÒÔÉÏËüµÄ¹ÙÍø»òwww.subversion.org.cn
ÍøÉϹØÓÚsvnµÄÒ²²»ÉÙ£¬²»¹ý¸Ð¾õ´ó¶¼³ö× ......