ǶÈëʽLinuxÖ®Kernel£¨²Ã¼õÒÆÖ²£©Æô¶¯µ÷ÊÔ¼¼Êõ
ǶÈëʽϵͳ´î½¨¹ý³ÌÖУ¬¶ÔÓÚϵͳƽ̨´î½¨¹¤³ÌʦÔÚÍê³ÉBootloader
µÄµ÷ÊÔÖ®ºó¾Í½øÈëKernel
²Ã¼õÒÆÖ²µÄ½×¶Î£¬ÆäÖÐ×îÖØÒªµÄÒ»²½ÊÇKernel
Æô¶¯µÄµ÷ÊÔ£¬ÔÚµ÷ÊÔKernel
¹ý³ÌÖÐͨ³£Óöµ½×î³£¼ûµÄÎÊÌâÊÇÆô¶¯Òì³£:
Uncompressing Linux............................................................
...........................
done, booting the kernel.(
¹ÒËÀÔÚ´Ë´¦)
µ¼ÖÂÇý¶¯Òì³££¨Æô¶¯¹ÒËÀ£©µÄÔÒòÓкܶ࣬Èç»ùÓÚEVM
°åµÄ
Ó²¼þ×öÁËÐ޸ģ¨Èç¸ü¸ÄÁËFLASH
¿Õ¼ä´óС¡¢µØÖ·ºÍÐͺţ¬¸ü¸ÄÁËSDRAM
¡¢DDR SDRAM
¿Õ¼ä´óС¡¢µØÖ·ºÍÐͺţ¬¸ü¸ÄÁ˾§ÕñƵÂʵȣ©£¬°å¿¨IDºÅ²»Ö§³ÖµÈ¡£ÄÇôÈçºÎ½øÐе÷ÊÔÄÇ£¬ÆäʵÓÐÁ½ÖÖµ÷ÊÔ¼¼Êõ±È½ÏÓÐЧ¡£
Kernel
Æô¶¯µ÷ÊÔ¼¼Êõ-
ʹÓÃprintascii()
º¯Êý¸ú×Ùstart_kernel()
ÓÐûÔËÐÐ
£¬ÔÚbooting the kernel
Ö®ºóKernel
×îÏÈÖ´ÐеÄÊÇstart_kernel()
º¯Êý£¬È·ÈÏstart_kernel()
ÓзñÖ´ÐоÍÊÇÔÚÆä¿ªÊ¼´úÂë¶ÎÌí¼Óprintascii("start_kernel
…")
£¬Èç¹û´®¿ÚûÓдòÓ¡³östart_kernel
…£¬ËµÃ÷start_kernel()
ûÓÐÔËÐУ¬ÄÇô¿ÉÄܵÄÔÒòÓÐBootloader
ÅäÖÃµÄÆô¶¯²ÎÊý´íÎó¡¢
Kernel
¼ÓÔØµ½(DDR) SDRAM
µÄµØÖ·²»ÕýÈ·£¬
Kernel
±àÒëʱָ¶¨µÄ(DDR) SDRAM
ÔËÐеØÖ·²»ÕýÈ·µÈ¡£ÕâÑù¾ÍÐèÒªÒ»ÏîÒ»ÏîÅŲé´íÎ󣬵±´íÎó±»ÅŲéÍê±Ï£¬Í¨³£´òÓ¡³ö
start_kernel
…ÊÇÖÖ±ØÈ»£¬Èç¹û´òÓ¡³öÕâÒÇÐÅϢ˵Ã÷
KernelÒÑ
½øÈëµ½start_kernel()
Ö´ÐУ¬Èç¹û´ËʱÓд®¿ÚÆô¶¯´òÓ¡¾Í±È½Ï³É¹¦ÁË£¬Èç¹ûÈÔȻûÓдòÓ¡Æô¶¯ÐÅÏ¢£¬¾ÍÐèÒªÁíÍâÒ»ÖÖµ÷ÊÔ¼¼Êõ¡£
¸½´úÂëÐ޸ģºinit/main.c
<<-
…
extern void printascii(const char*);
//
Modify
asmlinkage void __init
start_kernel(void)
{
char *
command_line;
extern struct
kernel_param __start___param[], __stop___param[];
printascii("start_kernel
…");
//
Modify
smp_setup_processor_id();
…
->>
Kernel
Æô¶¯µ÷ÊÔ¼¼Êõ-
ʹÓÃprintascii()
º¯Êý´òÓ¡printk()
»º´æÐÅÏ¢
£¬Èç¹ûKernelÒѽøÈëµ½start_kernel()
Ö´ÐУ¬ÈÔȻûÓÐÆô¶¯ÐÅÏ¢´òÓ¡³öÀ´£¬ËµÃ÷´®¿Ú²¨ÌØÂʳöÎÊÌâµÄ¿ÉÄÜÐÔ±È½Ï´ó£¬Æô¶¯ÐÅÏ¢ÊÇÔÝʱ»º´æµ½ÁÙʱbuffer--printk_buf
Öе쬽ø
Ïà¹ØÎĵµ£º
ÔÌû¼ûhttp://www.inthirties.com/thread-685-1-1.html
1¡¢Ê²Ã´ÂãÉ豸£¿×Ö·ûÉ豸£¿¿éÉ豸£¿
ÂãÉ豸£ºÒ²½ÐÂã·ÖÇø£¨Ôʼ·ÖÇø£©£¬ÊÇÒ»ÖÖûÓо¹ý¸ñʽ»¯£¬²»±»Unix/Linuxͨ¹ýÎļþϵͳÀ´¶ÁÈ¡µÄÌØÊâ×Ö·ûÉ豸¡£ÂãÉ豸¿ÉÒÔ°ó¶¨Ò»¸ö·ÖÇø£¬Ò²¿ÉÒÔ°ó¶¨Ò»¸ö´ÅÅÌ¡£
×Ö·ûÉ豸£º¶Ô×Ö·ûÉ豸µÄ¶Áд²»ÐèҪͨ¹ýOSµÄbuffer ......
1£®4 Ï̴߳´½¨µÄLinuxʵÏÖ
ÎÒÃÇÖªµÀ£¬LinuxµÄÏß³ÌʵÏÖÊÇÔÚºËÍâ½øÐеģ¬ºËÄÚÌṩµÄÊÇ´´½¨½ø³ÌµÄ½Ó¿Údo_fork()¡£ÄÚºËÌṩÁËÁ½¸öϵͳµ÷ÓÃ__clone()ºÍfork ()£¬×îÖÕ¶¼Óò»Í¬µÄ²ÎÊýµ÷ÓÃdo_fork()ºËÄÚAPI¡£µ±È»£¬ÒªÏëʵÏÖỊ̈߳¬Ã»ÓкËÐÄ¶Ô¶à½ø³Ì£¨ÆäʵÊÇÇáÁ¿¼¶½ø³Ì£©¹²ÏíÊý¾Ý¶ÎµÄÖ§³ÖÊDz»Ðеģ¬Òò´Ë£¬do_fork()ÌṩÁ˺ ......
LinuxϵĶδíÎó²úÉúµÄÔÒò¼°µ÷ÊÔ·½·¨
ĬÈÏ·ÖÀà 2008-08-26 13:37 ÔĶÁ28 ÆÀÂÛ0
×ֺţº ´ó´ó ÖÐÖРСС
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,¶Î´íÎó¾ÍÊÇÖ¸· ......
linuxÏÂÏë½âѹrarÎļþ ±ØÐë°²×°Èí¼þ£¬ÎÒʹÓõ½ÊÇrarlinux
ÏÂÃæÊÇÏÂÔØµØÖ·
rarlinux¹Ù·½ÍøÕ¾ÏÂÔØµØÖ·
http://www.rarsoft.com/download.htm
°²×° ......