[ת]LinuxÄÚºËMakefileÎļþ£¨¶þ£©
=== 6 ÌåϵMakefileÎļþ
ÔÚ¿ªÊ¼½øÈë¸÷¸öĿ¼±àÒë֮ǰ£¬¶¥²ãMakefileÎļþÉèÖñàÒë»·¾³ºÍ×öЩ׼±¸¹¤×÷¡£¶¥²ãMakefileÎļþ°üº¬Í¨Óò¿·Ö£¬arch/$(ARCH) /Makefile°üº¬¸ÃÌåϵ¼Ü¹¹ËùÐèµÄÉèÖá£Òò´Ëarch/$(ARCH)/Makefile»áÉèÖÃһЩ±äÁ¿ºÍÉÙÁ¿µÄÄ¿±ê¡£
µ±±àÒëʱ½«°´ÕÕÒÔÏ´ó¸Å²½ÖèÖ´ÐУº
1) ÅäÖÃÄÚºË => ²úÉú .configÎļþ
2) ±£´æÄں˰汾µ½include/linux/version.hÎļþÖÐ
3) ·ûºÅÁ´½Óinclude/asm to include/asm-$(ARCH)
4) ¸üÐÂËùÓÐÄ¿±ê¶ÔÏóµÄÆäËüǰÌáÎļþ
- ¸½¼ÓǰÌáÎļþ¶¨ÒåÔÚarch/$(ARCH)/MakefileÎļþÖÐ
5) µÝ¹é½øÈëinit-* core* drivers-* net-* libs-*ÖеÄËùÓÐ×ÓĿ¼ºÍ±àÒëËùÓеÄÄ¿±ê¶ÔÏó
- ÉÏÃæ±äÁ¿Öµ¶¼ÒýÓõ½arch/$(ARCH)/MakefileÎļþ¡£
6) Á´½ÓËùÓеÄobjectÎļþÉú³ÉvmlinuxÎļþ£¬vmlinuxÎļþ·ÅÔÚ´úÂëÊ÷¸ùĿ¼Ï¡£
×ʼÁ´½ÓµÄ¼¸¸öobjectÎļþÁоÙÔÚarch/$(ARCH)/MakefileÎļþµÄhead-y±äÁ¿ÖС£
7) ×îºóÌåϵMakefileÎļþ¶¨Òå±àÒëºóÆÚ´¦Àí¹æÔòºÍ½¨Á¢×îÖÕµÄÒýµ¼Ó³Ïñbootimage¡£
- °üÀ¨´´½¨Òýµ¼¼Ç¼
- ×¼±¸initrdÓ³ÏñºÍÏà¹Ø´¦Àí
--- 6.1 ±äÁ¿ÉèÖÃ
LDFLAGS $(LD)Ò»°ãÑ¡Ïî
Ñ¡ÏîʹÓÃÓÚÁ´½ÓÆ÷µÄËùÓе÷ÓÃÖС£Í¨³£¶¨Òåemulation¾Í¿ÉÒÔÁË¡£
Example:
#arch/s390/Makefile
LDFLAGS := -m elf_s390
×¢Òâ: EXTRA_LDFLAGSºÍLDFLAGS_$@¿ÉÒÔ½øÒ»²½¶©ÖÆÊ¹ÓÃÑ¡ÏÇë²Î¿¼µÚ7Õ¡£
LDFLAGS_MODULE $(LD)Á´½ÓÄ£¿éµÄÑ¡Ïî
LDFLAGS_MODULEͨ³£ÉèÖÃ$(LD)Á´½ÓÄ£¿éµÄ.koÑ¡ÏĬÈÏΪ"-r"¼´¿ÉÖØ¶¨Î»Êä³öÎļþ¡£
LDFLAGS_vmlinux $(LD)Á´½ÓvmlinuxÑ¡Ïî
LDFLAGS_vmlinux¶¨ÒåÁ´½Ó×îÖÕvmlinuxʱÁ´½ÓÆ÷µÄÑ¡Ïî¡£LDFLAGS_vmlinuxÖ§³ÖʹÓÃLDFLAGS_$@¡£
Example:
#arch/i386/Makefile
LDFLAGS_vmlinux := -e stext
OBJCOPYFLAGS objcopyÑ¡Ïî
&
Ïà¹ØÎĵµ£º
1. Two methods to construct the cluster of servers
(1). DNS based load balancing cluster
DNS load balancing is probably the simplest method to build network
service cluster. It uses Domain Name System to distribute requests to
different servers through resolving the domain name to different IP
......
Õª×Ôoldlinux£º
ÉϵçÖ´ÐеĵÚÒ»Ìõ´úÂëÊÇÔÚÄÚ´æÀïÂð£¿
“·ÃÎʵÄF000h : FFF0hÊÇÄÚ´æµÄµØÖ·»¹ÊÇ´æ·ÅbiosµÄromµØÖ·¡¡”¡¡
¡¡¡¡Õâ¸öÊÇÓɱ±ÇÅÄÚµÄÒ»¸ö¼Ä´æÆ÷ÉèÖõ썾ßÌåµÄ×ÊÁÏÄã¿ÉÒÔÈ¥ÕÒһЩоƬ×éµÄ×ÊÁÏ£©¡£µ±±±ÇÅÊÕµ½£Ã£Ð£ÕÍⲿµÄµØÖ·×ÜÏßÉϵÄÐźÅʱ£¬»á¸ù¾ÝÕâ¸ö¼Ä´æÆ÷ÄÚµÄÖµÀ´¾ö¶¨ÊÇ´ÓÄÚ´æÀïÈ¡ÄÚÈÝ»¹ÊǰÑÕâ¸öµØ ......
Æô¶¯armlinux£¬bootloader±ØÐëÌṩÏÂÃæ¼¸²½£º
1£® ÉèÖò¢³õʼ»¯ram
2£® ³õʼ»¯Ò»¸ö´®¿Ú
3£® ¼ì²â´¦ÀíÆ÷ÀàÐÍ
4£® ÉèÖÃÄں˱ê¼ÇÁбí
5£® µ÷ÓÃÄÚºËÓ³Ïñ
1. ÉèÖò¢³õʼ»¯ram
bootloaderÒªÕÒµ½²¢³õʼ»¯ÏµÍ³ÖÐËùÓе ......
Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é
×÷Õߣº½ð²½¹ú
Code maturity level options
´úÂë³ÉÊì¶ÈÑ¡Ïî
Prompt for development and/or incomplete code/drivers ÏÔʾÉÐÔÚ¿ª·¢ÖлòÉÐδÍê³ÉµÄ´úÂëÓëÇý¶¯.³ý·ÇÄãÊDzâÊÔÈËÔ±»òÕß¿ª·¢Õß,·ñÔòÇëÎðÑ¡Ôñ
General setup
³£¹æÉèÖÃ
Local version - append to kernel release ÔÚÄÚº ......
ÔÚLinuxϽøÐÐCÓïÑÔ±à³Ì£¬±ØÈ»Òª²ÉÓÃGNU GCCÀ´±àÒëCÔ´´úÂëÉú³É¿ÉÖ´ÐгÌÐò¡£GccÖ¸ÁîµÄÒ»°ã¸ñʽΪ£º
Gcc [Ñ¡Ïî] Òª±àÒëµÄÎļþ [Ñ¡Ïî] [Ä¿±êÎļþ]¡£ÆäÖУ¬Ä¿±êÎļþ¿Éȱʡ£¬GccĬÈÏÉú³É¿ÉÖ´ÐеÄÎļþÃûΪ£º±àÒëÎļþ.out
¿´Ò»Ï¾µäÈëÃųÌÐò"Hello World£¡"
# vi hello.c £¬±à¼ÈçÏ£º
#inclu ......