googleÔõÑùʹÓÃlinux£¨Äںˣ©
googleÔõÑùʹÓÃlinux£¨Äںˣ©
½ñÄêµÄlinuxÄں˿ª·¢´ó»áÉÏ£¬googleµÄ¿ª·¢ÈËÔ±Ò²ÉĮ̈×öÁËÃûΪ“how google use linux"µÄÑݽ²¡£ÎÒ¶·µ¨·Òë×¢½âÒ»·¬——À¨ºÅÄÚΪע½â£¬»¶Ó¶ÁÕ߸«Õý¡£
£¨Ç°Ã漸¶Î½²google¶Ôlinux kernel´úÂëµÄ¹ÜÀí¼°¸ú½ø£¬Æ«Ï¸Ë飬²»·ÒëÁË£©
ÔÚgoogleΪlinux¼ÓÈëµÄ´úÂëÖУ¬3/4ÊǶÔÄں˺ËÐĵĸ͝£¬É豸Çý¶¯´úÂëÖ»ÊÇÆäÖÐÏà¶Ô½ÏСµÄÒ»²¿·Ö¡£
£¨linux·¢Õ¹µ½ÏÖÔÚÕâ¸ö½×¶Î£¬ÐèÒª¼ÓÈëµÄеÄÉ豸Çý¶¯ÒѾԽÀ´Ô½ÉÙÁË£©
Èç¹ûgoogleÒªÓëlinuxÉçÇøµÄºÏ×÷¿ª·¢£¬Äǽ«ÃæÁÙһϵÁÐÎÊÌâ¡£¸úÉÏlinux´úÂëµÄÖ÷¸ÉÌ«ÄÑ——ËüµÄ´úÂë¸üеÄÌ«¿ìÁË¡£ÔÚÒ»¸ö´óÐÍÏîÄ¿ À¿ª·¢Õß¶Ô²¹¶¡µÄÌá½»¡¢ÖظÄȷʵÊǸöÎÊÌâ¡£Alan Cox¶Ô´ËµÄ»Ø´ðÊ®·Ö¼òµ¥£ºÈË×ÜÊÇ̰µÃÎÞÑáµÄ£¬µ«ÓÐʱºò¾ÍÓ¦¸Ã¼òµ¥µÄ¶ÔËûÃÇ˵”²»“¡£
£¨Alan CoxÊÇlinux kernelµÄ¶þºÅ¹¦³¼£¬ÏÖÒѼÓÈëIntel¹«Ë¾¡£ÎÒ¾õµÃIntelÕâÑùµÄCPU¹«Ë¾ºÜÊʺÏÄں˿ª·¢Õߣ©
ÔÚCPUµ÷¶ÈÉÏ£¬google·¢ÏÖÏë¸ÄÓÃеÄcfs£¨“ÍêÈ«¹«Æ½µ÷¶È”£¬ÓÉCon KolivasyÔÚ2.6.23ÖмÓÈëÄںˣ©·Ç³£Âé·³¡£ÓÉÓÚÌ«Âé·³£¬google²»µÃ²»µ¹»ØÈ¥°ÑO(1) sheduler£¨2.6.23ǰÄÚºËʹÓõĵ÷¶ÈËã·¨£¬ÏëÖªµÀÕâ¶Î¾ßÌåµÄÀúÊ·£¬¿ÉÒԲο¼ÁíһƪcfsÎÄÕ£©ÒÆÖ²µ½2.6.26ÉÏ£¬Ò»ÇвÅÄÜÔËתÆðÀ´¡£Äں˶Ôsched_yield()ÓïÒåµÄ¸ü¸ÄÒ²Ôì³ÉÁËÂé ·³£¬ÓÈÆäµ±googleʹÓÃÓû§Ì¬ËøÊ±¡£¸ßÓÅÏȼ¶µÄÏ̻߳á¶Ô·þÎñÆ÷µÄ¸ºÔؾùºâ£¨ÕâÀïµÄ¸ºÔؾùºâÖ¸µÄÊÇһ̨·þÎñÆ÷É϶à¸öCPU¶Ô¶àÈÎÎñµÄ·ÖÅä´¦Àí£¬²»ÊÇÖ¸·Ö²¼Ê½£©Ôì³ÉÓ°Ï죬ÄÄÅÂÕâЩÏß³ÌÖ»ÊÇÔËÐк̵ܶÄʱ¼ä¡£¶ø¸ºÔؾùºâºÜÖØÒª£ºgoogleͨ³£ÔÚ16-32ºËµÄ·þÎñÆ÷ÉÏÅÜ5000¸öỊ̈߳¨ºÃ¹îÚܵÄÓ÷¨£¡£©¡£
ÔÚÄÚ´æ¹ÜÀíÉÏ£¬ÐµÄlinuxÄں˸ıäÁ˶ÔÔàÊý¾ÝµÄ¹ÜÀí£¬µ¼Ö³öÏÖÁË´óÁ¿Ö÷¶¯µÄд»Ø²Ù×÷£¨ÔàÊý¾ÝҪд»ØÓ²ÅÌ£©¡£ÏµÍ³ºÜÈÝÒ׳öÏÖÕâÖÖ¾Ö Ãæ£ºkswaped£¨swap½ø³Ì£©»á²úÉú´óÁ¿Ð¡µÄI/O²Ù×÷£¬ÈûÂú¿éÉ豸µÄÇëÇó¶ÓÁУ¬½á¹ûÔì³É±ðµÄд»ØÎÞ·¨Íê³É£¨Ð´»Ø“¼¢¶ö”£©£»Õâ¸öÎÊÌâÒѾͨ¹ý “per-DBIд»Ø»úÖÆ”²¹¶¡ÔÚ2.6.32ÄÚºËÖнâ¾öÁË¡£
£¨per-DBIµÄÖ÷ÒªÔÀíÊÇ¿éÉ豸²»ÔÙÖ»ÓÐÒ»¸öµÈ´ý¶ÓÁУ¬¶øÊǶà¸ö£¬Ã¿¸ö“Ó²ÅÌÖá”Ò»¸ö¶ÓÁУ¬ÒòΪӲÅÌÖáÊÇÒ»¸öÓ²¼þÉϵÄÕæÕýµÄ¹¤×÷µ¥Î»¡£ÕâÑù£¬¶Ô×°Åä¶à¸öÓ²Å̵ķþÎñÆ÷»áÓкܺõÄI/OÐÔÄÜ¡£²»¹ýÎÒ¸öÈ˲²⣬Èç¹ûÄܰÑkswapedµÄСÇëÇóºÏ²¢£¬ÊÇ·ñÒ²ÄÜÌá¸ßÐÔÄÜÄØ£¿£©
ÈçÉÏËùÊö£¬googleÔÚϵͳÖÐÆô¶¯ºÜ¶àÏ̗߳—²»Ñ°³£µÄÓ÷¨¡£ËûÃÇ·¢ÏÖÈç¹ûÏòÒ»¸ö´óµÄÏß³Ì
Ïà¹ØÎĵµ£º
LinuxÏÂÈí¼þµÄ°²×°ÓëÐ¶ÔØ
Ò»¡¢¶þ½øÖÆ·Ö·¢Èí¼þ°üµÄ°²×°ÓëÐ¶ÔØ
LinuxÈí¼þµÄ¶þ½øÖÆ·Ö·¢ÊÇÖ¸ÊÂÏÈÒѾ±àÒëºÃ¶þ½øÖÆÐÎʽµÄÈí¼þ°üµÄ·¢²¼ÐÎʽ£¬ÆäÓŵãÊǰ²×°Ê¹ÓÃÈÝÒ×£¬È±µãÔòÊÇȱ·¦Áé»îÐÔ£¬Èç¹û¸ÃÈí¼þ°üÊÇÎªÌØ¶¨µÄÓ²¼þ/²Ù×÷ϵͳƽ̨±àÒëµÄ£¬ÄÇËü¾Í²»ÄÜÔÚÁíÍâµÄƽ̨»ò»·¾³ÏÂÕýÈ·Ö´ÐС£
1¡¢*.rpmÐÎʽµÄ¶þ½øÖÆÈí¼þ°ü
°²×°£ºrpm ......
ÓÃLinuxϵÄLVSÈí¼þʵÏÖLinux¼¯Èº
µÂÓ¢
·¢±íÓÚ2010Äê03ÔÂ15ÈÕ 18:22
ÔĶÁ( ......
·¢ÏÖ·þÎñÆ÷ϵͳʱ¼äºÍ±ê׼ʱ¼ä²îÁË10¶à·ÖÖÓ,È»ºóÁãµãµÄʱ¼äµ÷ÕûÁËÏÂʱ¼ä¡£¹ýÁ˲¶àÒ»¸öÀñ°Ý·¢Õ¹Êý¾Ý¿âÖмǼµÄʱ¼ä»¹ÊDz»¶Ô£¬ÈçÊÇÓüӰàµ÷ÕûÁËÏÂʱ¼ä¡£¹ýÁË2ÌìÒ»¿´»¹ÊÇʱ¼ä²»¶Ô£¬Ò»²é²Å·¢ÏÖ£º
»úÆ÷ÀïÓÐÁ½¸öʱÖÓ¡£Ó²¼þʱÖÓ´Ó¸ù±¾ÉϽ²ÊÇCMOSʱÖÓ£»¶øÏµÍ³Ê±ÖÓÊÇÓÉÄÚºËά»¤µÄ£¬ËüÊÇ´Ó1969ÄêÄ©£¨¼ ......
¸÷sectionµÄλÖ÷ֲ¼¿´Äں˵ÄÁ´½Ó½Å±¾
D:\KIDE\target\kernel-version\cgel3.0\linux\include\asm-generic\vmlinux.lds.h
D:\KIDE\target\kernel-version\cgel3.0\linux\arch\powerpc\kernel\vmlinux.lds.S
Kernel¾µÏñÆðʼµØÖ·KERNELBASE = 0xc000 0000£¬ÕâÒâζ×ÅÄں˴úÂëºÍÄÚºËÈ«¾Ö±äÁ¿µÈµÄµØÖ·¿Õ¼äÔÚ3g-4gµÄµØ·½£¬
¶ø ......
ÔÚ½øÈëÕýÎÄǰÏÈ¿´Ò»ÏÂÎÒÔÚÍøÉÏ¿´µ½µÄÌû×Ó£º
ÎÊ£ºatomic_set(v,i)µÄ¶¨ÒåÊÇÕâÑùµÄ:
#define atomic_set(v,i) v->counter=i
µ«ÊÇ£¬ÔÚi386Ìåϵ½á¹¹ÖУ¬²»ÄÜÖ±½Ó°ÑÒ»¸öÄÚ´æ²Ù×÷Êýͨ¹ýÒ»ÌõmovÖ¸Áî´æµ½ÁíÒ»¸öÄÚ´æ²Ù×÷ÊýÖУ¬
±ÈÈçÒª°Ñint32ÀàÐ͵ıäÁ¿ i ÉèÖÃ³É j£¬±ØÐë¾¹ýÁ½ÌõÖ¸Áî:
mov eax,j
mov i,eax
Èç¹ûÕâÑùÀ ......