dzÎölinuxÏÂÊó±êÇý¶¯µÄʵÏÖ
¶ÔÓÚÊó±êÇý¶¯ºÍÇ°Ãæ·ÖÎö¹ýµÄ¼üÅÌÇý¶¯¶¼Êǹ²ÓÃinputÄ£ÐÍ,ËùÒÔ,¶ÔÓÚʼþÉϱ¨ºÍ´¦ÀíµÄ·½Ê½¶¼Ã»ÓÐÇø±ð,Ö»ÊÇmouseÊó±êÇý¶¯µ±Éϱ¨Íêdx,dy,left,middle,rightÖ®ºó,ÐèÒªµ÷ÓÃinput_sync(),½«Ç°ÃæÉϱ¨µÄ½ö½öÌî³äÔÚ»º³åÇøÖеÄÊý¾Ý,ͨ¹ýmousedev_notify_readers()·¢Ë͸øopenÁ˵ĹҽÓÔÚmousedev->client_listÁ´±íÉϵȴý»ñÈ¡Êó±êÐÅÏ¢µÄclientÃÅ,Êó±êÉ豸ºÍ¼üÅÌÉ豸ÀàËÆ¶¼ÊÇÔÚ/dev/input/Ŀ¼Ï´´½¨ÁËÒ»¸öcharÀàÐ͵ÄÉ豸½Úµã,ÓÉÓ¦ÓóÌÐòʹÓÃread»òÕßpollÀ´×èÈûµ÷ÓÃ,¶ÔÓÚ¼üÅÌÉ豸Ϊ/dev/input/event0,...,/dev/input/eventx,¶ÔÓÚÊó±êÉ豸Ϊ/dev/input/mouse0,...,/dev/input/mousex,¿ÉÒÔʹÓÃsudo cat /dev/input/event0À´´ÓÖÕ¶ËÉϽػñÏÔʾ°´¼üµÄÐÅÏ¢,ʹÓÃsudo cat /dev/input/mouse0À´²¶×½Êó±êµÄÐÅÏ¢.
ÈÃÎÒÃÇÀ´¿´¿´Çý¶¯Ô´Â롾gliethttp.Leith¡¿£º
============drivers\input\mouse\amimouse.c============
input_report_rel(amimouse_dev, REL_X, dx);
input_report_rel(amimouse_dev, REL_Y, dy);
input_report_key(amimouse_dev, BTN_LEFT, ciaa.pra & 0x40);
input_report_key(amimouse_dev, BTN_MIDDLE, potgor & 0x0100);
input_report_key(amimouse_dev, BTN_RIGHT, potgor & 0x0400);
input_sync(amimouse_dev);// ¿½±´µ½openÁ˵Äÿ¸öclientµÄclient->packets[16]»·Ðλº³åÇø,ÿ¸öÓ¦ÓóÌÐòÔÚµ÷ÓÃopen ʱ,mousedev_open¶¼»áµ÷ÓÃkzallocÀ´ÉêÇëÒ»¸ö¶ÀÁ¢µÄmousedev_client½á¹¹Ìå,È»ºó½«¸Ãclient¹Ò½Óµ½ mousedev->client_listÁ´±í,×îºóÓÉmousedev_notify_readersÏò mousedev->client_listÁ´±íÉϹҽӵÄÿ¸öclient¿½±´Êó±êÐÅÏ¢,×îºówake_up»½ÐÑread»òpoll.
============drivers\input\mousedev.c============
mousedev_read=>mousedev_packet=>Èç¹ûdx,dy,dzͬʱ¶¼Îª0,˵Ã÷Êó±êÍ£Ö¹ÁË,ÄÇôclient->ready = 0;
mousedev_event(dev, EV_SYN, SYN_REPORT, 0)=>mousedev_notify_readers=>Èç¹ûdx,dy,dzÓÐÒ»¸ö·¢ÉúÁËÒÆ¶¯»òÕßÊó±ê°´¼üÉÏÒ»´ÎµÄ°´¼ü²»Í¬,ÄÇôclient->ready = 1;¿½±´Êý¾Ýµ½mousedev->client_listÁ´±íÉϹҽӵÄÿ¸öclientµÄ»·Ðλº³åÇø,×îºóµ÷ÓÃwake_up_interruptible(&mousedev->wait);»½ÐÑÒòΪread»òÕßpoll²Ù×÷¶ø±»pendingסµÄÓ¦Ó
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷:
¡¡¡¡Óõ½µÄperl À©Õ¹×é¼þ(modules)ÔÚÉÏÆªÌù³ö.( win32::odbc Ä£¿é
)ÏÂÔØ×é¼þºó°´ÕÕReadmeÎļþ°²×°µ¹ÏìӦĿ¼.ÅäÖúÃÏàÓ¦µÄodbcÊý¾ÝÔ´.
¡¡¡¡
¡¡¡¡³ÌÐòʵÏÖ:
¡¡¡¡Ê¹ÓÃ
¡¡¡¡use
Win32::ODBC;
¡¡¡¡
¡¡¡¡Óï¾ä°üº¬Ó¦Ê¹ÓõÄÄ£¿éÊÇwin32::odbc,д³öÊý¾Ý¿â
Á¬½Ó×Ö·û´®
¡¡¡¡
¡¡¡¡$DSN = "DSN =
My DSN ......
linuxÖеĴ󲿷ÖÇý¶¯³ÌÐò,ÊÇÒÔÄ£¿éµÄÐÎʽ±àдµÄ.ÕâЩÇý¶¯³ÌÐòÔ´Âë¿ÉÒÔÐ޸ĵ½ÄÚºËÖÐ,Ò²¿ÉÒÔ°ÑËûÃDZàÒë³ÉÄ£¿éÐÎÊÆ,ÔÚÐèÒªµÄʱºò¶¯Ì¬¼ÓÔØ.
Ò»¸öµäÐ͵ÄÇý¶¯³ÌÐò,´óÌåÉÏ¿ÉÒÔ·ÖΪÕâô¼¸¸ö²¿·Ö:
1¡¢×¢²áÉ豸
ÔÚϵͳ³õÆô,»òÕßÄ£¿é¼ÓÔØÊ±ºò,±ØÐ뽫É豸µÇ¼Çµ½ÏàÓ¦µÄÉ豸Êý×é,²¢·µ»ØÉ豸µÄÖ÷Çý¶¯ºÅ,ÀýÈç:¶Ô¿ìÉ豸À´Ëµµ÷ÓÃrefister_b ......
linuxµÄpsÃüÁîºÍtop¶¼ÊÇÓÃÀ´¼àÊÓϵͳ½ø³ÌºÍ×ÊԴʹÓÃÇé¿öµÄÓÐÓÃÃüÁî, psÃüÁî¸üΪ³£ÓÃ, ËùÒÔÕÆÎÕpsÃüÁîÊǺÜÓбØÒªµÄ
psÃüÁîÈç¹ûÓÐÈκÎÒÉÎÊ,ÇëÔÚÖÕ¶ËÏÂÊäÈë :# man ps
Ãû³Æ£ºps
ʹÓÃȨÏÞ£ºËùÓÐʹÓÃÕß
ʹÓ÷½Ê½£ºps [options] [--help]
˵Ã÷£ºÏÔʾ˲¼äÐÐ³Ì (process) µÄ¶¯Ì¬
²ÎÊý£º
ps µÄ²ÎÊý·Ç³£¶à, Ôڴ˽öÁгö¼¸¸ö³£Óà ......
µÚ¶þ²¿·Ö ½¥Èë¼Ñ¾³
2.1 ÈçºÎ½Ø»ñϵͳµ÷ÓÃ
ÏÖÔÚÎÒÃÇ¿ªÊ¼ÈëÇÖLKM£¬ÔÚÕý³£Çé¿öÏÂLKMsÊÇÓÃÀ´À©Õ¹Äں˵Ä(ÌØ±ðÊÇÄÇЩӲ¼þÇý¶¯)¡£È»¶øÎÒÃǵđHacks’×öһЩ²»Ò»ÑùµÄÊÂÇé¡£ËûÃÇ»á½Ø»ñϵͳµ÷Óò¢ÇÒ¸ü¸ÄËûÃÇ£¬ÎªÁ˸ıäϵͳijЩÃüÁîµÄÏìÓ¦·½Ê½¡£
ÏÂÃæµÄÕâ¸öÄ£¿é¿ÉÒÔʹµÃÈκÎÓû§¶¼²»ÄÜ´´½¨Ä¿Â¼¡£ÕâÖ»²»¹ýÊÇÎÒÃÇËæºó·½·¨µ ......