Linux Kernel時ÐòµÄÈý種機ÖÆ
×î½üÔÚ寫Driver時£¬³£³£Óöµ½ÐèÒª¡¸µÈ´ýÒ»¶Î時間¡¹ÔÙ處ÀíµÄ動×÷£¬ÒÔÍùÎÒ¶¼ÉµÉµµÄÓÃmsleep()»òmdelay()£¬Êâ²»Öª這種busy waiting會holdסcpu資Ô´£¬ÔÚ這¶ÎÆÚ間內¶¼無·¨讓給ÆäËûprocess執ÐУ¬時間¶Ì(10msÒÔϵÈ級)»ò許還¿ÉÒÔ£¬Ì«長¾Í²»ÐÐÁË£¬ËùÒÔÐèÒªKernel±¾Éí¾ÍÓÐÌṩµÄ¡¸時Ðò¡¹機ÖÆ來×ö處Àí£¬ì¶ÊÇÎÒ漸漸學會ÁËÈçºÎʹÓÃTimer¡¢TaskletºÍWorkqueueµÄÓ÷¨£¬ÔÚO'ReillyµÄLinux Device DriversµÚÆßÕÂÓÐ詳細µÄ講½â£¬ÎÒ將書Éϵľ«華茲簡單ÕûÀíÈçÏ£º
##CONTINUE##
Ò»¡¢Timer
#include <linux/timer.h>
struct timer_list
{
/* ... */
unsigned long expires;//ÆÚÍû運ÐÐµÄ jiffies Öµ
void (*function)(unsigned long);
unsigned long data;//傳給functionµÄ參數
};//ʹÓÃǰ±Ø須³õʼ»¯
void init_timer(struct timer_list *timer);
//³õʼ»¯Ò»個timer_list
struct timer_list TIMER_INITIALIZER(_function, _expires, _data);
//³õʼ»¯Ò»個靜態µÄtimer_list
void add_timer(struct timer_list * timer);
int mod_timer(struct timer_list *timer, unsigned long expires);
int del_timer(struct timer_list * timer);
int del_timer_sync(struct timer_list *timer);
//ͬ del_timer Ò»樣,µ«±£證º¯數return時£¬¶¨時Æ÷º¯數²»ÔÚÈκΠCPU ÉÏ運ÐÐ
//±ÜÃâÔÚSMP ϵ統ÉÏ競爭
int timer_pending(const struct timer_list * timer);
//·µ»ØÕæ»ò¼Ù來ָʾÊÇ·ñ¶¨時Æ÷Òѱ»運ÐÐ
¶þ¡¢Tasklet
#include <linux/interrupt.h>
struct tasklet_struct {
/* ... */
void (*func)(unsigned long);
unsigned long data;
};
void tasklet_init(struct tasklet_struct *t,
void (*func)(unsigned long), unsigned long data);
//將¶¨義ºÃµÄ結構體³õʼ»¯£¬²Å¿ÉÓÃ
DECLARE_TASKLET(name, func, data);
//Ö±½ÓÉêÃ÷¾Í¿ÉÓÃÁË
DECLARE_TASKLET_DISABLED(name, func, data);
void tasklet_disable(struct
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
MEMCACHED°²×°
Ò»¡¢·þÎñ¶Ë¡£ÏȰ²×°libevent£¬ÔÙ°²×°memcached¡££¨×¢£ºlibeventÊÇÒ»Ì×¿çÆ½Ì¨µÄʼþ´¦Àí½Ó¿ÚµÄ·â×°£¬Äܹ»¼æÈݰüÀ¨£ºWindows/Linux/BSD/SolarisµÈ²Ù×÷ϵͳµÄʼþ´¦Àí£©
1¡¢ÏÂÔØ×îа汾µÄlibeventºÍmemcached£¬±ÊÕߵݲװĿ¼Ϊ/soft
>cd /soft
>wget http://www.dange.com/memcached/dist/memcach ......
ÔÚÎÒÃÇÔÚд³ÌÐòµÄ¹ý³ÌÖÐ,ÓÐЩʱºòÐèÒªÖªµÀһЩµçÄÔµÄÓ²¼þÐÅÏ¢,±ÈÈçÎÒÃÇдһЩÐèҪע²áµÄ³ÌÐòµÄʱºò,¾ÍÐèÒªµÃµ½Ä³¸öµçÄÔÌØ¶¨µÄÐÅÏ¢,Ò»°ãÀ´Ëµ,Íø¿¨µÄÎïÀíµØÖ·ÊDz»»áÖØ¸´µÄ,ÎÒÃÇÕýºÃ¿ÉÒÔÓÃËüÀ´×öΪÎÒÃÇʶ±ðһ̨µçÄԵıêÖ¾.ÄÇÈçºÎµÃµ½Íø¿¨µÄÎïÀíµØÖ·ÄØ?ÎÒÃÇ¿ÉÒÔ½èÖúÓÚProcessBuilderÕâ¸öÀà,Õâ¸öÀàÊÇJDK1.5мӵÄ,ÒÔǰҲ¿ÉÒÔÓÃRu ......
linuxϵͳ϶Ը÷Îļþ½øÐдò°ü»ò½âѹ·½·¨
1.tar ÃüÁî
»ù±¾ÃüÁîÑùʽ£º
tar -²ÎÊý °ü Ô´Îļþ»òÎļþ¼Ð
³£ÓòÎÊý£º
-c ´´½¨Ðµİü
-f Ö¸¶¨°üµÄÎļþÃû
-r ½«Îļþ¼ÓÈëÒÑÓеİü
-u ¸üаüÖеÄÎļþ
-t Áгö°üÖÐËùÓÐÎļþ
-x ½â¿ª°üÖÐËùÓÐÎļþµ½µ±Ç°Ä¿Â¼
-v ÏÔʾִÐй ......