linux關ÓÚlikely與unlikely
ÔÀ´likelyºÍunlikelyÊÇÓÃÀ´±àÒëÓÅ»¯µÄ£¬Æäʵ¶¼¿ÉÒÔûÓС£ÎÒÃÇÖªµÀºÜ¶àcpuÀïÃæÓиæËß»º´æ£¬ÇÒÓÐÔ¤¶Á»úÖÆ£¬likelyºÍunlikely¾ÍÊÇÔö¼ÓÖ´ÐÐÅжÏÓï¾äʱµÄÃüÖÐÂÊ¡£
Èç¹ûÊÇif(lilely(a))£¬ËµÃ÷aÌõ¼þ·¢ÉúµÄ¿ÉÄÜÐÔ´ó£¬ÄÇôaÎªÕæµÄÓï¾äÔÚ±àÒë³É¶þ½øÖƵÄʱºò¾ÍÓ¦¸Ã½ô¸úÔÚÇ°Ãæ³ÌÐòµÄºóÃæ£¬ÕâÑù¾Í»á±»cacheÔ¤¶ÁÈ¡½øÈ¥£¬Ôö¼Ó³ÌÐòÖ´ÐÐËÙ¶È¡£ unlikelyÔòÊÇÕýºÃÏà·´¡£
kernelÀïÃæµÄ¶¨Ò壺
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
to nothing for earlier compilers. */
#if __GNUC__ == 2 && __GNUC_MINOR__ < 96
#define __builtin_expect(x, expected_value) (x)
#endif
#define likely(x) __builtin_expect((x),1)
#define unlikely(x) __builtin_expect((x),0)
#endif /* __LINUX_COMPILER_H */
¿ÉÒÔ¿´µ½ÔÚ2.96ÒÔǰ°æ±¾ÖУ¬gcc²¢Ã»ÓÐʵÏÖlilelyºÍunlikely¡£ÔÚgccÒÔºó°æ±¾ÖУ¬__builtin_expectÊÇgccµÄÄÚÖú¯Êý¡£
Ïà¹ØÎĵµ£º
ÕªÒª
ÎÒÃÇÔÚÕâÀïÌÖÂÛµÄÊǶÔǶÈëʽlinuxϵͳµÄÆô¶¯¹ý³ÌµÄÊä³öÐÅÏ¢µÄ×¢ÊÍ£¬Í¨¹ýÎÒÃǵÄÌÖÂÛ£¬´ó¼Ò»á¶ÔǶÈëʽlinuxÆô¶¯¹ý³ÌÖгöÏֵġ¢ÒÔǰ¸Ð¾õÊìϤµÄ¡¢µ«È´ÓÖËÆÊǶø·ÇµÄ¶«Î÷ÓÐÒ»¸öÈ·ÇеÄÁ˽⣬²¢ÇÒÄÜÁ˽⵽ÕâЩÊä³öÐÅÏ¢µÄÀ´ÁúÈ¥Âö¡£
ǶÈëʽlinuxµÄÆô¶¯ÐÅÏ¢ÊÇÒ»¸öºÜÖµµÃÎÒÃÇÈ¥ºÃºÃÑо¿µÄ¶«Î÷£¬ËüÄܽ«Ò»·ùËõӰͼ³ÊÏÖÔÚÎÒÃÇÃæÇ°£ ......
2005Äê9ÔÂ22ÈÕ£¬Ç廪ÔÚ¶Á²©Ê¿ÉúÍõÛóÔÚˮľÉçÇøBLOGÉÏ·¢±íÁË¡¶Ç廪ÃεķÛËé--д¸øÇ廪´óѧµÄÍËѧÉêÇë¡·Ã÷È·ÒªÇóÍËѧ, ÒýÆðÉç»á¸÷½ç¹ã·ºÕùÂÛ. Ëû´´×÷µÄ³¤ÆªÎÄÕ¡¶ÍêÈ«ÓÃLinux¹¤×÷¡·, ÑóÑóÁ½Íò¶à×Ö, ´Ó²»Í¬½Ç¶È¾Ó¸ßÁÙϵIJûÊöÁËËûÑÛÖÐLinuxÍêÈ«ÓÅÔ½ÓÚWindowsµÄ¸÷ÖÖÀíÓÉ, ÕâÆªÎÄÕ²¢²»¼òµ¥µÄÊÇһƪÂÛÊö"WindowsÄÜ×öµÄÊÂLinux¶¼Ä ......
¶¯Ì¬»ñÈ¡IP
ÐéÄâ»úµÄÍø¿¨Ê¹ÓÃNATµÄÁ¬½Ó·½Ê½£¨Ã»°ì·¨£¬µ¥Î»Ò»¸ö¶Ë¿ÚÖ»ÔÊÐí1¸öIP£¬Á¬hub¶¼Ã»·¨Óã©
pwd> vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTOµÄÖµ¸ÄΪdhcp£¬²¢±£´æ
ifdown eth0; ifup eth0;ÖØÆôÍø¿¨
ifconfig ·¢ÏÖ±»·ÖÅäÁ˸öIP£º10.0.2.15
ping www.163.com ͨ¹ý
¾²Ì¬ÉèÖÃIP
´ýÐø.... ......
administer@administer-laptop:~/tem/tt$ cat hello.asm
[section .data]
strHello db "Hello, world!",0Ah
STRLEN equ $-strHello
[section .text]
global _start
_start:
mov edx,STRLEN
mov ecx,strHello
mov ebx,1
mov eax,4
int 0x80
mov  ......