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);
Ïà¹ØÎĵµ£º
Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔÒò,Fedora×Ô´ø
¶þ. ......
sortÃüÁîµÄ¹¦ÄÜÊǶÔÎļþÖеĸ÷ÐнøÐÐÅÅÐò¡£sortÃüÁîÓÐÐí¶à·Ç³£ÊµÓõÄÑ¡ÏÕâЩѡÏî×î³õÊÇÓÃÀ´¶ÔÊý¾Ý¿â¸ñʽµÄÎļþÄÚÈݽøÐи÷ÖÖÅÅÐò²Ù×÷µÄ¡£Êµ¼Ê
ÉÏ£¬sortÃüÁî¿ÉÒÔ±»ÈÏΪÊÇÒ»¸ö·Ç³£Ç¿´óµÄÊý¾Ý¹ÜÀí¹¤¾ß£¬ÓÃÀ´¹ÜÀíÄÚÈÝÀàËÆÊý¾Ý¿â¼Ç¼µÄÎļþ¡£
SortÃüÁÖðÐжÔÎļþÖеÄÄÚÈݽøÐÐÅÅÐò£¬Èç¹û ......
“Sudo” ÊÇUnix/Linuxƽ̨ÉϵÄÒ»¸ö·Ç³£ÓÐÓõŤ¾ß£¬ËüÔÊÐíϵͳ¹ÜÀíÔ±·ÖÅ䏸ÆÕͨÓû§Ò»Ð©ºÏÀíµÄ“ȨÀû”£¬ÈÃËûÃÇÖ´ÐÐһЩֻÓг¬¼¶Óû§»òÆä
ËûÌØÐíÓû§²ÅÄÜÍê³ÉµÄÈÎÎñ£¬±ÈÈ磺ÔËÐÐһЩÏñmount£¬halt£¬suÖ®ÀàµÄÃüÁ»òÕß±à¼Ò»Ð©ÏµÍ³ÅäÖÃÎļþ£¬Ïñ/etc/mtab£¬ /etc
/samba/smb.confµÈ¡£ÕâÑùÒ ......
GNU/Linux ²»ÊÇÿ¸öÈ˶¼ÏëÓõġ£Èç¹ûÄãÖ»ÐèÒª´¦ÀíÒ»°ãµÄÊÂÎñ£¬´òÓÎÏ·£¬ÄÇôÄã²»ÐèÒªÁ˽âÏÂÃæÕâЩÁË¡£
¡¡¡¡ÎÒ²»ÊÇÒ»¸ö¿ñÈȵÄ×ÔÓÉÈí¼þ·Ý×Ó£¬ËäÈ»ÎÒºÜϲ»¶×ÔÓÉÈí¼þ¡£ÕâÆªÎÄÕÂÒ²²»ÊÇÓÃÀ´ÍÆÐÐ×ÔÓÉÈí¼þÔ˶¯µÄ£¬ËäÈ»ÎÒ¾õµÃ×ÔÓÉÈí¼þÔ˶¯ÊǷdz£ºÃµÄ¡£
¡¡¡¡ÕâÆªÎÄÕÂÒ²²»ÊÇÓÃÀ´±È½Ï Linux ºÍ Windows ÄÚºËЧÂÊ£¬Îļþϵͳ£¬ÍøÂç·þÎñµÄ ......
Ŀ¼
1¡¢¹ØÓÚÎı¾±à¼Æ÷£»
2¡¢vi ±à¼Æ÷£»
3¡¢vi ±à¼Æ÷µÄʹÓ÷½·¨£»
3.1 ÈçºÎµ÷ÓÃvi £»
3.2 vi µÄÈýÖÖÃüÁîģʽ£»
3.3 ÎļþµÄ±£´æºÍÍ˳ö£»
3.4 ¹â±êÒÆ¶¯£»
3.5
²åÈëģʽ£¨Îı¾µÄ²åÈ룩£»
3.6 Îı¾ÄÚÈݵÄɾ³ý²Ù×÷£»
3.7 »Ö¸´Ð޸ļ°»Ö¸´É¾³ý²Ù×÷£»
3.8 ¿ÉÊÓģʽ£»
3.9
¸´ÖƺÍÕ³ÌûµÄ²Ù×÷£»
3.10 ¹ØÓÚÐкţ»
......