Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÖÐALIGNºêµÄÔ­Àí

1. Òý×Ó
int a;  
int size = 8;
   
Èç¹ûÈÃaΪ(size =8)µÄÕûÊý±¶±íʾ³É¶þ½øÖÆÓ¦ÊÇʲôÑù×ÓÄØ£¿ÄǾÍÊÇÈÃÕâ¸öÊý±íʾ³É¶þ½øÖÆÊ±µÄ×îºóÈýλΪ0.
¶øÒª´ïµ½ÕâһĿ±ê£¬Ö»ÒªÏÂÃæÕâ¸öÊýÓëËü½øÐÐÓëÔËËã¾Í¿ÉÒÔÁË:
  11111111 11111111 11111111 11111000  
¶øÉÏÃæÕâ¸öÊýʵ¼ÊϾÍÊÇ ~ (size - 1)£¬¿ÉÒÔ½«¸ÃÊý³ÆÎªsizeµÄ¶ÔÆëÑÚÂësize_mask.  
   
¿ÉÕâÑù×öÇó³öµÄÊDZÈaСµÄÄǸö×î´óµÄ8µÄ±¶Êý. Èç¹ûÒªÇó³ö±Èa´óµÄÊDz»ÊÇÐèÒª¼ÓÉÏ8¾Í¿ÉÒÔÁË?
¿ÉÊÇÈç¹ûa±¾Éí¾ÍÊÇ8µÄ±¶Êý, ÕâÑù¼Ó8²»¾Í´íÁËÂð, ËùÒÔÔÚa»ù´¡ÉϼÓÉÏ size - 1, È»ºóÓësizeµÄ¶ÔÆëÑÚÂë½øÐÐÓëÔËËã.
ÕâÑù, ÎÒÃÇ¿ÉÒÔ¶¨ÒåÏÂÃæµÄºê, ÓÃÓÚ¼ÆËãÒ»¸öÊýaÒÔsizeΪ±¶ÊýµÄǰºóÁ½¸öÖµ£º
#define alignment_down(a, size) (a & (~(size-1)) )
#define alignment_up(a, size) ((a+size-1) & (~ (size-1)))
 
ÀýÈç:
a=0, size=8,  Ôòalignment_down(a,size)=0, alignment_up(a,size)=0.
a=6, size=8,  Ôòalignment_down(a,size)=0, alignment_up(a,size)=8.
a=8, size=8,  Ôòalignment_down(a,size)=8, alignment_up(a,size)=8.
a=14, size=8, Ôòalignment_down(a,size)=8, alignment_up(a,size)=16.
 
×¢Ò⣺sizeÓ¦µ±Îª2µÄn´Î·½, ¼´2, 4, 8, 16, 32, 64, 128, 256, 1024, 2048, 4096.....
 
2. ÔÚlinuxÖеÄÓ¦ÓÃ
ÉÏÃæµÄ¼ÆËã·½·¨ÔÚlinuxµÈ´úÂëÖÐÒ²³£³£¿ÉÒÔ¿´µ½,ÏÂÃæ¸ø³ö¼¸¸öÀý×Ó.
 
Àý£±£ºµ±·ÖÅ䵨ַaddrʱ, Òª½«¸ÃµØÖ·ÒÔsizeΪ±¶Êý¶ÔÆë, ¶øÇÒÒªµÃµ½ÊDZÈaddr´óµÄÖµ, ÔòʹÓÃ_ALIGNºê£º
/* align addr on a size boundary - adjust address up if needed -- Cort */
#define _ALIGN(addr,size)   (((addr)+(size)-1)&(~((size)-1)))
Àý2£ºÓëÒ³Ãæ¶ÔÆëÏà¹ØµÄºê
#define PAGE_SIZE               4096
#define PAGE_MASK               (~(PAGE_SIZE-1))
/* to align the pointer to the (next) page boundary */
#define PAGE_ALIGN(addr)        (((addr)+PAGE_SIZE-1) & PAGE_MASK)
 
Àý3£ºÓëskb·ÖÅäʱ¶ÔÆëÏà¹ØµÄºê
#define SKB_DATA_ALIGN(X)  


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

LinuxÃüÁîÐÐϱ༭³£Óÿì½Ý¼ü


±¾ÎĽ²ÊöÁËLinuxÃüÁîÐб༭¿ì½Ý¼üµÄ·½·¨£¬Ï£Íû¶ÔÄúÓÐËù°ïÖú¡£
LinuxÃüÁîÐб༭¿ì½Ý¼ü£º
history ÏÔʾÃüÁîÀúÊ·Áбí
↑(Ctrl+p) ÏÔʾÉÏÒ»ÌõÃüÁî
↓(Ctrl+n) ÏÔʾÏÂÒ»ÌõÃüÁî
!num Ö´ÐÐÃüÁîÀúÊ·ÁбíµÄµÚnumÌõÃüÁî
!! Ö´ÐÐÉÏÒ»ÌõÃüÁî
!?string? Ö´Ðк¬ÓÐstring×Ö·û´®µÄ×îÐÂÃüÁî
Ctrl+r È»ºóÊäÈëÈô¸É×Ö· ......

Linux»·¾³ÏÂÅжϷþÎñÆ÷ÊÇ·ñÕý³£¹Ø»ú

Linux»·¾³ÏÂÅжϷþÎñÆ÷ÊÇ·ñÕý³£¹Ø»ú
2009-05-17  À´×Ô£ºZDNet     ÊÕ²Ø
ϵͳÆô¶¯µÄʱºòÉú³ÉÒ»¸öÎļþ£¬Õý³£¹Ø»úµÄʱºòÔòɾ³ýÕâ¸öÎļþ£¬Ôò¿ÉÒÔ¸ù¾Ýϵͳ¿ª»úʱÓÐûÓÐÄǸöÎļþÀ´ÅжÏÊDz»ÊÇ·ÇÕý³£¹Ø»ú¡£
ϵͳÆô¶¯µÄʱºòÉú³ÉÒ»¸öÎļþ£¬Õý³£¹Ø»úµÄʱºòÔòɾ³ýÕâ¸öÎļþ£¬Ôò¿ÉÒÔ¸ù¾Ýϵͳ¿ª»úʱÓÐûÓÐÄǸöÎļþÀ´ÅÐ ......

Linux³É³¤Ö®Â· 2010 01 06

      ×î½üÏëÔÚLinuxÖ÷»úÉϼÜÉèOracle RAC,ËùÒÔ²»¶ÏµØÊÕ¼¯Ïà¹Ø×ÊÁÏ,²¢½øÐÐʵ¼ÊÑо¿.
      ÏàÐÅ´ó¼ÒºÜ¿ì¾Í¿ÉÒÔÔÚÎҵIJ©¿ÍÖп´µ½Ïà¹ØµÄÑо¿ÐĵÃÁË.
      ÔÚLinuxѧϰµÄÕâ¶Îʱ¼ä,¸Ð¾õËüÕæÊǷdz£ÆæÃî,ÈÃÎÒ¶ÔËüµÄÐËȤҲԽÀ´Ô½Å¨ÁË,Ï£ÍûÄܹ»¸üºÃ ......

Linux ±àÒë°²×° MYSQL 5.1 Óë Innodb

Linux ±àÒë°²×° MYSQL 5.1 Óë Innodb
±àÒëmysql5
´úÂë:
./configure \
--prefix=/usr/local/mysql \
--localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
--with-extra-charsets=all \
--with-charset=utf8 \
- ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