Ç°ÃæÀûÓÿª·¢°å´øµÄÏֳɵĶ«Î÷step by stepÈÃLinux 2.4.19ÔÚ¿ª·¢°åÉÏÅÜÆðÀ´ÁË£¬¶ÔÓÚ¿ª·¢µÄÁ÷³ÌÒ²ÓÐÁËÒ»¶¨µÄÈÏʶ¡£ÏÖÔÚÏë¶Ôÿһ²½½øÐÐÏêϸÉîÈëµÄ̽ÌÖ£¬ºÃºÃѧϰһÏ£¬°Ñ±Ê¼Ç¼Ç¼ÏÂÀ´£¬Ê¡µÃÍü¼ÇÁË¡£ÓÐЩÄÚÈÝÊÇ´Ó¿´¹ýµÄÊéÖÐÕªÒª¹ýÀ´µÄ£¬´ó²¿·ÖÊÇ×Ô¼ºÊµ¼ùºóµÄÐĵá£ÎÒÏë¼ÇµÃÏêϸµã£¬Ò²ºÃΪºóÃæ×ܽá´òºÃ»ù´¡¡£
--------------------------------------------------------------------------------
ÏÈ̸һ϶ÔÓÚǶÈëʽ¿ª·¢Á÷³ÌºÍǶÈëʽ¿ª·¢»·¾³ÍØÆË½á¹¹µÄÈÏʶ¡£
¸Õ¿ªÊ¼±È½ÏäĿ£¬¿´µÃÊéÒ²²»¶à£¬ÏÖÔÚ²ÅËãÊÇ´óÌåÉÏÓÐÁËЩÁ˽⡣´Ó¿ª·¢²úÆ·µÄ½Ç¶È¼òµ¥µÄÃèÊöÈçÏ£º
Ò»¡¢Ç¶Èëʽ¿ª·¢Á÷³Ì¼ò½é
¼ÙÉèÎÒÃÇÏÖÔÚ½øÐÐÒ»ÏîǶÈëʽ¿ª²úÆ·µÄ¿ª·¢£¬±ÈÈç˵ÖÇÄܵçÁ¦ÏµÍ³ÖÕ¶Ë£¬ÄÇôÎÒÏëÊ×ÏÈÓ¦¸Ã¶ÔÍêÕûµÄ¿ª·¢Á÷³ÌÓÐÒ»¸ö´óÖµÄÁ˽⣬²Å²»ÖÂÓÚÔÚÒÔºóµÄ¹¤×÷Öб»¶¯¡£ÏÂÃæ¶ÔǶÈëʽlinux¿ª·¢¼òµ¥µÄ½éÉÜһϡ£
1¡¢ÏµÍ³µÄÐèÇó·ÖÎö
2¡¢Ó²¼þƽ̨µÄÑ¡ÔñºÍÉè¼Æ
3¡¢Èí¼þ¿ª·¢
£¨3-1£©½¨Á¢¿ª·¢»·¾³¡£
£¨3-2£©Òýµ¼×°ÔسÌÐò¡£
£¨3-3£©Äں˲üõÓë±àÒë¡£
£¨3-4£©½¨Á¢Îļþϵͳ¡£
£¨3-5£©Ó¦ÓóÌÐò¿ª·¢¡£
ͼ1
ÒòΪÎÒÏëÒª×öµÄÊÇÈí¼þ¿ª·¢£¬ËùÒÔ¶ÔǰÁ½²½¾Í²»×÷ÉîÈë̽Ë÷ÁË¡£Ö»ÏëÒª¶ÔÈí¼þ¿ª·¢µÄÿһ² ......
×ʼʱ£¬ramоƬÖаüº¬µÄÊÇËæ»úÊý¾Ý¡£µ±¿ªÊ¼Æô¶¯Ê±£¬cpuµÄÒ»¸öÒý½ÅÉÏ»á²úÉúÒ»¸öresetÂß¼Öµ¡£´Ëºó´¦ÀíÆ÷µÄһЩ¼Ä´æÆ÷ÉèÖóɹ̶¨µÄÊýÖµ£¬²¢Ö´ÐÐÔÚÎïÀíµØÖ·0xfffffff0´¦ÕÒµ½µÄ´úÂë¡£Ó²¼þ°ÑÕâ¸öµØÖ·Ó³É䵽ij¸öÖ»¶Á¡¢³Ö¾ÃµÄ´æ´¢Ð¾Æ¬ÖУ¬¸ÃоƬͨ³£³ÆÎªrom(read-only memoryÖ»¶ÁÄÚ´æ)¡£romËù´æ·ÅµÄ³ÌÐò¼¯ÔÚ80x86ÌåϵÖÐͨ³£½Ð×ö»ù±¾ÊäÈëÊä³öϵͳ£¨basic input/output system,BIOS£©£¬ÒòΪËü°üÀ¨¼¸¸öÖжÏÇý¶¯µÄµÍ¼¶¹ý³Ì¡£ËùÓвÙ×÷ϵͳÆô¶¯Ê±£¬¶¼ÒªÍ¨¹ýÕâЩ¹ý³Ì¶Ô¼ÆËã»úÓ²¼þÉ豸³õʼ»¯¡£µ±¼ÆËã»ú½øÈë±£»¤Ä£Ê½£¬¾Í²»ÔÙʹÓÃBIOS£¬¶øÊÇΪ¼ÆËã»úÉϵÄÿ¸öÓ²¼þÉ豸Ìṩ¸÷×ÔµÄÉ豸Çý¶¯³ÌÐò¡£ÒòΪbios¹ý³Ì±ØÐëÔËÐÐÔÚʵģʽÏ£¬ËùÒÔÁ½ÕßÖ®¼ä²¢²»Äܹ²Ïíº¯Êý¡£
BIOSʹÓÃʵģʽµÄµØÖ·£¬ÒòΪÔÚ¼ÆËã»ú¼ÓµçÆô¶¯Ê±Ö»ÓÐÕâЩ¿ÉÒÔʹÓá£Ò»¸öʵģʽµÄµØÖ·ÓÉÒ»¸öseg¶ÎºÍÒ»¸öoffÆ«ÒÆÁ¿×é³É¡£ÏàÓ¦µÄÎïÀíµØÖ·Èç´Ë¼ÆË㣺seg*16+off.ËùÒÔ£¬cpuѰַµç·²»ÐèҪȫ¾ÖÃèÊö·û±í£¬¾Ö²¿ÃèÊö·û±í»òÕßÒ³±í°ÑÂß¼µØÖ·×ª»»³ÉÎïÀíµØÖ·¡£¶ÔGDT,LDTºÍÒ³±í½øÐгõʼ»¯µÄ´úÂë±ØÐëÔÚʵģʽÏÂÔËÐС£
biosÆô¶¯¹ý³Ì£º
1¡¢¶Ô¼ÆËã»úÓ²¼þÖ´ÐÐһϵÁеIJâÊÔ£¬ÓÃÀ´¼ì²âÏÖÔÚ¶¼ÓÐʲôÉ豸ÒÔ¼°ÕâЩÉ豸ÊÇ·ñÕý³£¹¤×÷¡£Õâ¸ö½×¶Îͨ³£³ÆÎªpost£¨ ......
ÓÉÓÚLinux²»ÊÇÖйúÈË¿ª·¢µÄ£¬¿ª·¢¹ý³ÌÖÐÒ²²»ÊÇÒÔÖÐÎÄΪĸÓËäÓÐÖÐÎÄÓïÑÔ°ü£¬ÔÚÈí¼þ¼æÈÝÐÔÉϳöÏÖÖÐÎÄÂÒÂëÒ²ÔÚËùÄÑÃâ¡£ÎÒ³éÈ¡ÍøÂçÉÏǰÈ˵ľÑ飬½áºÏ×Ô¼ºµÄÀí½â£¬½«ËûÃǼÓÒÔ×ܽᣬϣÍû¶ÔºóÀ´ÕßÓÐËù°ïÖú¡£
1¡¢htmlÎļþÂÒÂ룻
ÏÖÏó£ºwindowsϱ£´æµÄhtmlÔÚubuntuÖдò¿ªÊÇÂÒÂ룬
½â¾ö·½·¨£º½«
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
<head> </head>ÖеÄ
meta
Ð޸ijÉ
<META
http-equiv=content-type content="text/html; charset=gb2312">¡£
ÈôûÓоÍÌí¼ÓÉÏ¡£
2¡¢
·½¿òÂÒÂë
ÏÖÏó£º °Ù¶È¡¢googleÒôÀÖ²¥·ÅÆ÷ÏÔʾºº×ÖΪ·½¿òÂÒÂë
½â¾ö·½·¨£º
&n ......
linux/arch/i386/boot/compressed/head.S
ÔÚsetup()½áÊøºó£¬´Ëº¯Êý¾Í±»Òƶ¯µ½ÎïÀíµØÖ·0x00100000´¦»òÕß0x00001000´¦£¬ÕâÈ¡¾öÓÚÄÚºËÓ³ÏñÊDZ»¸ß×°ÔØµ½ramÖл¹ÊǵÍ×°ÔØµ½ramÖС£
½â¶Áº¯Êý£º
startup_32:
cld
cli
movl $(__BOOT_DS),%eax
movl %eax,%ds
movl %eax,%es
movl %eax,%fs
movl %eax,%gs
lss stack_start,%esp
ÆäÖеÄboot_dsÄÚ´æÖÐÒѾÓÐ̸¼°¡£³õʼ»¯Á˶μĴæÆ÷ºÍÒ»¸öÁÙʱ¶ÓÕ»¡£
xorl %eax,%eax
1: incl %eax # check that A20 really IS enabled
movl %eax,0x000000&n ......
Red Hat LinuxµÄ·ÖÇøÊDz»Í¬ÓÚÆäËü²Ù×÷ϵͳ·ÖÇøµÄ£¬ËüµÄ·ÖÇø¸ñʽֻÓÐExt2£¨Ext3£©ºÍSwapÁ½ÖÖ£¬Ext2£¨Ext3£©ÓÃÓÚ´æ·ÅϵͳÎļþ£¬SwapÔò×÷ΪRed Hat LinuxµÄ½»»»·ÖÇø¡£Red Hat LinuxÖÁÉÙÐèÒªÁ½¸öרÃŵķÖÇø£¨Linux NativeºÍLinux Swap£©¿öÇÒ²»Äܽ«Red Hat Linux°²×°ÔÚDos/Windows·ÖÇø¡£Ò»°ãÀ´ËµÎÒÃǽ«Red Hat Linux°²×°Ò»¸ö»ò¶à¸öÀàÐÍΪ“Linux Native”µÄÓ²ÅÌ·ÖÇø£¬µ«ÊÇÔÚRed Hat LinuxµÄÿһ¸ö·ÖÇø¶¼±ØÐëÒªÖ¸¶¨Ò»¸ö“Mount Point”£¨ÔØÈëµã£©£¬¸æËßRed Hat LinuxÔÚÆô¶¯Ê±£¬Õâ¸öĿ¼Ҫ¸øÄĸöĿ¼ʹÓ᣶ԓSwap”·ÖÇøÀ´Ëµ,Ò»°ã¶¨ÒåÒ»¸öÇÒËü²»±ØÒª¶¨ÒåÔØÈëµã¡£ÏÂÃæÎÒÃÇÏȶԓLinux Native”ºÍ“Linux Swap”Óиö³õ²½µÄÁ˽⡣
*SWAP·ÖÇøÊÇLINUXÔÝʱ´æ´¢Êý¾ÝµÄ½»»»·ÖÇø£¬ËüÖ÷ÒªÊǰÑÖ÷ÄÚ´æÉÏÔÝʱ²»ÓõÃÊý¾Ý´æÆðÀ´£¬ÔÚÐèÒªµÄʱºòÔÙµ÷½øÄÚ´æÄÚ£¬ÇÒ×÷ΪSWAPʹÓõķÖÇø²»ÓÃÖ¸¶¨“Mout Point”£¨ÔØÈëµã£©£¬¼ÈÈ»Ëü×÷Ϊ½»»»·ÖÇø£¬ÎÒÃÇÀíËùµ±È»Ó¦¸øËüÖ¸¶¨´óС£¬ËüÖÁÉÙÒªµÈÓÚϵͳÉÏʵ¼ÊÄÚ´æµÄÁ¿£¬Ò»°ãÀ´ËµËüµÄ´óСÊÇÄÚ´æµÄÁ½±¶£¬Èç¹ûÄãÊÇ16MBµÄÄڴ棬ÄÇôSWAP·ÖÇøµÄ´óСÊÇ32MB×óÓÒ£¬ÒÔ´ËÀàÍÆ¡£µ«±ØÐ뻹ҪעÒâÒ»µã£¬SWAP·ÖÇø²»Ò ......
½ø³ÌÊdzÌÐòÖ´ÐÐʱµÄÒ»¸öʵÀý£¬Êdzä·ÖÃèÊö³ÌÐòÒѾִÐе½ºÎÖ̶ֳȵÄÊý¾Ý½á¹¹µÄ»ã¼¯¡£ÔÚlinuxÖУ¬³£½«½ø³Ì³ÆÎªÈÎÎñ£¨task£©»òÕßỊ̈߳¨thread£©¡£½ø³ÌµÄÄ¿µÄ¾ÍÊdzе£·ÖÅäϵͳ×ÊÔ´µÄʵÌå¡£
µ±Ò»¸ö½ø³Ì´´½¨Ê±£¬¼¸ºõÓ븸½ø³ÌÏàͬ¡£½ÓÊܸ¸½ø³ÌµØÖ·¿Õ¼äµÄÒ»¸öÂß¼¿½±´£¬²¢´Ó½ø³Ì´´½¨ÏµÍ³µ÷ÓõÄÏÂÒ»ÌõÖ¸ÁʼִÐÐÓ븸½ø³ÌÏàͬµÄ´úÂë¡£¾¡¹Ü¸¸×Ó½ø³Ì¿ÉÒÔ¹²Ïíº¬ÓгÌÐò´úÂëµÄÒ³£¬µ«ÊÇËüÃǸ÷×ÔÓжÀÁ¢µÄÊý¾Ý¿½±´£¨Õ»ºÍ¶Ñ£©£¬Òò´Ë×Ó½ø³Ì¶ÔÒ»¸öÄÚ´æµ¥ÔªµÄÐ޸ĶԸ¸½ø³ÌÊDz»¿É¼ûµÄ¡£
linuxʹÓÃÇáÁ¿¼¶½ø³Ì£¨lightwetght process£©¶Ô¶àÏß³ÌÓ¦ÓóÌÐòÌṩ¸üºÃµÄÖ§³Ö¡£Á½¸öÇáÁ¿¼¶½ø³Ì»ù±¾ÉÏ¿ÉÒÔ¹²ÏíһЩ×ÊÔ´£¬ÖîÈçµØÖ·¿Õ¼ä¡¢´ò¿ªµÄÎļþµÈµÈ¡£Ö»ÒªÆäÖÐÒ»¸öÐ޸Ĺ²Ïí×ÊÔ´£¬ÁíÒ»¸ö¾ÍÁ¢¼´²é¿´ÕâÖÖÐ޸ġ£Á½¸öÏ̷߳ÃÎʹ²Ïí×ÊԴʱ¾Í±ØÐëͬ²½ËüÃÇ×Ô¼º¡£ÊµÏÖ¶àÏß³ÌÓ¦ÓóÌÐòµÄÁíÒ»¸ö¼òµ¥·½Ê½¾ÍÊǰÑÇáÁ¿¼¶½ø³ÌÓëÿ¸öÏ̹߳ØÁªÆðÀ´¡£Ïß³ÌÖ®¼ä¾Í¿ÉÒÔͨ¹ý¼òµ¥µØ¹²ÏíͬһÄÚ´æµØÖ·¿Õ¼ä¡¢Í¬Ò»´ò¿ªÎļþ¼¯µÈÀ´·ÃÎÊÏàͬµÄÓ¦ÓóÌÐòÊý¾Ý½á¹¹¼¯£»Í¬Ê±£¬Ã¿¸öÏ̶߳¼¿ÉÒÔÓÉÄں˶ÀÁ¢µ÷¶È£¬ÒÔ±ãÓÚÒ»¸ö˯ÃßµÄͬʱÁíÒ»¸öÈÔÈ»ÊÇ¿ÉÒÔÔËÐеġ£
ÃèÊö½ø³ÌÊý¾Ý½á¹¹µÄÊÇtask_struct,ËüµÄ×ֶΰüº¬ÁËÓëÒ»¸ö½ø³ÌÏà¹ØµÄËùÓÐÐÅÏ¢¡£/include/linu ......