<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
	<channel>
		<title>½ðÂóÍøÂç</title>
		<link>http://www.kingmx.com</link>
		<copyright>Copyright (C) 2006 ½ðÂóÍøÂç-Kingmx.com All Rights Reserved.</copyright>
		<item>
			<title>¿ªÔ´×ÀÃæ¾ºÕùÁÒ 30·ÖÖÓ×Ô¼º×öLinux</title>
			<link>http://www.kingmx.com/article.php?id=13004</link>
			<pubDate>2006-10-25</pubDate>
			<description><![CDATA[

Èç¹û¸øÄãËùÐèµÄËùÓÐ×ÊÁÏ£¬ÈÃÄãÔÚ°ë¸öÐ¡Ê±Ö®ÄÚ×ö³öÒ»¸öÓÐ×Ô¼ºÌØÉ«µÄLinux£¬ÕâÌýÆðÀ´ÍêÈ«ÏóÒ»¸ö²»¿ÉÄÜÍê³ÉµÄÈÎÎñ¡£µ«ÊÇ£¬ÍØÁÖË¼¹«Ë¾ÑÐ·¢×Ü¼àÐÜÎ°È´Ò»ÔÙÇ¿µ÷£¬ÕâÍêÈ«ÊÇ¿ÉÒÔÊµÏÖµÄÊÂÇé¡£ÎÒÃÇÖªµÀ£¬Èç¹ûµ¥°ÑLinuxÄÚºË´úÂë´òÓ¡³öÀ´£¬×°¶©ÆðÀ´½«Ïàµ±ÓÚÊ®¼¸±¾×©Í·ºñµÄÊé£¬ÄÇÃ´£¬ÔÚ°ëÐ¡Ê±ÄÚ´´½¨×Ô¼ºµÄLinuxÕâ¸öÆæ¼£ÓÖ½«ÈçºÎ³öÏÖÄØ£¿ 
¡¡¡¡ÉñÆæµÄwhitefin 

¡¡¡¡Õë¶ÔÎÒµÄÒÉ»ó£¬ÐÜÎ°½éÉÜÏòÎÒ½éÉÜÁËwhitefinÕâ¸ö¿ªÔ´ÏîÄ¿¡£Whitefin¿ªÔ´ÏîÄ¿ÊÇÒ»¸öLinux·¢ÐÐ°æ£¬ËüÊÇÓÉ±±¾©ÍòÀï¿ªÔ´Èí¼þÓÐÏÞ¹«Ë¾£¨GreatLinux£©·¢Æð²¢Ìá¹©Ö§³Ö£¬²¢½«ÓÀÔ¶ÔÊÐíÈÎºÎÈË×ÔÓÉµØ»ñµÃ¡¢Ê¹ÓÃ¡¢ÐÞ¸ÄºÍÔÙ·¢²¼¡£ 

¡¡¡¡¶øÖ®ËùÒÔ»á³öÏÖÀûÓÃwhitefin¿ÉÒÔÊµÏÖÔÚ°ëÐ¡Ê±Ö®ÄÚ¾Í¿ÉÒÔ´´½¨Ò»¸ö×Ô¼ºµÄLinux£¬ÊÇÒòÎªGreatLinux¹«Ë¾²»½ö¿ª·ÅÁËÔ´Âë£¬¶øÇÒ»¹ÔÚÍøÉÏ½«Õû¸öwhitefin²Ù×÷ÏµÍ³µÄÖÆ×÷Á÷³Ì¡¢Î¬»¤·½Ê½¼°¿ª·¢¹¤¾ßÍêÈ«¿ª·Å¸ø¿ª·¢Õß¡£ÔÚÕâÖÖÌõ¼þÏÂ£¬¿ª·¢Õß½«²»ÔÙ½öÊÇ²Ù×÷ÏµÍ³µÄÊ¹ÓÃÕßºÍÅÔ¹ÛÕß£¬¶øÊÇ¿ÉÒÔÕæÕýÉîÈëÁË½â²¢²ÎÓëµ½²Ù×÷ÏµÍ³µÄÖÆ×÷ÖÐÀ´¡£GreatLinuxµÄ½¯Ë³ÀûÏÈÉú½éÉÜËµ£º¡°GreatLinuxµÄ×îÖÕÄ¿µÄ£¬ÊÇÒª½«whitefinÖð²½½»¸øÉçÇø£¬×îÖÕ¿ÆÓÉÉçÇø³ÉÔ±À´¹²Í¬Î¬»¤¡¢¿ª·¢²¢¾ö¶¨Æä·¢Õ¹·½Ïò£¬GreatLinuxÖ»¸ºÔð¶ÔËü½øÐÐÖ§³Ö¡£¡± 

¡¡¡¡Ò²ÐíºÜ¶àÒµ½çÈËÊ¿Ò²Ã»Ã÷°×ÕâÒâÎ¶×ÅÊ²Ã´£¬¹úÄÚ¿ªÔ´½çµÄÏÈÇýÈËÎï¹¬Ãô²©Ê¿ÔçÔÚ2001Äê¾ÍÒÑ¾­×¢Òâµ½ÁËÕâ¸öÎÊÌâ£º¡°¹úÄÚ²Ù×÷ÏµÍ³µÄ½ÌÑ§Ö»ÊÇ°ÑËÄ¸ö½ø³Ì½²½âÁËÒ»±é£¬µ«Ñ§ÉúÄÜ·ñÕæÕýÀí½âÄØ£¿ÏÔÈ»£¬ÏëÍ¨¹ýÕâÑùµÄ½ÌÑ§·½·¨¾ÍÈÃÑ§Éú³¹µ×ÕÆÎÕ²Ù×÷ÏµÍ³¼¼ÊõÊÇ²»ÏÖÊµµÄ¡£¹úÍâµÄ×÷·¨ÊÇÈÃÑ§ÉúÖØÐ´²Ù×÷ÏµÍ³µÄÄ³Ò»Ä£¿é£¬È»ºó»»ÉÏÈ¥¡£ºó¹ûºÜ¼òµ¥£¬Èç¹ûÄãÐ´£¨»òÑ¡£©µÄÄ£¿é²»ºÏÀí£¬»úÆ÷¿Ï¶¨ÒªËÀµô£¬²»¹ýÕâËã²»ÁËÊ²Ã´£¬×îÑÏÖØµÄºó¹û²»¹ýÊÇÖØ×°Ò»±é¹«¿ª·¢ÐÐµÄ²Ù×÷ÏµÍ³¡£¡± 

¡¡¡¡ÎåÄêµÄÊ±¼ä¹ýÈ¥ÁË£¬Ã»ÓÐÈËÕæÕýÖØÊÓ¹¬Ãô²©Ê¿µÄÕâ·¬»°¡£±íÃæ¿´À´£¬Õâ²¢Ã»ÓÐÔì³ÉÈÎºÎ¶ñ¹û£¬µ«ÐÜÎ°ÏÈÉúµÄÒ»·¬»°È´×ÅÊµÈÃÈËÐÄ¾ª£º¡°whitefin±ÈSUSE 10µÄ·¢²¼Ê±¼äÍíÁËÒ»¸öÔÂ£¬²»ÊÇÎÒÃÇ²»ÏëÕùÕâ¸öµÚÒ»£¬ÊµÔÚÊÇ¿ª·¢ÈËÊÖÌ«½ôÕÅÁË¡£Ò²²»ÊÇ¹«Ë¾²»¿Ï³öÇ®¹ÍÈË£¬ÊµÔÚÊÇ¹úÄÚµÄ²Ù×÷ÏµÍ³¸ßÊÖÊµÔÚÊÇÌ«ÉÙÁË¡£¶øÇÒ£¬Õâ²¢²»Ö»ÊÇÎÒÃÇÒ»¼ÒµÄÎÊÌâ£¬ÖÐÐË¡¢»ªÎª¹«Ë¾µÄÅóÓÑÉõÖÁ¸úÎÒËµ£¬LinuxÈË²ÅÌ«ÄÑÕÐÁË£¬ÄãÃÇµÄÒªÇó¸ß£¬ÄÜ²»ÄÜÇëÎÒ½éÉÜÒ»Ð©ÎÒÃÇÌÔÌ­ÏÂÈ¥µÄLinuxÈË²Å¸øËûÃÇ¡£¡± 

¡¡¡¡µ±Ç°£¬LinuxÕýÏò×ÅµÚ¶þ´ó²Ù×÷ÏµÍ³µÄÎ»ÖÃÇ°½ø£¬µ«¸÷ÀàLinuxÈË²ÅµÄÈ±·¦ÒÑ¾­³ÉÎªLinux·¢Õ¹²»¿ÉÓâÔ½µÄÆÁÕÏ¡£ÕýÒòÎªÈç´Ë£¬GreatLinux×Ü¾­ÀíÖÜÈºÏÈÉúÕâÑùÌ¸ÁËËûÃÇÍÆ³öwhitefinµÄÄ¿µÄ£º¡°´´ÔìÒ»¸öºÃµÄ²úÒµ»·¾³£¬Ìá¸ßÍØÁÖË¼¹«Ë¾µÄÖªÃû¶È£¬Ñ°ÕÒµ½Linux¿ª·¢¸ßÊÖ¡£¡± ÐÜÎ°ÏÈÉú¾ßÌåµØÌ¸ÁË½±Àø°ì·¨£º¡°¿ª·¢³öÊÊºÏwhitefinµÄÓ¦ÓÃ³ÌÐòµÄÈËÔ±£¬½«ÁÐÈëwhitefinµÄMaillist£¬²¢ÇÒÏ£ÍûËûÃÇ¿ÉÒÔÒÔ¼æÖ°»ò×¨Ö°µÄÉí·Ý¼ÓÈëÍØÁÖË¼¹«Ë¾¡£¡± 

¡¡¡¡Linux×ÀÃæ²»Ó®ÀûÊÇ¼ÙÏó 
¡¡¡¡ÔÚÈËÃÇµÄÓ¡ÏóÀï£¬¸÷³§ÉÌÔÚLinux×ÀÃæÊÐ³¡ÀëÓ®Àû»¹ÓÐÏàµ±µÄ¾àÀë£¬µ«ÐÜÎ°ÏÈÉúÏÔÈ»²»ÕâÃ´¿´¡£ 

¡¡¡¡ÐÜÎ°ÏÈÉú½éÉÜËµ£º¡°Ê×ÏÈÊÇOEMÊÐ³¡£¬ÏóÍØÁÖË¼¾ÍºÍ¹úÄÚÏàµ±¶àµÄPC»ú³§ÉÌ½¨Á¢ÁËºÏ×÷¹ØÏµ¡£Æä´Î£¬Linux×ÀÃæ¼¼ÊõÒ²¼ä½ÓÓ°Ïì×ÅLinux·þÎñÆ÷ÊÐ³¡£¬Linux·þÎñÆ÷Èí¼þÒ»°ã»áÓ¦ÓÃÓÚÆóÒµ¼¶£¬µ«¼¸ºõËùÓÐµÄÆóÒµ¼¶Ó¦ÓÃ¶¼»á°Ñ¿É¿¿ÐÔÒòËØ·ÅÔÚÊ×Î»À´¿¼ÂÇ£¬µ«Linux·þÎñÆ÷Èí¼þÒ²ÐèÒª²»¶ÏÔö¼ÓÐÂ¹¦ÄÜ£¬Õâ¾ÍÐèÒªÒ»¸ö¹ý³Ì¡£Èç×î½üÌØ±ðÁ÷ÐÐµÄXenÐéÄâÈí¼þ£¬¶ÔËüµÄÖ§³Ö¿Ï¶¨»á¼ÓÈëµ½TurboLinuxµÄ·þÎñÆ÷°æ±¾Ö®ÖÐ£¬µ«Í»È»¼ÓÉÏ¿ÉÄÜ¶Ô¿É¿¿ÐÔ¾Í»áÔì³É²»ºÃµÄÓ°Ïì£¬ÕâÊ±£¬×ÀÃæ°æ¾Í³ÉÁËÊÔÑé³¡¡£Ë­µÄ×ÀÃæ°æÓ¦ÓÃ·¶Î§¸ü¹ã£¬µÃµ½µÄ·´À¡¸ü¶à£¬×ÔÈ»·þÎñÆ÷Èí¼þÒ²¾Í»áÔ½ÎÈ¶¨¡£µ±Ç°£¬×ÀÃæ°æLinuxÕý±äµÃÔ½À´Ô½³ÉÊì£¬×ÀÃæ°æLinuxµÄÆÕ¼°±ØÈ»»á´ø¶¯·þÎñÆ÷°æLinuxÊÐ³¡µÄ½øÒ»²½·¢Õ¹¡£¡± 

¡¡¡¡Ì¸µ½×ÀÃæ°æLinuxµÄÓ®ÀûÊ±¼äÎÊÌâ£¬ÐÜÎ°ÏÈÉúÈÏÎª²»»áÌ«³¤£¬ÔÚÒ»ÖÁÁ½ÄêÄÚ£¬×ÀÃæ°æLinuxµÄÓ®ÀûÆÚ¾Í»áµ½À´¡£ 

¡¡¡¡×ÀÃæLinuxµÄ¾ºÕù¸ñ¾Ö 

¡¡¡¡Ò²ÐíÎÒÃÇÐèÒªÔÙ´ÎÇ¿µ÷£¬ÔÚITÒµ×ö³öÔ¤²âÊÇÒ»¼þÎ£ÏÕµÄÊÂÇé£¬µ«Ò²ÕýÊÇÕâ¸öÔ­Òò£¬ÎÒÃÇÐèÒªÍ¨¹ý¹Û²ìÒ»Ð©¼£ÏóÀ´ÑéÖ¤ÎÒÃÇµÄÔ¤²â£¬¶øÈç¹ûÎÒÃÇÉÔÎ¢ÁôÐÄÒ»ÏÂ£¬¾Í²»ÄÑ¿´³ö×ÀÃæ°æLinuxÕýÔÚ¾­Àú×ÅÒ»³¡¾çÁÒµÄ±ä¸ï¡£ 

¡¡¡¡SUSE Linux 10ÓÃ×Ô¼º»ªÀöµÄ½çÃæºÍÇ¿´óµÄ¹¦ÄÜÏòÊÀÈËÐû²¼×Å×ÀÃæ°æLinuxÒÑÄÜÔÚ¼¼ÊõÉÏºÍÎ¢ÈíµÄWindows½øÐÐ¿¹ºâ£¬½ÓÏÂÀ´£¬ÍØÁÖË¼¹«Ë¾µÄwhitefinÓÖ¸øÏ£ÍûÁË½âLinuxµ×²ã¼¼ÊõµÄÈËÃÇÌá¹©ÁËÒ»¸öÃÅ¼÷¼«µÍµÄÈë¿Ú¡£ÌØ±ðÖµµÃÒ»ÌáµÄÊÇ£¬whitefin²¢²»ÊÇÒ»¸ö¼òµ¥µÄ½ÌÑ§°æÈí¼þ£¬ËüÖ§³ÖÈýÎ¬½çÃæºÍÀàËÆÓÚvmwareµÈÐéÄâÈí¼þ£¬¼¯³ÉÁË°ì¹«Èí¼þ¡¢¿ª·¢¹¤¾ß¡¢ÁÄÌì¹¤¾ßºÍÏÂÔØ¹¤¾ß¡£¿ÉÒÔËµ£¬Ëü½«ÊÇÓ°ÏìÎ´À´LinuxÊÐ³¡¸ñ¾ÖµÄÒ»¸öÇ¿ÓÐÁ¦µÄ¾ºÕùÕß¡£ÎÒÃÇÍ¬Ñù²»ÄÜºöÊÓÄ¿Ç°»¹Ã»ÓÐ·¢Á¦µÄºìÃ±¹«Ë¾£¬Äêµ×Ç°½«³öÏÖµÄFedoraÍ¬ÑùÊÇÒ»¸öÖµµÃÆÚ´ýµÄÈí¼þ£¬²¢ÇÒ¹úÄÚÏàµ±ÊýÁ¿µÄÓÃ»§±£³Ö×Å¶ÔFedora¼«´óµÄÈÈÇé¡£Ãæ¶ÔÕâÒ»ÇÐ¼£Ïó£¬ÎÒÃÇºÁ²»»³ÒÉ£¬Ò»³¡Î§ÈÆ×Å×ÀÃæLinuxµÄ¾ºÕùÒÑ¾­Õ¹¿ªÁË¡£

¡¡¡¡¶Ô¿ª·¢ÕßÀ´Ëµ£¬Õâ³¡¾ºÕùµÄ½á¹û±Ø½«Ó°Ïìµ½ËûÃÇ¶Ô¿ª·¢Æ½Ì¨µÄÑ¡Ôñ¡£¾ÍÍØÁÖË¼¹«Ë¾¶øÑÔ£¬ÎÒÃÇ²»ÄÑ×¢Òâµ½ËûÃÇÒÑºÍMySQL¹«Ë¾½á³ÉÁË³¬³öÒ»°ã¹ØÏµµÄÁªÃË£¬¶øPHP¹«Ë¾µÄÓµÓÐÕßZend¹«Ë¾ÏÔÈ»Ò²¶ÔÕâÒ»ÁªÃË³ÖÍêÈ«Ö§³ÖµÄÌ¬¶È¡£Íê³ÉµÄLAMPÌåÏµ£¬¼ÓÉÏÍØÁÖË¼¹«Ë¾ÔÚÐÐÒµÄÚµÄ¶àÄê»ýÀÛ£¬Ê¹µÃÍØÁÖË¼¹«Ë¾ÒÑ±ä³ÉÁËÒ»¼ÒÔÚÎ´À´²»ÈÝºöÊÓµÄ¹«Ë¾¡£Èç¹ûwhitefin¼Æ»®ÄÜ¹»³É¹¦µØÎªËü´øÀ´´óÅúÓµõ»£¬ÄÇÃ´²»¹Ü½«À´LinuxÊÐ³¡¸ñ¾ÖÈç¿É±ä»¯£¬ÍØÁÖË¼¹«Ë¾±ØÈ»ÄÜ¹»ÔÚÆäÖÐ°çÑÝ¾Ù×ãÇáÖØµÄ½ÇÉ«¡£ 

¡¡¡¡¶ø¶ÔÓÃ»§¶øÑÔ£¬×¢ÖØ»ù´¡µÄ×ÀÃæ°æÊÐ³¡£¬Ïà¹Ø²úÆ·ÉçÇøµÄ³É°Ü½«³ÉÎª¾ö¶¨Ê¤¸ºµÄ¹Ø¼üÒòËØ¡£ÒÔºìÃ±¹«Ë¾ÎªÀý£¬FedoraÉçÇøÎªºìÃ±¹«Ë¾´øÀ´ÁËÒ»°ÙÍòµÄÓÃ»§Èº¡£ÔÚ´Ë»ù´¡Ö®ÉÏ£¬Red hat ÉçÇøÍ¬Ñù±£³ÖÁË¶þÊ®ÍòµÄÓÃ»§¡£ÓÐÁËÕâÒ»°ÙÍò¡¢¶þÊ®ÍòµÄÈ¦×Ó£¬ºìÃ±¹«Ë¾±¾²¿µÄÎªÊý²»¶àµÄÈË²ÅÄÜÕæÕý³ÅÆðRed hatÕâ¸Ë´óÆì¡£Ò²ÕýÊÇÕâÁËÕâÑùµÄ½á¹¹£¬ºìÃ±¹«Ë¾²Å×îÖÕÄÜ¹»ÔÚÁ¬Ðø¾ÅÄê¿÷ËðÖ®ºó£¬×îÖÕÊµÏÖÓ®Àû¡£¶ø´Ë´ÎwhitefinµÄ¿ª·¢»úÖÆÍêÈ«Î§ÈÆ×ÅÉçÇøÕ¹¿ª£¬Í¨¹ý¿ª·¢ÎÄµµµÄ±¾µØ»¯Á¦Í¼×î´óÏÞ¶ÈµØµ÷¶¯¹úÄÚµÄ¿ªÔ´×ÊÔ´¡£ËäÈ»ÎÒÃÇ¾Ý´Ë¾ÍÔ¤ÑÔwhitefinÎ´À´µÄ·¢Õ¹»¹ÎªÊ±ÉÐÔç£¬µ«ÎÒÃÇÏàÐÅÍØÁÖË¼¹«Ë¾ÎñÊµµÄÉçÇø½¨ÉèÌ¬¶È£¬»áÊ¹µÃwhitefinÓÉÓÚÉçÇøµÄÁ¦Á¿¶ø¾ß±¸Ç¿´óµÄÉúÃüÁ¦£¬½ø¶øÔÚÎ´À´µÄ×ÀÃæLinuxµÄ¾ºÕù¸ñ¾ÖÖÐÕ¼¾Ý×Ô¼ºµÄÒ»Ï¯Ö®µØ¡£
]]></description>
		</item>
		<item>
			<title>¼¸¸öÖØÒªµÄRedHat LinuxÄÚºËÎÄ¼þ½éÉÜ</title>
			<link>http://www.kingmx.com/article.php?id=11922</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ÔÚÍøÂçÖÐ£¬²»ÉÙ·þÎñÆ÷²ÉÓÃµÄÊÇLinuxÏµÍ³¡£ÎªÁË½øÒ»²½Ìá¸ß·þÎñÆ÷µÄÐÔÄÜ£¬¿ÉÄÜÐèÒª¸ù¾ÝÌØ¶¨µÄÓ²¼þ¼°ÐèÇóÖØÐÂ±àÒëLinuxÄÚºË¡£±àÒëLinuxÄÚºË£¬ÐèÒª¸ù¾Ý¹æ¶¨µÄ²½Öè½øÐÐ£¬±àÒëÄÚºË¹ý³ÌÖÐÉæ¼°µ½¼¸¸öÖØÒªµÄÎÄ¼þ¡£±ÈÈç¶ÔÓÚRedHat Linux£¬ÔÚ/bootÄ¿Â¼ÏÂÓÐÒ»Ð©ÓëLinuxÄÚºËÓÐ¹ØµÄÎÄ¼þ£¬½øÈë/bootÖ´ÐÐ¡£
