LinuxÄÚºËMakefiledzÎö£¨×ª
1£® ÅäÖÃϵͳµÄ»ù±¾½á¹¹
LinuxÄں˵ÄÅäÖÃϵͳÓÉÈý¸ö²¿·Ö×é³É£¬·Ö±ðÊÇ£º
Makefile£º·Ö²¼ÔÚ Linux ÄÚºËÔ´´úÂëÖÐµÄ Makefile£¬¶¨Òå Linux Äں˵ıàÒë¹æÔò£»
ÅäÖÃÎļþ£¨config.in£©£º¸øÓû§ÌṩÅäÖÃÑ¡ÔñµÄ¹¦ÄÜ£»
ÅäÖù¤¾ß£º°üÀ¨ÅäÖÃÃüÁî½âÊÍÆ÷£¨¶ÔÅäÖýű¾ÖÐʹÓõÄÅäÖÃÃüÁî½øÐнâÊÍ£©ºÍÅäÖÃÓû§½çÃæ£¨Ìṩ»ùÓÚ×Ö·û½çÃæ¡¢»ùÓÚ Ncurses ͼÐνçÃæÒÔ¼°»ùÓÚ Xwindows ͼÐνçÃæµÄÓû§ÅäÖýçÃæ£¬¸÷×Ô¶ÔÓ¦ÓÚ Make config¡¢Make menuconfig ºÍ make xconfig£©¡£
ÕâЩÅäÖù¤¾ß¶¼ÊÇʹÓýű¾ÓïÑÔ£¬Èç Tcl/TK¡¢Perl ±àдµÄ£¨Ò²°üº¬Ò»Ð©Óà C ±àдµÄ´úÂ룩¡£±¾ÎIJ¢²»ÊǶÔÅäÖÃϵͳ±¾Éí½øÐзÖÎö£¬¶øÊǽéÉÜÈçºÎʹÓÃÅäÖÃϵͳ¡£ËùÒÔ£¬³ý·ÇÊÇÅäÖÃϵͳµÄά»¤Õߣ¬Ò»°ãµÄÄں˿ª·¢ÕßÎÞÐëÁ˽âËüÃǵÄÔÀí£¬Ö»ÐèÒªÖªµÀÈçºÎ±àд Makefile ºÍÅäÖÃÎļþ¾Í¿ÉÒÔ¡£ËùÒÔ£¬ÔÚ±¾ÎÄÖУ¬ÎÒÃÇÖ»¶Ô Makefile ºÍÅäÖÃÎļþ½øÐÐÌÖÂÛ¡£ÁíÍ⣬·²ÊÇÉæ¼°µ½Óë¾ßÌå CPU Ìåϵ½á¹¹Ïà¹ØµÄÄÚÈÝ£¬ÎÒÃǶ¼ÒÔ ARM ΪÀý£¬ÕâÑù²»½ö¿ÉÒÔ½«ÌÖÂÛµÄÎÊÌâÃ÷È·»¯£¬¶øÇÒ¶ÔÄÚÈݱ¾Éí²»²úÉúÓ°Ïì¡£
2£® Makefile
2.1 Makefile ¸ÅÊö
Makefile µÄ×÷ÓÃÊǸù¾ÝÅäÖõÄÇé¿ö£¬¹¹Ôì³öÐèÒª±àÒëµÄÔ´ÎļþÁÐ±í£¬È»ºó·Ö±ð±àÒ룬²¢°ÑÄ¿±ê´úÂëÁ´½Óµ½Ò»Æð£¬×îÖÕÐÎ³É Linux Äں˶þ½øÖÆÎļþ¡£
ÓÉÓÚ Linux ÄÚºËÔ´´úÂëÊǰ´ÕÕÊ÷Ðνṹ×éÖ¯µÄ£¬ËùÒÔ Makefile Ò²±»·Ö²¼ÔÚĿ¼Ê÷ÖС£Linux ÄÚºËÖÐµÄ Makefile ÒÔ¼°Óë Makefile Ö±½ÓÏà¹ØµÄÎļþÓУº
Makefile£º¶¥²ã Makefile£¬ÊÇÕû¸öÄÚºËÅäÖᢱàÒëµÄ×ÜÌå¿ØÖÆÎļþ¡£
.config£ºÄÚºËÅäÖÃÎļþ£¬°üº¬ÓÉÓû§Ñ¡ÔñµÄÅäÖÃÑ¡ÏÓÃÀ´´æ·ÅÄÚºËÅäÖúóµÄ½á¹û£¨Èç make config£©¡£
arch/*/Makefile£ºÎ»ÓÚ¸÷ÖÖ CPU ÌåϵĿ¼Ï嵀 Makefile£¬Èç arch/arm/Makefile£¬ÊÇÕë¶ÔÌØ¶¨Æ½Ì¨µÄ Makefile¡£
¸÷¸ö×ÓĿ¼Ï嵀 Makefile£º±ÈÈç drivers/Makefile£¬¸ºÔðËùÔÚ×ÓĿ¼ÏÂÔ´´úÂëµÄ¹ÜÀí¡£
Rules.make£º¹æÔòÎļþ£¬±»ËùÓÐµÄ Makefile ʹÓá£
Óû§Í¨¹ý make config ÅäÖú󣬲úÉúÁË .config¡£¶¥²ã Makefile ¶ÁÈë .config ÖеÄÅäÖÃÑ¡Ôñ¡£¶¥²ã Makefile ÓÐÁ½¸öÖ÷ÒªµÄÈÎÎñ£º²úÉú vmlinux ÎļþºÍÄÚºËÄ£¿é£¨module£©¡£ÎªÁË´ïµ½´ËÄ¿µÄ£¬¶¥²ã Makefile µÝ¹éµÄ½øÈëµ½Äں˵ĸ÷¸ö×ÓĿ¼ÖУ¬·Ö±ðµ÷ÓÃλÓÚÕâЩ×ÓĿ¼ÖÐµÄ Makefile¡£ÖÁÓÚµ½µ×½øÈëÄÄЩ×ÓĿ¼£¬È¡¾öÓÚÄں˵ÄÅäÖá£ÔÚ¶¥²ã Makefile ÖУ¬ÓÐÒ»¾ä£ºinclude arch/$(ARCH)/Makefile£¬°üº¬ÁËÌØ¶¨ CPU Ìåϵ½á¹¹Ï嵀 Makefile£¬Õâ¸ö Makefile Öаüº¬ÁËÆ½Ì¨Ïà¹ØµÄÐÅÏ¢¡£
λÓÚ¸÷¸
Ïà¹ØÎĵµ£º
ǰ¼¸Ìì°ÑϵͳµÄrootÃÜÂë¸øÍüÁË£¬²»ÖªµÀÔõô½â¾ö£¬µ½ÍøÉÏËÑÁ˸ö½â¾ö°ì·¨£¬Óë´ó¼Ò¹²Ïí¡£
ÔÚ³öÏÖϵͳѡÔñ½çÃæÊ±£¬ÔÚRed Hat LinuxµÄÑ¡ÏîÉϰ´“e”¼ü£¬È»ºó»á³öÏÖÈý¸öÑ¡ÏÔÚµÚ¶þÏîÀàËÆ“ kernel /vmlinuz-2.4.20-8 ro root=LABEL=/”Éϰ´“e”¼ü½øÐб༣¬ÔÚ“ro”»òÕß&l ......
2009Äê12ÔÂ28ÈÕÊÇLinux´´Ê¼ÈËLinusµÄ40ËêÉúÈÕ¡£
19Äêǰ£¬ÔÚÊ¥µ®½ÚºóºÕ¶ûÐÁ»ùÉ̵꿪ҵµÄµÚÒ»Ì죬Linus³åÏòµçÄÔÉ̵꣬ÓÃÊ¥µ®½ÚºÍÉúÈÕÀñ½ð¹ºÂòÁËËûµÄµÚһ̨PC£ºÒ»Ì¨DX33 80386¼ÆËã»ú£¬4 Megs RAM£¬40 MegabyteÓ²ÅÌ£¬Ã»ÓÐÐͬ´¦ÀíÆ÷¡£LinusÖ®ËùÒÔÑ¡Ôñ80386£¬¶ø ......
ϵͳµ÷ÓÃÊÇÓ¦ÓóÌʽºÍ²Ù×÷ϵͳÄÚºËÖ®¼äµÄ¹¦Äܽӿڡ£ÆäÖ÷ҪĿµÄÊÇʹµÃÓû§
ÄÜʹÓòÙ×÷ϵͳÌṩµÄÓйØÉ豸¹ÜÀí¡¢ÊäÈë/ÊäÈëϵͳ¡¢ÎļþϵͳºÍ½ø³Ì¿ØÖÆ¡¢
ͨÐż°´æ´¢¹ÜÀíµÈ·½ÃæµÄ¹¦ÄÜ£¬¶ø²»±ØÁ˽âϵͳ³ÌʽµÄÄÚ²¿½á¹¹ºÍÓйØÓ²¼þϸ
½Ú£¬´Ó¶øÆðµ½¼õÇáÓû§¸ºµ£ºÍ±£»¤ÏµÍ³¼°Ìá¸ß×ÊÔ´ÀûÓÃÂʵÄ×÷Óᣠ......
Displaying the Routing Table£º
netstat -nr
Displaying Interface Statistics:
netstat -i
Show the address resolution (ARP) tables:
netstat -p
Displaying Connections:
netstat -ta (linux)
netstat -a -f af:inet (opensolaris)
http://www.faqs.org/docs/linux_network/x-087-2-iface.netstat.html
http ......
Õâ¸ö¶«¶«£¬ÂùºÃÍæµÄ¡£Æäʵ¾ÍÊǶÁÈ¡ÁË/proc/net/dev Îļþ¡£
struct netdev_stats {
unsigned long long rx_packets_m; /* total packets received */
unsigned long long tx_packets_m; &nbs ......