Linux 0.11°æ ½ø³Ìµ÷¶ÈÎı¾½â˵
0.11ºËÖнø³ÌµÄµ÷¶ÈÖ÷ÒªÓÉËĸö²¿·ÖÊý×é³É£ºµ÷¶È³õʼ»¯¡¢µ÷¶È¡¢Ë¯Ãß¡¢»½ÐÑ¡£
Ò»¡¢µ÷¶È³õʼ»¯:sched_init()
ÎÒÃÇÖªµÀÔÚÄں˳õʼ»¯£¨main£©¹ý³ÌÖУ¬Òª½«ÈÎÎñ0ת»»µ½Óû§Ì¬ÏÂÖ´ÐУ¬Ò²¾ÍÊǽ¨Á¢LinuxÖеĵÚÒ»¸öÓû§³ÌÐò¡£¼ÈÈ»ÈÎÎñ0֮ǰÊÇÔÚÄÚºË̬ÏÂÖ´Ðеģ¬ËùÒÔÓõÄÊÇϵͳµÄldt¡¢ºÍtss£¬ÒªÔÚÓû§Ì¬ÏÂÖ´ÐУ¬¾ÍҪʹÓÃÓû§Ì¬ÏµÄldt¡¢tss£¬ÄÇô£¬µ÷¶È³õʼ»¯µÄÆäÖÐÒ»¸öÈÎÎñ¾ÍÊǽ¨Á¢ÈÎÎñ0µÄldtºÍgdt¡£ÏÂÃæËµÒ»ÏÂsched_init()µÄ¾ßÌ幤×÷¹ý³Ì£º
1£©ÔÚgdtÖÐÉèÖÃldt¡¢gdt£ºldtºÍgdtµÄ¶¨ÒåÔÚsched.hÖС£
2£©½«eflagsÖеÄNTÖÃλ£º¼ÇµÃÔÚÇ°Ãæ¹ØÓÚÈÎÎñÇл»µÄ˵Ã÷ÖУ¬ÎÒÌáµ½ÔÚmainµÄÖÐsched_init()Ö®ºó£¬Òªµ÷ÓÃmove_to_user_mode£¨£©ÊµÏÖºËÐÄ̬µ½Óû§Ì¬µÄת»»£¬¶øÔÚmove_to_user_mode£¨£©ÖУ¬×îºóµ÷ÓÃÁËiret£¬Èç¹û½«NTΪ0£¬¾Í²»»áÒýÆð½ø³ÌµÄÇл»ÁË¡£
3£©¼ÓÔØtssºÍldt£ºÊÖ¶¯¼ÓÔØ½öÕâÒ»´Î£¬ÒÔºó¶¼ÊÇͨ¹ýÈÎÎñµÄÇл»CPU×Ô¶¯¼ÓÔØµÄ¡£ÔÚÕâÀÒòΪÊǵÚÒ»¸öÓû§ÈÎÎñ£¬ËùÒÔÐèÒªÊÖ¶¯ÉèÖá£
4£©³õʼ»¯8253¶¨Ê±Æ÷¡£
5£©ÔÚIDTÖÐÉèÖÃʱÖÓµÄÖжÏÃźÍϵͳµ÷ÓõÄÖжÏÃÅ¡£
¶þ¡¢µ÷¶È£ºschedule()
Õâ¸öº¯ÊýµÄÖ÷Òª¹¤×÷¾ÍÊÇ´ÓËùÓд¦ÔÚ¾ÍÐ÷״̬µÄ½ø³ÌÖÐÑ¡ÔñÏÂÒ»¸öÒªÔËÐеĽø³Ì¡£¾ßÌ幤×÷¹ý³ÌÊÇÕâÑùµÄ£ºËüÊ×Ïȼì²éÔÚ´¦ÔÚ¿ÉÖжÏ˯Ãß״̬ϵĽø³ÌÊÇ·ñ³ýÁË×èÈûÐźÅÒÔÍâ±ðµÄÐźţ¬Èç¹û´æÔÚ£¬Ôò½«ËüÖóɾÍÐ÷״̬¡£È»ºóÑ»·¼ì²éÈÎÎñÊý×éÖеÄËùÓд¦ÔÚ¾ÍÐ÷״̬µÄÈÎÎñ£¬ÌôÑ¡³öÊ£ÓàÖ´ÐÐʱ¼äÖµ×î´óµÄÒ»¸öÈÎÎñ£¬ÀûÓÃswitch_to()º¯ÊýÇл»µ½¸ÃÈÎÎñ¡£Èç¹û·¢ÏÖËùÓоÍÐ÷½ø³ÌµÄʱ¼äƬ¶¼ÊÇ0£¬Ôò¸ù¾ÝÈÎÎñµÄÓÅÏȼ¶£¬ÖØÐ¼ÆËãÿ¸öÈÎÎñµÄʱ¼äƬ£¬ÔÚÖØÐÂÖ´ÐÐÑ»·¼ì²éËùÓоÍÐ÷ÈÎÎñµÄÖ´ÐÐÊ£Óàʱ¼ä¡£
ÆäÖУ¬Õâ¸öº¯ÊýµÄºËÐÄÖ®Ò»¾ÍÊÇswitch_to()º¯Êý£¬ËüÄÜʵÏÖÈÎÎñµÄÇл»£¬ËüµÄ¶¨ÒåÔÚsched.hÖУ¬Ö÷ÒªÔÀí¾ÍÊÇÀûÓÃÈç¹ûljmpµÄ²Ù×÷ÊýÊÇÈÎÎñÃÅÃèÊö·û¾Í»áÒýÆðÈÎÎñµÄÇл»¡£
Èý¡¢Ë¯Ãßsleep_on()¡¢interruptible_sleep_on()
ÔÚ½ÓÊÕÕâ¸öº¯ÊýµÄ¹¤×÷ÔÀí֮ǰ£¬ÏÈÁ˽âÒ»¸öÊý¾Ý½á¹¹£ºµÈ´ý¶ÓÁС£µÈ´ý¶ÓÁÐÆä
Æäʵ¾ÍÊÇÒ»¸ö½ø³ÌÖ¸ÕëÁ´±í£¬ËùÓÐÓÉÓڵȴýͬһ¸ö×ÊÔ´µÄ˯Ãß½ø³Ì×é³ÉÒ»¸öµÈ´ý¶ÓÁС£Õâ¸öÁ´±íµÄÁ¬½Ó²¢²»ÊÇͨ³£ÒâÒåÉÏ
Ïà¹ØÎĵµ£º
ÎÒÏëÔÚredhatÏÂʹÓÃÉãÏñÍ· µ«ÊÇÏÖÓа汾²»Ö§³Ö ËùÒÔÎÒÏëÉý¼¶ÄÚºË ÕâÑù¿ÉÄÜ»áÖ§³ÖÉãÏñÍ·
ÓÚÊÇÎÒ´ÓÍøÉÏÏÂÔØÁË 2.4.26°æ±¾µÄÄÚºË Í¨¹ýÍøÉϽéÉܵÄÄÇЩ·½·¨ Éý¼¶ÄÚºË Éý¼¶ºóÖØÆôµçÄÔ ½øÈëÐÂÄÚºËʱ Óöµ½ÏÂÃæµÄÎÊÌâ
VFS:Cannot open root device "sda2" or 08:01
Please append a correct "root=" boot option
kernel pa ......
ÎÊÌâµÄÒý³ö£º
µ±¶ÔͬһÎļþ¾ä±ú£¨ÔÚWindowsÏ£©»òÊÇÎļþÃèÊö·û£¨ÔÚLinuxÏ£©½øÐÐËæ»ú¶Áд²Ù×÷ʱ£¬»á´æÔÚÎļþÖ¸ÕëµÄ¶¨Î»Óë¶Á\дÁ©¸ö²½Ö裬µ«ÓÉÓÚÕâ²»ÊÇÒ»¸öÔ×Ó²Ù×÷£¬¾Í¿ÉÄܲúÉúÈçÏÂÎÊÌ⣺½ø³ÌA¶ÔijÎļþÏȶ¨Î»µ½ f1 ´¦£¬È»ºó±»Öжϣ¬È»ºó½ø³ÌB¶ÔͬһÎļþ¶¨Î»µ½ f2 ´¦£¬È» ......
±¾ÎÄÁгöÁ˴󲿷ֳ£¼ûµÄLinuxϵͳµ÷Ó㬲¢¸½ÓмòÒªÖÐÎÄ˵Ã÷¡£ ÒÔÏÂÊÇLinuxϵͳµ÷ÓõÄÒ»¸öÁÐ±í£¬°üº¬Á˴󲿷ֳ£ÓÃϵͳµ÷ÓúÍÓÉϵͳµ÷ÓÃÅÉÉú³öµÄµÄº¯Êý¡£Õâ¿ÉÄÜÊÇÄãÔÚ»¥ÁªÍøÉÏËùÄÜ¿´µ½µÄΨһһƪÖÐÎÄ×¢Ê͵ÄLinuxϵͳµ÷ÓÃÁÐ±í£¬¼´Ê¹ÊǼòµ¥µÄ×ÖĸÐòÓ¢ÎÄÁÐ±í£¬ÄÜ×öµ½ÕâôÍêȫҲÊǺܺ±¼ûµÄ¡£ °´ÕÕ¹ßÀý£¬Õâ¸öÁбíÒÔman pagesµÚ2½ ......
LinuxÇý¶¯³ÌÐòÈëÃÅ—Hello World
À´Ô´:
ChinaUnix²©¿Í ¡¡ÈÕÆÚ£º
2009.11.19 21:17¡¡(¹²ÓÐ0
ÌõÆÀÂÛ) ÎÒÒªÆÀÂÛ
1¡¢ÒýÑÔ
¼ÇµÃÔÚѧϰVC++ºÍCÓïÑÔµÄʱºò£¬Ò»¿ªÊ¼¶¼»áÒÔÒ»¸öHELLO
WORLDµÄÀý×Ó×÷ΪÑÝʾ£¬½«Ñ§ÕßÖð½¥ÒýÈëµîÌã¬Õâ¸ö¼¸ºõ³ÉÁ˼ÆËã»ú±à³ÌÓïÑÔѧϰ±Ø¾µÄÒ»¸öÈëÃÅ֮·¡£
......
ÕâÒ²ËãºÍƽͬѧµÄµãÌâ×÷ÎÄÁË£¬ºÇºÇ¡£
Ëû¶ÔÓÚLinuxϺܶàʱºò£¬apiº¯Êý´óÁ¿Ê¹ÓÃint×÷Ϊ³£ÓÃÀàÐ͸е½²»½â£¬ÎÊÎÒ£¬ÎÒÄØ£¬¾ÍÊÔׯشðһϹþ¡£
ÔÌûÔÚÕâÀhttp://student.csdn.net/space.php?uid=121080&do=thread&id=9168
ÎÊÌâÈçÏ£º
¸ù¾Ý<c++ primer>½¨Ò飬±íʾÏñ“ÈÝÁ¿”ÕâÑùµÄ±äÁ¿Ê±£¬ÒòΪ²»¿ ......