¡¡¡¡±àÒë¹ýRedHat LinuxÄÚºËµÄÈË¶ÔÆäÖÐµÄSystem.map¡¢vmlinuz¡¢initrd-2.4.7-10.imgÓ¡Ïó¿ÉÄÜ±È½ÏÉî¿Ì£¬ÒòÎª±àÒëÄÚºË¹ý³ÌÖÐÉæ¼°µ½ÕâÐ©ÎÄ¼þµÄ½¨Á¢µÈ²Ù×÷¡£ÄÇÃ´Õâ¼¸¸öÎÄ¼þÊÇÔõÃ´²úÉúµÄ?ÓÖÓÐÊ²Ã´×÷ÓÃÄØ?±¾ÎÄ¶Ô´Ë×öÐ©½éÉÜ¡£
¡¡¡¡Ò»¡¢vmlinuz
¡¡¡¡vmlinuzÊÇ¿ÉÒýµ¼µÄ¡¢Ñ¹ËõµÄÄÚºË¡£¡°vm¡±´ú±í¡°Virtual Memory¡±¡£Linux Ö§³ÖÐéÄâÄÚ´æ£¬²»ÏñÀÏµÄ²Ù×÷ÏµÍ³±ÈÈçDOSÓÐ640KBÄÚ´æµÄÏÞÖÆ¡£LinuxÄÜ¹»Ê¹ÓÃÓ²ÅÌ¿Õ¼ä×÷ÎªÐéÄâÄÚ´æ£¬Òò´ËµÃÃû¡°vm¡±¡£vmlinuzÊÇ¿ÉÖ´ÐÐµÄLinuxÄÚºË£¬ËüÎ»ÓÚ/boot/vmlinuz£¬ËüÒ»°ãÊÇÒ»¸öÈíÁ´½Ó£¬±ÈÈçÍ¼ÖÐÊÇvmlinuz-2.4.7-10µÄÈíÁ´½Ó¡£
¡¡¡¡vmlinuzµÄ½¨Á¢ÓÐÁ½ÖÖ·½Ê½¡£Ò»ÊÇ±àÒëÄÚºËÊ±Í¨¹ý¡°make zImage¡±´´½¨£¬È»ºóÍ¨¹ý:¡°cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz¡±²úÉú¡£zImageÊÊÓÃÓÚÐ¡ÄÚºËµÄÇé¿ö£¬ËüµÄ´æÔÚÊÇÎªÁËÏòºóµÄ¼æÈÝÐÔ¡£
¶þÊÇÄÚºË±àÒëÊ±Í¨¹ýÃüÁîmake bzImage´´½¨£¬È»ºóÍ¨¹ý:¡°cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot/vmlinuz¡±²úÉú¡£bzImageÊÇÑ¹ËõµÄÄÚºËÓ³Ïñ£¬ÐèÒª×¢Òâ£¬bzImage²»ÊÇÓÃbzip2Ñ¹ËõµÄ£¬bzImageÖÐµÄbzÈÝÒ×ÒýÆðÎó½â£¬bz±íÊ¾¡°big zImage¡±¡£ bzImageÖÐµÄbÊÇ¡°big¡±ÒâË¼¡£ zImage(vmlinuz)ºÍbzImage(vmlinuz)¶¼ÊÇÓÃgzipÑ¹ËõµÄ¡£ËüÃÇ²»½öÊÇÒ»¸öÑ¹ËõÎÄ¼þ£¬¶øÇÒÔÚÕâÁ½¸öÎÄ¼þµÄ¿ªÍ·²¿·ÖÄÚÇ¶ÓÐgzip½âÑ¹Ëõ´úÂë¡£ËùÒÔÄã²»ÄÜÓÃgunzip »ò gzip €€dc½â°üvmlinuz¡£
¡¡¡¡ÄÚºËÎÄ¼þÖÐ°üº¬Ò»¸öÎ¢ÐÍµÄgzipÓÃÓÚ½âÑ¹ËõÄÚºË²¢Òýµ¼Ëü¡£Á½ÕßµÄ²»Í¬Ö®´¦ÔÚÓÚ£¬ÀÏµÄzImage½âÑ¹ËõÄÚºËµ½µÍ¶ËÄÚ´æ(µÚÒ»¸ö640K)£¬bzImage½âÑ¹ËõÄÚºËµ½¸ß¶ËÄÚ´æ(1MÒÔÉÏ)¡£Èç¹ûÄÚºË±È½ÏÐ¡£¬ÄÇÃ´¿ÉÒÔ²ÉÓÃzImage»òbzImageÖ®Ò»£¬Á½ÖÖ·½Ê½Òýµ¼µÄÏµÍ³ÔËÐÐÊ±ÊÇÏàÍ¬µÄ¡£´óµÄÄÚºË²ÉÓÃbzImage£¬²»ÄÜ²ÉÓÃzImage¡£vmlinuxÊÇÎ´Ñ¹ËõµÄÄÚºË£¬vmlinuzÊÇvmlinuxµÄÑ¹ËõÎÄ¼þ¡£
¡¡¡¡¶þ¡¢initrd-x.x.x.img
¡¡¡¡initrdÊÇ¡°initial ramdisk¡±µÄ¼òÐ´¡£initrdÒ»°ã±»ÓÃÀ´ÁÙÊ±µÄÒýµ¼Ó²¼þµ½Êµ¼ÊÄÚºËvmlinuzÄÜ¹»½Ó¹Ü²¢¼ÌÐøÒýµ¼µÄ×´Ì¬¡£Í¼ÖÐµÄinitrd-2.4.7-10.imgÖ÷ÒªÊÇÓÃÓÚ¼ÓÔØext3µÈÎÄ¼þÏµÍ³¼°scsiÉè±¸µÄÇý¶¯¡£
¡¡¡¡±ÈÈç£¬Ê¹ÓÃµÄÊÇscsiÓ²ÅÌ£¬¶øÄÚºËvmlinuzÖÐ²¢Ã»ÓÐÕâ¸öscsiÓ²¼þµÄÇý¶¯£¬ÄÇÃ´ÔÚ×°ÈëscsiÄ£¿éÖ®Ç°£¬ÄÚºË²»ÄÜ¼ÓÔØ¸ùÎÄ¼þÏµÍ³£¬µ«scsiÄ£¿é´æ´¢ÔÚ¸ùÎÄ¼þÏµÍ³µÄ/lib/modulesÏÂ¡£ÎªÁË½â¾öÕâ¸öÎÊÌâ£¬¿ÉÒÔÒýµ¼Ò»¸öÄÜ¹»¶ÁÊµ¼ÊÄÚºËµÄinitrdÄÚºË²¢ÓÃinitrdÐÞÕýscsiÒýµ¼ÎÊÌâ¡£initrd-2.4.7-10.imgÊÇÓÃgzipÑ¹ËõµÄÎÄ¼þ£¬initrdÊµÏÖ¼ÓÔØÒ»Ð©Ä£¿éºÍ°²×°ÎÄ¼þÏµÍ³µÈ¹¦ÄÜ¡£
¡¡¡¡initrdÓ³ÏóÎÄ¼þÊÇÊ¹ÓÃmkinitrd´´½¨µÄ¡£mkinitrdÊµÓÃ³ÌÐòÄÜ¹»´´½¨initrdÓ³ÏóÎÄ¼þ¡£Õâ¸öÃüÁîÊÇRedHat×¨ÓÐµÄ¡£ÆäËüLinux·¢ÐÐ°æ»òÐíÓÐÏàÓ¦µÄÃüÁî¡£ÕâÊÇ¸öºÜ·½±ãµÄÊµÓÃ³ÌÐò¡£¾ßÌåÇé¿öÇë¿´°ïÖú:man mkinitrdÏÂÃæµÄÃüÁî´´½¨initrdÓ³ÏóÎÄ¼þ¡£
Èý¡¢System.map 
¡¡¡¡System.mapÊÇÒ»¸öÌØ¶¨ÄÚºËµÄÄÚºË·ûºÅ±í¡£ËüÊÇÄãµ±Ç°ÔËÐÐµÄÄÚºËµÄSystem.mapµÄÁ´½Ó¡£
¡¡¡¡ÄÚºË·ûºÅ±íÊÇÔõÃ´´´½¨µÄÄØ? System.mapÊÇÓÉ¡°nm vmlinux¡±²úÉú²¢ÇÒ²»Ïà¹ØµÄ·ûºÅ±»ÂË³ö¡£
¡¡¡¡¶ÔÓÚ±¾ÎÄÖÐµÄÀý×Ó£¬±àÒëÄÚºËÊ±£¬System.map´´½¨ÔÚ/usr/src/linux-2.4/System.map¡£ÏñÏÂÃæÕâÑù:
¡¡¡¡nm /boot/vmlinux-2.4.7-10 &gt; System.map
¡¡¡¡ÏÂÃæ¼¸ÐÐÀ´×Ô/usr/src/linux-2.4/Makefile:
¡¡¡¡nm vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort &gt; System.map
¡¡¡¡È»ºó¸´ÖÆµ½/boot:
¡¡¡¡cp /usr/src/linux/System.map /boot/System.map-2.4.7-10
¡¡¡¡ÏÂÍ¼ÊÇSystem.mapÎÄ¼þµÄÒ»²¿·Ö:
¡¡¡¡ÔÚ½øÐÐ³ÌÐòÉè¼ÆÊ±£¬»áÃüÃûÒ»Ð©±äÁ¿Ãû»òº¯ÊýÃûÖ®ÀàµÄ·ûºÅ¡£LinuxÄÚºËÊÇÒ»¸öºÜ¸´ÔÓµÄ´úÂë¿é£¬ÓÐÐíÐí¶à¶àµÄÈ«¾Ö·ûºÅ¡£
¡¡¡¡LinuxÄÚºË²»Ê¹ÓÃ·ûºÅÃû£¬¶øÊÇÍ¨¹ý±äÁ¿»òº¯ÊýµÄµØÖ·À´Ê¶±ð±äÁ¿»òº¯ÊýÃû¡£±ÈÈç²»ÊÇÊ¹ÓÃsize_t BytesReadÕâÑùµÄ·ûºÅ£¬¶øÊÇÏñc0343f20ÕâÑùÒýÓÃÕâ¸ö±äÁ¿¡£
¡¡¡¡¶ÔÓÚÊ¹ÓÃ¼ÆËã»úµÄÈËÀ´Ëµ£¬¸üÏ²»¶Ê¹ÓÃÄÇÐ©Ïñsize_t BytesReadÕâÑùµÄÃû×Ö£¬¶ø²»Ï²»¶Ïñc0343f20ÕâÑùµÄÃû×Ö¡£ÄÚºËÖ÷ÒªÊÇÓÃcÐ´µÄ£¬ËùÒÔ±àÒëÆ÷/Á¬½ÓÆ÷ÔÊÐíÎÒÃÇ±àÂëÊ±Ê¹ÓÃ·ûºÅÃû£¬µ±ÄÚºËÔËÐÐÊ±Ê¹ÓÃµØÖ·¡£
¡¡¡¡È»¶ø£¬ÔÚÓÐµÄÇé¿öÏÂ£¬ÎÒÃÇÐèÒªÖªµÀ·ûºÅµÄµØÖ·£¬»òÕßÐèÒªÖªµÀµØÖ·¶ÔÓ¦µÄ·ûºÅ¡£ÕâÓÉ·ûºÅ±íÀ´Íê³É£¬·ûºÅ±íÊÇËùÓÐ·ûºÅÁ¬Í¬ËüÃÇµÄµØÖ·µÄÁÐ±í¡£ÉÏÍ¼¾ÍÊÇÒ»¸öÄÚºË·ûºÅ±í£¬ÓÉÉÏÍ¼¿ÉÖª±äÁ¿ÃûcheckCPUtypeÔÚÄÚºËµØÖ·c01000a5¡£
¡¡¡¡Linux ·ûºÅ±íÊ¹ÓÃµ½2¸öÎÄ¼þ:
¡¡¡¡/proc/ksyms
¡¡¡¡System.map
¡¡¡¡/proc/ksymsÊÇÒ»¸ö¡°proc file¡±£¬ÔÚÄÚºËÒýµ¼Ê±´´½¨¡£Êµ¼ÊÉÏ£¬Ëü²¢²»ÕæÕýµÄÊÇÒ»¸öÎÄ¼þ£¬ËüÖ»²»¹ýÊÇÄÚºËÊý¾ÝµÄ±íÊ¾£¬È´¸øÈËÃÇÊÇÒ»¸ö´ÅÅÌÎÄ¼þµÄ¼ÙÏó£¬Õâ´ÓËüµÄÎÄ¼þ´óÐ¡ÊÇ0¿ÉÒÔ¿´³öÀ´¡£È»¶ø£¬System.mapÊÇ´æÔÚÓÚÄãµÄÎÄ¼þÏµÍ³ÉÏµÄÊµ¼ÊÎÄ¼þ¡£
¡¡¡¡µ±Äã±àÒëÒ»¸öÐÂÄÚºËÊ±£¬¸÷¸ö·ûºÅÃûµÄµØÖ·Òª·¢Éú±ä»¯£¬ÄãµÄÀÏµÄSystem.map¾ßÓÐµÄÊÇ´íÎóµÄ·ûºÅÐÅÏ¢¡£Ã¿´ÎÄÚºË±àÒëÊ±²úÉúÒ»¸öÐÂµÄSystem.map£¬ÄãÓ¦µ±ÓÃÐÂµÄSystem.mapÀ´È¡´úÀÏµÄSystem.map¡£
¡¡¡¡ËäÈ»ÄÚºË±¾Éí²¢²»ÕæÕýÊ¹ÓÃSystem.map£¬µ«ÆäËü³ÌÐò±ÈÈçklogd£¬lsofºÍpsµÈÈí¼þÐèÒªÒ»¸öÕýÈ·µÄSystem.map¡£Èç¹ûÄãÊ¹ÓÃ´íÎóµÄ»òÃ»ÓÐSystem.map£¬klogdµÄÊä³ö½«ÊÇ²»¿É¿¿µÄ£¬Õâ¶ÔÓÚÅÅ³ý³ÌÐò¹ÊÕÏ»á´øÀ´À§ÄÑ¡£Ã»ÓÐSystem.map£¬Äã¿ÉÄÜ»áÃæÁÙÒ»Ð©ÁîÈË·³ÄÕµÄÌáÊ¾ÐÅÏ¢¡£
¡¡¡¡ÁíÍâÉÙÊýÇý¶¯ÐèÒªSystem.mapÀ´½âÎö·ûºÅ£¬Ã»ÓÐÎªÄãµ±Ç°ÔËÐÐµÄÌØ¶¨ÄÚºË´´½¨µÄSystem.mapËüÃÇ¾Í²»ÄÜÕý³£¹¤×÷¡£
¡¡¡¡LinuxµÄÄÚºËÈÕÖ¾ÊØ»¤½ø³ÌklogdÎªÁËÖ´ÐÐÃû³Æ-µØÖ·½âÎö£¬klogdÐèÒªÊ¹ÓÃSystem.map¡£System.mapÓ¦µ±·ÅÔÚÊ¹ÓÃËüµÄÈí¼þÄÜ¹»ÕÒµ½ËüµÄµØ·½¡£Ö´ÐÐ:man klogd¿ÉÖª£¬Èç¹ûÃ»ÓÐ½«System.map×÷ÎªÒ»¸ö±äÁ¿µÄÎ»ÖÃ¸øklogd£¬ÄÇÃ´Ëü½«°´ÕÕÏÂÃæµÄË³Ðò£¬ÔÚÈý¸öµØ·½²éÕÒSystem.map:
¡¡¡¡/boot/System.map
¡¡¡¡/System.map
¡¡¡¡/usr/src/linux/System.map
¡¡¡¡System.mapÒ²ÓÐ°æ±¾ÐÅÏ¢£¬klogdÄÜ¹»ÖÇÄÜµØ²éÕÒÕýÈ·µÄÓ³Ïó(map)ÎÄ¼þ¡£
]]></description>
		</item>
		<item>
			<title>×îÐÂLinuxÄÚºË£º¸üºÃµÄWi-FiºÍÎÄ¼þÏµÍ³</title>
			<link>http://www.kingmx.com/article.php?id=11923</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[Ííµ½Ò²±ÈÃ»ÓÐºÃ£¬ÐÂÒ»´úµÄLinuxÄÚºË£¬2.6.14°æ£¬ÉÏ¸öÖÜÄ©ÖÕÓÚ³öÂ¯ÁË¡£
¡¡¡¡ÕâÒ»×îÐÂ°æ±¾µÄÄÚºËÔ­¼Æ»®ÔÚ10ÔÂ7ÈÕ·¢²¼µÄ¡£¶ÔÓÚÕâ¡°³Ùµ½¡±£¬Linus Torvalds¸ø³öÁË½âÊÍ£¬ËûËµ£¬ÒòÎª×îºó½×¶Î³öÏÖµÄ¼¸¸öbug£¬·¢²¼ÍÆ³ÙÁË£¬²»¹ý£¬ÆäÖÐÓÐ¼¸¸öbug×îºó·¢ÏÖÊÇ´íÎóµÄ±¨¸æ(ºÙ£¬ÎÒÓ¦¸Ã¶Ô´Ë¸Ðµ½¸ßÐË£¬µ«ÔÚ×îºó½×¶ÎÓÐbug³öÏÖÈ·ÊµÓÐµã´ò»÷ÈË¡£)
¡¡¡¡ºÃ¶«Î÷»¹ÊÇÓÐµÄ£¬Ö»ÒªÄã¿ÏµÈ´ý¡£
¡¡¡¡ºÍ2.6.13°æÏà±È£¬2.6.14°æµÄÄÚºË°üº¬ÁË¸÷·½¸÷ÃæµÄ±ä»¯£¬TorvaldsËµ£¬¶Ô±ê×¼ÄÚºËµÄÒ»¸ö´óµÄ±ä»¯ÊÇ£¬ËüÏÖÔÚ°üº¬ÁËCentrino Wi-FiÖ§³Ö¡£
¡¡¡¡Ðí¶àLinux°æ±¾£¬±ÈÈçSUSE 10ºÍXandros 3£¬¶¼¿ÉÒÔÍ¨¹ýÊ¹ÓÃipw2xxxÇý¶¯ºÍLinuxµÄÈÈ²å°Î¹¦ÄÜÀ´Ö§³ÖCentrino¡£ÕâÑù£¬¾Í¿ÉÒÔÓÃÒ»¸öLinux¼æÈÝµÄ½çÃæÀ´×ª»»Centrino¿¨ºÍÎ¢ÐÍÊÊÅäÆ÷Ó²¼þ¡£
¡¡¡¡°ÑÕâÖÖÖ§³ÖÈÚÈëÄÚºË£¬¾ÍºÜÈÝÒ×Ê¹LinuxÖ§³Ö»ùÓÚCentrinoµÄWi-Fi¡£²»¹ý£¬ÓÉÓÚÓ¢ÌØ¶ûÔÚÐí¿É·½ÃæµÄÏÞÖÆ£¬³§ÉÌ»¹±ØÐë»ñµÃÄÚºËÖÐµÄÓ¢ÌØ¶ûÇý¶¯Ó²¼þ¡£
¡¡¡¡ÐÂ°æÄÚºË²»½öÔÚInfiniBand¡¢USBºÍSCSIµÄÖ§³Ö·½ÃæÓÐÐ¡µÄÌáÉý£¬»¹ÔÚ¶ÔÎÄ¼þÏµÍ³µÄÖ§³Ö·½ÃæÓÐÏÔÖøµÄ¸Ä½ø¡£
ÕâÐ©¸Ä½ø°üÀ¨¶ÔSilicon Graphics¹«Ë¾64Î»XFSºÍÎ¢ÈíµÄNTFS(New Technology File System)µÄÉý¼¶¡£ÕâÐ©¸Ä½øÊÇÕë¶ÔLinuxµÄVFS(Virtual File System)×ö³öµÄ¡£
¡¡¡¡ÓÐÁËÕâÒ»°æ±¾µÄÄÚºË£¬FUSE(File system in Userspace)Ò²ÈÚºÏµ½ÁËLinuxÖÐ¡£
¡¡¡¡FUSE£¬ºÍÒÑ¹ýÊ±µÄLUFSÒ»Ñù£¬Ìá¹©ÕâÑùÒ»¸ö³éÏóµÄ½Ó¿Ú£¬Ê¹Ô¶³ÌÎÄ¼þºÍÎÄ¼þÏµÍ³µÄÔË×÷ÏñÔÚ±¾µØÎÄ¼þÏµÍ³ÉÏÒ»Ñù¡£Òò´Ë£¬±ÈÈçËµ£¬¿ª·¢ÕßºÍ×¨¼ÒÓÃ»§¿ÉÒÔ°Ñ×Ô¼ºµÄÏµÍ³¹¹½¨³ÉÓÃ»§ÄÜ¹»Ïñ·ÃÎÊ±¾µØÎÄ¼þÏµÍ³Ò»ÑùÇá¶øÒ×¾ÙµØ·ÃÎÊftpºÍSMB(Simple Message Block)ÎÄ¼þÏµÍ³¡£
¡¡¡¡¸ü¸ß¼¶µÄÓÃ»§¿ÉÄÜ»á¶ÔÌ½Ë÷FUSE¸ü¸ß¼¶µÄ¹¦ÄÜ¸ÐÐËÈ¤¡£ÒòÎªÔÚLinuxÖÐ£¬¼¸ºõËùÓÐµÄ¶«Î÷¶¼¿ÉÒÔµ±×÷ÎÄ¼þ¶Ô´ý£¬ËùÒÔÄãÒ²¿ÉÒÔ°ÑGoogleµÄGMailºÍBit TorrentÁ÷µ±×÷ÎÄ¼þÓÃFUSE·ÃÎÊ¡£
¡¡¡¡ÓÐµÄÈËÏ£ÍûÄÜ°ÑReiser4¸ßÐÔÄÜÎÄ¼þÏµÍ³ÈÚÈëµ½¸ÃÄÚºËÖÐ£¬µ«¿¼ÂÇµ½ËüºÍVFS¼°LinuxÆäËü²¿·ÖµÄÒ»ÖÂÐÔÎÊÌâ£¬¾Í·ÅÆúÁË¡£ÕâÐ©ÎÊÌâ¶¼ÔÚ¿¼ÂÇ·¶Î§ÄÚ£¬ÔÚ²»¾ÃµÄ½«À´£¬Reiser4Ó¦¸Ã»áÕýÊ½³ÉÎªLinuxµÄÒ»²¿·Ö¡£
¡¡¡¡Í¬Ê±£¬ÔÚ¶¨ÏÂÏÂÒ»·¢ÐÐ°æ±¾2.6.15µÄÌØÐÔÖ®Ç°£¬Torvalds´òËã½ö½ö½ÓÊÜ2.6.14°æ±¾·¢²¼ºóµÄÁ½ÖÜÖ®ÄÚµÄ´úÂëÈÚºÏ¡£ÕâÌõÐÂÕþ²ßµÄ³öÌ¨£¬¿ÉÒÔ±£³ÖÀ´×Ô¿ñÈÈµÄÄÚºËºËÐÄ¿ª·¢ÕßµÄ³ÖÐøµÄÐÔÄÜÌáÉý¡£
]]></description>
		</item>
		<item>
			<title>Ïê½âLinux 2.6ÄÚºËÐÂÎÄ¼þÏµÍ³±ä»¯»úÖÆ</title>
			<link>http://www.kingmx.com/article.php?id=11924</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[±¾ÎÄÏêÏ¸µØ½éÉÜÁËÔÚ Linux 2.6.13 ÄÚºËÖÐÐÂÒýÈëµÄÎÄ¼þÏµÍ³±ä»¯Í¨Öª»úÖÆ inotify£¬²¢¾ÙÀýËµÃ÷ÁËËüµÄÊ¹ÓÃÓëµäÐÍÓ¦ÓÃ°¸Àý¡£ 
