LinuxÄÚºËͬ²½£¬½ø³Ì£¬Ïß³Ìͬ²½
°üÀ¨ÎÒ×Ô¼ºÔÚÄÚ£¬ºÜ¶àÈ˶ÔÄںˣ¬½ø³Ì£¬Ïß³Ìͬ²½¶¼²»ÊǺÜÇå³þ£¬ÏÂÃæÉÔ΢×ܽáһϣº
ÄÚºËͬ²½£º
Ö÷ÒªÊÇ·ÀÖ¹¶àºË´¦ÀíÆ÷ͬʱ·ÃÎÊÐÞ¸Äij¶Î´úÂ룬»òÕßÔÚ¶ÔÉ豸Çý¶¯³ÌÐò½øÐÐÁÙ½çÇø±£»¤¡£Ö÷ÒªÓÐһϼ¸ÖÖ·½Ê½£º
1. Mutex£¨»¥³â£©
Í·Îļþ£º
#include <linux/mutex.h>
³õʼ»¯·½·¨£º
DEFINE_MUTEX(name);»òÕß
void mutex_init(struct mutex *lock);
ʹÓ÷½·¨£º
void mutex_lock (struct mutex *lock);
Tries to lock the mutex, sleeps otherwise.
Caution: can't be interrupted, resulting in processes you cannot kill!
int mutex_lock_interruptible (struct mutex *lock);
Same, but can be interrupted. If interrupted, returns a non zero value and doesn't hold the lock. Test the return value!!!
int mutex_trylock (struct mutex *lock);
Never waits. Returns a non zero value if the mutex is not available.int mutex_is_locked(struct mutex *lock);Just tells whether the mutex is locked or not.
void mutex_unlock (struct mutex *lock);
Releases the lock. Make sure you do it as quickly as possible!
2. Reader/writer semphopres ¶ÁдÐźÅÁ¿
Allow shared access by unlimited readers, or by only 1 writer. Writers get priority.
ÔÊÐíÓÐÏÞÊýÁ¿µÄ¶Á·ÃÎÊ£¬µ«ÊÇÖ»ÄÜÓÐÒ»¸öд·ÃÎÊ¡£
void init_rwsem (struct rw_semaphore *sem);
void down_read (struct rw_semaphore *sem);
int down_read_trylock (struct rw_semaphore *sem);
int up_read (struct rw_semaphore *sem);
void down_write (struct rw_semaphore *sem);
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
×î½ü×°ÁËfedora9,ÓÉÓÚÏÔʾÎÊÌâºÜ´ó,ÓÖÍË»ØÁËf8.È»ºóÔÚf9°²×°Ê±¶ÔÎļþµÄ±¸·Ý·ÖÇø¼ÓÁËÃÜ,½á¹ûµ¼ÖÂÎÒ²»Äָܻ´±¸·ÝÎļþÁË,ÄǸöÓôÃÆ°¢,Ò»¹ÒÔØ
¼ÓÃÜ·ÖÇø¾ÍÌáʾÎÒ"mount: unknown filesystem type
'crypt_LUKS'",ÍøÉÏÕÒÁ˰ëÌì²ÅÕÒµ½½â¾ö°ì·¨,˳´øÒ²Á˽âÁËlinux¶ÔÊý¾Ý±£»¤µÄÇ¿´ó
ÕâÀï¾Í¶ÔÈçºÎʹÓÃlinux±£»¤
Ó²ÅÌÀïµÄ ......
25.2.1 LinuxÄÚºËUSBÇý¶¯¿ò¼Ü
ͼ25-2ÊÇLinuxÄں˴ÓÖ÷»úºÍÉ豸Á½¸ö½Ç¶È¹Û²ìUSB×ÜÏ߽ṹµÄʾÒâͼ¡£
´Óͼ25-2ÖпÉÒÔ¿´³ö£¬LinuxÄÚºËUSBÇý¶¯Êǰ´ÕÕÖ÷»úÇý¶¯ºÍÉ豸Çý¶¯Á½Ì×ÌåϵʵÏֵģ¬ÏÂÃæ½éÉÜÁ½Ì×ÌåϵµÄ½á¹¹ºÍÌØµã¡£
1£®»ù±¾½á¹¹
ͼ25-2µÄ×ó²àÊÇÖ÷»úÇý¶¯½á¹¹¡£Ö÷»úÇý¶¯µÄ×îµ×²ãÊÇUSBÖ÷»ú¿ØÖÆÆ÷£¬ÌṩÁËOHCI/EHCI/UHC ......
1.1 LinuxµÄÆðÔ´ºÍ·¢Õ¹
LinuxÆðÔ´ºÍ·¢Õ¹ÊÇÒ»¶ÎÁîÈË×ÅÃÔµÄÀúÊ·¡£ÕâÀïÃæ°üº¬×ÅÌ«¶àµß¸²“³£À픵ÄʼþºÍ˼Ï룬´Ù³ÉLinux³É³¤×³´óµÄ“ÉñÆæ”Á¦Á¿×ÜÊDZ»È˽ò½òÀÖµÀ£¬LinuxËù´´ÔìµÄ´«ÆæÓÐʱºòÈóõ´Î½Ó´¥ËüµÄÈ˸е½²»¿É˼Òé¡£
1.1.1 LinuxµÄÆðÔ´
1991Ä꣬һ¸öÃû²»¼û¾´«µÄ·ÒÀ¼Ñо¿Éú¹ºÂòÁË×Ô¼ ......
2.2 °²×°LinuxÖÁÓ²ÅÌ
×¼±¸¹¤×÷Íê³ÉÖ®ºó£¬¾Í¿ÉÒÔ×ÅÊÖ½«Linux°²×°µ½Ó²ÅÌÖÐÁË¡£Èç½ñLinuxµÄ°²×°¹ý³ÌÒѾ·Ç³£“ɵ¹Ï”»¯£¬Ö»ÐèÒªÇáµã¼¸ÏÂÊó±ê£¬¾ÍÄܹ»Íê³ÉÕû¸öϵͳµÄ°²×°¡£¾¡¹ÜÈç´Ë£¬ÕâÀïÈÔÈ»ÏêϸµØ¸ø³ö°²×°¹ý³ÌµÄÿһ²½¡£Í¬Ê±£¬¶ÔÓÚºÍWindows´æÔÚÏÔÖøÇø±ðµÄµØ·½£¬ÈçÓ²ÅÌ·ÖÇøµÄ×éÖ¯·½Ê½£¬±¾½Ú½«×öÏêϸµÄÌÖÂÛ¡£ ......