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);
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Ŀ¼ÏîºÍ³¬¼¶¿é£¬½ÚµãµÄ¸ÅÄͬ£¬ËüÔÚÉ豸ÉÏûÓжÔÓ¦µÄ´ÅÅÌÊý¾Ý½á¹¹¡£Ïà·´£¬ËüÊÇĿ¼ÎÄ ¼þµÄÒ»²¿·Ö¡£linuxÖÐĿ¼ҲÊÇÒ»ÖÖÎļþ£¬ÀàÐÍÊÇ'd'¡£µ«ÊÇĿ¼ÖеÄÄÚÈÝºÍÆÕͨÎļþ²»Í¬£¬ËüÊÇÓÉĿ¼Ïî×é³ÉµÄ¡£×¢ÒâĿ¼Ïî²»ÊÇĿ¼¡£ÎÒÃǾ³£Ó÷¾¶Ãû Ö´ÐÐÏà¹Ø²Ù×÷£¬Ä¿Â¼Ïî¾ÍÊÇΪÁ˲éÕÒ·½±ãµÄ¡£
struct dirt_entry{
......
vi
±à¼Æ÷ÊÇËùÓÐUnix¼°Linuxϵͳϱê×¼µÄ±à¼Æ÷£¬ËüµÄÇ¿´ó²»Ñ·É«ÓÚÈκÎ×îеÄÎı¾±à¼Æ÷£¬ÕâÀïÖ»ÊǼòµ¥µØ½éÉÜÒ»ÏÂËüµÄÓ÷¨ºÍһС²¿·ÖÖ¸Áî¡£ÓÉÓÚ¶Ô
Unix¼°LinuxϵͳµÄÈκΰ汾£¬vi±à¼Æ÷ÊÇÍêÈ«ÏàͬµÄ£¬Òò´ËÄú¿ÉÒÔÔÚÆäËûÈκνéÉÜviµÄµØ·½½øÒ»²½Á˽âËü¡£ViÒ²ÊÇLinuxÖÐ×î»ù±¾µÄÎı¾±à¼
Æ÷£¬Ñ§»áËüºó£¬Äú½«ÔÚLinuxµÄÊÀ½çÀ ......
1.·ÖÇøÓë¸ñʽ»¯ÔÀí
Ó²Å̵ķÖÇø·ÖÖ÷MBR£¨446byte£©,Ö÷·ÖÇø±í(64byte)£¬·ÖÇø.
2.ʹÓÃlinuxÖеÄfdisk·ÖÇø
fdisk /dev/sdb
p ´òÓ¡·ÖÇø±í
t ת»»·ÖÇø±í
w д½ø·ÖÇø±í
n н¨·ÖÇø
v ¼ì²é·ÖÇø
×¢£ºfdiskʹÓÃÍêÒªÖØÐÂÆô¶¯.ÐÂÓ²Å̲»ÓÃ.
3.linuxµÄ¸ñʽ»¯Èí¼þ
mkfs-Ö§³Öext2,ext3,vfat,msdos,jfs,reiserfsµÈ
Ó÷¨1£ºmkfs ......
Ò»¡¢ÄÚºËÆô¶¯Íêºó£¬Ê×ÏÈÔËÐÐ/linuxrc
/linuxrc ÄÚÈÝ£º
#!/bin/sh
echo "mount /etc as ramfs"   ......