spinlock ÓëlinuxÄں˵÷¶ÈµÄ¹ØÏµ
¹ØÓÚ×ÔÐýËøÓ÷¨½éÉܵÄÎÄÕ£¬ÒѾÓкܶ࣬µ«ÓÐЩϸ½ÚµÄµØ·½µãµÄ»¹²»¹»Í¸¡£ÎÒÕâÀï¾Í°ÑÎÒ¸öÈËÈÏΪ´ó¼ÒÈÝÒ×ÓÐÒÉÎʵĵط½ÄóöÀ´ÌÖÂÛһϡ£
Ò»¡¢×ÔÐýËø£¨spinlock£©¼ò½é
×ÔÐýËøÔÚͬһʱ¿ÌÖ»Äܱ»×î¶àÒ»¸öÄÚºËÈÎÎñ³ÖÓУ¬ËùÒÔÒ»¸öʱ¿ÌÖ»ÓÐÒ»¸öÏß³ÌÔÊÐí´æÔÚÓÚÁÙ½çÇøÖС£Õâµã¿ÉÒÔÓ¦ÓÃÔÚ¶à´¦Àí»úÆ÷¡¢»òÔËÐÐÔÚµ¥´¦ÀíÆ÷ÉϵÄÇÀռʽÄÚºË
ÖÐÐèÒªµÄËø¶¨·þÎñ¡£
¶þ¡¢ÐźÅÁ¿¼ò½é
ÕâÀïÒ²½éÉÜÏÂÐźÅÁ¿µÄ¸ÅÄÒòΪËüµÄÓ÷¨ºÍ×ÔÐýËøÓÐÏàËÆµÄµØ·½¡£
LinuxÖеÄÐźÅÁ¿ÊÇÒ»ÖÖ˯ÃßËø¡£Èç¹ûÓÐÒ»¸öÈÎÎñÊÔͼ»ñµÃÒ»¸öÒѱ»³ÖÓеÄÐźÅÁ¿Ê±£¬ÐźÅÁ¿»á½«ÆäÍÆÈëµÈ´ý¶ÓÁУ¬È»ºóÈÃÆä˯Ãß¡£Õâʱ´¦ÀíÆ÷»ñµÃ×ÔÓÉÈ¥Ö´ÐÐ
ÆäËü´úÂë¡£µ±³ÖÓÐÐźÅÁ¿µÄ½ø³Ì½«ÐźÅÁ¿Êͷźó£¬Ôڵȴý¶ÓÁÐÖеÄÒ»¸öÈÎÎñ½«±»»½ÐÑ£¬´Ó¶ø±ã¿ÉÒÔ»ñµÃÕâ¸öÐźÅÁ¿¡£
Èý¡¢×ÔÐýËøºÍÐźÅÁ¿¶Ô±È
ÔÚºÜ¶àµØ·½×ÔÐýËøºÍÐźÅÁ¿¿ÉÒÔÑ¡ÔñÈκÎÒ»¸öʹÓ㬵«Ò²ÓÐһЩµØ·½Ö»ÄÜÑ¡ÔñijһÖÖ¡£ÏÂÃæ¶Ô±ÈһЩÁ½ÕßµÄÓ÷¨¡£
±í1-1×ÔÐýËøºÍÐźÅÁ¿¶Ô±È
Ó¦Óó¡ºÏ
ÐźÅÁ¿or
×ÔÐýËø
µÍ¿ªÏú¼ÓËø£¨ÁÙ½çÇøÖ´ÐÐʱ¼ä½Ï
¿ì£©
ÓÅÏÈÑ¡Ôñ×ÔÐýËø
µÍ¿ªÏú¼ÓËø£¨ÁÙ½çÇøÖ´ÐÐʱ¼ä½Ï
³¤£©
ÓÅÏÈÑ¡ÔñÐźÅÁ¿
ÁÙ½çÇø¿ÉÄܰüº¬ÒýÆð˯ÃߵĴúÂë
²»ÄÜÑ¡×ÔÐýËø£¬¿ÉÒÔÑ¡ÔñÐÅ
ºÅÁ¿
ÁÙ½çÇøÎ»Óڷǽø³ÌÉÏÏÂÎÄʱ£¬´Ëʱ²»ÄÜ˯Ãß
ÓÅÏÈÑ¡Ôñ×ÔÐýËø
£¬¼´Ê¹Ñ¡ÔñÐÅ
ºÅÁ¿Ò²Ö»ÄÜÓÃdown_trylock
·Ç×èÈûµÄ·½Ê½
ËÄ¡¢×ÔÐýËøÓëlinuxÄں˽ø³Ìµ÷¶È¹ØÏµ
ÎÒÃÇÌÖÂÛϱí1-1ÖеĵÚ3ÖÖÇé¿ö£¨ÆäËü¼¸ÖÖÇé¿ö±È½ÏºÃÀí½â£©£¬Èç¹ûÁÙ½çÇø¿ÉÄܰüº¬ÒýÆð˯ÃߵĴúÂëÔò²»ÄÜʹÓÃ×ÔÐýËø£¬·ñÔò¿ÉÄÜÒýÆðËÀËø¡£
ÄÇôΪʲôÐźÅÁ¿±£»¤µÄ´úÂë¿ÉÒÔ˯Ãß¶ø×ÔÐýËø¾Í²»ÄÜÄØ£¿
ÏÈ¿´ÏÂ×ÔÐýËøµÄʵÏÖ·½·¨°É£¬×ÔÐýËøµÄ»ù±¾ÐÎʽÈçÏ£º
spin_lock(&mr_lock);
//ÁÙ½çÇø
spin_unlock(&mr_lock);
¸ú×ÙÒ»ÏÂspin_lock(&mr_lock)µÄʵÏÖ
#define spin_lock(lock) _spin_lock(lock)
#define _spin_lock(lock) __LOCK(lock)
#define __LOCK(lock) \
do { preempt_disable(); __acquire(lock);
(void)(lock); } while (0)
×¢Òâµ½“preempt_disable()”£¬Õâ¸öµ÷ÓõŦÄÜÊÇ“¹ØÇÀÕ¼”£¨ÔÚspin_unlockÖлáÖØÐ¿ªÆôÇÀÕ¼¹¦ÄÜ£©¡£´ÓÖпÉÒÔ¿´³ö£¬Ê¹ÓÃ×ÔÐý
Ëø±£»¤µÄÇøÓòÊǹ¤×÷ÔÚ·ÇÇÀÕ¼µÄ״̬£»¼´Ê¹»ñÈ¡²»µ½Ëø£¬ÔÚ“×ÔÐý”״̬ҲÊǽûÖ¹ÇÀÕ¼µÄ¡£Á˽⵽Õ⣬ÎÒÏëÔÛÃÇÓ¦¸ÃÄܹ»Àí½âΪºÎ×ÔÐýËø±£»¤µÄ´úÂë²»ÄÜ˯ÃßÁË¡£ÊÔ
Ïëһϣ¬Èç¹
Ïà¹ØÎĵµ£º
×î½üÔÚѧϰlinux ½ñÌì°Ñ¼ÜÉèlinux samba·þÎñÆ÷µÄ·½·¨Ð´³öÀ´ »¶Ó´ó¼ÒÌÖÂÛºÍÖ¸µã
±¾»úÊÇÐéÄâ»úºÍwinxp½øÐвâÊÔ£¬ÐéÄâ»úµØÖ·ÊÇ192.168.1.144 Ö÷»úµØÖ·ÊÇ192.168.1.10.Á½ÕßÊÇ¿ÉÒÔ»¥Í¨µÄ¡£
Ê×ÏÈÎÒÃÇÏÈ×ölinuxϵÄÅäÖÃ
Ò». Ê×ÏÈҪȷ¶¨linuxÊÇ·ñ°²×°ÁËsmb
[root@localhost zy]#rpm -qa | grep samba
samba-2.2.5-10
samba-s ......
Ò»¡¢USB´ÓÉ豸Çý¶¯½éÉÜ
USB×ÜÏßÉÏÖ÷ÒªÓÐÈýÀàÉ豸£ºÖ÷¿ØÖÆÆ÷£¨Host Controller£¬ such as
EHCI¡¢UHCI¡¢OHCI£©¡¢¼¯Ï߯÷£¨hub£©ºÍÉ豸£¨device£©¡£Host controller£¨HC£©¸ºÔð×ÜÏߵĹÜÀí
£¬
ÊÇ×ÜÏßµÄÖ¸»Ó¹Ù£¬×ÜÏßÉÏÒ»Çд«Êä¶¼ÊÇÓÉHC·¢ÆðµÄ£¬Ö§³ÖOTGµÄDeviceÒ²ÄÜ·¢Æð´«Ê䣻HubÊÇ×ÜÏߵĽڵ㣬ÓÃÀ´À©Õ¹×ÜÏßÉϿɽÓÈëÉ豸µÄÊýÁ¿ ......
Ò»¡¢Linux device driver µÄ¸ÅÄî
ϵͳµ÷ÓÃÊDzÙ×÷ϵͳÄں˺ÍÓ¦ÓóÌÐòÖ®¼äµÄ½Ó¿Ú£¬É豸Çý¶¯³ÌÐòÊDzÙ×÷ϵͳÄں˺ͻúÆ÷Ó²¼þÖ®¼äµÄ½Ó¿Ú¡£É豸Çý¶¯³ÌÐòΪӦÓóÌÐòÆÁ±ÎÁËÓ²¼þµÄϸ½Ú£¬ÕâÑùÔÚÓ¦ÓóÌ
Ðò¿´À´£¬Ó²¼þÉ豸ֻÊÇÒ»¸öÉ豸Îļþ£¬Ó¦ÓóÌÐò¿ÉÒÔÏó²Ù×÷ÆÕͨÎļþÒ»Ñù¶ÔÓ²¼þÉ豸½øÐвÙ×÷¡£Éè±¸Ç ......
ÃüÁî
½âÊÍ˵Ã÷
alsacard
¼ì²âÉù¿¨
alsaunmute
¾²ÒôÉèÖÃ
arch
²é¿´Ó²¼þÀàÐÍ
awk
Ò»ÖÖ³ÌÐòÓïÑÔ»·¾³
basename
È¥³ýÎļþÃûµÄĿ¼²¿·ÖºÍºó׺²¿·Ö£¬·µ»ØÒ»¸ö×Ö·û´®²ÎÊýµÄ»ù±¾Îļþ
Ãû³Æ
busybox
±ê×¼Linux
¹¤¾ßµÄÒ»¸öµ¥¸ö¿ÉÖ´ÐгÌÐòʵÏÖ£¬³£ÓÃÓÚǶÈëʽLinux
£¬²Î¼û±¾Êé“Îļþϵͳ”ÄÚÈÝ
cat
Á¬½Ó»òÏ ......