LinuxÖеÄʱÖÓÓëʱ¼ä
ÈÕÆÚ£º2010-02-04
×÷ÕߣºSteven Yang
ÓÊÏ䣺mqyoung@gmail.com
×¢£º×ªÔØÇë×¢Ã÷³ö´¦ºÍ×÷Õß²¢±£³ÖÎĵµµÄÍêÕû
HZ
ÄÚºËͨ¹ý¶¨Ê±Æ÷ÖжÏÀ´¸ú×Ùʱ¼äÁ÷£¬Ê±ÖÓÖжÏÓÉϵͳ¶¨Ê±Ó²¼þÒÔÖÜÆÚÐԵļä¸ô²úÉú£¬Õâ¸ö¼ä¸ôÓÉÄں˸ù¾ÝHZµÄÖµÉ趨¡£
HZÓëÌåϵ½á¹¹Óйأ¬¶¨ÒåÔÚ<linux/param.h>ÖлòÕ߸ÃÎļþ°üº¬µÄij¸ö×ÓÆ½Ì¨Ïà¹ØµÄÎļþÖС£Ä¬ÈÏֵΪ50 ~ 1200, X86µÄĬÈÏֵΪ1000¡£Èç¹ûÏë¸Ä±äϵͳʱÖÓÖÐ¶ÏµÄÆµÂÊ£¬¿ÉÒÔÐÞ¸ÄHZÖµ¡£
jiffies
ÿ´ÎʱÖÓÖжϲúÉú£¬ÄÚºËÄÚ²¿¼ÆÊýÆ÷µÄÖµ¼ÓÒ»¡£jiffies£¬ÊÇÒ»¸ö64µÄ±äÁ¿¡£
µ÷ÓÃÐè°üº¬<linux/jiffies.h> »ò <linux/sched.h>
±È½ÏÁ½¸öjiffies¿ìÕյĺ¯Êý
int time_after()
int time_before()
int time_after_eq()
int time_before_eq()
diff = (long)t2 - (long)t1
msec = diff * 1000 / HZ (ת»»ÎªºÁÃë)
ʱ¼ä±íÊöÐÎʽ
struct timeval; stuct timespec;
#include <linux/time.h>
unsigned long timespec_to_jiffies()
void jiffies_to_timespec()
unsigned long timeval_to_jiffies()
void jiffies_to_timeval()
¶Ô64λjiffies_64µÄ·ÃÎÊ
32λCPUÉ϶Ô64λֵµÄ·ÃÎʲ»ÊÇÔ×ӵģ¬ÐèҪͨ¹ýÕâ¸öº¯ÊýÀ´¶ÁÈ¡
#include <linux/jiffies.h>
u64 get_jiffies_54();
TSC(timestamp counter)
Ò»¸ö64λµÄ¼Ä´æÆ÷£¬¼Ç¼CPUʱÖÓÖÜÆÚÊý£¬Í¨¹ý¼ÆËãʱÖÓÖÜÆÚÀ´¶ÈÁ¿Ê±¼ä£¬´ÓÄں˹²½¨ºÍÓû§¿Õ¼ä¶¼¿ÉÒÔ¶ÁÈ¡Ëü¡££¨X86µÄPentiumµÄ´¦ÀíÆ÷¿ªÊ¼Ìṩ¸Ã¼Ä´æÆ÷£©
#include <asm/msr.h> (machine-specific registers)
rdtsc(low32,high32);
rdtscl(low32);
rdtscll(var64);
1-GHz µÄ´¦ÀíÆ÷£¬¼ÆÊýÆ÷µÄµÍ°ë²¿·Öÿ4.2Ãë»áÒç³ö¡£¿ÉÒÔ¸ù¾Ýʵ¼ÊÇé¿öÀ´¾ö¶¨ÊǶÁÈ¡µÍ32Î»ÄØ»¹ÊÇ64λ¡£
ÓÐÒ»¸öƽ̨Î޹صĺ¯Êý¿ÉÒÔÌæ´úrdtsc,
#include <asm/timex.h> (or linux/timex.h, Ëü°üº¬Ç°ÃæÄǸöÍ·Îļþ)
cycles_t get_cycles(void);
¹ØÓÚµ±Ç°Ê±¼äµÄ»ñÈ¡ºÍת»»
1 ȡjiffies
2 ǽÖÓת»»ÎªjiffiesµÄÖµ
#include<linux/time.h>
unsigned long mktime(year, mon, day, hour, min, sec);
3 ÓÃÃë/΢ÃëÌî³ästruct timevalÖµ(ºÍgettimeofdayϵͳµ÷ÓÃʹÓÃͬһ±äÁ¿)
#include<linux/time.h>
void do_gettimeofday(struct timeval *tv);
ÕâÀïÊǽüËÆÎ¢Ã룬ʵ¼Ê¾«¶ÈÒÀÀµÆ½Ì¨
4 xtime(struct timespec)
#include<linux/time.h>
struct timespec current_kernel_time(void);
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
vi
±à¼Æ÷ÊÇËùÓÐUnix¼°Linuxϵͳϱê×¼µÄ±à¼Æ÷£¬ËüµÄÇ¿´ó²»Ñ·É«ÓÚÈκÎ×îеÄÎı¾±à¼Æ÷£¬ÕâÀïÖ»ÊǼòµ¥µØ½éÉÜÒ»ÏÂËüµÄÓ÷¨ºÍһС²¿·ÖÖ¸Áî¡£ÓÉÓÚ¶Ô
Unix¼°LinuxϵͳµÄÈκΰ汾£¬vi±à¼Æ÷ÊÇÍêÈ«ÏàͬµÄ£¬Òò´ËÄú¿ÉÒÔÔÚÆäËûÈκνéÉÜviµÄµØ·½½øÒ»²½Á˽âËü¡£ViÒ²ÊÇLinuxÖÐ×î»ù±¾µÄÎı¾±à¼
Æ÷£¬Ñ§»áËüºó£¬Äú½«ÔÚLinuxµÄÊÀ½çÀ ......
s
hellÊÇÓû§ºÍLinux²Ù×÷ϵͳ֮¼äµÄ½Ó¿Ú¡£LinuxÖÐ
ÓжàÖÖshell£¬ÆäÖÐȱʡʹÓõÄÊÇBash¡£±¾Õ½²ÊöÁËshellµÄ¹¤×÷ÔÀí£¬shellµÄÖÖÀ࣬shellµÄÒ»°ã²Ù×÷¼°BashµÄÌØÐÔ¡£
¡¡¡¡Ê²Ã´ÊÇshell
¡¡¡¡LinuxϵͳµÄshell×÷Ϊ²Ù×÷ϵͳµÄÍâ¿Ç£¬ÎªÓû§Ìá
¹©Ê¹ÓòÙ×÷ϵͳµÄ½Ó¿Ú¡£ËüÊÇÃüÁîÓïÑÔ¡¢ÃüÁî½âÊͳÌÐò¼°³ÌÐòÉè¼ÆÓïÑÔµÄͳ³Æ¡£
¡¡¡¡s ......
1.rpc·þÎñÐèrshµÄÖ§³Ö£¬Ò»°ãÇé¿öÏÂrshÒѰ²×°¡£rpm -qa rsh²é¿´¡£
2.ÓÒ¼üÁí´æÎªhttp://heanet.dl.sourceforge.net/sourceforge/rstatd/rpc.rstatd-4.0.1.tar.gzÏÂÔØrpc.rstatd-4.0.1.tar.gz¡£
3.Ö´ÐÐÒÔÏÂÃüÁî½âѹºÍ°²×°
tar zxvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1
./configure //ÅäÖÃ
make&nb ......
¹ØÓÚWindowsÆô¶¯¹ý³Ì½éÉܵÄÎÄÕ¿Éν¶àÈçţ룬¶ø¶ÔÓÚLinuxµÄ½éÉÜÈ´ÊÇ·ïë÷ë½Ç¡£·²ÊÇÔø¾Ê¹ÓùýLinuxµÄÓû§¿ÉÄܶ¼»á×¢Òâµ½£¬µ±¼ÆËã»úÆô¶¯Ê±£¬ÆÁÄ»ÉÏ»á³öÏֺܶàÐÅÏ¢¡£Ò»°ãÇé¿öÏ£¬ÕâЩÐÅÏ¢ÎÒÃÇ¿ÉÒÔͨ¹ýÒÔϵÄÃüÁî¿´µ½£º
¡¡¡¡
¡¡¡¡cat /var/log/dmesg | more
¡¡¡¡
¡¡¡¡
¡¡¡¡
¡¡¡¡ÕâЩÐÅÏ¢¾¿¾¹ÓÐʲôº¬Ò壿Õâ¸öÎÊÌâ¿´Æð ......