¡¡¡¡Ò»¡¢ÒýÑÔ
¡¡¡¡ÖÚËùÖÜÖª£¬Linux ×ÀÃæÏµÍ³Óë MAC »ò Windows Ïà±ÈÓÐÐí¶à²»ÈçÈËÒâµÄµØ·½£¬ÎªÁË¸ÄÉÆÕâÖÖ×´¿ö£¬¿ªÔ´ÉçÇøÌá³öÓÃ»§Ì¬ÐèÒªÄÚºËÌá¹©Ò»Ð©»úÖÆ£¬ÒÔ±ãÓÃ»§Ì¬ÄÜ¹»¼°Ê±µØµÃÖªÄÚºË»òµ×²ãÓ²¼þÉè±¸·¢ÉúÁËÊ²Ã´£¬´Ó¶øÄÜ¹»¸üºÃµØ¹ÜÀíÉè±¸£¬¸øÓÃ»§Ìá¹©¸üºÃµÄ·þÎñ£¬Èç hotplug¡¢udev ºÍ inotify ¾ÍÊÇÕâÖÖÐèÇó´ßÉúµÄ¡£Hotplug ÊÇÒ»ÖÖÄÚºËÏòÓÃ»§Ì¬Ó¦ÓÃÍ¨±¨¹ØÓÚÈÈ²å°ÎÉè±¸Ò»Ð©ÊÂ¼þ·¢ÉúµÄ»úÖÆ£¬×ÀÃæÏµÍ³ÄÜ¹»ÀûÓÃËü¶ÔÉè±¸½øÐÐÓÐÐ§µÄ¹ÜÀí£¬udev ¶¯Ì¬µØÎ¬»¤ /dev ÏÂµÄÉè±¸ÎÄ¼þ£¬inotify ÊÇÒ»ÖÖÎÄ¼þÏµÍ³µÄ±ä»¯Í¨Öª»úÖÆ£¬ÈçÎÄ¼þÔö¼Ó¡¢É¾³ýµÈÊÂ¼þ¿ÉÒÔÁ¢¿ÌÈÃÓÃ»§Ì¬µÃÖª£¬¸Ã»úÖÆÊÇÖøÃûµÄ×ÀÃæËÑË÷ÒýÇæÏîÄ¿ beagle ÒýÈëµÄ£¬²¢ÔÚ Gamin µÈÏîÄ¿ÖÐ±»Ó¦ÓÃ¡£
¡¡¡¡ÊÂÊµÉÏ£¬ÔÚ inotify Ö®Ç°ÒÑ¾­´æÔÚÒ»ÖÖÀàËÆµÄ»úÖÆ½Ð dnotify£¬µ«ÊÇËü´æÔÚÐí¶àÈ±ÏÝ£º
1£®¶ÔÓÚÏë¼àÊÓµÄÃ¿Ò»¸öÄ¿Â¼£¬ÓÃ»§¶¼ÐèÒª´ò¿ªÒ»¸öÎÄ¼þÃèÊö·û£¬Òò´ËÈç¹ûÐèÒª¼àÊÓµÄÄ¿Â¼½Ï¶à£¬½«µ¼ÖÂ´ò¿ªÐí¶àÎÄ¼þÃèÊö·û£¬ÌØ±ðÊÇ£¬Èç¹û±»¼àÊÓÄ¿Â¼ÔÚÒÆ¶¯½éÖÊÉÏ£¨Èç¹âÅÌºÍ USB ÅÌ£©£¬½«µ¼ÖÂÎÞ·¨ umount ÕâÐ©ÎÄ¼þÏµÍ³£¬ÒòÎªÊ¹ÓÃ dnotify µÄÓ¦ÓÃ´ò¿ªµÄÎÄ¼þÃèÊö·ûÔÚÊ¹ÓÃ¸ÃÎÄ¼þÏµÍ³¡£
¡¡¡¡2£®dnotify ÊÇ»ùÓÚÄ¿Â¼µÄ£¬ËüÖ»ÄÜµÃµ½Ä¿Â¼±ä»¯ÊÂ¼þ£¬µ±È»ÔÚÄ¿Â¼ÄÚµÄÎÄ¼þµÄ±ä»¯»áÓ°Ïìµ½ÆäËùÔÚÄ¿Â¼´Ó¶øÒý·¢Ä¿Â¼±ä»¯ÊÂ¼þ£¬µ«ÊÇÒªÏëÍ¨¹ýÄ¿Â¼ÊÂ¼þÀ´µÃÖªÄÄ¸öÎÄ¼þ±ä»¯£¬ÐèÒª»º´æÐí¶à stat ½á¹¹µÄÊý¾Ý¡£
¡¡¡¡3£®Dnotify µÄ½Ó¿Ú·Ç³£²»ÓÑºÃ£¬ËüÊ¹ÓÃ signal¡£
¡¡¡¡Inotify ÊÇÎªÌæ´ú dnotify ¶øÉè¼ÆµÄ£¬Ëü¿Ë·þÁË dnotify µÄÈ±ÏÝ£¬Ìá¹©ÁË¸üºÃÓÃµÄ£¬¼ò½à¶øÇ¿´óµÄÎÄ¼þ±ä»¯Í¨Öª»úÖÆ£º
¡¡¡¡1£®Inotify ²»ÐèÒª¶Ô±»¼àÊÓµÄÄ¿±ê´ò¿ªÎÄ¼þÃèÊö·û£¬¶øÇÒÈç¹û±»¼àÊÓÄ¿±êÔÚ¿ÉÒÆ¶¯½éÖÊÉÏ£¬ÄÇÃ´ÔÚ umount ¸Ã½éÖÊÉÏµÄÎÄ¼þÏµÍ³ºó£¬±»¼àÊÓÄ¿±ê¶ÔÓ¦µÄ watch ½«±»×Ô¶¯É¾³ý£¬²¢ÇÒ»á²úÉúÒ»¸ö umount ÊÂ¼þ¡£
¡¡¡¡2£®Inotify ¼È¿ÉÒÔ¼àÊÓÎÄ¼þ£¬Ò²¿ÉÒÔ¼àÊÓÄ¿Â¼¡£
¡¡¡¡3£®Inotify Ê¹ÓÃÏµÍ³µ÷ÓÃ¶ø·Ç SIGIO À´Í¨ÖªÎÄ¼þÏµÍ³ÊÂ¼þ¡£
¡¡¡¡4£®Inotify Ê¹ÓÃÎÄ¼þÃèÊö·û×÷Îª½Ó¿Ú£¬Òò¶ø¿ÉÒÔÊ¹ÓÃÍ¨³£µÄÎÄ¼þ I/O ²Ù×÷select ºÍ poll À´¼àÊÓÎÄ¼þÏµÍ³µÄ±ä»¯¡£
¡¡¡¡Inotify ¿ÉÒÔ¼àÊÓµÄÎÄ¼þÏµÍ³ÊÂ¼þ°üÀ¨£º

IN_ACCESS£¬¼´ÎÄ¼þ±»·ÃÎÊ 
IN_MODIFY£¬ÎÄ¼þ±» write 
IN_ATTRIB£¬ÎÄ¼þÊôÐÔ±»ÐÞ¸Ä£¬Èç chmod¡¢chown¡¢touch µÈ 
IN_CLOSE_WRITE£¬¿ÉÐ´ÎÄ¼þ±» close 
IN_CLOSE_NOWRITE£¬²»¿ÉÐ´ÎÄ¼þ±» close 
IN_OPEN£¬ÎÄ¼þ±» open 
IN_MOVED_FROM£¬ÎÄ¼þ±»ÒÆ×ß,Èç mv 
IN_MOVED_TO£¬ÎÄ¼þ±»ÒÆÀ´£¬Èç mv¡¢cp 
IN_CREATE£¬´´½¨ÐÂÎÄ¼þ 
IN_DELETE£¬ÎÄ¼þ±»É¾³ý£¬Èç rm 
IN_DELETE_SELF£¬×ÔÉ¾³ý£¬¼´Ò»¸ö¿ÉÖ´ÐÐÎÄ¼þÔÚÖ´ÐÐÊ±É¾³ý×Ô¼º 
IN_MOVE_SELF£¬×ÔÒÆ¶¯£¬¼´Ò»¸ö¿ÉÖ´ÐÐÎÄ¼þÔÚÖ´ÐÐÊ±ÒÆ¶¯×Ô¼º 
IN_UNMOUNT£¬ËÞÖ÷ÎÄ¼þÏµÍ³±» umount 
IN_CLOSE£¬ÎÄ¼þ±»¹Ø±Õ£¬µÈÍ¬ÓÚ(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) 
IN_MOVE£¬ÎÄ¼þ±»ÒÆ¶¯£¬µÈÍ¬ÓÚ(IN_MOVED_FROM | IN_MOVED_TO) 

×¢£ºÉÏÃæËùËµµÄÎÄ¼þÒ²°üÀ¨Ä¿Â¼¡£
¡¡¡¡¶þ¡¢ÓÃ»§½Ó¿Ú
¡¡¡¡ÔÚÓÃ»§Ì¬£¬inotify Í¨¹ýÈý¸öÏµÍ³µ÷ÓÃºÍÔÚ·µ»ØµÄÎÄ¼þÃèÊö·ûÉÏµÄÎÄ¼þ I/ ²Ù×÷À´Ê¹ÓÃ£¬Ê¹ÓÃ inotify µÄµÚÒ»²½ÊÇ´´½¨ inotify ÊµÀý£º

 
                int fd = inotify_init (); 
        

¡¡¡¡Ã¿Ò»¸ö inotify ÊµÀý¶ÔÓ¦Ò»¸ö¶ÀÁ¢µÄÅÅÐòµÄ¶ÓÁÐ¡£
¡¡¡¡ÎÄ¼þÏµÍ³µÄ±ä»¯ÊÂ¼þ±»³Æ×ö watches µÄÒ»¸ö¶ÔÏó¹ÜÀí£¬Ã¿Ò»¸ö watch ÊÇÒ»¸ö¶þÔª×é£¨Ä¿±ê£¬ÊÂ¼þÑÚÂë£©£¬Ä¿±ê¿ÉÒÔÊÇÎÄ¼þ»òÄ¿Â¼£¬ÊÂ¼þÑÚÂë±íÊ¾Ó¦ÓÃÏ£Íû¹Ø×¢µÄ inotify ÊÂ¼þ£¬Ã¿Ò»¸öÎ»¶ÔÓ¦Ò»¸ö inotify ÊÂ¼þ¡£Watch ¶ÔÏóÍ¨¹ý watchÃèÊö·ûÒýÓÃ£¬watches Í¨¹ýÎÄ¼þ»òÄ¿Â¼µÄÂ·¾¶ÃûÀ´Ìí¼Ó¡£Ä¿Â¼ watches ½«·µ»ØÔÚ¸ÃÄ¿Â¼ÏÂµÄËùÓÐÎÄ¼þÉÏÃæ·¢ÉúµÄÊÂ¼þ¡£
¡¡¡¡ÏÂÃæº¯ÊýÓÃÓÚÌí¼ÓÒ»¸ö watch£º

 
                int wd = inotify_add_watch (fd, path, mask); 
        

¡¡¡¡fd ÊÇ inotify_init() ·µ»ØµÄÎÄ¼þÃèÊö·û£¬path ÊÇ±»¼àÊÓµÄÄ¿±êµÄÂ·¾¶Ãû£¨¼´ÎÄ¼þÃû»òÄ¿Â¼Ãû£©£¬mask ÊÇÊÂ¼þÑÚÂë, ÔÚÍ·ÎÄ¼þ linux/inotify.h ÖÐ¶¨ÒåÁËÃ¿Ò»Î»´ú±íµÄÊÂ¼þ¡£¿ÉÒÔÊ¹ÓÃÍ¬ÑùµÄ·½Ê½À´ÐÞ¸ÄÊÂ¼þÑÚÂë£¬¼´¸Ä±äÏ£Íû±»Í¨ÖªµÄinotify ÊÂ¼þ¡£Wd ÊÇ watch ÃèÊö·û¡£
¡¡¡¡ÏÂÃæµÄº¯ÊýÓÃÓÚÉ¾³ýÒ»¸ö watch£º

 
        int ret = inotify_rm_watch (fd, wd); 
        

¡¡¡¡fd ÊÇ inotify_init() ·µ»ØµÄÎÄ¼þÃèÊö·û£¬wd ÊÇ inotify_add_watch() ·µ»ØµÄ watch ÃèÊö·û¡£Ret ÊÇº¯ÊýµÄ·µ»ØÖµ¡£
¡¡¡¡ÎÄ¼þÊÂ¼þÓÃÒ»¸ö inotify_event ½á¹¹±íÊ¾£¬ËüÍ¨¹ýÓÉ inotify_init() ·µ»ØµÄÎÄ¼þÃèÊö·ûÊ¹ÓÃÍ¨³£ÎÄ¼þ¶ÁÈ¡º¯Êý read À´»ñµÃ£º 

 
struct inotify_event { 
        __s32           wd;             /* watch descriptor */ 
        __u32           mask;           /* watch mask */ 
        __u32           cookie;         /* cookie to synchronize two events */ 
        __u32           len;            /* length (including nulls) of name */ 
        char            name[0];        /* stub for possible name */ 
}; 


¡¡¡¡½á¹¹ÖÐµÄ wd Îª±»¼àÊÓÄ¿±êµÄ watch ÃèÊö·û£¬mask ÎªÊÂ¼þÑÚÂë£¬len Îª name×Ö·û´®µÄ³¤¶È£¬name Îª±»¼àÊÓÄ¿±êµÄÂ·¾¶Ãû£¬¸Ã½á¹¹µÄ name ×Ö¶ÎÎªÒ»¸ö×®£¬ËüÖ»ÊÇÎªÁËÓÃ»§·½ÃæÒýÓÃÎÄ¼þÃû£¬ÎÄ¼þÃûÊÇ±ä³¤µÄ£¬ËüÊµ¼Ê½ô¸úÔÚ¸Ã½á¹¹µÄºóÃæ£¬ÎÄ¼þÃû½«±» 0 Ìî³äÒÔÊ¹ÏÂÒ»¸öÊÂ¼þ½á¹¹ÄÜ¹» 4 ×Ö½Ú¶ÔÆë¡£×¢Òâ£¬len Ò²°ÑÌî³ä×Ö½ÚÊýÍ³¼ÆÔÚÄÚ¡£
¡¡¡¡Í¨¹ý read µ÷ÓÃ¿ÉÒÔÒ»´Î»ñµÃ¶à¸öÊÂ¼þ£¬Ö»ÒªÌá¹©µÄ buf ×ã¹»´ó¡£

 
                size_t len = read (fd, buf, BUF_LEN); 
        

¡¡¡¡buf ÊÇÒ»¸ö inotify_event ½á¹¹µÄÊý×éÖ¸Õë£¬BUF_LEN Ö¸¶¨Òª¶ÁÈ¡µÄ×Ü³¤¶È£¬buf ´óÐ¡ÖÁÉÙÒª²»Ð¡ÓÚ BUF_LEN£¬¸Ãµ÷ÓÃ·µ»ØµÄÊÂ¼þÊýÈ¡¾öÓÚ BUF_LEN ÒÔ¼°ÊÂ¼þÖÐÎÄ¼þÃûµÄ³¤¶È¡£Len ÎªÊµ¼Ê¶ÁÈ¥µÄ×Ö½ÚÊý£¬¼´»ñµÃµÄÊÂ¼þµÄ×Ü³¤¶È¡£
¡¡¡¡¿ÉÒÔÔÚº¯Êý inotify_init() ·µ»ØµÄÎÄ¼þÃèÊö·û fd ÉÏÊ¹ÓÃ select() »òpoll(), Ò²¿ÉÒÔÔÚ fd ÉÏÊ¹ÓÃ ioctl ÃüÁî FIONREAD À´µÃµ½µ±Ç°¶ÓÁÐµÄ³¤¶È¡£close(fd)½«É¾³ýËùÓÐÌí¼Óµ½ fd ÖÐµÄ watch ²¢×ö±ØÒªµÄÇåÀí¡£

 
                int inotify_init (void); 
        int inotify_add_watch (int fd, const char *path, __u32 mask); 
        int inotify_rm_watch (int fd, __u32 mask); 
        

]]></description>
		</item>
		<item>
			<title>¸ßÊÖ½ø½×±Ø¶Á£ºLinuxÄÚºËµÄÍ¬²½»úÖÆ</title>
			<link>http://www.kingmx.com/article.php?id=11925</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[±¾ÎÄÏêÏ¸µÄ½éÉÜÁËLinuxÄÚºËÖÐµÄÍ¬²½»úÖÆ£ºÔ­×Ó²Ù×÷¡¢ÐÅºÅÁ¿¡¢¶ÁÐ´ÐÅºÅÁ¿ºÍ×ÔÐýËøµÄAPI£¬Ê¹ÓÃÒªÇóÒÔ¼°Ò»Ð©µäÐÍÊ¾Àý
¡¡¡¡Ò»¡¢ÒýÑÔ
¡¡¡¡ÔÚÏÖ´ú²Ù×÷ÏµÍ³Àï£¬Í¬Ò»Ê±¼ä¿ÉÄÜÓÐ¶à¸öÄÚºËÖ´ÐÐÁ÷ÔÚÖ´ÐÐ£¬Òò´ËÄÚºËÆäÊµÏó¶à½ø³Ì¶àÏß³Ì±à³ÌÒ»ÑùÒ²ÐèÒªÒ»Ð©Í¬²½»úÖÆÀ´Í¬²½¸÷Ö´ÐÐµ¥Ôª¶Ô¹²ÏíÊý¾ÝµÄ·ÃÎÊ¡£ÓÈÆäÊÇÔÚ¶à´¦ÀíÆ÷ÏµÍ³ÉÏ£¬¸üÐèÒªÒ»Ð©Í¬²½»úÖÆÀ´Í¬²½²»Í¬´¦ÀíÆ÷ÉÏµÄÖ´ÐÐµ¥Ôª¶Ô¹²ÏíµÄÊý¾ÝµÄ·ÃÎÊ¡£
¡¡¡¡ÔÚÖ÷Á÷µÄLinuxÄÚºËÖÐ°üº¬ÁË¼¸ºõËùÓÐÏÖ´úµÄ²Ù×÷ÏµÍ³¾ßÓÐµÄÍ¬²½»úÖÆ£¬ÕâÐ©Í¬²½»úÖÆ°üÀ¨£ºÔ­×Ó²Ù×÷¡¢ÐÅºÅÁ¿£¨semaphore£©¡¢¶ÁÐ´ÐÅºÅÁ¿£¨rw_semaphore£©¡¢spinlock¡¢BKL(Big Kernel Lock)¡¢rwlock¡¢brlock£¨Ö»°üº¬ÔÚ2.4ÄÚºËÖÐ£©¡¢RCU£¨Ö»°üº¬ÔÚ2.6ÄÚºËÖÐ£©ºÍseqlock£¨Ö»°üº¬ÔÚ2.6ÄÚºËÖÐ£©¡£
¶þ¡¢Ô­×Ó²Ù×÷
¡¡¡¡ËùÎ½Ô­×Ó²Ù×÷£¬¾ÍÊÇ¸Ã²Ù×÷¾ø²»»áÔÚÖ´ÐÐÍê±ÏÇ°±»ÈÎºÎÆäËûÈÎÎñ»òÊÂ¼þ´ò¶Ï£¬Ò²¾ÍËµ£¬ËüµÄ×îÐ¡µÄÖ´ÐÐµ¥Î»£¬²»¿ÉÄÜÓÐ±ÈËü¸üÐ¡µÄÖ´ÐÐµ¥Î»£¬Òò´ËÕâÀïµÄÔ­×ÓÊµ¼ÊÊÇÊ¹ÓÃÁËÎïÀíÑ§ÀïµÄÎïÖÊÎ¢Á£µÄ¸ÅÄî¡£
¡¡¡¡Ô­×Ó²Ù×÷ÐèÒªÓ²¼þµÄÖ§³Ö£¬Òò´ËÊÇ¼Ü¹¹Ïà¹ØµÄ£¬ÆäAPIºÍÔ­×ÓÀàÐÍµÄ¶¨Òå¶¼¶¨ÒåÔÚÄÚºËÔ´ÂëÊ÷µÄinclude/asm/atomic.hÎÄ¼þÖÐ£¬ËüÃÇ¶¼Ê¹ÓÃ»ã±àÓïÑÔÊµÏÖ£¬ÒòÎªCÓïÑÔ²¢²»ÄÜÊµÏÖÕâÑùµÄ²Ù×÷¡£
¡¡¡¡Ô­×Ó²Ù×÷Ö÷ÒªÓÃÓÚÊµÏÖ×ÊÔ´¼ÆÊý£¬ºÜ¶àÒýÓÃ¼ÆÊý(refcnt)¾ÍÊÇÍ¨¹ýÔ­×Ó²Ù×÷ÊµÏÖµÄ¡£Ô­×ÓÀàÐÍ¶¨ÒåÈçÏÂ£º

typedef struct 
 { 
 volatile int counter; 
 } 
 atomic_t;

¡¡¡¡volatileÐÞÊÎ×Ö¶Î¸æËßgcc²»Òª¶Ô¸ÃÀàÐÍµÄÊý¾Ý×öÓÅ»¯´¦Àí£¬¶ÔËüµÄ·ÃÎÊ¶¼ÊÇ¶ÔÄÚ´æµÄ·ÃÎÊ£¬¶ø²»ÊÇ¶Ô¼Ä´æÆ÷µÄ·ÃÎÊ¡£ 
¡¡¡¡Ô­×Ó²Ù×÷API°üÀ¨£º 

