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ÔÚϵͳÖÐÆô¶¯ºÜ¶àÏ̗߳—²»Ñ°³£µÄÓ÷¨¡£ËûÃÇ·¢ÏÖÈç¹ûÏòÒ»¸ö´óµÄÏß³Ì
Ïà¹ØÎĵµ£º
2.6µÄKernel LOGO
ËÆºõ±È2.4ÈÝÒס£2.6µÄlogoÊý¾ÝÔÚ/drivers/video/logoÀppmÎļþ¾ÍÊÇlogoͼÏñÁË¡£Ã¿¸öppm¶ÔÓ¦Ò»¸ö. cÎļþ£¬ÄÚÈÝ´ó¸Å¾ÍÊÇͼÏñ³ß´ç¡¢µ÷É«°å¡¢Î»Í¼Êý¾ÝµÈÐÅÏ¢¡£.cÎļþÎÞÐè×Ô¼º½¨Á¢£¬ÔÚmakeµÄʱºòÈç¹û²»´æÔÚij¸öppmÎļþ¶ÔÓ¦µÄ.cÎļþ£¬¾Í»á×Ô¶¯´Ó ppmÉú³ÉÒ»¸ö£¬È»ºó°ÑËü±àÒë³É.oÎļþ¡£ËùÒÔ¿´¿´Ä¿Â¼ÏÂÄÄЩ.ppmÎ ......
°üº¬3¸öÎļþ¼Ð
Ŀ¼×éÖ¯½á¹¹ÈçÏ£º
inc/hello.h
main/main.c, Makefile
src/hello.c
ÎļþÄÚÈÝÈçÏ£º
hello.h:
void hello(char name[]);
main.c:
#include <stdio.h>
#include "../inc/hello.h"
// The second hello.h should in ""
int main()
{
hello("GCC");
printf("Haha Linux Ub ......
°üº¬3¸öÎļþ¼Ð£¬ºÍÒ»¸öÎļþMakefile
Ŀ¼×éÖ¯½á¹¹ÈçÏ£º
Makefile
inc/hello.h
main/main.c
src/hello.c
MakefileÎļþÔÚÍâÃæ£¬ÕâÑùÉú³ÉµÄ.oºÍ¿ÉÖ´ÐÐÎļþ¶¼ÔÚÍâÃæ£¬cleanÖ®ºó»áºÜ¸É¾»£¬½á¹¹ÇåÎú
ÎļþÄÚÈÝÈçÏ£º
Makefile(Ö®ËùÒÔÓôóд£¬ÒòΪmake¿ÉÒÔʶ±ðMakefileºÍmakefile£¬Óôóд¿ÉÒÔÏÊÃ÷һЩ)::
# String declar ......
Linux
/ LinuxÎļþϵͳµÄÈë¿Ú£¬Ò²ÊÇ´¦ÓÚ×î¸ßÒ»¼¶µÄĿ¼£»
/bin »ù´¡ÏµÍ³ËùÐèÒªµÄÄÇЩÃüÁîλÓÚ´ËĿ¼£¬Ò²ÊÇ×îСϵͳËùÐèÒªµÄÃüÁ±ÈÈç ls¡¢cp¡¢mkdirµÈÃüÁ¹¦ÄܺÍ/usr/binÀàËÆ£¬Õâ¸öĿ¼ÖеÄÎļþ¶¼ÊÇ¿ÉÖ´Ðе쬯ÕͨÓû§¶¼¿ÉÒÔʹÓõÄÃüÁî¡£×öΪ»ù´¡ÏµÍ³ËùÐèÒªµÄ×î»ù´¡µÄÃüÁî¾ÍÊÇ·ÅÔÚÕâÀï¡£
/boot LinuxµÄÄں˼°Òýµ¼Ïµ ......