LinuxÄں˼°ARMµÄÄÚ´æ¹ÜÀí
arch\arm\kernel\head.S
¸ÃÎļþĩβ°üº¬ÁËÓï¾ä£º#include "head-common.S"£¬__lookup_processor_typeº¯ÊýÔÚarch\arm\kernel\head-common.SÖж¨Òå¡£
¹Ø¼üÊý¾Ý½á¹¹£ºstruct proc_info_list£¬ÔÚarch\arm\include\asm\procinfo.hÎļþÖж¨Ò壬Cortex¶Ô´ËÊý¾Ý½á¹¹µÄÌî³äÔÚarch\arm\mm\proc-v7.sÎļþÖж¨Òå¡£
head.sÖУ¬kernelµÄ¹Ø¼üÈë¿ÚÈçÏ£º
ENTRY(stext)
ARM( msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE ) @ ensure svc mode
THUMB( mov r9, #PSR_F_BIT | PSR_I_BIT | SVC_MODE )
THUMB( msr cpsr_c, r9 ) @ ensure svc mode
@ and irqs disabled
mrc p15, 0, r9, c0, c0 @ get processor id
bl __lookup_processor_type @ r5=procinfo r9=cpuid
movs r10, r5 @ invalid processor (r5=0)?
beq __error_p @ yes, error 'p'
bl __lookup_machine_type @ r5=machinfo
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl __vet_atags
bl __create_page_tables
/*
* The following calls CPU specific code in a position independent
* manner. See arch/arm/mm/proc-*.S for details. r10 = base of
* xxx_proc_info structure selected by __lookup_machine_type
* above. On return, the CPU will be ready for the MMU to be
* turned on, and r0 will hold the CPU control register value.
*/
ldr r13, __switch_data @ address to jump to after
@ mmu has been enabled
badr lr, __enable_mmu @ return (PIC) address
ARM( add pc, r10, #PROCINFO_INITFUNC )
THUMB( add r12, r10, #PROCINFO_INITFUNC )
THUMB( mov pc, r12 )
ENDPROC(stext)
Óï¾ä“add pc, r10, #PROCINFO_INITFUNC”ͨ¹ý²é±íµ÷ÓÃproc-v7.sÖÐ__v7_setupº¯Êý£¬¸Ãº¯Êýĩβͨ¹ý½«lr¼Ä´æÆ÷¸³¸øpc£¬µ¼Ö¶Ô__enable_mmuµÄµ÷Óã¬Íê³ÉʹÄÜmmuµÄ²Ù×÷£¬Ö®ºó½«r13¼Ä´æÆ÷Öµ¸³¸øpc£¬µ÷ÓÃ__switch_dataÊý¾Ý½á¹¹ÖеĵÚÒ»¸öº¯Êý__mmap_switched£¬¸Ãº¯ÊýÖ¸Ïò×îºóµÄ³õʼ»¯º¯Êý£¬¶¨ÒåÔÚhead-common.sÎļþÖУ¬¸Ãº¯Êý×îÖÕµ÷ÓÃinit\main.cÎļþÖеÄstart_kernelº¯Êý¡£
Óï¾ä“mrc p15, 0, r9, c0, c0”½«Ð´¦ÀíÆ÷¼Ä´æÆ÷CP15¶ÁÈë¼Ä´æÆ÷r9£¬´Ë¼Ä´æÆ÷±£´æCPUID£»Ö®ºóµ÷Óú¯Êý__lookup_processor_type²éÕÒ
Ïà¹ØÎĵµ£º
ÏîÄ¿Öг£Óöµ½ÐèÒª¶ÔĿǰÔËÐеÄϵͳ½øÐÐЧÂÊ·ÖÎö£¬»òÅöµ½¿Í»§×ÉѯÈçºÎÓÅ»¯ÏµÍ³µÄЧÂÊÎÊÌâ¡£¸ü¶àµÄÇé¿öÊÇ£¬ÔÚϵͳ³öÏÖÎÊÌâµÄʱºò£¬ÐèÒª·ÖÎöÔÒò£¬¶¨Î»ÏµÍ³ ¹ÊÕÏ»òÆ¿¾±£¬µ±È»£¬×îºÃÊÇ¿ÉÒÔÒ»²¢½â¾ö¹ÊÕÏ¡£µ«Êµ¼ÊÉÏ£¬²Ù×÷ϵͳÓÅ»¯ÊÇÒ»¸ö·Ç³£¸´ÔÓµÄÎÊÌ⣬¿öÇÒlinuxÓÐ×Ô¼ºÒ»Ì×ÓбðÓÚÆäËû²Ù×÷ϵͳ¹ÜÀíµÄ»úÖÆ£¬ÓÉ´Ë »áÒýÆðºÜ¶à²»±ØÒ ......
ÔÚ±¾ÎÄÖУ¬ËùνLinux֮·ÊÇָͨÏòÍêÃÀLinux×ÀÃæµÄµÀ·¡£Ì¸ÆðLinux×ÀÃæ£¬ÓÐÈ˲»Ð¼Ò»¹Ë£¬àÍÖ®ÒԱǡ£Êµ¼ÊÇé¿öÈçºÎ£¿
11ÔÂ29ÈÕ£¬Mint 8£¨Ò»ÖֱȽÏÍêÃÀµÄLinux×ÀÃæ£©Õýʽ·¢²¼£¬ÔÚÎÒÃǹúÄÚ·´Ïì²»´ó¡£ÎÒ¹úLinux·¢Õ¹Ö®ÂäÎ飬ÎÒ¹úLinux¹ÛÄîÖ®¹ÖÒ죬Óɴ˿ɼûÒ»°ß¡£11ÔÂ18ÈÕ£¬ÔÚ¡¶Ubuntu³ô³æ£¨bugs£©Öª¶àÉÙ£¿¡·Ò»ÎÄÖУ¬Ìá¼°ÔÚUbuntu 9 ......
ÔÚlinuxÖÐÓû§·ÖΪÁ½Àࣺ1¡¢root³¬¼¶Óû§ 2¡¢ÆÕͨÓû§
/bin
¡¡¡¡Òýµ¼Æô¶¯ËùÐèµÄÃüÁî»òÆÕͨÓû§¿ÉÄÜÓõÄÃüÁî(¿ÉÄÜÔÚÒýµ¼Æô¶¯ºó)¡£
¡¡¡¡/sbin
¡¡¡¡ÀàËÆ/bin £¬µ«²»¸øÆÕͨÓû§Ê¹Óã¬ËäÈ»Èç¹û±ØÒªÇÒÔÊÐíʱ¿ÉÒÔʹÓá£
¡¡¡¡/etc
¡¡¡¡Ìض¨µÄÅ ......
1
¡¢ÏÂÔØÔ´Âë
¡¡¡¡
´Ó
CVS
µÄ¹Ù·½ÍøÕ¾
cvshome.org
ÉÏѰÕÒ£¬ÓÉÓÚ
CVS
ÀúÊ·ÉÏÒ²³öÏÖ¹ýһЩ°²È«Â©¶´£¬ËùÒÔ½¨ÒéÒª¶¨ÆÚÈ¥Æä¹Ù·½ÍøÕ¾ÉÏ¿´¿´ÓÐûÓÐ×îÐÂ°æ±¾ÍÆ³ö¡£
¡¡¡¡
2
¡¢±àÒë°²×°
¡¡¡¡
# tar -xjpvf cvs-1.12.5.tar.bz2
¡¡¡¡
# cd cvs-1.12.5
¡¡¡¡
# ./configure --prefix=/usr/local/terry_yu/cvs
¡¡
--d ......
´ÓÓû§µÄ½Ç¶È¿´£¬MySQL±»SunÊÕ¹º£¬ÓÖ±»OracleÊÕ¹º¿ÉÄÜÕæ²»ÊÇʲôºÃÊ¡£MySQL±¾À´¾Í±»Oracleͨ¹ý²¢¹ºÆäÒÀÀµµÄ´æ´¢ÒýÇæInnobase¡¢BerkeleyDBÕÛÌڵIJ»ÐУ¬ÓÖÔÚ±»SunÊÕ¹ººó·¢ÉúÁËMonty´´½¨Ð·ÖÖ§MariaDBÕâÑùµÄÊÂÇ飬×îÖÕ»¹ÊÇËæ×ÅSunÒ»Æð±»Oracle²¢¹º£¬Ã»ÓÐÌÓÍÑLarry ElisonµÄħצ¡£Ò²Ðí£¬¿ªÔ´Èí¼þµÄºÃ´¦¾ÍÔÚ ......