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ÔÚϵͳÖÐÆô¶¯ºÜ¶àÏ̗߳—²»Ñ°³£µÄÓ÷¨¡£ËûÃÇ·¢ÏÖÈç¹ûÏòÒ»¸ö´óµÄÏß³Ì
Ïà¹ØÎĵµ£º
½øÈëviµÄÃüÁî
vi filename :´ò¿ª»òн¨Îļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»ÐÐÊ×
vi +n filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚnÐÐÊ×
vi + filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚ×îºóÒ»ÐÐÊ×
vi +/pattern filename£º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»¸öÓëpatternÆ¥ÅäµÄ´®´¦
vi -r filename £ºÔÚÉÏ´ÎÕýÓÃvi±à¼Ê±·¢Éúϵͳ±ÀÀ££¬»Ö¸´filename
vi ......
ÓÃLinuxϵÄLVSÈí¼þʵÏÖLinux¼¯Èº
µÂÓ¢
·¢±íÓÚ2010Äê03ÔÂ15ÈÕ 18:22
ÔĶÁ( ......
ÎļþÔÚÁ½¸öÎļþ¼Ð£º
inc/hello.h
main/hello.c, main.c, Makefile
ÎļþÄÚÈÝ£º
hello.h
void hello(char name[]);
hello.c
#include <stdio.h>
void hello(char name[])
{
printf("Hello %s!\n", name);
}
main.c
#include <stdio.h>
#include "../inc/hello.h"
// The second
int main( ......
LinuxÏÂËøÓû§Óë½âËøÎÊÌâ [Ô´´ 2010-02-03 21:44:35]
×ֺţº´ó ÖРС
Ò»£ºµÇ¼ʧ°Ü´Î»Ø³¬¹ýÏÞÖÆ
1£©ËøÓû§µÄÉ趨
/etc/pam.d/ϰüº¬¸÷ÖÖÈÏÖ¤³ÌÐò»ò·þÎñµÄÅäÖÃÎļþ¡£±à¼ÕâЩ¿ÉÏÞÖÆÈÏ֤ʧ°Ü´ÎÊý£¬µ±Ê§°Ü´ÎÊý³¬¹ýÖ¸¶¨ÖµÊ±Óû§»á±»Ëø×¡¡£
ÔÚ´Ë£¬ÒÔrun levelΪ3µÄʱºò£¬¶à´ÎµÇ¼µÇ¼ʧ°Ü¼´ËøÓû§ÎªÀý£º
......
ÔÚ½øÈëÕýÎÄǰÏÈ¿´Ò»ÏÂÎÒÔÚÍøÉÏ¿´µ½µÄÌû×Ó£º
ÎÊ£ºatomic_set(v,i)µÄ¶¨ÒåÊÇÕâÑùµÄ:
#define atomic_set(v,i) v->counter=i
µ«ÊÇ£¬ÔÚi386Ìåϵ½á¹¹ÖУ¬²»ÄÜÖ±½Ó°ÑÒ»¸öÄÚ´æ²Ù×÷Êýͨ¹ýÒ»ÌõmovÖ¸Áî´æµ½ÁíÒ»¸öÄÚ´æ²Ù×÷ÊýÖУ¬
±ÈÈçÒª°Ñint32ÀàÐ͵ıäÁ¿ i ÉèÖÃ³É j£¬±ØÐë¾¹ýÁ½ÌõÖ¸Áî:
mov eax,j
mov i,eax
Èç¹ûÕâÑùÀ ......