Linux USBÇý¶¯¿ò¼Ü·ÖÎöÏÂ
probeÊÇusb×Óϵͳ×Ô¶¯µ÷ÓõÄÒ»¸öº¯Êý£¬ÓÐUSBÉ豸½Óµ½Ó²¼þ¼¯ÏßÆ÷ʱ£¬usb×Óϵͳ»á¸ù¾Ýproduction IDºÍvendor IDµÄ×éºÏ»òÕßÉ豸µÄclass¡¢subclass¸úprotocolµÄ×éºÏÀ´Ê¶±ðÉ豸µ÷ÓÃÏàÓ¦Çý¶¯³ÌÐòµÄprobe£¨Ì½²â£©º¯Êý£¬¶ÔÓÚskeletonÀ´Ëµ£¬¾ÍÊÇskel_probe¡£ÏµÍ³»á´«µÝ¸ø̽²âº¯ÊýÒ»¸öusb_interface *¸úÒ»¸östruct usb_device_id *×÷Ϊ²ÎÊý¡£ËûÃÇ·Ö±ðÊǸÃUSBÉ豸µÄ½Ó¿ÚÃèÊö£¨Ò»°ã»áÊǸÃÉ豸µÄµÚ0ºÅ½Ó¿Ú£¬¸Ã½Ó¿ÚµÄĬÈÏÉèÖÃÒ²ÊǵÚ0ºÅÉèÖ㩸úËüµÄÉ豸IDÃèÊö£¨°üÀ¨Vendor ID¡¢Production IDµÈ£©¡£probeº¯Êý±È½Ï³¤£¬ÎÒÃÇ·Ö¶ÎÀ´·ÖÎöÕâ¸öº¯Êý£º
dev->udev = usb_get_dev(interface_to_usbdev(interface));
dev->interface = interface;
ÔÚ³õʼ»¯ÁËһЩ×ÊÔ´Ö®ºó£¬¿ÉÒÔ¿´µ½µÚÒ»¸ö¹Ø¼üµÄº¯Êýµ÷Ó×—interface_to_usbdev¡£ËûͬuoÒ»¸öusb_interfaceÀ´µÃµ½¸Ã½Ó¿ÚËùÔÚÉ豸µÄÉ豸ÃèÊö½á¹¹¡£±¾À´£¬ÒªµÃµ½Ò»¸öusb_deviceÖ»ÒªÓÃinterface_to_usbdev¾Í¹»ÁË£¬µ«ÒòΪҪÔö¼Ó¶Ô¸Ãusb_deviceµÄÒýÓüÆÊý£¬ÎÒÃÇÓ¦¸ÃÔÚ×öÒ»¸öusb_get_devµÄ²Ù×÷£¬À´Ôö¼ÓÒýÓüÆÊý£¬²¢ÔÚÊÍ·ÅÉ豸ʱÓÃusb_put_devÀ´¼õÉÙÒýÓüÆÊý¡£ÕâÀïÒª½âÊ͵ÄÊÇ£¬¸ÃÒýÓüÆÊýÖµÊǶԸÃusb_deviceµÄ¼ÆÊý£¬²¢²»ÊǶԱ¾Ä£¿éµÄ¼ÆÊý£¬±¾Ä£¿éµÄ¼ÆÊýÒªÓÉkrefÀ´Î¬»¤¡£ËùÒÔ£¬probeÒ»¿ªÊ¼¾ÍÓгõʼ»¯kref¡£ÊÂʵÉÏ£¬kref_init²Ù×÷²»µ¥Ö»³õʼ»¯kref£¬»¹½«ÆäÖÃÉè³É1¡£ËùÒÔÔÚ³ö´í´¦Àí´úÂëÖÐÓÐkref_put£¬Ëü°ÑkrefµÄ¼ÆÊý¼õ1£¬Èç¹ûkref¼ÆÊýÒѾΪ0£¬ÄÇôkref»á±»ÊÍ·Å¡£kref_putµÄµÚ¶þ¸ö²ÎÊýÊÇÒ»¸öº¯ÊýÖ¸Õ룬ָÏòÒ»¸öÇåÀíº¯Êý¡£×¢Ò⣬¸ÃÖ¸Õë²»ÄÜΪ¿Õ£¬»òÕßkfree¡£¸Ãº¯Êý»áÔÚ×îºóÒ»¸ö¶ÔkrefµÄÒýÓÃÊÍ·Åʱ±»µ÷Óã¨Èç¹ûÎÒµÄÀí½â²»×¼È·£¬ÇëÖ¸Õý£©¡£ÏÂÃæÊÇÄÚºËÔ´ÂëÖеÄÒ»¶Î×¢Êͼ°´úÂ룺
/**
* kref_put - decrement refcount for object.
* @kref: object.
* @release: pointer to the function that will clean up the object when the
* last reference to the object is released.
* This pointer is required, and it is not acceptable to pass kfree
* in as this function.
*
* Decrement the refcount, and if 0, call release().
* Return 1 if the object was removed, otherwise return 0. Beware
Ïà¹ØÎĵµ£º
¼Ù¶¨Äã»áCÓïÑÔ£¬¶øÇÒÃ÷°×CÓïÑÔÃæÏò¶ÔÏó±à³ÌµÄschme£¬¶Ô²Ù×÷ϵͳ£¨°üÀ¨µ÷¶È£¬ÄÚ´æ·ÖÅ䣬·ÖÒ³£¬Í¬²½£¬etc£©±È½ÏÁ˽⡣ÄÇôÄã¿ÉÒÔ°´ÕÕÈçÏÂ˳ÐòѧϰLinux Äںˡ£
1.¿´Linux Device DriverÕâ±¾Êé¡£ÕâÊÇΪÁËÈÃÄ㶮µÃ±àÒëÄÚºËÄ£¿éµÄ·½·¨¡£»¹ÓÐΪLinux¸÷ÖÖÉ豸ÁôÏÂһЩӡÏó¡£Í¬Ê±Ò»±é¿´ÊéÒ»±ß¿´Ä³Ð©É豸µÄÔ´´ú ......
ת×Ôhttp://hi.baidu.com/ln5336993/blog/item/9de4963e3dbad3e455e723c0.html
.tar
¡¡¡¡½â°ü£º tar xvf FileName.tar
¡¡¡¡´ò°ü£ºtar cvf FileName.tar DirName
¡¡¡¡£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
¡¡¡¡---------------------------------------------
¡¡¡¡.gz
¡¡¡¡½âѹ1£ºgunzip Fi ......
ÒýÓÃhttp://www.linuxtone.org/html/76/t-2776.html
ÓÐʱºònginx£¬apache£¬mysql£¬php±àÒëÍêÁËÏë¿´¿´±àÒë²ÎÊý¿ÉÒÔÓÃÒÔÏ·½·¨
nginx±àÒë²ÎÊý£º
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --p ......
ÀïÓÐÒ»¸öͳ¼Æ http://www.remword.com/kps_result/china.php
µã»÷Á¬½Ó½øÈ¥£¬¿ÉÒÔ¿´Äܵ½£º
Total patch sets of this kernel release: 157236
5337 person contribute their works to this kernel release.
Averagely, every person committed 29 patch sets.
299(5.60%) Chinese people contribute 6185(3.93%) patch ......
ÓÐÕâôһϵÁеÄÎÊÌ⣬ÊÇ·ñÔÚÀ§ÈÅ×ÅÄ㣺Óû§³ÌÐò±àÒëÁ¬½ÓÐγɵĵØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Äں˱àÒëºóµØÖ·¿Õ¼äÔÚʲô·¶Î§ÄÚ£¿Òª¶ÔÍâÉè½øÐзÃÎÊ£¬I/OµÄµØÖ·¿Õ¼äÓÖÊÇʲôÑùµÄ£¿
ÏȻشðµÚÒ»¸öÎÊÌâ¡£Linux×î³£¼ûµÄ¿ÉÖ´ÐÐÎļþ¸ñʽΪelf(Executable and Linkable Format)¡£ÔÚelf¸ñʽµÄ¿ÉÖ´ÐдúÂëÖУ¬ld×ÜÊÇ´Ó0x8000000¿ªÊ¼°²ÅųÌÐòµÄ& ......