atomic_read(atomic_t * v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿½øÐÐÔ­×Ó¶Á²Ù×÷£¬Ëü·µ»ØÔ­×ÓÀàÐÍµÄ±äÁ¿vµÄÖµ¡£ 

atomic_set(atomic_t * v, int i);

¡¡¡¡¸Ãº¯ÊýÉèÖÃÔ­×ÓÀàÐÍµÄ±äÁ¿vµÄÖµÎªi¡£ 

void atomic_add(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý¸øÔ­×ÓÀàÐÍµÄ±äÁ¿vÔö¼ÓÖµi¡£ 

atomic_sub(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý´ÓÔ­×ÓÀàÐÍµÄ±äÁ¿vÖÐ¼õÈ¥i¡£ 

int atomic_sub_and_test(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý´ÓÔ­×ÓÀàÐÍµÄ±äÁ¿vÖÐ¼õÈ¥i£¬²¢ÅÐ¶Ï½á¹ûÊÇ·ñÎª0£¬Èç¹ûÎª0£¬·µ»ØÕæ£¬·ñÔò·µ»Ø¼Ù¡£ 

void atomic_inc(atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍ±äÁ¿vÔ­×ÓµØÔö¼Ó1¡£ 

void atomic_dec(atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØ¼õ1¡£ 

int atomic_dec_and_test(atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØ¼õ1£¬²¢ÅÐ¶Ï½á¹ûÊÇ·ñÎª0£¬Èç¹ûÎª0£¬·µ»ØÕæ£¬·ñÔò·µ»Ø¼Ù¡£ 

int atomic_inc_and_test(atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØÔö¼Ó1£¬²¢ÅÐ¶Ï½á¹ûÊÇ·ñÎª0£¬Èç¹ûÎª0£¬·µ»ØÕæ£¬·ñÔò·µ»Ø¼Ù¡£ 

int atomic_add_negative(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØÔö¼ÓI£¬²¢ÅÐ¶Ï½á¹ûÊÇ·ñÎª¸ºÊý£¬Èç¹ûÊÇ£¬·µ»ØÕæ£¬·ñÔò·µ»Ø¼Ù¡£ 

int atomic_add_return(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØÔö¼Ói£¬²¢ÇÒ·µ»ØÖ¸ÏòvµÄÖ¸Õë¡£ 

int atomic_sub_return(int i, atomic_t *v);

¡¡¡¡¸Ãº¯Êý´ÓÔ­×ÓÀàÐÍµÄ±äÁ¿vÖÐ¼õÈ¥i£¬²¢ÇÒ·µ»ØÖ¸ÏòvµÄÖ¸Õë¡£ 

int atomic_inc_return(atomic_t * v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØÔö¼Ó1²¢ÇÒ·µ»ØÖ¸ÏòvµÄÖ¸Õë¡£ 

int atomic_dec_return(atomic_t * v);

¡¡¡¡¸Ãº¯Êý¶ÔÔ­×ÓÀàÐÍµÄ±äÁ¿vÔ­×ÓµØ¼õ1²¢ÇÒ·µ»ØÖ¸ÏòvµÄÖ¸Õë¡£ 
¡¡¡¡Ô­×Ó²Ù×÷Í¨³£ÓÃÓÚÊµÏÖ×ÊÔ´µÄÒýÓÃ¼ÆÊý£¬ÔÚTCP/IPÐ­ÒéÕ»µÄIPËéÆ¬´¦ÀíÖÐ£¬¾ÍÊ¹ÓÃÁËÒýÓÃ¼ÆÊý£¬ËéÆ¬¶ÓÁÐ½á¹¹struct ipqÃèÊöÁËÒ»¸öIPËéÆ¬£¬×Ö¶Îrefcnt¾ÍÊÇÒýÓÃ¼ÆÊýÆ÷£¬ËüµÄÀàÐÍÎªatomic_t£¬µ±´´½¨IPËéÆ¬Ê±£¨ÔÚº¯Êýip_frag_createÖÐ£©£¬Ê¹ÓÃatomic_setº¯Êý°ÑËüÉèÖÃÎª1£¬µ±ÒýÓÃ¸ÃIPËéÆ¬Ê±£¬¾ÍÊ¹ÓÃº¯Êýatomic_inc°ÑÒýÓÃ¼ÆÊý¼Ó1¡£ 
¡¡¡¡µ±²»ÐèÒªÒýÓÃ¸ÃIPËéÆ¬Ê±£¬¾ÍÊ¹ÓÃº¯Êýipq_putÀ´ÊÍ·Å¸ÃIPËéÆ¬£¬ipq_putÊ¹ÓÃº¯Êýatomic_dec_and_test°ÑÒýÓÃ¼ÆÊý¼õ1²¢ÅÐ¶ÏÒýÓÃ¼ÆÊýÊÇ·ñÎª0£¬Èç¹ûÊÇ¾ÍÊÍ·ÅIPËéÆ¬¡£º¯Êýipq_kill°ÑIPËéÆ¬´Óipq¶ÓÁÐÖÐÉ¾³ý£¬²¢°Ñ¸ÃÉ¾³ýµÄIPËéÆ¬µÄÒýÓÃ¼ÆÊý¼õ1£¨Í¨¹ýÊ¹ÓÃº¯Êýatomic_decÊµÏÖ£©¡£
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºË±à³Ì-GNUÍ¨ÓÃ¹«¹²Ðí¿ÉÐ­Òé</title>
			<link>http://www.kingmx.com/article.php?id=11926</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[¡¡¡¡ÏÂÃæ¾ÍÊÇ GNU Í¨ÓÃ¹«¹²Ðí¿ÉÐ­Òé ( GPL »ò ¸±±¾), ±¾Êé¼´ÔÚ´ËÐ­ÒéÏÂÐí¿ÉÊ¹ÓÃ¡£ 
GNU Í¨ÓÃ¹«¹²Ðí¿ÉÐ­Òé
Version 2, June 1991
¡¡¡¡Copyright &copy;1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA ÔÊÐíÃ¿¸öÈË¸´ÖÆºÍ·¢²¼ÕâÒ»Ðí¿ÉÖ¤Ô­Ê¼ÎÄµµµÄ¸±±¾£¬µ«¾ø¶Ô²»ÔÊÐí¶ÔËü½øÐÐÈÎºÎÐÞ¸Ä¡£ 
ÐòÑÔ
¡¡¡¡´ó¶àÊýÈí¼þÐí¿ÉÖ¤¾öÒâ°þ¶áÄãµÄ¹²ÏíºÍÐÞ¸ÄÈí¼þµÄ×ÔÓÉ¡£¶Ô±ÈÖ®ÏÂ£¬GNUÍ¨ÓÃ¹«¹²Ðí¿ÉÖ¤Á¦Í¼±£Ö¤ÄãµÄ¹²ÏíºÍÐÞ¸Ä×ÔÓÉÈí¼þµÄ×ÔÓÉ€€€€±£Ö¤×ÔÓÉÈí¼þ¶ÔËùÓÐÓÃ»§ÊÇ×ÔÓÉµÄ¡£GPLÊÊÓÃÓÚ´ó¶àÊý×ÔÓÉÈí¼þ»ù½ð»áµÄÈí¼þ£¬ÒÔ¼°ÓÉÊ¹ÓÃÕâÐ©Èí¼þ¶ø³Ðµ£ÒåÎñµÄ×÷ÕßËù¿ª·¢µÄÈí¼þ¡£(×ÔÓÉÈí¼þ»ù½ð»áµÄÆäËûÒ»Ð©Èí¼þÊÜ GNU¿âÍ¨ÓÃÐí¿ÉÖ¤µÄ±£»¤)¡£ÄãÒ²¿ÉÒÔ½«ËüÓÃµ½ÄãµÄ³ÌÐòÖÐ¡£ 
¡¡¡¡µ±ÎÒÃÇÌ¸µ½×ÔÓÉÈí¼þ(free software)Ê±£¬ÎÒÃÇÖ¸µÄÊÇ×ÔÓÉ¶ø²»ÊÇ¼Û¸ñ¡£ÎÒÃÇµÄ GNUÍ¨ÓÃ¹«¹²Ðí¿ÉÖ¤¾öÒâ±£Ö¤ÄãÓÐ·¢²¼×ÔÓÉÈí¼þµÄ×ÔÓÉ(Èç¹ûÄãÔ¸Òâ£¬Äã¿ÉÒÔ¶Ô´ËÏî·þÎñÊÕÈ¡Ò»¶¨µÄ·ÑÓÃ)£»±£Ö¤ÄãÄÜÊÕµ½Ô´³ÌÐò»òÕßÔÚÄãÐèÒªÊ±ÄÜµÃµ½Ëü£»±£Ö¤ÄãÄÜÐÞ¸ÄÈí¼þ»ò½«ËüµÄÒ»²¿·ÖÓÃÓÚÐÂµÄ×ÔÓÉÈí¼þ£»¶øÇÒ»¹±£Ö¤ÄãÖªµÀÄãÄÜ×öÕâÐ©ÊÂÇé¡£ 
¡¡¡¡ÎªÁË±£»¤ÄãµÄÈ¨Àû£¬ÎÒÃÇÐèÒª×÷³ö¹æ¶¨£º½ûÖ¹ÈÎºÎÈË²»³ÐÈÏÄãµÄÈ¨Àû£¬»òÕßÒªÇóÄã·ÅÆúÕâÐ©È¨Àû¡£Èç¹ûÄãÐÞ¸ÄÁË×ÔÓÉÈí¼þ»òÕß·¢²¼ÁËÈí¼þµÄ¸±±¾£¬ÕâÐ©¹æ¶¨¾Í×ª»¯ÎªÄãµÄÔðÈÎ¡£ÀýÈç£¬Èç¹ûÄã·¢²¼ÕâÑùÒ»¸ö³ÌÐòµÄ¸±±¾£¬²»¹ÜÊÇÊÕ·ÑµÄ»¹ÊÇÃâ·ÑµÄ£¬Äã±ØÐë½«Äã¾ßÓÐµÄÒ»ÇÐÈ¨Àû¸øÓèÄãµÄ½ÓÊÜÕß£»Äã±ØÐë±£Ö¤ËûÃÇÄÜÊÕµ½»òµÃµ½Ô´³ÌÐò£»²¢ÇÒ½«ÕâÐ©Ìõ¿î¸øËûÃÇ¿´£¬Ê¹ËûÃÇÖªµÀËûÃÇÓÐÕâÑùµÄÈ¨Àû¡£ 
¡¡¡¡ÎÒÃÇ²ÉÈ¡Á½Ïî´ëÊ©À´±£»¤ÄãµÄÈ¨Àû¡£ (l)¸øÈí¼þÒÔ°æÈ¨±£»¤¡£ (2)¸øÄãÌá¹©Ðí¿ÉÖ¤¡£Ëü¸øÄã¸´ÖÆ£¬·¢²¼ºÍÐÞ¸ÄÕâÐ©Èí¼þµÄ·¨ÂÉÐí¿É¡£Í¬Ñù£¬ÎªÁË±£»¤Ã¿¸ö×÷ÕßºÍÎÒÃÇ×Ô¼º£¬ÎÒÃÇÐèÒªÇå³þµØÈÃÃ¿¸öÈËÃ÷°×£¬×ÔÓÉÈí¼þÃ»ÓÐµ£±£(no warranty)¡£Èç¹ûÓÉÓÚÆäËûÄ³¸öÈËÐÞ¸ÄÁËÈí¼þ£¬²¢¼ÌÐø¼ÓÒÔ´«²¥¡£ÎÒÃÇÐèÒªËüµÄ½ÓÊÜÕßÃ÷°×£ºËûÃÇËùµÃµ½µÄ²¢²»ÊÇÔ­À´µÄ×ÔÓÉÈí¼þ¡£ÓÉÆäËûÈËÒýÈËµÄÈÎºÎÎÊÌâ£¬²»Ó¦Ëðº¦Ô­×÷ÕßµÄÉùÓþ¡£×îºó£¬ÈÎºÎ×ÔÓÉÈí¼þ²»¶ÏÊÜµ½Èí¼þ×¨ÀûµÄÍþÐ²¡£ÎÒÃÇÏ£Íû±ÜÃâÕâÑùµÄ·çÏÕ£¬×ÔÓÉÈí¼þµÄÔÙ·¢²¼ÕßÒÔ¸öÈËÃûÒå»ñµÃ×¨ÀûÐí¿ÉÖ¤¡£ÊÂÊµÉÏ£¬½«Èí¼þ±äÎªË½ÓÐ¡£Îª·ÀÖ¹ÕâÒ»µã£¬ÎÒÃÇ±ØÐëÃ÷È·£ºÈÎºÎ×¨Àû±ØÐëÒÔÔÊÐíÃ¿¸öÈË×ÔÓÉÊ¹ÓÃÎªÇ°Ìá£¬·ñÔò¾Í²»×¼ÐíÓÐ×¨Àû¡£ 

¹²4Ò³¡£ 1 2 3 4 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³ÌÖ¸ÄÏ(Ò»)</title>
			<link>http://www.kingmx.com/article.php?id=11927</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[¡¡¡¡µ±µÚÒ»¸öÔ­Ê¼µÄ³ÌÐòÔ±ÔÚ×î¿ªÊ¼µÄÒ¤¶´¼ÆËã»úÖ®Ç½ÉÏÔä¹ýµÚÒ»¸ö³ÌÐòÊ±£¬ÄÇÊÇÒ»¸öÔÚÁçÑòÍ¼°¸ÉÏ»­ÉÏ¡°Hello, world¡±µÄ³ÌÐò¡£ÂÞÂíÈËµÄ±à³ÌÊé¼®ÉÏÓÃ¡°Salut, Mundi¡±³ÌÐò¿ªÊ¼¡£ÎÒ²»ÖªµÀ´òÆÆÕâ¸ö´«Í³µÄÈËÉíÉÏ·¢ÉúÁËÊ²Ã´¶øÇÒÎÒÏë²»È¥×·¾¿Õâ¸ö±È½Ï°²È«¡£ 
¡¡¡¡Ò»¸öÄÚºËÄ£¿é±ØÐëÖÁÉÙÓÐÁ½¸ö¹¦ÄÜ: init_module ÔÚ¸ÃÄ£¿é±»²åÈëÄÚºËÊ±±»µ÷ÓÃ, cleanup_module ½ö½öÔÚËü±»Çå³ýÇ°µ÷ÓÃ¡£ µäÐÍµÄ, init_module ÒªÃ´ÔÚÄÚºËÀïÎªÊ²Ã´¶«Î÷µÇ¼ÇÒ»¸öÖ¸Õë£¬ÒªÃ´ÓÃËü×Ô¼ºµÄ´úÂë´úÌæÄÚºËµÄÄ³¸ö¹¦ÄÜ (Í¨³£ÄÇ¸ö´úÂë×öÒ»Ð©ÊÂÇéÈ»ºóµ÷ÓÃÔ­Ê¼µÄ¹¦ÄÜ). cleanup_module ¹¦ÄÜ±»¼Ù¶¨³·Ïûinit_module ×öµÄÈÎºÎÊÂÇé, Òò´ËÄ£¿é¿ÉÒÔ±»°²È«µØÐ¶ÔØ¡£ 
·¶Àý hello.c 
/* hello.c 
* Copyright (C) 1998 by Ori Pomerantz
* 
* "Hello, world" - ÄÚºËÄ£¿é°æ±¾. 
*/
/* ±ØÒªµÄÍ·ÎÄ¼þ */
/* ÄÚºËÄ£¿é±ê×¼ */
#include /* ÎÒÃÇÔÚ×öÄÚºËµÄ¹¤×÷ */
#include /* Ã÷È·µÄ£¬Ò»¸öÄ£¿é */
/* ´¦Àí CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include 
#endif 
/* ³õÊ¼»¯Ä£¿é */
int init_module()
{
printk("Hello, world - this is the kernel speaking/n");
/* Èç¹ûÎÒÃÇ·µ»ØÒ»¸ö·ÇÁãÖµ, ÄÇ¾ÍÒâÎ¶×Å 
* init_module ³õÊ¼»¯Ê§°Ü²¢ÇÒÄÚºËÄ£¿é 
* ²»ÄÜ¼ÓÔØ */
return 0;
}
/* Cleanup - ³·Ïû init_module Ëù×öµÄÈÎºÎÊÂÇé */
void cleanup_module()
{
printk("Short is the life of a kernel module/n");
}

¹²4Ò³¡£ 1 2 3 4 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³ÌÖ®×Ö·ûÉè±¸ÎÄ¼þ</title>
			<link>http://www.kingmx.com/article.php?id=11928</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[
×Ö·ûÉè±¸ÎÄ¼þ 
¡¡¡¡Òò´ËÏÖÔÚÎÒÃÇÊÇ´óµ¨µÄÄÚºË³ÌÐòÔ±¶øÇÒÎÒÃÇÖªµÀÈçºÎÐ´Ê²Ã´Ò²²»×öµÄÄÚºËÄ£¿é¡£ÎÒÃÇÎª×Ô¼º¶ø×ÔºÀ²¢ÇÒ¿ÉÒÔ¸ß¸ßµÄÑöÆðÎÒÃÇµÄÍ·¡£µ«ÊÇ²»ÖªºÎ¹ÊÎÒÃÇ¸Ðµ½ÒÅÊ§ÁËÊ²Ã´¡£ÁîÈË½ôÕÅµÄÄ£¿é²¢²»ÊÇºÜÓÐÈ¤µÄ¡£ 
¡¡¡¡ÄÚºËÄ£¿éÓÐÁ½ÖÖÖ÷ÒªµÄÍ¾¾¶ºÍ½ø³Ì¶Ô»°¡£Ò»ÖÖÊÇÍ¨¹ýÉè±¸ÎÄ¼þ (Ïñ /dev Ä¿Â¼ÖÐµÄÎÄ¼þ), ÁíÒ»ÖÖÊÇÊ¹ÓÃ proc ÎÄ¼þÏµÍ³¡£ÒòÎªÐ´ÄÚºËÖÐµÄÄ³Ð©¶«Î÷µÄÒ»¸öÖ÷ÒªµÄÔ­ÒòÊÇÈ¥Ö§³ÖÄ³ÖÖÓ²¼þ,ËùÒÔÎÒÃÇ´ÓÉè±¸ÎÄ¼þ¿ªÊ¼¡£ 
¡¡¡¡Éè±¸ÎÄ¼þµÄÔ­Ê¼Ä¿µÄÊÇÔÊÐí½ø³ÌºÍÄÚºËÖÐµÄÉè±¸Çý¶¯³ÌÐòÍ¨ÐÅÒÔÍ¨¹ýËüÃÇºÍÎïÀíÉè±¸Í¨ÐÅ (µ÷ÖÆ½âµ÷Æ÷, ÖÕ¶Ë, µÈµÈ)¡£ Õâ¸ö°ì·¨µÄÊµÏÖÊÇÏñÏÂÃæÕâÑùµÄ¡£ 
¡¡¡¡Ã¿¸öÉè±¸Çý¶¯³ÌÐò¸ºÔðÄ³ÖÖÓ²¼þ£¬Ëü±»·ÖÅäÒ»¸öÖ÷Éè±¸ºÅ¡£Çý¶¯³ÌÐòµÄÁÐ±íºÍËüÃÇµÄÖ÷Éè±¸ºÅ¿ÉÒÔÔÚ /proc/devicesÕÒµ½¡£Ã¿Ò»¸öÎïÀíÉè±¸ÓÉÉè±¸Çý¶¯³ÌÐò¿ØÖÆÇÒ±»·ÖÅäÒ»¸ö´ÎÉè±¸ºÅ¡£ /dev Ä¿Â¼±»¼ÙÉè°üº¬Ã¿Ò»¸öÕâÑùµÄÉè±¸µÄ±»³ÆÖ®ÎªÉè±¸ÎÄ¼þµÄÌØÊâÎÄ¼þ£¬ÎÞÂÛËüÊÇ·ñ±»ÕæÕýµÄ°²×°ÔÚÏµÍ³ÉÏ¡£ 
¡¡¡¡ÀýÈç£¬Èç¹ûÄã ls -l /dev/hd[ab]*£¬Äã½«¿´µ½ËùÓÐµÄ¿ÉÄÜ±»Á¬½Óµ½ÏµÍ³ÉÏµÄIDEÓ²ÅÌµÄ·ÖÇø¡£×¢ÒâËüÃÇ¶¼Ê¹ÓÃÏàÍ¬µÄÖ÷Éè±¸ºÅ£¬3¡£µ«ÊÇ´ÎÉè±¸ºÅ±Ë´Ë¶¼²»ÏàÍ¬¡£ 
·ñÈÏÉêÃ÷: ÕâÊÇ¼ÙÉèÄãÕý×ÖÊ¹ÓÃ PC ¼Ü¹¹µÄÏµÍ³¡£ÎÒ²»ÖªµÀ»ùÓÚÆäËû¼Ü¹¹µÄLinuxÉè±¸µÄÇé¿ö¡£. 
¡¡¡¡µ±ÏµÍ³±»°²×°£¬ËùÓÐµÄÄÇÐ©Éè±¸ÎÄ¼þ±» mknod ÃüÁî´´½¨¡£´Ó¼¼ÊõÉÏËµÃ»ÓÐ±ØÐë½«ËüÃÇ·ÅÔÚ /devÄ¿Â¼µÄÔ­Òò£¬ÕâÖ»ÊÇÒ»¸öÓÐÓÃµÄ¹ßÀý¡£ÏñÁ·Ï°ËùÊ¾µÄÄÇÑù£¬µ±ÎªÁË²âÊÔµÄÄ¿µÄ¶ø´´½¨Ò»¸öÉè±¸ÎÄ¼þ£¬½«Ëü·ÅÔÚÄã±àÒëÄÚºËÄ£¿éµÄÄÇ¸öÄ¿Â¼Ò²Ðí¸üÓÐÒâÒå¡£ 
¡¡¡¡Éè±¸·ÖÎªÁ½ÖÖ£º×Ö·ûÉè±¸ºÍ¿éÉè±¸¡£²»Í¬Ö®´¦ÔÚÓÚ¿éÉè±¸¶ÔÓÚÇëÇóÓÐ»º³åÇø£¬Òò´ËËüÃÇ¿ÉÒÔÑ¡ÔñÒÔÊ²Ã´Ë³Ðò½øÐÐÏìÓ¦¡£¶ÔÓÚ´æ´¢Éè±¸¶øÑÔÕâÒ»µãÊÇºÜÖØÒªµÄ,ÒòÎªÔÚ¶ÁÐ´Á¬ÐøµÄÉÈÇøÊ±±ÈÔ¶Ô¶µÄ·ÖÀëµÄÉÈÇø¸ü¿ì¡£ÁíÒ»¸ö²»Í¬¾ÍÊÇ¿éÉè±¸Ö»ÄÜÒÔ¿éÎªµ¥Î»½ÓÊÜÊäÈëºÍ·µ»ØÊä³ö£¨¿éµÄ´óÐ¡¸ù¾ÝÉè±¸µÄ²»Í¬¶ø²»Í¬£©£¬¶ø×Ö·ûÉè±¸Ö»ÄÜÊ¹ÓÃËüÃÇ¿ÉÄÜÊ¹ÓÃµÄ»ò¶à»òÉÙµÄ×Ö½Ú´óÐ¡¡£´ó¶àÊýÉè±¸ÊÇ×Ö·ûÉè±¸£¬ÒòÎªËüÃÇ²»ÐèÒªÕâÖÖ»º³å¶øÇÒ²»ÒÔ¹Ì¶¨¿é´óÐ¡½øÐÐ²Ù×÷¡£Äã¿ÉÒÔÓÃls -lÇø·ÖÒ»¸öÉè±¸ÎÄ¼þÊÇ¿éÉè±¸»¹ÊÇ×Ö·ûÉè±¸.Èç¹û¿ªÍ·ÊÇ¡°b¡±£¬ÄÇÃ´Ëü¾ÍÊÇ¿éÉè±¸£»Èç¹ûÊÇ¡°c¡±£¬ÄÇÃ´¾ÍÊÇ×Ö·ûÉè±¸¡£ 
¡¡¡¡Õâ¸öÄ£¿é·ÖÎªÁ½²¿·Ö£ºµÇ¼ÇÉè±¸Ä£¿é²¿·ÖºÍÉè±¸Çý¶¯²¿·Ö¡£ init_module µ÷ÓÃ module_register_chrdev ¶ø½«Éè±¸Çý¶¯³ÌÐò¼ÓÈëÄÚºËµÄ×Ö·ûÉè±¸Çý¶¯³ÌÐò±í¡£ËüÒ²·µ»Ø¸ÃÉè±¸½«Ê¹ÓÃµÄÖ÷Éè±¸ºÅ¡£ cleanup_module ×¢Ïú¸ÃÉè±¸¡£ 
¡¡¡¡Õâ£¨µÇ¼ÇÊ²Ã´ºÍ×¢ÏúËü£©ÊÇÄÇÁ½ÖÖ¹¦ÄÜµÄ³£¹æ¹¦ÄÜ¡£ÄÚºËÖÐµÄ¶«Î÷²»ÏëÆÕÍ¨½ø³ÌÄÇÑùÖ÷¶¯ÔËÐÐ×Ô¼º£¬¶øÊÇÓÉ½ø³ÌÍ¨¹ýÏµÍ³µ÷ÓÃ£¬»òÕßÓÉÓ²¼þÍ¨¹ýÖÐ¶Ï£¬»òÕßÓÉÄÚºËµÄÆäËû²¿·Ö£¨¼òµ¥µÄ½²£¬ÓÉÌØÊâµÄº¯Êýµ÷ÓÃ£©½øÐÐµ÷ÓÃ¡£½á¹û£¬µ±ÄãÏòÄÚºËÖÐ¼ÓÈë´úÂë£¬Äã±»¼ÙÉè½«Ö®µÇ¼ÇÎªÄ³ÖÖÊÂ¼þ¾ä±ú£¬¶øµ±ÄãÒÆ³ýËüÊ±£¬Äã±»¼ÙÉè³ö×¢ÏúËü¡£ 
¡¡¡¡ÑÏ¸ñÒâÒåÉÏ½²£¬Éè±¸Çý¶¯³ÌÐòÓÉËÄ¸ödevice_º¯Êý×é³É£¬µ±Ä³ÈËÊÔÍ¼ÓÃÎÒÃÇµÄÖ÷Éè±¸ºÅµÄÉè±¸ÎÄ¼þ×öÊ²Ã´ÊÂÊ±Ëü±»µ÷ÓÃ¡£ÄÚºËÊÇÍ¨¹ý file_operations½á¹¹ÖªµÀÒªµ÷ÓÃËüÃÇµÄ£¬Fops, ÔÚÉè±¸±»µÇ¼ÇÊ±±»¸ø³ö£¬Ëü°üº¬ÄÇËÄ¸öº¯ÊýµÄÖ¸Õë¡£ 
¡¡¡¡ÁíÒ»µãÎÒÃÇÔÚÕâ±ØÐë¼Ç×¡µÄÊÇÎÒÃÇ²»ÄÜÔÊÐíÄÚºËÄ£¿éÔÚÈÎºÎ¸ù¸Ð¾õÐèÒªµÄÊ±ºò±»rmmod¡£Ô­ÒòÊÇÈç¹ûÉè±¸ÎÄ¼þÕý±»Ò»¸ö½ø³Ì´ò¿ªÈ»ºóÎÒÃÇÒÆ³ýÄÇ¸öÄÚºËÄ£¿é£¬Õâ½«Ê¹ÓÃÄÇ¸öÎÄ¼þ£¬¶øÕâÓÖ½«µ¼ÖÂ¶ÔÄÇ¸öÊÊµ±µÄ¶ÁÐ´º¯ÊýËùÔÚµÄÄÚ´æÇøÓòµÄµ÷ÓÃ¡£Èç¹ûÐÒÔËµÄ»°£¬Ã»ÓÐÆäËûµÄ´úÂë±»¼ÓÔØµ½ÄÇ¶ù£¬ÎÒÃÇµÃµ½Ò»¸öÄÑ¿´µÄ´íÎóÏûÏ¢¡£Èç¹û²»ÐÒÔËµÄ»°£¬ÁíÒ»¸öÄÚºËÄ£¿é±»¼ÓÔØµ½Í¬Ò»ÇøÓò£¬Õâ¾ÍÒâÎ¶×ÅÌøµ½ÄÚºËÖÐµÄÁíÒ»¸öº¯ÊýµÄÖÐ¼ä£¬½á¹ûÊÇ²»¿ÉÔ¤¼ûµÄ£¬µ«¿Ï¶¨²»ÊÇÊ²Ã´ºÃÊÂ¡£ 
¡¡¡¡Í¨³££¬µ±Äã²»ÔÊÐíÊ²Ã´ÊÂÇé·¢Éú£¬Äã»á´Ó±»¼ÙÉè×öÕâ¼þÊÂµÄº¯Êý·µ»ØÒ»¸öÓÃ¸ºÊý±íÊ¾µÄ´íÎó´úÂë¡£Ê¹ÓÃcleanup_module ÊÇ²»¿ÉÄÜµÄ£¬ÒòÎªËü²»·µ»ØÈÎºÎÖµ¡£Ò»µ©cleanup_module ±»µ÷ÓÃ£¬Ä£¿é¼´ËÀÍöÁË¡£È»¶ø£¬Õâ¶ùÓÐÒ»¸ö±»³ÆÎªÒýÓÃ¼ÆÊýÆ÷£¨ÔÚ/proc/modulesÖÐµÄÏàÓ¦ÐÐµÄ×îºóÒ»¸öÊý×Ö£©µÄ¼ÆÊýÆ÷¼ÆËãÓÐ¶àÉÙÆäËûµÄÄÚºËÄ£¿éÕýÔÚÊ¹ÓÃ¸ÃÄ£¿é¡£Èç¹û¸ÃÊý×Ö·ÇÁã rmmod µ÷ÓÃ½«Ê§°Ü¡£Ä£¿éµÄÒýÓÃ¼ÆÊýÆ÷ÔÚ±äÁ¿mod_use_count_ÖÐ. ÒòÎªÓÐ´¦ÀíÕâ¸ö±äÁ¿µÄºê¶¨Òå (MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT)£¬ÎÒÃÇ×îºÃÊ¹ÓÃËüÃÇ¶ø²»Ö±½ÓÊ¹ÓÃ mod_use_count_ £¬ÕâÑù£¬Èç¹û½«À´ÊµÏÖ·½·¨¸Ä±äÁËÎÒÃÇ»á¸ü°²È«¡£ 
¹²3Ò³¡£ 1 2 3 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì/proc ÎÄ¼þÏµÍ³</title>
			<link>http://www.kingmx.com/article.php?id=11929</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[/proc ÎÄ¼þÏµÍ³ 
¡¡¡¡ÔÚLinuxÖÐÓÐ¶îÍâµÄ»úÖÆ¿ÉÒÔÎªÄÚºËºÍÄÚºËÄ£¿é½«ÐÅÏ¢·¢ËÍ¸ø½ø³Ì -- /proc ÎÄ¼þÏµÍ³¡£×î³õÉè¼ÆµÄÄ¿µÄÊÇÔÊÐí¸ü·½±ãµÄ¶Ô½ø³ÌÐÅÏ¢½øÐÐ·ÃÎÊ£¨Òò´ËµÃÃû£©£¬ÏÖÔÚËü±»Ã¿Ò»¸öÓÐÓÐÈ¤µÄ¶«Î÷±¨¸æµÄÄÚºËÊ¹ÓÃ£¬ÀýÈç /proc/modules ÓÐÄ£¿éµÄÁÐ±í /proc/meminfo ÓÐÄÚ´æÊ¹ÓÃµÄÍ³¼Æ±í¡£ 
¡¡¡¡Ê¹ÓÃproc ÎÄ¼þÏµÍ³µÄ·½·¨ºÍÊ¹ÓÃÉè±¸Çý¶¯³ÌÐò·Ç³£ÏàËÆ--´´½¨Ò»¸ö /proc ÎÄ¼þÐèÒªµÄËùÓÐÐÅÏ¢µÄ½á¹¹£¬°üÀ¨ÈÎºÎ´¦Àíº¯ÊýµÄÖ¸Õë£¨ÔÚÎÒÃÇµÄÀý×ÓÖÐÖ»ÓÐÒ»¸ö£¬µ±Ä³ÈËÊÔÍ¼´Ó /proc ÎÄ¼þ¶ÁÊ±µ÷ÓÃµÄÄÇÒ»¸ö£©¡£È»ºó£¬init_module ÔÚÄÚºËÖÐµÇ¼Ç¸Ã½á¹¹¶øcleanup_module ×¢ÏúËü¡£ 
¡¡¡¡ÎÒÃÇÊ¹ÓÃ proc_register_dynamic(ÕâÊÇÔÚ 2.0 °æÖÐµÄÇé¿ö£¬ÔÚ 2.2 °æÖÐÈç¹ûÎÒÃÇ½«½ÚµãÉèÖÃÎª0ÏµÍ³½«×Ô¶¯ÎªÎÒÃÇ×öµ½) µÄÔ­ÒòÊÇÎÒÃÇ²»ÏëÔ¤ÏÈ¾ö¶¨ÎÒÃÇµÄÎÄ¼þµÄ½ÚµãÊý×Ö£¬¶øÊÇÎª·ÀÖ¹³åÍ»¶øÓÉÄÚºË¾ö¶¨Ëü¡£Í¨³£µÄÎÄ¼þÏµÍ³´æÔÚÓÚ´ÅÅÌÉÏ¶ø²»ÊÇÄÚ´æÖÐ£¨/proc ÔÚÄÚ´æÖÐ£©£¬ÔÚÕâÖÐÇé¿öÏÂ£¬½ÚµãÊýÊÇÊÇÖ¸ÏòÎÄ¼þµÄË÷Òý½ÚµãËùÔÚµÄ´ÅÅÌÎ»ÖÃµÄÖ¸Õë¡£½Úµã°üº¬ÎÄ¼þµÄÐÅÏ¢£¨ÀýÈçÎÄ¼þµÄ´æÈ¡È¨ÏÞ£©ºÍÖ¸Ïò´ÅÅÌÎ»ÖÃ»òÎÄ¼þÊý¾Ý¿ÉÒÔ±»ÕÒµ½µÄ¼¸¸öÎ»ÖÃµÄÖ¸Õë¡£ 
¡¡¡¡ÒòÎªµ±ÎÄ¼þ±»´ò¿ª»ò¹Ø±ÕµÄÊ±ºò²»ÄÜµÃµ½µ÷ÓÃ£¬ËùÒÔÔÚÕâ¸öÄ£¿éÖÐÃ»ÓÐµØ·½·ÅÖÃ MOD_INC_USE_COUNT ºÍ MOD_DEC_USE_COUNT£¬²¢ÇÒ£¬Èç¹ûÎÄ¼þ±»´ò¿ªËæºóÄ£¿é±»ÒÆ³ý£¬ÎÒÃÇÃ»ÓÐ°ì·¨±ÜÃâºó¹û¡£ÔÚÏÂÒ» ÕÂÎÒÃÇ»á¿´µ½Ò»¸ö¼èÄÑµÄµ«¸üÁé»îµÄ¿ÉÒÔ´¦Àí/procÎÄ¼þµÄÊµÏÖ·½Ê½£¬ËüÒ²¿ÉÒÔÈÃÎÒÃÇ·ÀÖ¹ÄÇ¸öÎÊÌâ¡£ 
·¶Àý procfs.c 
/* procfs.c - create a "file" in /proc 
* Copyright (C) 1998-1999 by Ori Pomerantz
*/
/* ±ØÒªµÄÍ·ÎÄ¼þ */
/* ÄÚºËÄ£¿é±ê×¼Í·ÎÄ¼þ */
#include /* ÄÚºË¹¤×÷ */
#include /* Ã÷È·Ö¸¶¨ÊÇÄ£¿é */
/* ´¦ÀíCONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include 
#endif 
/* Ê¹ÓÃproc ÎÄ¼þÏµÍ³Ëù±ØÒªµÄ */
#include 
/* ÔÚ 2.2.3 °æ/usr/include/linux/version.h ÖÐ°üº¬Õâ¸öºê
* µ« 2.0.35 °æ²»°üº¬ - Òò´ËÎÒÔÚ´Ë¼ÓÈëÕâ¸öÒÔ·ÀÐèÒª¡£ */
#ifndef KERNEL_VERSION
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c))
#endif
/* ½«Êý¾Ý·ÅÈë proc ÎÄ¼þ
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì-½«/proc×÷ÎªÊäÈë</title>
			<link>http://www.kingmx.com/article.php?id=11930</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[½« /proc ×÷ÎªÊäÈë 
¡¡¡¡Æù½ñÎªÖ¹£¬ÎÒÃÇÓÐÁ½ÖÐ°ì·¨´ÓÄÚºËÄ£¿éÖÐ²úÉúÊä³ö£ºÎÒÃÇ¿ÉÒÔµÇ¼ÇÒ»¸öÉè±¸Çý¶¯³ÌÐò²¢ mknod Ò»¸öÉè±¸ÎÄ¼þ£¬»òÕßÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ö/procÎÄ¼þ¡£Õâ¿ÉÒÔÈÃÄÚºËÄ£¿é¸æËßÎÒÃÇÈÎºÎËü¿ÉÄÜ¸æËßÎÒÃÇµÄÊÂÇé¡£Î¨Ò»µÄÎÊÌâÊÇÕâÃ»ÓÐ°ì·¨ÈÃÎÒÃÇ¸æËßËü¡£ÎÒÃÇ½«ÊäÈë·¢ËÍ¸øÄÚºËÄ£¿éµÄµÚÒ»¸ö°ì·¨½«ÊÇÍ¨¹ýÐ´»Ø /proc ÎÄ¼þ¡£ 
¡¡¡¡ÒòÎª proc ÎÄ¼þÏµÍ³Ö÷ÒªÊÇÎªÁËÈÃÄÚºË±¨¸æËü¶Ô½ø³ÌµÄ×´Ì¬£¬ËùÒÔ¶ÔÊäÈëÃ»ÓÐ×¨ÃÅµÄÔ¤±¸¡£ proc_dir_entry½á¹¹Ã»ÓÐ°üº¬Ò»¸öÖ¸ÏòÊäÈëº¯ÊýµÄÖ¸Õë¶ø°üº¬Êä³öº¯ÊýµÄÖ¸Õë¡£ÎªÁËÏò/proc ÎÄ¼þÖÐÐ´£¬ÎÒÃÇÐèÒªÊ¹ÓÃ±ê×¼µÄÎÄ¼þÏµÍ³»úÖÆ¡£ 
¡¡¡¡ÔÚ Linux ÖÐ¶ÔÎÄ¼þÏµÍ³µÇ¼ÇÓÐ±ê×¼µÄ»úÖÆ¡£¼ÈÈ»Ã¿¸öÎÄ¼þÏµÍ³±ØÐëÓÐËü×Ô¼ºµÄ´¦Àí½ÚµãºÍÎÄ¼þ²Ù×÷(Á½ÕßµÄ²»Í¬ÔÚÓÚÎÄ¼þ²Ù×÷´¦ÀíÎÄ¼þ×Ô¼º£¬¶ø½Úµã²Ù×÷´¦Àí¶ÔÎÄ¼þµÄÒýÓÃ£¬ÀýÈç´´½¨¶ÔËüµÄÁ¬½Ó)µÄº¯Êý, ËùÒÔÓÐÒ»¸öÌØÊâµÄ½á¹¹±£´æËùÓÐÕâÐ©º¯ÊýµÄÖ¸Õë£¬ inode_operations ½á¹¹£¬ °üº¬Ò»¸öÖ¸Ïò file_operations½á¹¹µÄÖ¸Õë¡£ÔÚ /proc ÖÐ£¬ÈÎºÎÊ±ºòµÇ¼ÇÒ»¸öÐÂÎÄ¼þÎÒÃÇ¶¼ÔÊÐíÌØ±ðÖ¸¶¨ÄÄ¸ö inode_operations ½á¹¹½«ÓÃÓÚ·ÃÎÊËü¡£Õâ¾ÍÊÇÎÒÃÇÊ¹ÓÃµÄ»úÖÆ£¬ inode_operations ½á¹¹°üº¬Ö¸Ïò file_operations ½á¹¹µÄÖ¸Õë£¬¶øËüÓÖ°üº¬Ö¸ÏòÎÒÃÇµÄmodule_input ºÍ module_output º¯ÊýµÄÖ¸Õë¡£ 
¡¡¡¡×¢ÒâÔÚÄÚºËÖÐ±ê×¼µÄ¶ÁÐ´µÄÈÎÎñÊÇµßµ¹µÄ¡£¶Áº¯ÊýÓÃ×÷Êä³ö¶øÐ´º¯ÊýÓÃÓÚÊäÈë¡£Ôì³ÉÕâ¸ö¾ÖÃæµÄÔ­ÒòÊÇ¶ÁÐ´ÊÇÒÀ¾ÝÓÃ»§µÄ¹Ûµã--Èç¹ûÒ»¸ö½ø³Ì´ÓÄÚºËÖÐ¶ÁÊ²Ã´£¬ÄÇÃ´ÄÚºË¾ÍÐèÒªÊä³öËü£¬¶øÈç¹û½ø³ÌÏòÄÚºËÖÐÐ´Ê²Ã´£¬ÄÇÃ´ÄÚºË¾ÍÐèÒª½«Ëü×÷ÎªÊäÈë½ÓÊÕ¡£ 
¡¡¡¡Õâ¶ùÁíÒ»¸öÒýÆð×¢ÒâµÄµØ·½ÊÇ module_permission º¯Êý¡£Õâ¸öº¯ÊýÔÚ½ø³ÌÊÔÍ¼ÓÃ /procÎÄ¼þ×öÊ²Ã´µÄÊ±ºò±»µ÷ÓÃ£¬²¢ÇÒËü¾ö¶¨ÊÇ·ñÔÊÐí·ÃÎÊ¡£ÏÖÔÚËü½ö½ö»ùÓÚ²Ù×÷ºÍµ±Ç°ÓÃ»§µÄUID£¨¾ÍÏñ current ÖÐµÄÄÇÑù£¬Ò»¸öÖ¸Ïò°üº¬µ±Ç°ÔËÐÐ½ø³ÌµÄÐÅÏ¢µÄ½á¹¹µÄÖ¸Õë£©£¬µ«ËüÒ²¿ÉÒÔ»ùÓÚÈÎºÎÎÒÃÇÏ²»¶µÄ¶«Î÷£¬ÀýÈçÆäËû½ø³ÌÔÚÓÃ¸ÃÎÄ¼þ×öÊ²Ã´£¬Ê±¼ä£¬»òÕßÎÒÃÇÉÏ´ÎµÄ½ÓÊÕµÄÊäÈë¡£ 
¡¡¡¡Ê¹ÓÃ put_user ºÍ get_user µÄÔ­ÒòÊÇÔÚ Linux ÖÐÄÚ´æ (ÔÚIntel ¼Ü¹¹ÏÂ£¬ÔÚÆäËû´¦ÀíÆ÷ÏÂ¿ÉÄÜ²»Í¬£©ÊÇ·Ö¶ÎµÄ¡£ÕâÒâÎ¶×ÅÖ¸Õë²»ÄÜµ¥¶ÀÓÉËü×Ô¼ºÖ¸ÏòÒ»¸öÎ¨Ò»µÄÄÚ´æÎ»ÖÃ£¬Ö»ÊÇÔÚÄÚ´æµÄ¶ÎÖÐµÄÎ»ÖÃ£¬ÄãÐèÒªÖªµÀËü¿ÉÒÔÊ¹ÓÃÄÄ¸öÄÚ´æ¶Î¡£¶ÔÄÚºËÖ»ÓÐÒ»¸öÄÚ´æ¶Î£¬ÆäËû½ø³ÌÒ²¸÷ÓÐÒ»¸ö¡£ 
¡¡¡¡½ø³ÌÖ»ÄÜ·ÃÎÊ×Ô¼ºµÄÄÚ´æ¶Î£¬Òò´Ëµ±Ð´ÆÕÍ¨µÄ×÷Îª½ø³ÌÔËÐÐµÄ³ÌÐòÊ±ÎÒÃÇ²»±ØÎª¶Î²ÙÐÄ¡£µ±ÄãÐ´ÄÚºËÄ£¿éÊ±£¬Í¨³£ÄãÏë·ÃÎÊÄÚºËµÄÄÚ´æ¶Î£¬ËüÓÉÏµÍ³×Ô¶¯µÄ´¦Àí¡£È»¶ø£¬µ±ÄÚ´æ»º³åÇøÖÐµÄÄÚÈÝÐèÒªÔÚµ±Ç°½ø³ÌºÍÄÚºËÖÐ´«µÝÊ±£¬ÄÚºËµÄº¯ÊýÊÕµ½µÄÊÇÖ¸ÏòÎ»ÓÚ½ø³ÌµÄÄÚ´æ¶ÎÖÐµÄÄÚ´æ»º³åÇøµÄÖ¸Õë¡£ put_user ºÍ get_user ºê¿ÉÒÔÈÃÄã·ÃÎÊÄÇÐ©ÄÚ´æ¡£ 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³ÌÖ®ºÍÉè±¸ÎÄ¼þ¶Ô»°</title>
			<link>http://www.kingmx.com/article.php?id=11931</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ºÍÉè±¸ÎÄ¼þ¶Ô»°£¨Ð´ºÍ IOCTL£© 
¡¡¡¡Éè±¸ÎÄ¼þÓ¦¸Ã±íÏÖÎïÀíÉè±¸¡£´ó¶àÎïÀíÉè±¸¼È×÷ÎªÊä³öÒ²×÷ÎªÊäÈë£¬Òò´Ë±ØÐëÓÐÄ³¸ö»úÖÆÊ¹ÄÚºËÖÐµÄÉè±¸Çý¶¯³ÌÐòµÃµ½À´×Ô½ø³ÌµÄÊä³öÒÔ±ã·¢ËÍµ½Éè±¸¡£Í¨¹ýÎªÊä³ö´ò¿ªÉè±¸ÎÄ¼þ²¢ÏòÆäÐ´¶ø×öµ½Õâ¸ö£¬¾ÍÏñÐ´Ò»¸öÆÕÍ¨ÎÄ¼þ¡£ÔÚÏÂÃæµÄÀý×ÓÖÐ£¬ÕâÊÇÓÃ device_write ÊµÏÖµÄ¡£ 
¡¡¡¡Õâ²»×ÜÊÇ×ã¹»µÄ¡£ÏëÏóÄãÓÐÒ»¸ö´®ÐÐ¿ÚÁ¬½Óµ½Ò»¸öµ÷ÖÆ½âµ÷Æ÷£¨¼´Ê¹ÄãÓÐÒ»¸öÄÚÖÃµÄµ÷ÖÆ½âµ÷Æ÷£¬´ÓCPUµÄ¹Ûµã¿´ËüÈÔÈ»ÊÇÍ¨¹ý´®ÐÐ¿ÚÁ¬½Óµ½µ÷ÖÆ½âµ÷Æ÷£¬Òò´ËÄã²»±ØÔð±¸ÄãµÄÏëÏóÁ¦£©¡£×ÔÈ»¶øÈ»µÄÊÂÇéÊÇÊ¹ÓÃÉè±¸ÎÄ¼þÏòµ÷ÖÆ½âµ÷Æ÷Ð´£¨ÒªÃ´ÊÇµ÷ÖÆ½âµ÷Æ÷ÃüÁî£¬ÒªÃ´ÊÇÒªÍ¨¹ýµç»°Ïß·¢ËÍµÄÊý¾Ý£©ºÍ´ÓÖÐ¶Á£¨ÒªÃ´ÊÇÃüÁî»ØÓ¦£¬ÒªÃ´ÊÇ½ÓÊÕµÄÊý¾Ý£©¡£È»¶ø£¬ÕâÁôÏÂÁËµ±ÄãÐèÒªºÍ´®ÐÐ¿Ú¶Ô»°Ê±¸Ã×öÊ²Ã´µÄÎÊÌâ£¬ÀýÈçÒÔÊ²Ã´ËÙÂÊ½ÓÊÕºÍ·¢ËÍÊý¾Ý¡£ 
¡¡¡¡ÔÚ Unix ÖÐ£¬´ð°¸ÊÇÊ¹ÓÃÌØÊâµÄº¯Êýµ÷ÓÃ ioctl £¨ input output control µÄËõÐ´£©¡£Ã¿¸öÉè±¸¿ÉÒÔÓÐ×Ô¼ºµÄ ioctl ÃüÁî£¬Ëü¿ÉÒÔ¶Á ioctl £¨´Ó½ø³ÌÏòÄÚºË·¢ËÍÐÅÏ¢£©ºÍÐ´ ioctl£¨·µ»ØÐÅÏ¢¸ø½ø³Ì£©£¨×¢ÒâÔÚÕâ¶ù¶ÁÐ´µÄ×÷ÓÃÓÖÊÇµßµ¹µÄ£¬Òò´Ëioctl µÄ¶ÁÊÇ·¢ËÍÏûÏ¢¸øÄÚºË¶øÐ´ÊÇ´ÓÄÚºË½ÓÊÕÏûÏ¢£©»òÕßÊ²Ã´Ò²²»×ö¡£ ioctl Ê¹ÓÃÈý¸ö²ÎÊýµ÷ÓÃ: ºÏÊÊµÄÉè±¸ÎÄ¼þµÄÎÄ¼þÃèÊö·û£¬ ioctl ºÅ¼°Ò»¸ö²ÎÊý£¬¸Ã²ÎÊýÊÇÀàÐÍ³¤¶È£¬Òò´ËÄã¿ÉÒÔÊ¹ÓÃÒ»¸öÄ£ÐÍ´«µÝÈÎºÎ¶«Î÷¡£ £¨ÕâÊÇ²»×¼È·µÄ¡£ÀýÈçÄã²»ÄÜÍ¨¹ýioctl´«µÝÒ»¸ö½á¹¹ -- µ«Äã¿ÉÒÔ´«µÝÄÇ¸ö½á¹¹µÄÖ¸Õë£©
¡¡¡¡ioctl ºÅÓÃÖ÷Éè±¸ºÅ£¬ ioctl ÀàÐÍ£¬ÃüÁîºÍ²ÎÊýÀàÐÍ±àÂë¡£Õâ¸ö ioctl ºÅÍ¨³£ÓÃÒ»¸öÍ·ÎÄ¼þÖÐµÄºêµ÷ÓÃ £¨_IO, _IOR, _IOW »ò _IOWR -- È¡¾öÓÚÀàÐÍ£©´´½¨¡£Í·ÎÄ¼þ±ØÐë±»Ê¹ÓÃioctlµÄ³ÌÐò£¨Òò´ËËüÃÇ¿ÉÒÔÉú³ÉºÏÊÊµÄioctl£©¼°ÄÚºËÄ£¿é£¨Òò´ËËü¿ÉÒÔÀí½âËü£© #include¡£ ÔÚÏÂÃæµÄ·¶ÀýÖÐ£¬Í·ÎÄ¼þÊÇ chardev.h ¶øÊ¹ÓÃËüµÄ³ÌÐòÊÇ ioctl.c¡£ 
¡¡¡¡Èç¹ûÄãÏëÔÚÄã×Ô¼ºµÄÄ£¿éÖÐÊ¹ÓÃ ioctl £¬×îºÃ½ÓÊÜ¹Ù·½µÄ ioctl ·ÖÅä£¬Òò´ËÈç¹ûÄãÅöÇÉµÃµ½±ðÈËµÄioctl»òËüÃÇµÃµ½ÄãµÄ£¬Äã¾Í¿ÉÒÔÖªµÀÄ³Ð©ÊÂÊÇ´íµÄ¡£ÐèÒª¸ü¶àÐÅÏ¢£¬Çë²Î¿¼ `Documentation/ioctl-number.txt' ÄÚºËÔ´´úÂëÊ÷¡£ 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--Æô¶¯²ÎÊý</title>
			<link>http://www.kingmx.com/article.php?id=11932</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[Æô¶¯²ÎÊý 
¡¡¡¡ÔÚÇ°ÃæµÄºÜ¶àÀý×ÓÖÐ£¬ÎÒÃÇ²»µÃ²»Ó²ÐÔµÄ½«Ò»Ð©¶«Î÷Ð´ÈçÄÚºËÄ£¿é£¬ÀýÈçÔÚ /proc ÖÐµÄÎÄ¼þÃû»òÉè±¸µÄÖ÷Éè±¸ºÅ£¬Òò´ËÎÒÃÇ¿ÉÒÔ¶ÔËü ioctl¡£ ÕâºÍ Unix¼° LinuxµÄ±àÐ´ÓÃ»§¿ÉÒÔ¶¨ÖÆµÄÁé»îµÄ³ÌÐò¾«ÉñÊÇÏàÃ¬¶ÜµÄ¡£ 
¡¡¡¡ÔÚ³ÌÐò»òÄÚºËÄ£¿éÄÜ¿ªÊ¼¹¤×÷Ö®Ç°¸æËßËüÒ»Ð©ÐèÒªµÄ¶«Î÷µÄ°ì·¨ÊÇÍ¨¹ýÃüÁîÐÐ²ÎÊý¡£ÔÚÄÚºËÄ£¿éµÄÇé¿öÏÂ£¬ÎÒÃÇ²»ÄÜµÃµ½ argc ºÍ argv -- ´úÌæµÄ£¬ÎÒÃÇµÃµ½¸üºÃµÄ¶«Î÷¡£ÎÒÃÇ¿ÉÒÔÔÚÄÚºËÄ£¿éÖÐ¶¨ÒåÈ«¾Ö±äÁ¿²¢ÇÒ insmod½«ÎªÎÒÃÇÌî³äËüÃÇ¡£ 
¡¡¡¡ÔÚÕâ¸öÄÚºËÄ£¿éÖÐ£¬ÎÒÃÇ¶¨ÒåÁËÁ½¸ö: str1 ºÍ str2¡£ÄãËùÐèÒª×öµÄÈ«²¿¾ÍÊÇ±àÒëÄÇ¸öÄÚºËÄ£¿éÈ»ºóÓÃinsmod str1=xxx str2=yyyÔËÐÐËü¡£µ±init_module ±»µ÷ÓÃ£¬str1 ½«Ö¸Ïò×Ö·û´®¡®xxx¡¯£¬ str2 ½«Ö¸Ïò¡®yyy¡¯¡£ 
¡¡¡¡ÔÚ 2.0 °æÖÐ¶ÔÕâÐ©²ÎÊý6.1Ã»ÓÐÀàÐÍ¼ì²é¡£Èç¹ûstr1 »ò str2 µÄµÚÒ»¸ö×Ö·ûÊÇÊý×Ö£¬ÄÚºË½«ÓÃÕûÊýÖµÌî³ä±äÁ¿¶ø²»ÊÇ×Ö·û´®Ö¸Õë¡£Èç¹ûÊÇÔÚÊµ¼ÊµÄÇéÐÎÏÂÄãÐèÒª¼ì²éÕâ¸ö¡£ 
¡¡¡¡ÁíÒ»·½Ãæ£¬ÔÚ 2.2 °æÖÐÄãÓÃºê MACRO_PARM ¸æËß insmod ÄãÆÚ´ýÒ»¸ö²ÎÊý£¬ËüµÄÃû×ÖºÍÀàÐÍ ¡£Õâ½â¾öÁËÀàÐÍµÄÎÊÌâ²¢ÇÒÔÊÐíÄÚºËÄ£¿é½ÓÊÕÒÔÊý×Ö¿ªÊ¼µÄ×Ö·û´®¡£ 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--ÏµÍ³µ÷ÓÃ</title>
			<link>http://www.kingmx.com/article.php?id=11933</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ÏµÍ³µ÷ÓÃ 
¡¡¡¡Æù½ñÎªÖ¹£¬ÎÒÃÇ×öµÄÎ¨Ò»µÄÊÂ¾ÍÊÇÓÃºÃÒÑ¶¨ÒåµÄÄÚºË»úÖÆÈ¥µÇ¼Ç /proc ÎÄ¼þºÍÉè±¸Çý¶¯´¦Àí³ÌÐò¡£Èç¹ûÄãÏë×öÄÚºË³ÌÐòÔ±ÈÏÎªÄãÏë×öµÄ£¬ÀýÈçÐ´Éè±¸Çý¶¯³ÌÐò£¬Õâ¾Í¶ÔÁË¡£µ«ÊÇÈç¹ûÄãÏë×öÒ»Ð©²»Æ½³£µÄÊÂ£¬ÔÚÄ³Ð©µØ·½¸Ä±äÏµÍ³µÄÐÐÎªÄØ£¿ÄÇÃ´Õâ´ó¶àÈ¡¾öÄã×Ô¼º¡£ 
¡¡¡¡ÕâÊÇÄÚºË±à³ÌÖÐ±äµÃÎ£ÏÕµÄµØ·½¡£µ±Ð´ÏÂÏÂÃæµÄÀý×Ó£¬ÎÒÉ±ËÀÁË open ÏµÍ³µ÷ÓÃ¡£ÕâÒâÎ¶×ÅÎÒ²»ÄÜ´ò¿ªÈÎºÎÎÄ¼þ£¬²»ÄÜÔËÐÐÈÎºÎ³ÌÐò£¬ÉõÖÁ²»ÄÜ shutdown ¼ÆËã»ú¡£ÎÒ²»µÃ²»°´µçÔ´¿ª¹Ø¡£ÐÒÔËµÄ£¬Ã»ÓÐÎÄ¼þÏûÊ§¡£ÎªÁËÈ·±£²»Ê§È¥ÈÎºÎÎÄ¼þ£¬ÔÚÄã×öinsmod ºÍ rmmodÖ®Ç°ÇëÔËÐÐ sync ¡£ 
¡¡¡¡Íü¼Ç /proc ÎÄ¼þ£¬Íü¼ÇÉè±¸ÎÄ¼þ¡£ËüÃÇÖ»ÊÇ´ÎÒªµÄÏ¸½Ú¡£ ËùÓÐ½ø³Ì¶¼ÒªÊ¹ÓÃµÄºÍÄÚºËÍ¨ÐÅµÄÕæÕýµÄ·½·¨ÊÇÏµÍ³µ÷ÓÃ¡£µ±Ò»¸ö½ø³ÌÇëÇóÄÚºËµÄ·þÎñÊ±£¨ÀýÈç´ò¿ªÎÄ¼þ£¬·ÖÖ§Ò»¸öÐÂ½ø³Ì£¬ÇëÇó¸ü¶àÄÚ´æ£©£¬ÕâÊÇ±»Ê¹ÓÃµÄ»úÖÆ¡£Èç¹ûÄãÏë¸Ä±äÄÚºËµÄÐÐÎª·½Ê½£¬ÕâÊÇÄãÒª×öµÄµØ·½¡£Ë³±ãËµÒ»ÏÂ£¬Èç¹ûÄãÏë¿´¿´Ò»¸ö³ÌÐòÊ¹ÓÃÁËÊ²Ã´ÏµÍ³µ÷ÓÃ£¬ÔËÐÐ strace &lt;ÃüÁî&gt; &lt;²ÎÊýÁÐ±í&gt;¡£ 
¡¡¡¡Í¨³££¬Ò»¸ö½ø³Ì²»ÄÜ·ÃÎÊÄÚºË¡£Ëü²»ÄÜ·ÃÎÊÄÚºËµÄÄÚ´æºÍµ÷ÓÃÄÚºËµÄº¯Êý¡£CPUÓ²¼þÇ¿ÆÈÕâ¸ö£¨ÄÇ¾ÍÊÇÎªÊ²Ã´½Ð¡®±£»¤Ä£Ê½¡¯µÄÔ­Òò£©¡£ÏµÍ³µ÷ÓÃÊÇ¶ÔÕâ¸öÍ¨³£µÄ¹æÔòµÄÀýÍâ¡£Ëù·¢ÉúµÄÊÇ½ø³ÌÓÃÊÊµ±µÄÖµÌî³ä¼Ä´æÆ÷È»ºóµ÷ÓÃÌøµ½ÄÚºËÖÐÏÈÇ°ÒÑ¶¨ÒåµÄÇøÓòµÄÌØ¶¨µÄÖ¸Áî£¨µ±È»£¬¸ÃÇøÓòÊÇÓÃ»§½ø³Ì¿É¶Áµ«²»¿ÉÐ´µÄ£©¡£ÔÚ Intel CPUÏÂ£¬Ê¹ÓÃÖÐ¶Ï 0x80 ×öÕâ¸ö¡£Ó²¼þÖªµÀÒ»µ©ÄãÌøµ½Õâ¸öÇøÓò£¬Äã¾Í²»ÔÙÊÇÔËÐÐÔÚÑÏ¸ñµÄÓÃ»§Ä£Ê½¶øÊÇ²Ù×÷ÏµÍ³ÄÚºË--Òò´ËÄã¾Í¿ÉÒÔ×öÈÎºÎÄãÏë×öµÄ¡£ 
¡¡¡¡ÄÚºËÖÐÄÇ¸ö½ø³Ì¿ÉÒÔÌøµ½µÄÇøÓò±»³ÆÎªsystem_call¡£ ÔÚ¸ÃÇøÓòµÄ³ÌÐò¼ì²éÏµÍ³µ÷ÓÃÊý£¬¸ÃÊý¸æËßÄÚºË½ø³ÌÇëÇóÊ²Ã´·þÎñ¡£È»ºó£¬ËüÔÚÏµÍ³µ÷ÓÃ±í(sys_call_table)ÖÐ²éÕÒµ÷ÓÃµÄÄÚºËº¯ÊýµÄµØÖ·¡£È»ºóËüµ÷ÓÃ¸Ãº¯Êý²¢ÔÚ¸Ãº¯Êý·µ»Øºó×öÒ»Ð©ÏµÍ³¼ì²é£¬ÔÙ·µ»ØÄÇ¸ö½ø³Ì£¨»òÕßÈç¹û¸Ã½ø³ÌµÄÊ±¼äÔËÐÐÍêÁË¾Í·µ»Øµ½Ò»¸ö²»Í¬µÄ½ø³Ì£©¡£Èç¹ûÄãÏë¶ÁÕâ¸ö´úÂë£¬ËüÔÚÔ´ÎÄ¼þarch//kernel/entry.SÖÐµÄ ENTRY(system_call)ÐÐºó¡£ 
¡¡¡¡Òò´Ë£¬Èç¹ûÄãÏë¸Ä±äÄ³¸öÏµÍ³µ÷ÓÃµÄ¹¤×÷·½·¨£¬ÎÒÃÇËùÐèÒª×öµÄÊÇÐ´Ò»¸ö×Ô¼ºµÄº¯ÊýÒÔÊµÏÖËü£¨Í¨³£ÊÇ¼ÓÒ»Ð©ÎÒÃÇµÄ´úÂëÈ»ºóÔÙµ÷ÓÃÔ­À´µÄº¯Êý£©²¢ÇÒ¸Ä±ä sys_call_table ÖÐµÄÖ¸ÕëÖ¸ÏòÎÒÃÇµÄº¯Êý¡£ÒòÎªÎÒÃÇ¿ÉÄÜËæºóÒªÒÆ³ýËü¶øÎÒÃÇ²»ÏëÁôÏÂÒ»¸ö²»ÎÈ¶¨µÄÏµÍ³£¬ËùÒÔÔÚ cleanup_module ÖÐ½«ÄÇ¸ö±í»Ö¸´³ÉÔ­À´µÄ×´Ì¬ÊÇºÜÖØÒªµÄ¡£ 
¡¡¡¡Õâ¶ùµÄÔ´´úÂëÊÇÕâÑùÒ»¸öÄÚºËÄ£¿éµÄÀý×Ó¡£ÎÒÃÇÏë¡°Õì²ì¡±Ä³¸öÓÃ»§£¬²¢ÔÚ¸ÃÓÃ»§´ò¿ªÒ»¸öÎÄ¼þµÄÊ±ºò printk Ò»¸öÐÅÏ¢¡£³¯×ÅÕâ¸öÄ¿±ê£¬ÎÒÃÇÓÃÎÒÃÇ×Ô¼ºµÄ±»³ÆÎªour_sys_openµÄº¯Êý´úÌæÔ­À´µÄÏµÍ³µ÷ÓÃÈ¥´ò¿ªÎÄ¼þ¡£Õâ¸öº¯Êý¼ì²éµ±Ç°½ø³ÌµÄUID£¨ÓÃ»§µÄID£©¶øÈç¹ûËüµÈÓÚÎÒÃÇÒªÕì²ìµÄUID£¬Ëü¾Íµ÷ÓÃ printkÏÔÊ¾Òª´ò¿ªµÄÎÄ¼þÃû¡£È»ºó£¬ËüÓÃÏàÍ¬µÄ²ÎÊýµ÷ÓÃÔ­À´µÄ open º¯Êý×öÊµ¼ÊµÄ´ò¿ªÎÄ¼þµÄ¹¤×÷¡£ 
¡¡¡¡init_module ´úÌæsys_call_table ÖÐºÏÊÊµÄÇøÓò²¢ÇÒ½«Ô­À´µÄÖ¸Õë±£´æÔÚÒ»¸ö±äÁ¿ÖÐ¡£ cleanup_module º¯ÊýÊ¹ÓÃ¸Ã±äÁ¿½«Ã»¼þÊÂ»Ö¸´³ÉÍ¨³£µÄ×´Ì¬¡£Õâ¸ö·½·¨ÊÇÎ£ÏÕµÄ£¬ÒòÎªÁ½¸öÄÚºËÄ£¿éÍ¬Ê±¸Ä±äÍ¬Ò»¸öÏµÍ³µ÷ÓÃÊÇ¿ÉÄÜµÄ¡£ÏëÏóÎÒÃÇÓÐÁ½¸öÄÚºËÄ£¿é A ºÍ B¡£A µÄ´ò¿ªÏµÍ³µ÷ÓÃ½«ÊÇ A_open ¶øB µÄ½«ÊÇ B_open ¡£ÏÖÔÚ£¬µ± A ±»²åÈëÄÚºË£¬ÏµÍ³µ÷ÓÃ±» A_open ´úÌæ£¬µ±ËüÍê³ÉÊ±½«µ÷ÓÃÔ­À´µÄ sys_open ¡£½Ó×Å£¬B ±»²åÈëÄÚºË£¬Ëü½«ÓÃ B_open ´úÌæÏµÍ³µ÷ÓÃ£¬µ±ËüÍê³ÉÊ±½«µ÷ÓÃËüÈÏÎªµÄÔ­À´µÄÏµÍ³µ÷ÓÃ A_open¡£ 
¡¡¡¡ÏÖÔÚ£¬Èç¹û B ±»ÏÈÒÆ³ý£¬ËùÓÐµÄÊÂÇé½«ÊÇºÃµÄ--Ëü½«¼òµ¥µÄ»Ö¸´ÏµÍ³µ÷ÓÃÎª½«»Ö¸´Ô­Ê¼µÄÏµÍ³µ÷ÓÃµÄ A_open¡£È»¶ø£¬Èç¹ûA ±»ÒÆ³ýÈ»ºó B ²Å±»ÒÆ³ý£¬ÏµÍ³½«±ÀÀ£¡£A µÄÒÆ³ý½«»Ö¸´ÏµÍ³µ÷ÓÃÎªÔ­Ê¼µÄ sys_open£¬½« B ÅÅ³ý³öÄÇ¸ö»·¡£È»ºó£¬µ± B ±»ÒÆ³ý£¬Ëü½«»Ö¸´ÏµÍ³µ÷ÓÃÎª Ëü ÈÏÎªÊÇÔ­Ê¼µÄÏµÍ³µ÷ÓÃµÄ²»ÔÙ´æÔÚÓÚÄÚ´æµÄ A_open¡£Õ¦¿´ÆðÀ´ÎÒÃÇºÃÏó¿ÉÒÔÍ¨¹ý¼ì²éÏµÍ³µ÷ÓÃÊÇ·ñµÈÓÚÎÒÃÇµÄº¯Êý¼°ÊÇ·ñ¸ù±¾²»È¥¸Ä±äËü£¨Òò´Ë µ± B ±»ÒÆ³ýÊ±²»»á¸Ä±äÏµÍ³µ÷ÓÃ£©À´½â¾öÕâ¸öÎÊÌâ£¬µ«ÄÇ»áÖÆÔì¸üÑÏÖØµÄÎÊÌâ¡£µ± A ±»ÒÆ³ý£¬¿´ËÆÏµÍ³µ÷ÓÃ±äÎª B_open £¬Òò´ËËü²»ÔÙÖ¸Ïò A_open£¬Òò¶øÔÚËü±»´ÓÄÚ´æÒÆ³ýÇ°Ëü²»»á½«Ëü»Ö¸´³É sys_open¡£²»ÐÒµÄ£¬ B_open ½«ÈÔÈ»ÊÔÍ¼µ÷ÓÃ²»ÔÙ´æÔÚµÄ A_open £¬Òò´Ë¼´Ê¹²»ÒÆ³ý B ÏµÍ³Ò²»á±ÀÀ£¡£ £¨ÒëÕßÈÏÎªÎÞÂÛÊÇ·ñ½øÐÐ¼ì²é£¬ÏµÍ³¶¼»áÔÚA±»ÏÈÒÆ³ýµÄÇé¿öÏÂÔÚB»¹Î´ÒÆ³ýÊ±Ê¹ÏµÍ³±ÀÀ££¬ÒòÎª´Ó×÷Õß¼ÙÉèµÄÇé¿ö¿´£¬B»áµ÷ÓÃ¡°Ëü¡±ÈÏÎªµÄÔ­Ê¼µÄÏµÍ³µ÷ÓÃÀ´Íê³ÉÆä¹¦ÄÜ£¬ÔÚÃ»ÓÐ¼ì²éµÄÇé¿öÏÂ£¬BÒ»ÑùÔÚÆä´æ´¢Ô­ÏµÍ³µ÷ÓÃµÄ±äÁ¿ÖÐ´æ´¢AµÄº¯ÊýA_OPEN²¢½øÐÐµ÷ÓÃ¶øÊ¹ÏµÍ³±ÀÀ£¡£¼´Ê¹B²»µ÷ÓÃ¡°Ëü¡±ÈÏÎªµÄÔ­Ê¼µÄÏµÍ³µ÷ÓÃÀ´Íê³ÉÆä¹¦ÄÜ£¬ÏµÍ³Ò²»á±ÀÀ££¬ÒòÎªËüÎÞ·¨»Ö¸´ÏµÍ³µ÷ÓÃ¡££© 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--×èÈû½ø³Ì</title>
			<link>http://www.kingmx.com/article.php?id=11934</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[×èÈû½ø³Ì 
¡¡¡¡µ±Ä³ÈËÒªÇóÄãÊ²Ã´ÊÂ¶øÄãµ±Ê±²»ÄÜÊ±ÄãÔÚ×öÊ²Ã´£¿Èç¹ûÄãÊÇÈË¶øÄã±»±ðÈË´òÈÅ£¬ÄãÎ¨Ò»ÄÜËµµÄÊÇ£º¡®ÏÖÔÚ²»ÐÐ£¬ÎÒÕýÃ¦×ÅÄØ¡£ ×ß¿ª£¡¡¯¡£µ«ÊÇÈç¹ûÄãÊÇÒ»¸öÄÚºËÄ£¿é¶øÄã±»Ò»¸ö½ø³Ì´òÈÅ£¬ÄãÓÐÁíÍâµÄ¿ÉÄÜ¡£Äã¿ÉÒÔÈÃÄÇ¸ö½ø³ÌË¯ÃßÖ±µ½ÄãÄÜÎªËü·þÎñ¡£±Ï¾¹£¬ÄÚºË¿ÉÒÔÈÃ½ø³ÌË¯Ãß²¢ÇÒ¿ÉÒÔËæÊ±»½ÐÑËü£¨ÄÇ¾ÍÊÇÔÚµ¥CPUÉÏ³ÊÏÖÍ¬Ò»Ê±¼ä¶à¸ö½ø³ÌÔËÐÐµÄ·½Ê½£©¡£ 
¡¡¡¡Õâ¸öÄÚºËÄ£¿é¾ÍÊÇÕâÑùµÄÀý×Ó¡£ÄÇ¸öÎÄ¼þ£¨±»³ÆÎª /proc/sleep£©ÔÚÍ¬Ò»Ê±¼äÖ»ÄÜ±»Ò»¸ö½ø³Ì´ò¿ª¡£Èç¹ûÄÇ¸öÎÄ¼þÒÑ¾­´ò¿ªÁË£¬ÄÚºËÄ£¿éµ÷ÓÃmodule_interruptible_sleep_on£¨±£³ÖÒ»¸öÎÄ¼þ´ò¿ªµÄ×î¼òµ¥µÄ°ì·¨ÊÇÓÃ tail -f£©¡£Õâ¸öº¯Êý¸Ä±äÄÇ¸öÈÎÎñ£¨ÈÎºÎÈÎÎñÊÇ°üº¬ÓÐ¹Ø½ø³ÌµÄÐÅÏ¢ºÍÏµÍ³µ÷ÓÃµÄÄÚºËµÄÒ»ÖÖÊý¾Ý½á¹¹£©µÄ×´Ì¬ÎªTASK_INTERRUPTIBLE£¬ËüµÄÒâË¼ÊÇÈÎÎñ²»ÄÜÔËÐÐ£¬³ý·ÇËü±»»½ÐÑ¡£²¢ÇÒ¸ÃÈÎÎñ±»¼ÓÈë WaitQ-- µÈ´ý·ÃÎÊ¸ÃÎÄ¼þµÄÈÎÎñ¶ÓÁÐ¡£È»ºóº¯Êýµ÷ÓÃµ÷¶È³ÌÐò½øÐÐÉÏÏÂÎÄ×ª»»µ½Ò»¸ö»¹ÒªÊ¹ÓÃCPUµÄ²»Í¬µÄ½ø³Ì¡£ 
¡¡¡¡µ±Ò»¸ö½ø³ÌÓÃÍê¸ÃÎÄ¼þ£¬Ëü¹Ø±Õ¸ÃÎÄ¼þ£¬È»ºómodule_close ±»µ÷ÓÃ¡£ÄÇ¸öº¯Êý»½ÐÑ¶ÓÁÐÖÐµÄËùÓÐ½ø³Ì£¨Ã»ÓÐ»úÖÆÖ»»½ÐÑÆäÖÐµÄÒ»¸ö£©¡£È»ºóËü·µ»Ø¶ø¸Õ¸Õ¹Ø±Õ¸ÃÎÄ¼þµÄ½ø³Ì¿ÉÒÔ¼ÌÐøÔËÐÐ¡£µ÷¶È³ÌÐò¼°Ê±µØ¾ö¶¨ÄÇ¸ö½ø³ÌÒÑ¾­ÓÃÁË¹»¶àµÄÊ±¼ä¶ø½«CPUµÄ¿ØÖÆÈ¨½»¸øÁíÒ»¸ö½ø³Ì¡£×îºó£¬¶ÓÁÐÖÐµÄÄ³¸ö½ø³Ì»á»ñµÃµ÷¶È³ÌÐò¸³ÓèµÄCPUµÄ¿ØÖÆÈ¨¡£ËüÕýºÃÔÚ¶Ômodule_interruptible_sleep_on(ÕâÒâÎ¶×Å½ø³ÌÈÔÈ»ÔÚÄÚºËÄ£Ê½--Ö±µ½½ø³Ì±»¹ØÕÕ£¬Ëü·¢²¼ open ÏµÍ³µ÷ÓÃÈ»¶øÏµÍ³µ÷ÓÃ»¹Ã»ÓÐ·µ»Ø¡£½ø³Ì²»ÖªµÀ±ðÈËÔÚËü·¢²¼µ÷ÓÃºÍËü·µ»ØÖ®Ç°µÄ´ó²¿·ÖÊ±¼äÄÚÊ¹ÓÃCPU)µÄµ÷ÓÃºó¿ªÊ¼¡£È»ºóËüÄÜ¼ÌÐøÉèÖÃÒ»¸öÈ«¾Ö±äÁ¿ÒÔ¸æËßËùÓÐÆäËû½ø³Ì¸ÃÎÄ¼þÈÔÈ»´ò¿ª£¬ËüÃÇ½«¼ÌÐøËüÃÇµÈ´ýµÄÉú»î¡£µ±ÁíÒ»¸ö½ø³ÌµÃµ½CPUÊ±¼äÆ¬£¬ËüÃÇ½«¿´µ½ÄÇ¸öÈ«¾Ö±äÁ¿¶ø¼ÌÐøÈ¥Ë¯Ãß¡£ 
¡¡¡¡ÎªÁËÊ¹ÎÒÃÇµÄÉú»î¸üÓÐÈ¤£¬ module_close Ã»ÓÐ»½ÐÑµÈ´ý·ÃÎÊ¸ÃÎÄ¼þµÄ½ø³ÌµÄÂ¢¶ÏÈ¨¡£Ò»¸öÐÅºÅ£¬ÀýÈçCtrl-C £¨SIGINT£©Ò²¿ÉÒÔ»½ÐÑÒ»¸ö½ø³Ì(ÕâÊÇÒòÎªÎÒÃÇÊ¹ÓÃ module_interruptible_sleep_on¡£ÎÒÃÇ²»ÄÜÊ¹ÓÃmodule_sleep_on ×÷Îª´úÌæ£¬µ«ÄÇ½«µ¼ÖÂÄÇÐ©ËûÃÇ¿ØÖÆµÄ¼ÆËã»ú±»ºöÂÔµÄÓÃ»§µÄ¼«¶ÈµÄ·ßÅ­)¡£ÔÚÄÇÖÖÇé¿öÏÂ£¬ÎÒÃÇÏëÁ¢¼´ÓÃ -EINTR ·µ»Ø¡£ÕâÊÇºÜÖØÒªµÄ£¬ÀýÈçÓÃ»§Òò´Ë¿ÉÒÔÔÚ½ø³ÌÊÕµ½¸ÃÎÄ¼þÇ°½«ËüÉ±ËÀ¡£ 
¡¡¡¡»¹ÓÐÒ»µãÐèÒª¼Ç×¡¡£ÓÐÊ±ºò½ø³Ì²»ÏëË¯Ãß£¬ËüÃÇÏëÒªÃ´Á¢¼´µÃµ½ËüÃÇÐèÒªµÄÒªÃ´±»¸æÖªËü²»ÄÜÍê³É¡£µ±ÎÄ¼þ´ò¿ªÊ±ÕâÀà½ø³ÌÊ¹ÓÃ O_NONBLOCK ±êÖ¾¡£ÀýÈçµ±ÎÄ¼þ´ò¿ªÊ±£¬ÄÚºË±»¼ÙÉè´Ó×èÈû²Ù×÷ÖÐ·µ»Ø´íÎó´úÂë-EAGAIN×÷Îª»ØÓ¦¡£ÔÚÕâÕÂµÄÔ´Ä¿Â¼ÖÐÓÐµÄ³ÌÐò cat_noblock ÄÜÓÃO_NONBLOCK´ò¿ªÎÄ¼þ¡£ 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--Ìæ´úprintkÏµÁÐ</title>
			<link>http://www.kingmx.com/article.php?id=11935</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[´úÌæ printk 
¡¡¡¡ÔÚ±¾Êé¿ªÊ¼µÄÊ±ºò£¬ÎÒËµ¹ý X ºÍÄÚºËÄ£¿é±à³Ì²»ÄÜ»ìºÏ¡£ÔÚ¿ª·¢ÄÚºËÄ£¿éÊ±ÄÇÊÇ¶ÔµÄ£¬µ«ÔÚÊµ¼ÊÊ¹ÓÃÖÐÄãÏë¿ÉÒÔÏòÈÎºÎÏòÄ£¿é·¢ËÍÃüÁîµÄÖÕ¶Ë£¨Teletype, ×î³õÊÇÓÃÓÚºÍUnixÏµÍ³¹µÍ¨µÄ¼üÅÌºÍ´òÓ¡»úµÄ×éºÏ£¬¶ø½ñÌìËüÊÇÓÃÓÚUnix³ÌÐòµÄÎÄ±¾Á÷µÄ³éÏó£¬ÎÞÂÛËüÊÇÒ»¸öÎïÀíµÄÖÕ¶Ë¡¢XÏÔÊ¾Æ÷ÉÏµÄ xterm »¹ÊÇÓÃtelnet µÄÍøÂçÁ¬½Ó£¬µÈµÈ¡££©·¢ËÍÏûÏ¢¡£Õâ¶ÔÔÚÄÚºËÄ£¿é±»ÊÍ·ÅºóÊ¶±ð´íÎóÊÇºÜÖØÒªµÄ£¬ÒòÎªËü½«±»ËùÓÐÄ£¿éÊ¹ÓÃ¡£ 
¡¡¡¡ÊµÏÖÕâ¸öµÄÒ»¸ö°ì·¨ÊÇÊ¹ÓÃÖ¸Ïòµ±Ç°ÔËÐÐ×÷ÒµµÄÖ¸Õë currentµÃµ½µ±Ç°×÷ÒµµÄÖÕ¶Ë½á¹¹¡£È»ºóÎÒÃÇÔÚÄÇ¸öÖÕ¶Ë½á¹¹ÀïÃæÕÒÖ¸Ïò×Ö·û´®Ð´º¯ÊýµÄÖ¸Õë£¬ÎÒÃÇ¿ÉÒÔÓÃËüÏòÖÕ¶ËÐ´×Ö·û´®¡£ 
·¶Àý printk.c 
/* printk.c - ÏòÄãÕýÔÚÔËÐÐµÄÖÕ¶ËÊä³öÎÄ±¾£¬ÎÞÂÛËüÊÇ·ñÍ¨¹ý X11, telnet, µÈµÈ¡£ */
/* Copyright (C) 1998 by Ori Pomerantz */
/* ±ØÒªÍ·ÎÄ¼þ */
/* ±ê×¼Í·ÎÄ¼þ */
#include /* ÄÚºË¹¤×÷ */
#include /* Ã÷È·Ö¸¶¨ÊÇÄ£¿é */
/* ´¦Àí CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include 
#endif 
/* ±ØÒªµÄ */
#include /* ÎªÁË current */
#include /* ÎªÁËÖÕ¶ËÉùÃ÷ */
/* Ïòµ±Ç°×÷ÒµÊ¹ÓÃµÄÖÕ¶Ë´òÓ¡×Ö·û´® */
void print_string(char *str)
{
struct tty_struct *my_tty;
/* µ±Ç°×÷ÒµÖÕ¶Ë */
my_tty = current-&gt;tty;
/* Èç¹û my_tty Îª NULLÔòÒâÎ¶×Åµ±Ç°×÷ÓÃÃ»ÓÐÄã¿ÉÒÔ´òÓ¡µÄÖÕ¶Ë¡£
* £¨ÕâÊÇ¿ÉÄÜµÄ£¬ÀýÈçËüÊÇÒ»¸öÊØ»¤½ø³Ì£©
* ÔÚÕâÖÐÇé¿öÏÂÎÒÃÇ²»ÄÜ×öÈÎºÎÊÂ¡£ */ 
if (my_tty != NULL) { 
/* my_tty-&gt;driver ÊÇ°üº¬ÖÕ¶Ëº¯ÊýµÄ½á¹¹£¬ËüÃÇÖÐµÄÒ»¸ö£¨Ð´£©ÓÃÓÚÏòÖÕ¶ËÐ´×Ö·û´®¡£
* Ëü¿ÉÒÔÓÃÓÚ´ÓÓÃ»§ÄÚ´æ¶Î»òÄÚºËÄÚ´æ¶ÎÈ¡×Ö·û´®¡£
*
* º¯ÊýµÄµÚÒ»¸ö²ÎÊýÊÇÒªÐ´ÏòµÄÖÕ¶Ë£¬ÒòÎªÍ¬Ò»º¯ÊýÍ¨³£ÓÃÓÚËùÓÐµÄÊôÄ³ÖÖÀàÐÍµÄÖÕ¶Ë¡£
* µÚ¶þ¸ö²ÎÊý¿ØÖÆÊÇ´ÓÄÚºËÄÚ´æ¶Î£¨false,0£©»¹ÊÇ´ÓÓÃ»§ÄÚ´æ¶Î£¨true,·ÇÁã£©½ÓÊÕ×Ö·û´®¡£
* µÚÈý¸ö²ÎÊýÊÇÖ¸Ïò×Ö·û´®µÄÖ¸Õë£¬µÚËÄ¸öÊÇ×Ö·û´®µÄ³¤¶È¡£
*/
(*(my_tty-&gt;driver).write)(
my_tty, /* ÖÕ¶Ë×Ô¼º */
0, /* ÎÒÃÇ²»´ÓÓÃ»§¿Õ¼äÈ¡×Ö·û´® */
str, /* ×Ö·û´® */
strlen(str)); /* ³¤¶È */
/* ÖÕ¶ËÊÇ×î³õµÄÓ²¼þÉè±¸£¬Ëü£¨Í¨³££©ÑÏ¸ñµÄ¼á³Ö ASCII ±ê×¼¡£
* ¸ù¾Ý ASCII£¬»»ÐÐÐèÒªÁ½¸ö×Ö·û£¬»Ø³µºÍ×ßÐÐ¡£ÁíÒ»·½Ãæ£¬ÔÚUnix ÖÐ£¬
* ASCII ×ßÐÐ·ûÓÃÓÚÕâÁ½¸öÄ¿µÄ-Òò´ËÎÒÃÇ²»ÄÜ½ö½öÓÃ /n£¬ÒòÎªËüÃ»ÓÐ»Ø³µ£¬
* ÏÂÒ»ÐÐ½«ÔÚÉÏÃæÄÇÐÐºóµÄ×ßÐÐ·ûµÄÓÒ±ßµÄÄÇÁÐ¿ªÊ¼¶ø·ÇÐÐÊ×¡£
*
* Ë³±ãËµÒ»ÏÂ£¬Õâ¾ÍÊÇÎªÊ²Ã´ Unix ºÍ WindowsµÄÎÄ±¾ÎÄ¼þ²»Í¬µÄÔ­Òò¡£ 
* ÔÚ CP/M ºÍËüµÄÅÉÉú²úÆ·£¬ÀýÈç MS-DOS ºÍ Windows£¬ ASCII ±»ÑÏ¸ñµÄ¼á³Ö£¬Òò´Ë
* ÐÂÐÐÐèÒª×ßÐÐºÍ»Ø³µ¡£
*/
(*(my_tty-&gt;driver).write)(
my_tty, 
0,
"/015/012",
2);
}
}
/* ³õÊ¼»¯ºÍÇå³ýÄ£¿é ****************** */
/* ³õÊ¼»¯Ä£¿é-µÇ¼Ç proc ÎÄ¼þ */
int init_module()
{
print_string("Module Inserted");
return 0;
}
/* Çå³ý - ´Ó/procÖÐ×¢ÏúÎÒÃÇµÄÎÄ¼þ */
void cleanup_module()
{
print_string("Module Removed");
}]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--ÌæÈÎÎñµ÷¶È</title>
			<link>http://www.kingmx.com/article.php?id=11936</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ÈÎÎñµ÷¶È 
¡¡¡¡³£³£µÄ£¬ÎÒÃÇÓÐ¡®¼ÒÎñ¹ÜÀí¡¯µÄÈÎÎñÐèÒªÔÚÄ³¸öÊ±¼ä×ö»òÕßÅ¼¶û¾­³£Èç´Ë¡£Èç¹ûÈÎÎñÓÉ½ø³ÌÍê³É£¬ÎÒÃÇ¿ÉÒÔ½«Ëü·ÅÔÚ crontab ÎÄ¼þÖÐ¡£Èç¹ûÈÎÎñÓÉÄÚºËÄ£¿éÍê³É£¬ÎÒÃÇÓÐÁ½ÖÖ¿ÉÄÜ¡£µÚÒ»¸öÊÇÔÚ crontab ÎÄ¼þÖÐ·ÅÖÃÒ»¸öÔÚ±ØÒªµÄÊ±ºòÍ¨¹ýÏµÍ³µ÷ÓÃ»½ÐÑÄ£¿éµÄ½ø³Ì£¬ÀýÈçÍ¨¹ý´ò¿ªÎÄ¼þ¡£ÕâÊÇ·Ç³£µÍÐ§µÄ£¬È»¶ø--ÎÒÃÇÔËÐÐÒ»¸ö²»ÔÚ crontab ÖÐµÄÐÂ½ø³Ì£¬ ¶ÁÒ»¸öÐÂµÄ¿ÉÖ´ÐÐµÄ½ø³Ìµ½ÄÚ´æ£¬¶øËùÓÐÕâÐ©Ö»ÊÇ»½ÐÑÔÚÄÚ´æÖÐµÄÄÚºËÄ£¿é¡£ 
¡¡¡¡Ìæ´úµÄ£¬ÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ö¶ÔÃ¿¸ö¶¨Ê±Æ÷ÖÐ¶Ï±»µ÷ÓÃÒ»´ÎµÄº¯Êý¡£ÎÒÃÇµÄ°ì·¨ÊÇ´´½¨Ò»¸ö°üº¬ÔÚ tq_struct½á¹¹ÖÐµÄÈÎÎñ£¬¶ø¸Ã½á¹¹°üº¬¸Ãº¯ÊýµÄÖ¸Õë¡£È»ºóÎÒÃÇÊ¹ÓÃ queue_task ½«ÄÇ¸öÈÎÎñ·ÅÖÃÔÚ±»³ÆÎªtq_timer µÄÈÎÎñÁÐ±íÖÐ£¬¸ÃÁÐ±íÊÇÔÚÏÂÒ»¸ö¶¨Ê±Æ÷ÖÐ¶Ï½«±»Ö´ÐÐµÄÈÎÎñµÄÁÐ±í¡£ÒòÎªÎÒÃÇÎÒÃÇÏë¸Ãº¯ÊýÔÚÏÂÒ»´Î¶¨Ê±Æ÷ÖÐ¶ÏÊ±¼ÌÐø±»Ö´ÐÐ£¬ÎÒÃÇÐèÒªÔÚËü±»µ÷ÓÃºó½«Ëü·Å»Ø tq_timer¡£ 
¡¡¡¡Õâ»¹ÓÐÒ»µãÎÒÃÇÐèÒª¼Ç×¡µÄ¡£µ±Ò»¸öÄ£¿é±» rmmod ÒÆ³ýÊ±£¬ËüµÄÒýÓÃ¼ÆÊýÆ÷Ê×ÏÈ±»¼ì²é£¬Èç¹ûËüÎª0£¬module_cleanup ½«±»µ÷ÓÃ¡£È»ºóÄ£¿éÁ¬Í¬ËüµÄËùÓÐº¯Êý±»´ÓÄÚ´æÖÐÇå³ý¡£Ã»ÓÐÈËÈ¥¼ì²é¿´ÔÚ¶¨Ê±Æ÷ÈÎÎñÁÐ±íÖÐÊÇ·ñÅöÇÉ°üº¬Ò»¸öÕâÑùµÄ²»ÔÙ¿É¼ûµÄº¯ÊýµÄÖ¸Õë¡£Ò»¶ÎÊ±¼äºó£¨´Ó¼ÆËã»úµÄ¹Ûµã¿´£¬¶ø´ÓÈËµÄ¹Ûµã¿´ËüÊ²Ã´Ò²²»ÊÇ£¬ËüÉÙÓÚ°Ù·ÖÖ®Ò»Ãë£©£¬ÄÚºËÓÐÁËÒ»¸ö¶¨Ê±Æ÷ÖÐ¶Ï²¢ÊÔÍ¼È¥µ÷ÓÃÈÎÎñÁÐ±íÖÐµÄº¯Êý¡£²»ÐÒµÄ£¬ÄÇ¸öº¯Êý²»ÔÚÄÇ¶ù¡£ÔÚ´ó¶àÇé¿öÏÂËü¸Õ²ÅËùÔÚÄÚ´æÒ³Ã»ÓÐ±»Ê¹ÓÃ£¬¶øÄã»áµÃµ½Ò»¸öÄÑ¿´µÄ´íÎóÏûÏ¢¡£µ«ÊÇÈç¹û±ðµÄÄ³Ð©´úÂëÏÖÔÚÎ»ÓÚÍ¬Ò»¸öÄÚ´æÎ»ÖÃ£¬ÊÂÇé»á±äµÃ ·Ç³£ ÄÑ¿´¡£²»ÐÒµÄ£¬ÎÒÃÇÃ»ÓÐÒ»¸ö¼òµ¥µÄ°ì·¨½«Ò»¸öÈÎÎñ´ÓÈÎÎñÁÐ±íÖÐ×¢Ïú¡£ 
¡¡¡¡¼ÈÈ» cleanup_module ²»ÄÜ·µ»Ø´íÎó´úÂë£¨ËüÊÇÒ»¸övoidº¯Êý£©£¬½â¾öµÄ°ì·¨ÊÇ¸ù±¾²»ÈÃËü·µ»Ø¡£Ìæ´úµÄ£¬Ëüµ÷ÓÃsleep_on »ò module_sleep_on£¨ËûÃÇÊµ¼ÊÉÏÊÇÏàÍ¬µÄ¡£ £©Ê¹ rmmod ½ø³ÌË¯Ãß¡£ÔÚ´ËÖ®Ç°£¬ËüÍ¨¹ýÉèÖÃÒ»¸öÈ«¾Ö±äÁ¿Í¨ÖªÔÚ¶¨Ê±Æ÷ÖÐ¶Ï½«±»µ÷ÓÃµÄº¯ÊýÍ£Ö¹Á¬½Ó×Ô¼º¡£È»ºó£¬ÔÚÏÂÒ»´Î¶¨Ê±Æ÷ÖÐ¶Ï£¬ rmmod½ø³Ì±»»½ÐÑ£¬µ±ÎÒÃÇµÄº¯Êý²»ÔÙÔÚÄÇ¸ö¶ÓÁÐÖÐÊ±ÒÆ³ýÄÇ¸öÄ£¿é¾ÍÊÇ°²È«µÄÁË¡£ 
¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--ÖÐ¶Ï´¦Àí³ÌÐò</title>
			<link>http://www.kingmx.com/article.php?id=11937</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ÖÐ¶Ï´¦Àí³ÌÐò 
¡¡¡¡³ýÁËÉÏÒ»ÕÂÍâ£¬Æù½ñÎªÖ¹£¬ÎÒÃÇÔÚÄÚºËÖÐËù×öµÄÃ¿¼þÊÂ¶¼ÊÇ×÷Îª¶ÔÒ»¸ö½ø³ÌÇëÇóµÄ»ØÓ¦£¬ÒªÃ´Í¨¹ý´¦ÀíÌØÊâµÄÎÄ¼þ£¬·¢ËÍ ioctl£¬ÒªÃ´·¢³öÏµÍ³µ÷ÓÃ¡£µ«ÊÇÄÚºËµÄ¹¤×÷²¢²»½ö½öÊÇ»ØÓ¦½ø³ÌÇëÇó¡£ÁíÒ»¸öÃ¿¸ö×Ö½Ú¶¼ºÜÖØÒªµÄ¹¤×÷ÊÇºÍÁ¬½Óµ½»úÆ÷µÄÓ²¼þ¶Ô»°¡£ 
ÔÚCPUºÍ¼ÆËã»úµÄÆäËûÉè±¸Ö®¼äÓÐÁ½ÖÖ½»»¥×÷ÓÃ¡£µÚÒ»ÖÖÊÇµ±CPU¶ÔÓ²¼þ·¢²¼ÃüÁîÊ±£¬ÁíÒ»ÖÖÊÇµ±Ó²¼þÒª¸æËßCPUÊ²Ã´ÊÂÇéÊ±¡£µÚ¶þÖÖ£¬±»³ÆÎªÖÐ¶Ï£¬ÊµÏÖÆðÀ´ÊÇºÜÀ§ÄÑµÄ£¬ÒòÎªËü²»µÃ²»´¦ÀíÊ²Ã´Ê±¼äÓ²¼þÊÇ·½±ãµÄ¶ø²»ÊÇCPU¡£µäÐÍµÄÓ²¼þÉè±¸Ö»ÓÐºÜÉÙµÄÄÚ´æ£¬Èç¹ûµ±ÐÅÏ¢¿É¼ûµÄÊ±ºòÄã²»¶ÁÈ¡µÄ»°Ëü¾Í»áÏûÊ§¡£ 
¡¡¡¡ÔÚ Linux ÏÂ£¬Ó²¼þÖÐ¶Ï±»³ÆÎª IRQs £ÛInterrupt Requests £¨ÕâÊÇLinuxÆðÔ´µÄIntel ¼Ü¹¹ÉÏµÄ±ê×¼ÊõÓï¡£ £©µÄËõÐ´£Ý¡£ÓÐÁ½ÖÖ IRQs£¬¶ÌµÄºÍ³¤µÄ¡£Ò»¸ö¶ÌµÄ IRQ Ô¤ÆÚÕ¼ÓÃ ·Ç³£¶ÌµÄÒ»¶ÎÊ±¼ä£¬ÔÚÄÇÆÚ¼ä£¬»úÆ÷µÄÊ£Óà²¿·Ö±»×èÈû£¬Ã»ÓÐÆäËûµÄÖÐ¶Ï½«±»´¦Àí¡£³¤µÄ IRQ Õ¼ÓÃµÄÊ±¼ä³¤Ð©£¬ÔÚÄÇÆÚ¼äÆäËûÖÐ¶ÏÓÐ¿ÉÄÜ·¢Éú£¨µ«²»ÄÜÊÇÀ´×ÔÍ¬Ò»Éè±¸£©¡£Ö»ÒªÊÇ¿ÉÄÜµÄ£¬ÉùÃ÷Ò»¸ö³¤ÖÐ¶ÏÊÇ½ÏºÃµÄ¡£ 
¡¡¡¡µ± CPU ½ÓÊÕµ½Ò»¸öÖÐ¶Ï£¬ËüÍ£Ö¹ËüÕýÔÚ×öµÄÈÎºÎÊÂÇé£¨³ý·ÇËüÕýÔÚ´¦ÀíÒ»¸ö¸üÖØÒªµÄÖÐ¶Ï£¬ÔÚÄÇÖÖÇé¿öÏÂ£¬Ëü½«´¦ÀíÍêÄÇ¸öÖÐ¶Ïºó²ÅÀ´´¦ÀíÏÖÔÚµÄÕâ¸ö£©£¬ÔÚ¶ÑÕ»ÖÐ±£´æÄ³Ð©²ÎÊý²¢µ÷ÓÃÖÐ¶Ï´¦Àí³ÌÐò¡£ÕâÒâÎ¶×ÅÔÚÖÐ¶Ï´¦Àí³ÌÐò×ÔÉíÖÐÓÐÐ©¶«Î÷ÊÇ²»ÄÜÔÊÐíµÄ£¬ÒòÎªÏµÍ³´¦ÓÚÒ»ÖÖÎ´ÖªµÄ×´Ì¬¡£½â¾öµÄ°ì·¨ÊÇÖÐ¶Ï´¦Àí³ÌÐòÂíÉÏ×öÍêÐèÒª×öµÄ£¬Í¨³£ÊÇ´ÓÓ²¼þÀïÃæ¶ÁÊ²Ã´»òÏòÓ²¼þ·¢ËÍÊ²Ã´È»ºó°²ÅÅ´¦ÀíÉÔºóµÄÐÂÐÅÏ¢£¨Õâ±»³ÆÎª¡®bottom half¡¯£©²¢·µ»Ø¡£È»ºóÄÚºË±£Ö¤Ö»Òª¿ÉÄÜ¾Íµ÷ÓÃbottom half --µ±ÕâÔÚÔËÐÐ£¬ÄÚºËÄ£¿éÖÐÔÊÐí×öµÄËùÓÐÊÂÇé½«±»ÔÊÐí¡£ 
¡¡¡¡ÊµÏÖÕâ¸ö°ì·¨ÊÇµ±½ÓÊÕµ½Ïà¹ØµÄIRQ£¨ÔÚ Intel Æ½Ì¨ÏÂÓÐ16¸ö£©Ê±È¥µ÷ÓÃ request_irq ÒÔÊ¹ÖÐ¶Ï´¦Àí³ÌÐò±»µ÷ÓÃ¡£ Õâ¸öº¯Êý½ÓÊÕIRQ ºÅ£¬º¯ÊýÃû£¬±êÖ¾£¬ /proc/interrupts ÖÐµÄÃû×Ö¼°Ò»¸ö´«ËÍ¸øÖÐ¶Ï´¦Àí³ÌÐòµÄ²ÎÊý×÷ÎªÆä²ÎÊý¡£±êÖ¾¿ÉÒÔ°üÀ¨ SA_SHIRQ ÒÔÖ¸Ã÷ÄãÔ¸ÒâºÍÆäËûµÄÖÐ¶Ï´¦Àí³ÌÐò·ÖÏíÄÇ¸öIRQ£¨Í¨³£ÒòÎª¼¸¸öÓ²¼þÉè±¸ÔÚÍ¬Ò»IRQ£©ÒÔ¼° SA_INTERRUPT ÒÔÖ¸Ã÷ÕâÊÇÒ»¸ö¿ìËÙÖÐ¶Ï¡£Õâ¸öº¯ÊýÖ»ÔÚÄÇ¸öIRQÉÏÃ»ÓÐ´¦Àí³ÌÐòµÄÇé¿öÏÂ³É¹¦£¬»òÕßÄãÔ¸ÒâÁ½Õß¹²Ïí¡£ 
¡¡¡¡È»ºó´ÓÖÐ¶Ï´¦Àí³ÌÐòÖÐÎÒÃÇºÍÓ²¼þÍ¨ÐÅ£¬ÁªºÏtq_immediateÊ¹ÓÃ queue_task_irq ºÍ mark_bh(BH_IMMEDIATE) µ÷¶È bottom half¡£ÎÒÃÇÔÚ 2.0 °æÖÐ²»Ê¹ÓÃ±ê×¼µÄqueue_task µÄÔ­ÒòÊÇÖÐ¶ÏÓÐ¿ÉÄÜÔÚÆäËûÈËµÄ queue_task£¨queue_task_irq ´ÓÕâ±»Ò»¸öÈ«¾ÖËø±£»¤ -- ÔÚ 2.2 °æÖÐÃ»ÓÐqueue_task_irq ¶ø queue_task ±»Ò»¸öËø±£»¤¡£ £©ÖÐ·¢Éú¡£ÎÒÃÇÐèÒª mark_bh ÊÇÒòÎªLinux µÄÔçÆÚ°æ±¾Ö»ÄÜÓÐ32¸ö bottom half£¬¶øÏÖÔÚËüÃÇÖÐµÄÒ»¸ö£¨BH_IMMEDIATE£© ÓÃÓÚ»¹Ã»ÓÐµÃµ½bottom halfÈë¿ÚµÄÇý¶¯³ÌÐòµÄbottom halfÁ¬½Ó±í¡£ 

¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³Ì--¶Ô³Æ¶à´¦Àí</title>
			<link>http://www.kingmx.com/article.php?id=11938</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[¶Ô³Æ¶à´¦Àí 
¡¡¡¡×î¼òµ¥µÄÌá¸ßÓ²¼þµÄÐÔÄÜµÄ°ì·¨ÊÇÔÚÖ÷°åÉÏ²åÉÏ¶à¸öCPU£¨ÔÄ¶ÁÊÇ×î±ãÒËµÄ·½·¨£©¡£ÒªÃ´ÈÃ²»Í¬µÄCPU×ö²»Í¬µÄ¹¤×÷£¨·Ç¶Ô³Æ¶à´¦Àí£©£¬ÒªÃ´ÈÃËüÃÇ²¢ÐÐÔËÐÐÍ¬Ò»¹¤×÷£¨¶Ô³Æ¶à´¦Àí£¬ËõÐ´ÎªSMP£©¡£ÓÐÐ§µÄÊ¹ÓÃ·Ç¶Ô³Æ¶à´¦ÀíÐèÒª×¨ÃÅÑÐ¾¿¼ÆËã»ú½«Òª×öµÄÈÎÎñµÄÖªÊ¶£¬¶øÕâÊÇÔÚÀýÈçLINUXÕâÑùµÄÍ¨ÓÃ²Ù×÷ÏµÍ³ÉÏ²»¿ÉÄÜµÄ¡£ÁíÒ»·½Ãæ£¬¶Ô³Æ¶à´¦ÀíÊµÏÖÆðÀ´Ïà¶Ô¼òµ¥¡£ Ïà¶Ô¼òµ¥£¬ÎÒµÄÈ·ÇÐµÄÒâË¼ÊÇ--²»ÊÇÕæµÄ¼òµ¥¡£ÔÚÒ»¸ö ¶Ô³Æ¶à´¦ÀíµÄ»·¾³ÖÐ£¬¶à¸öCPU·ÖÏíÍ¬Ò»ÄÚ´æ£¬½á¹ûÊÇÔËÐÐÓÚÒ»¸öCPUÉÏµÄ´úÂë¿ÉÒÔÓ°ÏìÁíÒ»¸öÊ¹ÓÃµÄÄÚ´æ¡£Äã²»ÔÙÄÜ±£Ö¤ÄãÔÚÇ°Ãæ¼¸ÐÐÖÐÉèÖÃµÄÄ³¸ö±äÁ¿µÄÖµ±£³Ö×ÅÏàÍ¬µÄÖµ--ÁíÒ»¸öCPU¿ÉÄÜÔÚÄãÃ»ÓÐ¿´¼ûÊ±ÐÞ¸ÄÁËËü¡£Ã÷ÏÔµÄ£¬¶Ô³ÌÐòµÄÏñÕâÑùµÄÎÊÌâÊÇ²»ÄÜÈÌÊÜµÄ¡£ 
¡¡¡¡ÔÚ½ø³Ì±à³ÌÖÐÕâÍ¨³£²»³ÉÎªÒ»¸öÎÊÌâ£¬ÒòÎªÒ»¸ö½ø³ÌÍ¨³£ÔÚÍ¬Ò»Ê±¼ä(ÀýÍâÊÇÏß³Ì£¬ËüÃÇ¿ÉÒÔÍ¬Ê±ÔËÐÐÓÚ¼¸¸öCPU¡£)Ö»ÔËÐÐÓÚÒ»¸öCPUÉÏ¡£ÁíÒ»·½Ãæ£¬ÄÚºË¿ÉÄÜ±»ÔËÐÐÓÚ²»Í¬µÄCPUÉÏµÄ²»Í¬½ø³Ìµ÷ÓÃ¡£SPIN 
¡¡¡¡ÔÚ 2.0.x°æÖÐ£¬Õâ²»ÊÇÎÊÌâ£¬ÒòÎªÕû¸öÄÚºËÔÚÒ»¸ö´ó×ÔÐýËøÀïÃæ¡£ÕâÒâÎ¶×Åµ±Ò»¸öCPUÔÚÄÚºËÀï£¬¶øÁíÒ»¸öCPUÀýÈçÒòÎªÏµÍ³µ÷ÓÃ¶øÒª½øÈëÄÚºË£¬Ëü²»µÃ²»µÃµ½µÚÒ»¸öCPUÍê³ÉËüµÄ¹¤×÷¡£ÕâÊ¹LINUXµÄSMP°²È«(ÒâË¼ÊÇºÍSMPÊ¹ÓÃËüÊÇ°²È«µÄ¡£ )£¬µ«ÑÏÖØµÄµÍÐ§¡£ 
¡¡¡¡ÔÚ 2.2.x °æÖÐ£¬¼¸¸öCPUÍ¬Ê±ÔÚÄÚºËÖÐ¡£ÕâÊÇÒ»Ð©Ä£¿é±àÐ´ÕßÓ¦¸Ã×¢ÒâµÄ¡£ÎÒµÃµ½Ä³ÈË¸øÎÒµÄÊ¹ÓÃÒ»¸öSMPµ¥ÔªµÄÈ¨Àû£¬Òò´ËÕâ±¾ÊéµÄÏÂÒ»°æÓÐÏ£Íû°üº¬¸ü¶àµÄÐÅÏ¢¡£ 
³£¼ûµÄÏÝÚå 
¡¡¡¡ÔÚÎÒ°ÑÄãËÍÍùÕâ¸öÊÀ½çºÍ±àÐ´ÄÚºËÄ£¿éÍâÖ®Ç°£¬ÓÐÒ»Ð©ÊÂÇéÎÒÐèÒª¾¯¸æÄã¡£Èç¹ûÎÒÃ»ÄÜ¾¯¸æÄã¶øÊ¹Ä³Ð©»µµÄÊÂÇé·¢ÉúµÄ»°£¬ÇëÏòÎÒ±¨¸æÄÇ¸öÎÊÌâ²¢ÏòÎÒË÷ÒªÄãÎª´ËÊé¶ø¸¶¸øÎÒµÄÈ«¶î¿îÏî¡£ 
¡¡¡¡1. Ê¹ÓÃ±ê×¼¿âÎÄ¼þ Äã²»ÄÜÄÇÑù×ö¡£ÔÚÄÚºËÄ£¿éÖÐÄãÖ»ÄÜÊ¹ÓÃÄÚºËµÄº¯Êý£¬ËüÃÇÔÚ /proc/ksymsÖÐ¿ÉÒÔ¿´µ½¡£ 
¡¡¡¡2. ¹Ø±ÕÖÐ¶Ï ÄãÒ²ÐíÐèÒª¶ÌÔÝµÄ¹Ø±ÕÖÐ¶Ï¶øÄÇ²»»áÓÐÊ²Ã´ÎÊÌâ£¬µ«ÊÇÈç¹ûÄã²»ÄÜËæºó´ò¿ªËüÃÇ£¬ÄãµÄÏµÍ³½«±»Õ³×¡¶øÄã²»µÃ²»¸øËü¶Ïµç¡£ 
¡¡¡¡3. ½«Í·Õ³ÔÚ¾Þ´óµÄÊ³Èâ¶¯ÎïÀï ÎÒ»òÐí»¹Ã»ÓÐ¾¯¸æÄãÕâ¸ö£¬µ«ÎÒÎÞÂÛÈçºÎ»á£¬Ö»ÔÚÍòÒ»µÄÇé¿öÏÂ¡£ 

¹²4Ò³¡£ 1 2 3 4 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÄÚºËÄ£¿é±à³ÌÖ¸ÄÏ ¼ò½é</title>
			<link>http://www.kingmx.com/article.php?id=11939</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[ÔÚ´ËÒªÌØ±ð¸ÐÐ»ÎÒÃÇµÄ¸öÈËºÏ×÷ÍøÕ¾Linux×ÔÓÉ¿Õ¼äÕ¾³¤£ºÐ¡ÒÏÎªÎÒÃÇÌá¹©¡£ 
ÉêÃ÷£º´ËÏµÁÐÔ­×÷ÕßOri Pomerantz ·­Òë£ºcherami 
¼ò½é 
¡¡¡¡ÏÖÔÚ£¬ÄãÏëÐ´ÄÚºËÄ£¿é¡£ÄãÁË½âCÓïÑÔ²¢ÇÒÒÑ¾­Ð´¹ýÒ»Ð©ÆÕÍ¨µÄ³ÌÐò£¬ÏÖÔÚÄãÏë½Ó´¥ÕæÕýµÄ¶¯×÷ÔÚÄÄ¶ù£¬ÄÇ¸öµ¥Ò»µÄ·è¿ñµÄ¿ÉÒÔÉ¾³ýÕû¸öÎÄ¼þÏµÍ³µÄÖ¸Õë¼°ÄÚºË×ª´¢ÒâÎ¶×ÅÖØÐÂÆô¶¯ÔÚÄÄ¶ù¡£ 
¡¡¡¡ÄÇÃ´ºÃ°É£¬»¶Ó­À´µ½Õâ¸ö¾ãÀÖ²¿¡£ÎÒÔø¾­ÓÐÒ»¸ö·è¿ñµÄÖ¸ÕëÉ¾³ýÁËDOS (ÖµµÃÇìÐÒµÄÊÇ,ËüÏÖÔÚ´ú±í Dead Operating System)ÏÂµÄÒ»¸öÖØÒªµÄÄ¿Â¼,¶øÇÒÎÒ¿´²»³öÀ´ÎªÊ²Ã´ÔÚLinuxÏÂ»á¸ü°²È«¡£ 
¡¡¡¡¾¯¸æ: ÎÒÊÇÔÚÔËÐÐÓÚPentiumµÄ2.0.35 ºÍ 2.2.3 °æ±¾ÄÚºËµÄÏµÍ³ÏÂÐ´ÏÂÕâÐ©²¢¼ì²éÄÇÐ©³ÌÐòµÄ£¬¶ÔÓÚÆäÖÐµÄ´ó²¿·Ö£¬ËüÃÇÒ²»á¹¤×÷ÓÚÆäËûµÄCPUºÍÄÚºË°æ±¾ÏÂ£¬Ö»ÒªÄÚºËµÄ°æ±¾ÊÇ2.0.x »ò 2.2.x,µ«ÎÒ²»ÄÜ±£Ö¤ÈÎºÎÊÂ¡£Ò»¸öÀýÍâÊÇ11ÕÂ , ËüÃÇÖ»ÄÜ¹¤×÷ÓÚx86ÏµÍ³ÏÂ. 
Ë­Ó¦¸ÃÔÄ¶Á±¾Êé 
¡¡¡¡Õâ¸öÎÄµµÊÇÎªÄÇÐ©ÏëÐ´ÄÚºËÄ£¿éµÄÈË¶øÐ´µÄ¡£ËäÈ»ÎÒ»áÔÚ¼¸¸öµØ·½Ìá¼°ÔÚÄÚºËÖÐÊÂÇéÊÇÈçºÎÍê³ÉµÄ£¬µ«Õâ²»ÊÇÎÒµÄÄ¿µÄ¡£ÓÐ×ã¹»µÄºÃµÄ×ÊÁÏ»áÔÚÄÇ·½Ãæ×öµÄ¸üºÃ¡£ 
¡¡¡¡Õâ¸öÎÄµµÒ²ÊÇÎªÄÇÐ©ÖªµÀÈçºÎÐ´ÄÚºËÄ£¿éµ«»¹²»ÊÊÓ¦2.2°æÄÚºËµÄÈËÐ´µÄ.Èç¹ûÄãÊÇÕâÀàÈË£¬ÎÒ½¨ÒéÄã¿´¿´¸½Â¼ AÒÔÁË½âÎÒÔÚ¸üÐÂ·¶ÀýÊ±Óöµ½µÄËùÓÐµÄ²îÒì¡£ÄÇ¸öÁÐ±íÊÇ²»È«ÃæµÄµ«ÎÒÏëËü¸²¸ÇÁË´ó²¿·ÖµÄ»ù±¾¹¦ÄÜ²¢ÇÒ×ã¹»ÈÃÄã¿ªÊ¼ÐÂµÄ¹¤×÷¡£ 
¡¡¡¡ÄÚºËÊÇÒ»´ó¿é³ÌÐò£¬²¢ÇÒÎÒÏàÐÅ³ÌÐòÔ±Ó¦¸ÃÖÁÉÙ¶Á¶®Ò»Ð©ÄÚºËÔ´´úÂë¡£Ëµµ½Õâ£¬ÎÒÒ²ÏàÐÅÊ×ÏÈÊ¹ÓÃÏµÍ³È»ºóÎÊÎÊÌâµÄ¼ÛÖµ¡£µ±ÎÒÑ§Ï°Ò»ÖÖÐÂµÄ±à³ÌÓïÑÔµÄÊ±ºò£¬ÎÒ²»ÊÇ´Ó¶Á¿â´úÂë¿ªÊ¼µÄ£¬¶øÊÇÍ¨¹ýÐ´Ò»Ð©Ð¡µÄ`hello, world'³ÌÐò¿ªÊ¼µÄ¡£ÎÒ¿´²»³öÀ´ÔÚÄÚºËÉÏÓ¦¸ÃÓÐÊ²Ã´²»Í¬¡£ 
×¢Òâ·ç¸ñ 
¡¡¡¡ÎÒÏ²»¶ÔÚÎÒµÄÎÄµµ¼ÓÈë¾¡¿ÉÄÜ¶àµÄÐ¦»°¡£ÎÒÐ´ÕâÊÇÒòÎªÎÒÏ²»¶Ëü£¬²¢ÇÒÎÒ¼ÙÉèÄãÃÇÖÐµÄ¶àÊýÒ²¶ÁÕâÒ²ÊÇ»ùÓÚÍ¬ÑùµÄÔ­Òò¡£Èç¹ûÄã½ö½öÏë½Ó´¥ÕâÐ©£¬ÄÇÃ´ºöÂÔËùÓÐµÄÆÕÍ¨ÎÄ±¾¶øÈ¥¶ÁÔ´´úÂë¡£ÎÒ±£Ö¤ÎÒÒÑ¾­½«ËùÓÐµÄÖØÒªµÄÏ¸½Ú·ÅÔÚÁË×¢ÊÍÀïÃæ¡£ 

¹²2Ò³¡£ 1 2 8 :
]]></description>
		</item>
		<item>
			<title>LinuxÍøÂçÇý¶¯³ÌÐò±àÐ´(Ò»)</title>
			<link>http://www.kingmx.com/article.php?id=11940</link>
			<pubDate>2006-10-21</pubDate>
			<description><![CDATA[¡¡¡¡¹¤×÷ÐèÒªÐ´ÁËÎÒÃÇ¹«Ë¾Ò»¿éÍø¿¨µÄLinuxÇý¶¯³ÌÐò¡£¾­ÀúÒ»¸ö´ÓÎÞµ½ÓÐµÄ¹ý³Ì£¬Éî¸Ð¼¼Êõ½»Á÷µÄÖØÒª¡£Linux×÷ÎªÌôÕ½Î¢ÈíÂ¢¶ÏµÄÇ¿ÓÐÁ¦ÎäÆ÷£¬ÈÕÒæÊÜµ½´ó¼ÒµÄÏ²°®¡£ÕæÏ£ÍûËýÄÜÔÚÖÐ¹úÑ¸ËÙ³É³¤¡£°Ñ³ÌÐòÎÄµµÌù³öÀ´£¬Ï£ÍûºÍ´ó¼ÒÌ½ÌÖLinux¼¼ÊõºÍÓ¦ÓÃ£¬´Ù½øLinuxÔÚÖÐ¹úµÄÆÕ¼°¡£
¡¡¡¡±¾ÎÄ¿ÉËæÒâ×ªÔØ£¬µ«Çë²»ÒªÔÚÓ¯ÀûÐÔ³ö°æÎïÉÏ¿¯µÇ¡£

Ò».LinuxÏµÍ³Éè±¸Çý¶¯³ÌÐò¸ÅÊö
1.1 LinuxÉè±¸Çý¶¯³ÌÐò·ÖÀà
¡¡¡¡LinuxÉè±¸Çý¶¯³ÌÐòÔÚLinuxµÄÄÚºËÔ´´úÂëÖÐÕ¼ÓÐºÜ´óµÄ±ÈÀý£¬Ô´´úÂëµÄ³¤¶ÈÈÕÒæÔö¼Ó£¬Ö÷ÒªÊÇÇý¶¯³ÌÐòµÄÔö¼Ó¡£ÔÚLinuxÄÚºËµÄ²»¶ÏÉý¼¶¹ý³ÌÖÐ£¬Çý¶¯³ÌÐòµÄ½á¹¹»¹ÊÇÏà¶ÔÎÈ¶¨¡£ÔÚ2.0.xxµ½2.2.xxµÄ±ä¶¯Àï£¬Çý¶¯³ÌÐòµÄ±àÐ´×öÁËÒ»Ð©¸Ä±ä£¬µ«ÊÇ´Ó2.0.xxµÄÇý¶¯µ½2.2.xxµÄÒÆÖ²Ö»Ðè×öÉÙÁ¿µÄ¹¤×÷¡£
¡¡¡¡LinuxÏµÍ³µÄÉè±¸·ÖÎª×Ö·ûÉè±¸(char device)£¬¿éÉè±¸(block device)ºÍÍøÂçÉè±¸(network device)ÈýÖÖ¡£×Ö·ûÉè±¸ÊÇÖ¸´æÈ¡Ê±Ã»ÓÐ»º´æµÄÉè±¸¡£¿éÉè±¸µÄ¶ÁÐ´¶¼ÓÐ»º´æÀ´Ö§³Ö£¬²¢ÇÒ¿éÉè±¸±ØÐëÄÜ¹»Ëæ»ú´æÈ¡(random access)£¬×Ö·ûÉè±¸ÔòÃ»ÓÐÕâ¸öÒªÇó¡£µäÐÍµÄ×Ö·ûÉè±¸°üÀ¨Êó±ê£¬¼üÅÌ£¬´®ÐÐ¿ÚµÈ¡£¿éÉè±¸Ö÷Òª°üÀ¨Ó²ÅÌÈíÅÌÉè±¸£¬CD-ROMµÈ¡£Ò»¸öÎÄ¼þÏµÍ³Òª°²×°½øÈë²Ù×÷ÏµÍ³±ØÐëÔÚ¿éÉè±¸ÉÏ¡£
¡¡¡¡ÍøÂçÉè±¸ÔÚLinuxÀï×ö×¨ÃÅµÄ´¦Àí¡£LinuxµÄÍøÂçÏµÍ³Ö÷ÒªÊÇ»ùÓÚBSD unixµÄsocket»úÖÆ¡£ÔÚÏµÍ³ºÍÇý¶¯³ÌÐòÖ®¼ä¶¨ÒåÓÐ×¨ÃÅµÄÊý¾Ý½á¹¹(sk_buff)½øÐÐÊý¾ÝµÄ´«µÝ¡£ÏµÍ³ÀïÖ§³Ö¶Ô·¢ËÍÊý¾ÝºÍ½ÓÊÕÊý¾ÝµÄ»º´æ£¬Ìá¹©Á÷Á¿¿ØÖÆ»úÖÆ£¬Ìá¹©¶Ô¶àÐ­ÒéµÄÖ§³Ö¡£
1.2 ±àÐ´Çý¶¯³ÌÐòµÄÒ»Ð©»ù±¾¸ÅÄî
¡¡¡¡ÎÞÂÛÊÇÊ²Ã´²Ù×÷ÏµÍ³µÄÇý¶¯³ÌÐò£¬¶¼ÓÐÒ»Ð©Í¨ÓÃµÄ¸ÅÄî¡£²Ù×÷ÏµÍ³Ìá¹©¸øÇý¶¯³ÌÐòµÄÖ§³ÖÒ²´óÖÂÏàÍ¬¡£ÏÂÃæ¼òµ¥½éÉÜÒ»ÏÂÍøÂçÉè±¸Çý¶¯³ÌÐòµÄÒ»Ð©»ù±¾ÒªÇó¡£
¡¡¡¡1.2.1 ·¢ËÍºÍ½ÓÊÕ
¡¡¡¡ÕâÊÇÒ»¸öÍøÂçÉè±¸×î»ù±¾µÄ¹¦ÄÜ¡£Ò»¿éÍø¿¨Ëù×öµÄÎÞ·Ç¾ÍÊÇÊÕ·¢¹¤×÷¡£ËùÒÔÇý¶¯³ÌÐòÀïÒª¸æËßÏµÍ³ÄãµÄ·¢ËÍº¯ÊýÔÚÄÄÀï£¬ÏµÍ³ÔÚÓÐÊý¾ÝÒª·¢ËÍÊ±¾Í»áµ÷ÓÃÄãµÄ·¢ËÍ³ÌÐò¡£»¹ÓÐÇý¶¯³ÌÐòÓÉÓÚÊÇÖ±½Ó²Ù×ÝÓ²¼þµÄ£¬ËùÒÔÍøÂçÓ²¼þÓÐÊý¾ÝÊÕµ½×îÏÈÄÜµÃµ½Õâ¸öÊý¾ÝµÄÒ²¾ÍÊÇÇý¶¯³ÌÐò£¬Ëü¸ºÔð°ÑÕâÐ©Ô­Ê¼Êý¾Ý½øÐÐ±ØÒªµÄ´¦ÀíÈ»ºóËÍ¸øÏµÍ³¡£ÕâÀï£¬²Ù×÷ÏµÍ³±ØÐëÒªÌá¹©Á½¸ö»úÖÆ£¬Ò»¸öÊÇÕÒµ½Çý¶¯³ÌÐòµÄ·¢ËÍº¯Êý£¬Ò»¸öÊÇÇý¶¯³ÌÐò°ÑÊÕµ½µÄÊý¾ÝËÍ¸øÏµÍ³¡£ÊÇÇý¶¯³ÌÐò°ÑÊÕµ½µÄÊý¾ÝËÍ¸øÏµÍ³¡£
¡¡¡¡1.2.2 ÖÐ¶Ï
¡¡¡¡ÖÐ¶ÏÔÚÏÖ´ú¼ÆËã»ú½á¹¹ÖÐÓÐÖØÒªµÄµØÎ»¡£²Ù×÷ÏµÍ³±ØÐëÌá¹©Çý¶¯³ÌÐòÏìÓ¦ÖÐ¶ÏµÄÄÜÁ¦¡£Ò»°ãÊÇ°ÑÒ»¸öÖÐ¶Ï´¦Àí³ÌÐò×¢²áµ½ÏµÍ³ÖÐÈ¥¡£²Ù×÷ÏµÍ³ÔÚÓ²¼þÖÐ¶Ï·¢Éúºóµ÷ÓÃÇý¶¯³ÌÐòµÄ´¦Àí³ÌÐò¡£LinuxÖ§³ÖÖÐ¶ÏµÄ¹²Ïí£¬¼´¶à¸öÉè±¸¹²ÏíÒ»¸öÖÐ¶Ï¡£
¡¡¡¡1.2.3 Ê±ÖÓ
¡¡¡¡ÔÚÊµÏÖÇý¶¯³ÌÐòÊ±£¬ºÜ¶àµØ·½»áÓÃµ½Ê±ÖÓ¡£ÈçÄ³Ð©Ð­ÒéÀïµÄ³¬Ê±´¦Àí£¬Ã»ÓÐÖÐ¶Ï»úÖÆµÄÓ²¼þµÄÂÖÑ¯µÈ¡£²Ù×÷ÏµÍ³Ó¦ÎªÇý¶¯³ÌÐòÌá¹©¶¨Ê±»úÖÆ¡£Ò»°ãÊÇÔÚÔ¤¶¨µÄÊ±¼ä¹ýÁËÒÔºó»Øµ÷×¢²áµÄÊ±ÖÓº¯Êý¡£ÔÚÍøÂçÇý¶¯³ÌÐòÖÐ£¬Èç¹ûÓ²¼þÃ»ÓÐÖÐ¶Ï¹¦ÄÜ£¬¶¨Ê±Æ÷¿ÉÒÔÌá¹©ÂÖÑ¯(poll)·½Ê½¶ÔÓ²¼þ½øÐÐ´æÈ¡¡£»òÕßÊÇÊµÏÖÄ³Ð©Ð­ÒéÊ±ÐèÒªµÄ³¬Ê±ÖØ´«µÈ¡£ 

¡¾ÔðÈÎ±à¼­£ºÒ¶¿ª ÆµµÀÖ÷±à£ºÕÔ¼ÒÐÛ¡¿ 

]]></description>
		</item>
	</channel>
 </rss>
