Linux¿ª»úÁ÷³Ì ¶ÁÊé±Ê¼Ç
Linux¿ª»úÁ÷³Ì--¶ÁÊé±Ê¼Ç
˵Ã÷£ºÎªÁËѧϰLinuxµÄ¿ª»úÁ÷³Ì£¬ÔÚÍøÂçÉϲ鿴Á˺ܶàÎÄÕ£¬¾õµÃÉÔÓÐÁìÎò£¬±ãÏëдµã¶«Î÷³öÀ´£¬ÒÔ·À½«À´ÍüÈ´¡£µ«ÕæÕýҪдʱȴÓÖ¾õµÃÍøÉϵÄÎÄÕ°ѸÃдµÄ¶¼Ð´ÁË£¬×Ô¼ºÔÙҲд²»³öʲôÁË¡£ÍøÉÏÓÐһλ½Ð"Äñ¸ç"ͬ°ûµÄÎÄÕ½²µÄÌØ±ðÈ«Ãæ£¬Ë¼Â·Ò²ºÜÇåÎú¡£ÔÚÕâ¶ùÎÒ²»¹ÜЩʲô¶¼ÄÑÃâÓгϮµÄÏÓÒÉ£¬¾ÍÎÒÏÖÔÚµÄˮƽ£¬ÏëÒª´´ÐÂÒ²ºÜÄÑ£¬¼ÈÈ»ÄÑÓд´Ð£¬ÄǾÍË÷ÐÔµ±×÷±Ê¼Ç°É£¬¸ù¾ÝÄñ¸çµÄÎÄÕÂÕâ¶ù¼òµ¥µÄ¼Ç¼һµãlinux¿ª»úµÄÁ÷³Ì¡£°Ñ“Äñ¸ç”µÄ¸öÈËÍøÕ¾Á´½ÓÔÚ´Ë£¬Ï£ÍûÏëÒªÁ˽⿪»úÁ÷³ÌµÄÅóÓÑÖ±½ÓÈ¥ËûÄǶù¿´£¬ÒÔÃâÔÚÕâ¶ùÀË·Ñʱ¼ä¡£
Äñ¸çµÄ¸öÈËÍøÖ·(Äñ¸çµÄLinux˽·¿²Ë)£ºhttp://linux.vbird.org/
Äñ¸çµÄLinux˽·¿²Ë--Ö®Linux¿ª»úÁ÷³Ì£ºhttp://linux.vbird.org/linux_basic/0510osloader.php#startup_loader
µ±¿ª»ú¼ü°´Ïº󣬵çÄÔÓ²¼þ»á×Ô¶¯ÔØÈëBIOS(Basic Input Output System)£¬È»ºóͨ¹ýBIOSÔØÈëCMOS(±£´æ¼ÆËã»ú»ù±¾Æô¶¯ÐÅÏ¢(ÈçÈÕÆÚ¡¢Ê±¼ä¡¢Æô¶¯ÉèÖõÈ)µÄROM
оƬ)ÐÅÏ¢£¬Í¨¹ýCMOS¶ÁȡӲ¼þÉèÖÃÐÅÏ¢¡£×öÍêÕâЩBIOS»¹»á½øÐпª»ú×ÔÎÒ²âÊÔ(Power-on Self Test)£¬È»ºó½øÐÐÓ²¼þ¼ì²âµÄ³õʼ»¯£¬²¢ÉèÖÃpnp×°ÖÃ(plug and play£ºËæ²å¼´ÓÃ×°ÖÃ),×îºó»¹»á¶¨Òå¿É¿ª»úµÄ×°ÖÃ˳Ðò¡£È»ºóϵͳ»á×Ô¶¯¶ÁÈ¡µÚÒ»¸ö¿É¿ª»úµÄ×°Öã¨Õâ¸ö×°ÖÃÓÉBIOSÀ´É趨£©£¬´Ëʱ£¬¾Í¿ÉÒÔ¶ÁÈ뿪»ú¹ÜÀí³ÌÐòÁË¡£¿ª»ú¹ÜÀí³ÌÐò¿ÉÒÔÖ¸¶¨Ê¹ÓÃÄĸöÄÚºËÀ´¿ª»ú£¬²¢Êµ¼ÊÔØÈëÄں˵½ÄÚ´æÖнøÐнâѹËõ²¢Ö´ÐУ¬´Ëʱ£¬Äں˾ͿÉÒÔÔÚÄÚ´æÖлÁË£¬Äں˻áÕì²âËùÓÐÓ²¼þÐÅÏ¢²¢ÔØÈëÊʵ±µÄÇý¶¯³ÌÐòÀ´Ê¹Õû¸öÖ÷»ú¿ªÊ¼ÔËÐУ¬Õâ¸ö¹ý³ÌÈç¹ûÍêÃÀÍê³É£¬Ò»¸ö²Ù×÷ϵͳ¾ÍÔÚµçÄÔÉÏÔËÐÐÆðÀ´ÁË¡£ÄÚºËÆô¶¯£¬Ö÷»úϵͳ¿ªÊ¼ÔËÐкó£¬Õâ¸öʱºòLinux²Å»áµ÷ÓÃÍⲿ³ÌÐò¿ªÊ¼´î½¨Èí¼þÖ´Ðл·¾³£¬²¢ÔØÈëËùÓÐϵͳÔËÐÐËùÐèµÄÈí¼þ³ÌÐò¡£Íê³ÉÕâ¸ö¹¤×÷£¬Óû§¾Í¿ÉÒԵǼÁË¡£Õû¸ö¹ý³Ì
Ïà¹ØÎĵµ£º
ÏßÐÔ—ÎïÀíµØÖ·µÄת»»£¬¿É½«ÆäÒâÒåÀ©Õ¹ÎªÔÊÐí½«Ò»¸öÏßÐÔµØÖ·±ê¼ÇΪÎÞЧ£¬¶ø²»ÊÇʵ¼ÊµØ²úÉúÒ»¸öÎïÀíµØÖ·¡£ÓÐÁ½ÖÖÇé¿ö¿ÉÄÜʹҳ±»±ê¼ÇΪÎÞЧ£ºÆäÒ»ÊÇÏßÐÔµØÖ·ÊDzÙ×÷ϵͳ²»Ö§³ÖµÄµØÖ·£»Æä¶þÊÇÔÚÐéÄâ´æ´¢Æ÷ϵͳÖУ¬ÏßÐÔµØÖ·¶ÔÓ¦µÄÒ³´æ´¢ÔÚ´ÅÅÌÉÏ£¬¶ø²»ÊÇ´æ´¢ÔÚÎïÀí´æ´¢Æ÷ÖС£ÔÚǰһÖÖÇé¿öÏ£¬³ÌÐòÒò²úÉúÁËÎÞЧµØÖ·¶ø±ØÐë±»Ö ......
ʹÓùý³ÌÖеÄÐĵãº
Ò»¡¢½â³ýĿ¼ӳÉä¹ØÏµ
umount Ŀ¼¿ÉÒÔ½â³ý¹ØÁª¹ØÏµ
±ØÐëÏÈÔÚ¿Í»§¶Ëumount£¬È»ºóÔÚ·þÎñÆ÷¶ËÍ£Ö¹nfs·þÎñ£¬ÒÔ¼°ÐÞ¸Ä/etc/exports£¬·ñÔòµÄ»°»áµ¼ÖÂdf -hÎÞ·¨¹Ø±Õ
¶þ¡¢mount.nfs: Input/output error
½â¾ö:ÔÚ¿Í»§¶ËÒ²ÐèÆô¶¯portmap
Èý¡¢ÐÞ¸ÄÍê±Ï/etc/exportsÎļþÖ®ºó£¬¿ÉÒÔÖØÆônfs·þÎñ£¬Ò²¿ÉÒÔʹÓÃexp ......
ÎÒÕýÔÚѧϰдlinux device driver for embedded system.
ÎÒÓÐÒ»¸ölinuxǶÈëʽÉ豸£¬Ò²ÓÐÕâ¸öÉ豸µÄlinuxÔ´´úÂë¡£Ò²ÓÐcross compiler tool chain.
µÚÒ»²½£¬¾ÍÊÇдһ¸ö¼òµ¥µÄhelloÄ£¿é£¬È»ºó×°µ½É豸ÖС£ÒÔÑéÖ¤ÎÒÕâ¸ö¿ª·¢»·¾³¡£
ÔÚÍøÉÏËÑË÷ÁËһϣ¬ how to cross compile linux device driver
·¢ÏÖÔÚlinux´úÂë¸ùĿ¼µÄMak ......
ÔÚVFSµÄÖ§³ÖÏ£¬Óû§Ì¬½ø³Ì¶ÁдÈκÎÀàÐ͵ÄÎļþϵͳ¶¼¿ÉÒÔʹÓÃreadºÍwrite×ÅÁ½¸öϵͳµ÷Ó㬵«ÊÇÔÚlinuxÄÚºËÖÐûÓÐÕâÑùµÄϵͳµ÷ÓÃÎÒÃÇÈçºÎ²Ù×÷ÎļþÄØ£¿ÎÒÃÇÖªµÀreadºÍwriteÔÚ½øÈëÄÚºË̬֮ºó£¬Êµ¼ÊÖ´ÐеÄÊÇsys_readºÍsys_write£¬µ«ÊDz鿴ÄÚºËÔ´´úÂ룬·¢ÏÖÕâЩ²Ù×÷ÎļþµÄº¯Êý¶¼Ã»Óе¼³ö(ʹÓÃEXPORT_SYMBOLµ¼³ö)£¬Ò²¾ÍÊÇ˵ÔÚÄÚºË ......
errno±äÁ¿(Ðèinclude errno.h)»á±»¸³Ò»¸öÕûÊýÖµ,²»Í¬µÄÖµ±íʾ²»Í¬µÄº¬Òå,
¿ÉÒÔͨ¹ý²é¿´¸ÃÖµÍÆ²â³ö´íµÄÔÒò¡£µ«ÊÇerrnoÊÇÒ»¸öÊý×Ö£¬´ú±íµÄ¾ßÌ庬Òå
»¹Òªµ½errno.hÖÐÈ¥ÔĶÁºê¶¨Òå¡£ÓÐÏÂÃæ¼¸ÖÖ·½·¨¿ÉÒÔ·½±ãµÄµÃµ½´íÎóÐÅÏ¢
(Ò»)
#include <stdio.h>
void perror(const char *s)
perror()ÓÃÀ´½«ÉÏÒ»¸öº¯Êý·¢Éú´íÎóµÄ ......