LinuxÉ豸ģÐÍÖ®input×ÓϵͳÏê½â(¶þ)
; break;
}
if (type != EV_SYN)
dev->sync = 0;
if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event)
dev->event(dev, type, code, value);
if (disposition & INPUT_PASS_TO_HANDLERS)
input_pass_event (dev, type, code, value);
}
ÔÚÕâÀï,ÎÒÃǺöÂÔµô¾ßÌåʼþµÄ´¦Àí.µ½×îºó,Èç¹û¸ÃʼþÐèÒªinput deviceÀ´Íê³ÉµÄ,¾Í»á½«dispositionÉèÖóÉINPUT_PASS_TO_DEVICE.Èç¹ûÐèÒªhandlerÀ´Íê³ÉµÄ,¾Í½«dispostionÉèΪINPUT_PASS_TO_DEVICE.Èç¹ûÐèÒªÁ½Õß¶¼²ÎÓë,½«dispositionÉèÖÃΪINPUT_PASS_TO_ALL.
ÐèÒªÊäÈëÉ豸²ÎÓëµÄ,»Øµ÷É豸µÄeventº¯Êý.Èç¹ûÐèÒªhandler²ÎÓëµÄ.µ÷ÓÃinput_pass_event().´úÂëÈçÏÂ:
static void input_pass_event(struct input_dev *dev,
unsigned int type, unsigned int code, int value)
{
struct input_handle *handle;
rcu_read_lock();
handle = rcu_dereference(dev->grab);
if (handle)
Ïà¹ØÎĵµ£º
./configure ¼ì²éϵͳÐÅÏ¢
./configure --help | more °ïÖúÐÅÏ¢
make clean   ......
ÔÚÎҵıʼDZ¾¼ÆËã»úÉÏ£¬WindowsXPÅܵÄÔ½À´Ô½Âý£¬ÖÕÓÚϾöÐÄÖØ×°Ò»±é£¬Ï£ÍûÊÇ×îºóÒ»´Î°²×°WindowsXPÁË¡£¿ÉÊÇÓÖ²»Ì«¸ÊÐÄ£¬¾õµÃ»¨µÄʱ¼ä²»Ì«ÖµµÃ£¬²»¹ý£¬×î½ü¾ÀúÁ˼¸´ÎWindows vs GNU/Linux µÄÕùÂÛ£¬ÓÚÊÇ×Ðϸ¼Ç¼һϰ²×°¹ý³Ì£¬¿ÉÒÔÓп͹ÛÒ»µãµÄÊý¾Ý×ö±È½Ï¡£
ÎҵıʼDZ¾ÊÇDELL INSPIRON 600m£¬pentium-M 1.5GHz, 40GB Ó²ÅÌ, ......
¶ÔÓÚÒ»¸öÎļþÀ´Ëµ£¬ÓÐΨһµÄË÷Òý½ÓµãÓëÖ®¶ÔÓ¦£¬¶ø¶ÔÓÚÒ»¸öË÷Òý½ÓµãºÅ£¬È´¿ÉÒÔÓжà¸öÎļþÃûÓëÖ®¶ÔÓ¦¡£Òò´Ë£¬ÔÚ´ÅÅÌÉϵÄͬһ¸öÎļþ¿ÉÒÔͨ¹ý²»Í¬µÄ·¾¶È¥·ÃÎÊ
¸ÃÎļþ¡£
¡¡¡¡£±.Á¬½ÓÓÐÈíÁ¬½ÓºÍÓ²Á¬½Ó(hard link)Ö®·ÖµÄ£¬ÈíÁ¬½Ó(symbolic
link)ÓֽзûºÅÁ¬½Ó¡£·ûºÅÁ¬½ÓÏ൱ÓÚWindowsϵĿì½Ý·½Ê½¡£
ÈíÁ´½Óʵ¼ÊÉÏÖ»ÊÇÒ»¶ÎÎÄ× ......
Ê×Ïȼòµ¥µÄ½éÉÜÁ½Õߣº
¡¾linux²Ù×÷ϵͳ£º¼ò³ÆÃüÁ²Ù×÷ϵͳ¡¿
¼ò½é£º
¼òµ¥µØËµ£¬LinuxÊÇÒ»Ì×Ãâ·ÑʹÓúÍ×ÔÓÉ´«²¥µÄÀàUnix²Ù×÷ϵͳ£¬ËüÖ÷ÒªÓÃÓÚ»ùÓÚx86ϵÁÐCPUµÄ¼ÆËã»úÉÏ¡£Õâ¸öϵͳÊÇÓÉÊÀ½ç¸÷µØµÄ³ÉǧÉÏÍòµÄ³ÌÐòÔ±Éè¼ÆºÍʵÏֵġ£ÆäÄ¿µÄÊǽ¨Á¢²»ÊÜÈκÎÉÌÆ·»¯Èí¼þµÄ°æÈ¨ÖÆÔ¼µÄ¡¢È«ÊÀ½ç¶¼ÄÜ×ÔÓÉʹÓõÄUnix¼æÈݲúÆ·¡£
ÌØµã£º ......
½«¿ÉÒÆ¶¯É豸Á¬Èëϵͳʱ£¬ÏµÍ³µÄºǫ́ÖлáÒÀ´Î·¢ÉúÈçÏÂʼþ£º
l Äں˼ì²âµ½ÐÂÓ²¼þ²åÈ룬Ȼºó·Ö±ð֪ͨhotplugºÍudev¡£Ç°ÕßÓÃÀ´×°ÈëÏàÓ¦µÄÄÚºËÄ£¿é(Èçusb-storage)£¬¶øºóÕßÓÃÀ´ÔÚ/devÖд´½¨ÏàÓ¦µÄÉ豸½Úµã(Èç/dev/sda1)¡£
l udev´´½¨ÁËÏàÓ¦µÄÉ豸½ÚµãÖ®ºó£¬»á½«ÕâÒ»ÏûϢ֪ͨhalµÄÊØ»¤³ÌÐò(hald)¡£µ±È»udev»¹µÃ±£Ö¤Ð ......