Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LINUX 0.11 ·ÖÎö¼¯½õ

    1.bootsect.s       
               ±¾ÎĵÄÄ¿µÄ£¬ÔÚ½«linux kernelµÄboot²¿·Ý×öÒ»¸ö½éÉÜ£¬ÒòΪ±ÊÕß¾õµÃºÜÉÙÓÐÕâÑùµÄ
¡¡¡¡ÎÄÕÂÀ´½éÉÜÒ»¸ö²Ù×÷ϵͳ×î×ʼµÄÒ»²½----°Ñkernel±¾ÉíÔØÈëÖÁÄÚ´æÖУ¬Í¬Ê±½øÐÐһЩ
¡¡¡¡»úÆ÷Ïà¹Ø(machine dependent)µÄ³õʼ»¯¹¤×÷£¬ÓÉÓÚlinux¸ÕºÃʹÓõÄÊÇ´ó¼Ò×îÊìϤµÄ386£¬
¡¡¡¡486ϵÁÐPC£¬ËùÒÔÔÚ˵Ã÷Æä³ÌÐòÁ÷³Ìʱ£¬Ò²¸ÕºÃ¿ÉÒÔ¶ÔÆäÏà¹ØµÄPCÓ²Ìå¼Ü¹¹×ö̽ÌÖ£¬¿ÉÒÔ
¡¡¡¡ËµÊÇÒ»¾ÙÁ½µÃ¡£²»¹ý£¬ÎÒ±ØÐë¼ÙÉè¶ÁÕ߶ÔÓÚ»ã±àÓïÑÔ¼°PC×î»ù´¡µÄ¼Ü¹¹£¬Èç¼Ä´æÆ÷£¬·Ö¶Î£¬
¡¡¡¡·ÖÒ³£¬ÖжϷþÎñµÈÓдó¸ÅµÄÈÏʶ¡£
¡¡¡¡¶ÁÕß¿ÉÔÚlinux source codeµÄ/boot×ÓĿ¼ÏÂÕÒµ½¼¸¸öÒÔ.S×÷Ϊ¸±µµÃûµÄ×éºÏÓïÑÔµµ£¬
¡¡¡¡±¾ÎÄҪ˵Ã÷µÄ¼´ÊÇÆäÖеÄbootsect.S¼°setup.SÁ½¸öµµ°¸£¬¼°¾¡Á¿¼òµ¥µØ˵Ã÷ÆäËùÇ£ÉæµÄ
¡¡¡¡Ïà¹ØÓ²¼þ²¿·Ý¡£
¡¡¡¡bootsect.S
¡¡¡¡Õâ¸ö³ÌÐòÊÇlinux kernelµÄµÚÒ»¸ö³ÌÐò£¬°üÀ¨ÁËlinux×Ô¼ºµÄbootstrap³ÌÐò£¬µ«ÊÇ
¡¡¡¡ÔÚ˵Ã÷Õâ¸ö³ÌÐòÇ°£¬±ØÐëÏÈ˵Ã÷Ò»°ãIBM PC¿ª»úʱµÄ¶¯×÷(´Ë´¦µÄ¿ª»úÊÇÖ¸"´ò¿ªPCµÄµçÔ´"):
¡¡¡¡Ò»°ãPCÔÚµçÔ´´ò¿ªÊ±£¬ÊÇÓÉÄÚ´æÖеØÖ·FFFF:0000¿ªÊ¼Ö´ÐÐ(Õâ¸öµØÖ·Ò»¶¨ÔÚROMBIOS
¡¡¡¡ÖУ¬ROMBIOSÒ»°ãÊÇÔÚFE000hµ½FFFFFhÖÐ)£¬¶ø´Ë´¦µÄÄÚÈÝÔòÊÇÒ»¸öjumpÖ¸Ájumpµ½Áí
¡¡¡¡Ò»¸öλÓÚROMBIOSÖеÄλÖ㬿ªÊ¼Ö´ÐÐһϵÁеĶ¯×÷£¬°üÀ¨Á˼ì²éRAM£¬keyboard£¬ÏÔʾ
¡¡¡¡Æ÷£¬ÈíÓ²´ÅÅ̵ȵȣ¬ÕâЩ¶¯×÷ÊÇÓÉϵͳ²âÊÔÂë(system test code)À´Ö´Ðеģ¬Ëæ×ÅÖÆ×÷
¡¡¡¡BIOS³§É̵IJ»Í¬¶ø»áÓÐЩÐí²îÒ죬µ«¶¼ÊÇ´óͬСÒ죬¶ÁÕß¿É×ÔÐй۲ì×Ô¼Ò»úÆ÷¿ª»úʱ£¬
¡¡¡¡ÆÁÄ»ÉÏËùÏÔʾµÄ¼ì²éѶϢ¡£
¡¡¡¡½ô½Ó×Åϵͳ²âÊÔÂëÖ®ºó£¬¿ØÖÆȨ»áתÒƸøROMÖеÄÆô¶¯³ÌÐò(ROM bootstrap routine)£¬
¡¡¡¡Õâ¸ö³ÌÐò»á½«´ÅÅÌÉϵÄÁãµÀÁãÉÈÇø¶ÁÈëÄÚ´æÖÐ(Õâ¾ÍÊÇÒ»°ãËùνµÄbootsect£¬Èç¹ûÄãÔø
¡¡¡¡½Ó´¥¹ýµçÄÔ²¡¶¾£¬¾Í´ó¸ÅÌý¹ýËüµÄ´óÃû)£¬ÖÁÓÚ±»¶Áµ½ÄÚ´æµÄÄÄÀïÄØ?----¾ø¶ÔλÖÃ07C0
¡¡¡¡:0000(¼´07C00h´¦)£¬ÕâÊÇIBMϵÁÐPCµÄÌØÐÔ¡£¶øλÔÚlinux¿ª»ú´ÅÅ̵ÄbootsectÉϵÄÕý
¡¡¡¡ÊÇlinuxµÄbootsect³ÌÐò£¬Ò²¾ÍÊÇ˵£¬bootsectÊǵÚÒ»¸ö±»¶ÁÈëÄÚ´æÖв¢Ö´ÐеijÌÐò¡£
¡¡¡¡ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔ¿ªÊ¼À´¿´¿´µ½µ×bootsect×öÁËʲô¡£
¡¡¡¡µÚÒ»²½
¡¡¡¡Ê×ÏÈ£¬bootsect½«Ëü"×Ô¼º"´Ó±»ROMBIOSÔØÈëµÄ¾ø¶ÔµØÖ·0x7C00´¦°áµ½0x90000´¦£¬
¡¡¡¡È»ºóÀûÓÃÒ»¸öjmpi(jumpindirec


Ïà¹ØÎĵµ£º

LinuxϵÄCÓïÑÔ¿ª·¢³õѧÕßÖ¸ÄÏ

Ò»¡¢¹¤¾ßµÄʹÓÃ
1¡¢Ñ§»áʹÓÃvim/emacs£¬vim/emacsÊÇlinuxÏÂ×î³£ÓõÄÔ´Âë±à¼­¾ß£¬²»¹âҪѧ»áÓÃËüÃDZ༭ԴÂ룬»¹ÒªÑ§»áÓÃËüÃǽøÐвéÕÒ¡¢¶¨Î»¡¢Ìæ»»µÈ¡£ÐÂÊֵĻ°ÍƼöʹÓÃvim£¬ÕâÒ²ÊÇÎÒĿǰʹÓõÄÎı¾±à¼­Æ÷¡£vimÓÐÒ»¸öÖÐÎÄÔÚÏßÊÖ²áhttp://vcd.gro.clinux.org¡£
2¡¢Ñ§»ámakefileÎļþµÄ±àд¹æÔò£¬²¢½áºÏʹÓù¤¾ßaclocal¡¢autoc ......

Linux ʱ¼äͬ²½ÅäÖÃ


Ò». Ê¹ÓàNetwork Time Protocol (NTP) ·þÎñÆ÷
1.1 ·þÎñÆ÷¿ÉÁ´½ÓÍâÍøʱ    
# crontab -e    
¼ÓÈëÒ»ÐУº    
*/1 * * * * ntpdate 210.72.145.44     ......

linux select Ó÷¨

selectϵͳµ÷ÓÃÊÇÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±ú(file descriptor)µÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐijһ¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£
ÎļþÔÚ¾ä±úÔÚLinuxÀïºÜ¶à£¬Èç¹ûÄãmanij¸öº¯Êý£¬ÔÚº¯Êý·µ»ØÖµ²¿·Ö˵µ½³É¹¦ºóÓÐÒ»¸öÎļþ¾ä±ú±»´´½¨µÄ¶¼Êǵģ¬Èçman socket¿ÉÒÔ¿´µ½“On success, a fi ......

linux select Òì²½ÁÄÌì³ÌÐò£¬±È½ÏºÃ

ʲôÊÇÒ첽ͨѶ£¿
¾ÍÊÇͨѶÈÎÒâÒ»·½¿ÉÒÔÈÎÒâ·¢ËÍÏûÏ¢£¬ÓÐÏûÏ¢À´µ½Ê±»áÊÕµ½ÏµÍ³Ìáʾȥ½ÓÊÕÏûÏ¢¡£
ÕâÀïÒªÓõ½selectº¯Êý¡£Ê¹Óò½ÖèÈçÏ£º
1¡¢ÉèÖÃÒ»¸ö¼¯ºÏ±äÁ¿£¬ÓÃÀ´´æ·ÅËùÓÐÒªÅжϵľä±ú£¨file descriptors£º¼´ÎÒÃǽ¨Á¢µÄÿ¸ösocket¡¢ÓÃopen´ò¿ªµÄÿ¸öÎļþµÈ£©
2¡¢°ÑÐèÒªÅжϵľä±ú¼ÓÈëµ½¼¯ºÏÀï
3¡¢ÉèÖÃÅжÏʱ¼ä
4¡¢¿ª ......

ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®

ǶÈëʽLinux²Ù×÷ϵͳѧϰ¹æ»®
ARM+LINUX·Ïߣ¬Ö÷¹¥Ç¶ÈëʽLinux²Ù×÷ϵͳ¼°ÆäÉÏÓ¦ÓÃÈí¼þ¿ª·¢Ä¿±ê£º 
£¨1£© ÕÆÎÕÖ÷Á÷ǶÈëʽ΢´¦ÀíÆ÷µÄ½á¹¹ÓëÔ­Àí£¨³õ²½¶¨Îªarm9£© 
£¨2£© ±ØÐëÕÆÎÕÒ»¸öǶÈëʽ²Ù×÷ϵͳ £¨³õ²½¶¨Îªuclinux»òlinux,°æ±¾´ý¶¨£© 
£¨3£© ±ØÐëÊìϤǶÈëʽÈí¼þ¿ª·¢Á÷³Ì²¢ÖÁÉÙ×öÒ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