linuxÇý¶¯¿ª·¢½Ì³Ì1
´ÓǰÌ쿪ʼѧϰÇý¶¯£¬¸Ð¾õ²»µ½Çý¶¯µÄ¾«Ëè¡£²»¹ýËæ×Åʱ¼äµÄÁ÷ÊÅÎÒ½«¸ã¶¨Ëû¡£
ÒòΪÎÒ²»ÊÇÌØ±ð¶¯Èç¹ûÎÒдµÄ²»µ½Î»µÄµØ·½Ï£Íû´ó¼ÒÖ¸Õý£¬¹²Í¬½ø²½
¡£
É豸Çý¶¯
Çý¶¯¿ò¼Ü£º
Çý¶¯ºÍÆÕͨ³ÌÐòµÄÇø±ðÔÚÓÚËûÊÇʼþÇý¶¯
µÄ£¬Ò²¾ÍÊÇ˵Ëû²»ÊÇÏñÆÕͨ³ÌÐòÄÇÑù´Ómain()Ö´ÐУ¬´Ómain()½áÊø¡£ÒòΪÇý¶¯ÊÇÒÔÄ£¿éµÄÐÎʽ“ÈںϔÈëϵͳµÄ£¬ÏµÍ³ÊDz»»á½áÊøµÄËùÒÔÇý¶¯Ò²Ì¸²»ÉÏ“½áÊø”£¬µ«ÊÇËüÊÇÓзµ»ØµÄ¡£ÕýÊÇÓÉÓÚËüÊÇʼþÇý¶¯ËùÒÔ£¬ËûÒ²²»ÓÃmain()¡£
Çý¶¯³ÌÐòµÄÌØÉ«£º
1.ʼþÇý¶¯
2.“ÈںϔÈëÄÚºË
3.²»»á½áÊø
ÄÇô£¬ÕâÐ©ÌØÉ«»áÔÚÒÔºóµÄѧϰÖÐÌåÏÖ³öÀ´¡£
Ê×ÏÈÊÇÎÒ½âÊÍһϓʼþÇý¶¯”£º
Õâ¸ö´ÊÓï¿ÉÒÔÓã¬Ê¼þʹÄÜÈ¥½âÊÍ£¬ÕâÊÇΪÁ˱ÜÃâÅöÉÏ“Çý¶¯”Õâ¸ö´ÊÓÎÒÃÇдµÄÊÇÇý¶¯ÎªÊ²Ã´»¹ÔÚ˵ʼþÇý¶¯ÄØ£¿Èç¹ûÄã½Ó´¥¹ýÃæÏò¶ÔÏó±à³ÌÌýÕâ¸ö´ÊÓïÓ¦¸ÃºÜ¶úÊ죬ÆäʵʼþÇý¶¯ÔÚCÓïÑԾͿÉÒÔʵÏÖÁË£¬¸ù±¾²»Óøü¸ß¼¶ÓïÑÔ¡£ÄÇô£¬Ê¼þÇý¶¯µÄ±¾ÖÊÊÇ“ÂÖѯ”£¬¾ÍÊdz£ËµµÄ“ËÀÑ»·”£¬Õâ¸öÑ»·ÊÇÄÚºËÔÚ×öµÄ²Ù×÷¡£Í¨¹ý·ÖʱÏìÓ¦¸÷¸÷½ø³ÌÈÃÎÒÃÇ¿ÉÒÔͬʱ½øÐжà¸öÓ¦Óá£ÕâÑùÄã¿´µçÄÔµÄʱºò²Å¸Ð¾õËü²»ÊÇ“ËÀ”µÄ¡£
ÔÙ˵“ÈÚÈ딣º
Õâ¸ö´ÊÓïÊÇÎÒ×Ô¼º·¢Ã÷µÄ£¬Ö®ËùÒÔÕâÑùÃèÊöÊÇÒòΪÎÒÃǽ«×Ô¼ºÐ´ºÃµÄ“Ä£¿é”£¨Çý¶¯£©£¬²åÈëÄں˺󣬲»»á¶ÔÄÚºËЧÂÊÔì³ÉÓ°Ïì¡£ÆäʵÕâÒ»µã£¬¿ÉÒÔÓÓʼþÇý¶¯”È¥Àí½â£¬ÎªÊ²Ã´ÄØ£¿“Çý¶¯³ÌÐò”ÊÇʼþʹÄܵģ¬Ã»Ê¶ù²»»áÖ´ÐУ¬²»»á±»¼Óµ½¼ÓÔØµÄÁ÷³ÌÖС£ËùÒÔ£¬Ëü¶ÔЧÂÊµÄÆÆ»µºÜµÍ¡£
²»»á½áÊø£º
Õâ¸ö¸ÅÄî±È½Ï¸´ÔÓ£¬ÔÚÕâÀÓÐÈý²ãº¬Ò壬һÊÇ£¬Çý¶¯±¾ÉíÊDz»Ö´ÐеÄËùÒÔ˵̸²»ÉϽáÊø£¬¶þÊÇ£¬ËüÊÇ£Û±»µ÷Ó㬷µ»Ø£ÝµÄ¹ý³Ì£¬¶ø²»ÊÇÒ»¶¨ÒªÖ´ÐеĹý³Ì¡£ÈýÊÇ£¬²»»á½áÊøÒ²¾ÍÊDz»»á±»ÖØÐÂÉú³É´úÂë¡£
µÚÈý²ãº¬ÒåÊÇÕâÑùµÄ£º
Õâ¸ö³ÌÐò´úÂë¶Î£¨Çý¶¯£©ÊDz»»áËÀÍöµÄ£¬ËùÒÔÒ²²»ÓÃÔÙÉú¡£
ÀýÈ磺
ÎÒÃÇÓÐÒ»¸ö³ÌÐòa.outÔÚÎÒÃǵÄÖ÷Ŀ¼ÖУ¬ÏÖÓÐÁ½¸öÖÕ¶ËÒ»ÆðÖ´ÐÐËý£¬ÄÇôϵͳ»á·Ö±ð¸´ÖÆ2·ÝÕâ¸ö³ÌÐòµÄ´úÂë¶Îµ½ÄÚ´æÖУ¬½»¸øÁ½¸öÖÕ¶ËÖ´ÐУ¬ÎÞÂÛÊdzÌÐòÖеľֲ¿±äÁ¿£¬»¹ÊÇ£¬È«¾Ö±äÁ¿£¬¶¼»¥Ï಻һÖ¡£
¶øÔÚÇý¶¯ÖУ¬ÎÞÂÛÓжàÉÙÓû§µ÷ÓÃijһÉ豸ʱ£¬¶¼½«²úÉú£¬¶à¸ö½ø³Ì£¬µ«ÊÇÿ¸ö½ø³ÌµÄÈ«¾ÖÊý¾ÝÇø±£³ÖÒ»ÖÂÐÔ¡£
ÕâЩÊÇÎÒÏÖÔÚ´ÓѧϰÇý¶¯¿ªÊ¼µÄ¸ÐÎò£¬Ï£Íû¶Ô´ó¼ÒÓÐËù°ïÖú¡£ÎÒ»á¼ÌÐø½«¾ßÌåµÄ²Ù×÷Ò»µãÒ»µãµÄд³öÀ´¡£
Ïà¹ØÎĵµ£º
ÎÒÃÇÖªµÀ£¬ÔÚlinuxÏ£¬ÎÒÃÇÓÃerrnoÀ´²é¿´API·µ»ØµÄ´íÎóÂ룬²¢ÓÃstrerror(errno)À´»ñµÃ´íÎóÐÅÏ¢¡£
¶øÔÚwindowsÏÂÒ²ÓÐÕâµÄ´íÎóÂ룬¿ÉÒÔÓÃGetLastError
À´»ñµÃ£¬ÔÚwindowsÏ£¬Òª»ñµÃ´íÎóÂë¶ÔÓ¦µÄÐÅÏ¢¾ÍûÓÐlinuxÏÂÄÇô·½±ãÁË¡£
Æä»ñµÃ·½Ê½¿ÉÒԲο¼¡¶windowsºËÐıà³Ì¡·¡£
µ«ÎÒÃÇÒ²¿ÉÒÔÓÃlinuxϵÄapiÀ´»ñµÃwindowsϵĴíÎóÐ ......
linux 2.6Ï̴߳´½¨Ô´Âë·ÖÎö
ÉÏÕ½²µ½Ị̈߳¬ÏÖÔÚ¶ÔÏ̴߳´½¨µÄ´úÂëÁ÷³Ì·ÖÎöÏ¡£À´Ò»²½Ò»²½½Ò¿ªËýÉñÃØµÄÃæÉ´
linuxÄں˴´½¨Ï̺߳¯Êý kernel_thread()£¬×îÖÕ»áµ÷ÓÃdo_fork().
Ç°ÃæÌ¸µ½Ïß³ÌÒ²ÊÇÓÃtask_struct½á¹¹±íʾËüÓµÓеÄÐÅÏ¢£¬Ö»ÊÇÊǹ²Ïí½ø³ÌµÄ×ÊÔ´¡£
¸ù¾Ýclone_fla ......
Öжϴ¦Àí
¡¡¡¡Í¬´¦ÀíI/O¶Ë¿ÚÒ»Ñù£¬ÒªÊ¹ÓÃÒ»¸öÖжϣ¬±ØÐëÏÈÏòϵͳµÇ¼Ç¡£
int request_irq(unsigned int irq £¬void(*handle)(int£¬void *£¬struct pt_regs *)£¬
unsigned int long flags£¬ const char *device£¬void *dev_id);
irq ......
×÷ÕߣºÎ¤¶«É½,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦¡£
Ëæ×ÅǶÈëʽÐÐÒµÓ²¼þƽ̨µÄÐÔÄÜÔöÇ¿£¬ÏîÄ¿ÐèÇóºÍ¹¦ÄÜÈÕÒæ¸´ÔÓ£¬ARM¹«Ë¾ÍƳöµÄ CORTEX-M3£¬¸üÊÇÈÃÒÔÍù×öµ¥Æ¬»úµÄ¹¤³ÌʦÔÚоƬºÍ¼¼ÊõÑ¡ÐÍÃæÁÙÁ½ÄÑÑ¡Ôñ£¬±¾×¨Ì⽫´ÓоƬ¼Û¸ñ¡¢Õû¸öϵͳµÄÓ²¼þÈí¼þÉè¼Æ¼°Î¬»¤µÄ³É±¾µÈ¸÷¸ö·½Ãæ¸øÄúÌṩһ¸ö²Î¿¼£¬ ²¢´Ó¼¼Êõ½Ç¶È·ÖÎöµ¥Æ¬»úºÍ´ø²Ù×÷ϵͳµÄÏ ......
Linux»·¾³½ø³Ì¼äͨÐÅ£¨Ò»£©
¹ÜµÀ¼°ÓÐÃû¹ÜµÀ
¼¶±ð£º ³õ¼¶
Ö£ÑåÐË (mlinux@163.com)¹ú·À¿Æ´ó¼ÆËã»úѧԺ
2002 Äê 12 ÔÂ 11 ÈÕ
ÔÚ±¾ÏµÁÐÐòÖÐ×÷Õ߸ÅÊöÁË linux ½ø³Ì¼äͨÐŵļ¸ÖÖÖ÷ÒªÊֶΡ£ÆäÖйܵÀºÍÓÐÃû¹ÜµÀÊÇ×îÔçµÄ½ø³Ì¼äͨÐÅ»úÖÆÖ®Ò»£¬¹ÜµÀ¿ÉÓÃÓÚ¾ßÓÐÇ×Ôµ¹ØÏµ½ø³Ì¼äµÄͨÐÅ£¬ÓÐÃû¹ÜµÀ¿Ë·þÁ˹ܵ ......