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

LinuxϵͳÄں˶¨Ê±Æ÷»úÖÆÏê½â

 LinuxÄÚºË2.4°æÖÐÈ¥µôÁËÀϰ汾ÄÚºËÖеľ²Ì¬¶¨Ê±Æ÷»úÖÆ£¬¶øÖ»Áô϶¯Ì¬¶¨Ê±Æ÷¡£ÏàÓ¦µØÔÚtimer_bh()º¯ÊýÖÐÒ²²»ÔÙͨ¹ýrun_old_timers()º¯ÊýÀ´ÔËÐÐÀÏʽµÄ¾²Ì¬¶¨Ê±Æ÷¡£¶¯Ì¬¶¨Ê±Æ÷Ó뾲̬¶¨Ê±Æ÷Õâ¶þ¸ö¸ÅÄîÊÇÏà¶ÔÓÚLinuxÄں˶¨Ê±Æ÷»úÖÆµÄ¿ÉÀ©Õ¹¹¦ÄܶøÑԵ쬶¯Ì¬¶¨Ê±Æ÷ÊÇÖ¸Äں˵Ķ¨Ê±Æ÷¶ÓÁÐÊÇ¿ÉÒÔ¶¯Ì¬±ä»¯µÄ£¬È»¶ø¾Í¶¨Ê±Æ÷±¾Éí¶øÑÔ£¬¶þÕß²¢ÎÞ±¾ÖʵÄÇø±ð¡£¿¼Âǵ½¾²Ì¬¶¨Ê±Æ÷»úÖÆµÄÄÜÁ¦ÓÐÏÞ£¬Òò´ËLinuxÄÚºË2.4°æÖÐÍêȫȥµôÁËÒÔǰµÄ¾²Ì¬¶¨Ê±Æ÷»úÖÆ¡£
¡¡¡¡7£®6£®1 LinuxÄں˶Զ¨Ê±Æ÷µÄÃèÊö
¡¡¡¡LinuxÔÚinclude/linux/timer.hÍ·ÎļþÖж¨ÒåÁËÊý¾Ý½á¹¹timer_listÀ´ÃèÊöÒ»¸öÄں˶¨Ê±Æ÷£º
struct timer_list {
struct list_head list;
unsigned long expires;
unsigned long data;
void (*function)(unsigned long);
};
¡¡¡¡¸÷Êý¾Ý³ÉÔ±µÄº¬ÒåÈçÏ£º
¡¡¡¡£¨1£©Ë«ÏòÁ´±íÔªËØlist£ºÓÃÀ´½«¶à¸ö¶¨Ê±Æ÷Á¬½Ó³ÉÒ»ÌõË«ÏòÑ­»·¶ÓÁС£
¡¡¡¡£¨2£©expires£ºÖ¸¶¨¶¨Ê±Æ÷µ½ÆÚµÄʱ¼ä£¬Õâ¸öʱ¼ä±»±íʾ³É×ÔϵͳÆô¶¯ÒÔÀ´µÄʱÖӵδð¼ÆÊý£¨Ò²¼´Ê±ÖÓ½ÚÅÄÊý£©¡£µ±Ò»¸ö¶¨Ê±Æ÷µÄexpiresֵСÓÚ»òµÈÓÚjiffies±äÁ¿Ê±£¬ÎÒÃǾÍ˵Õâ¸ö¶¨Ê±Æ÷ÒѾ­³¬Ê±»òµ½ÆÚÁË¡£ÔÚ³õʼ»¯Ò»¸ö¶¨Ê±Æ÷ºó£¬Í¨³£°ÑËüµÄexpiresÓòÉèÖóɵ±Ç°expires±äÁ¿µÄµ±Ç°Öµ¼ÓÉÏij¸öʱ¼ä¼ä¸ôÖµ£¨ÒÔʱÖӵδð´ÎÊý¼Æ£©¡£
¡¡¡¡£¨3£©º¯ÊýÖ¸Õëfunction£ºÖ¸ÏòÒ»¸ö¿ÉÖ´Ðк¯Êý¡£µ±¶¨Ê±Æ÷µ½ÆÚʱ£¬Äں˾ÍÖ´ÐÐfunctionËùÖ¸¶¨µÄº¯Êý¡£¶ødataÓòÔò±»ÄÚºËÓÃ×÷functionº¯ÊýµÄµ÷ÓòÎÊý¡£
¡¡¡¡Äں˺¯Êýinit_timer()ÓÃÀ´³õʼ»¯Ò»¸ö¶¨Ê±Æ÷¡£Êµ¼ÊÉÏ£¬Õâ¸ö³õʼ»¯º¯Êý½ö½ö½«½á¹¹ÖеÄlist³ÉÔ±³õʼ»¯Îª¿Õ¡£ÈçÏÂËùʾ£¨include/linux/timer.h£©£º
static inline void init_timer(struct timer_list * timer)
{
timer->list.next = timer->list.prev = NULL;
}
¡¡¡¡ÓÉÓÚ¶¨Ê±Æ÷ͨ³£±»Á¬½ÓÔÚÒ»¸öË«ÏòÑ­»·¶ÓÁÐÖеȴýÖ´ÐУ¨´ËʱÎÒÃÇ˵¶¨Ê±Æ÷´¦ÓÚpending״̬£©¡£Òò´Ëº¯Êýtime_pending()¾Í¿ÉÒÔÓÃlist³ÉÔ±ÊÇ·ñΪ¿ÕÀ´ÅжÏÒ»¸ö¶¨Ê±Æ÷ÊÇ·ñ´¦ÓÚpending״̬¡£ÈçÏÂËùʾ
 
£¨include/linux/timer.h£©£º
static inline int timer_pending (const struct timer_list * timer)
{
return timer->list.next != NULL;
}
¡¡¡¡Ê±¼ä±È½Ï²Ù×÷
¡¡¡¡ÔÚ¶¨Ê±Æ÷Ó¦ÓÃÖо­³£ÐèÒª±È½ÏÁ½¸öʱ¼äÖµ£¬ÒÔÈ·¶¨timerÊÇ·ñ³¬Ê±£¬ËùÒÔLinuxÄÚºËÔÚtimer.hÍ·ÎļþÖж¨ÒåÁË4¸öʱ¼ä¹ØÏµ±È½Ï²Ù×÷ºê¡£ÕâÀïÎÒÃÇ˵ʱ¿ÌaÔÚʱ¿ÌbÖ®ºó£¬¾ÍÒâζ×Åʱ¼äÖµa¡Ýb¡£


Ïà¹ØÎĵµ£º

linuxÇý¶¯Ö®mmapʵÀý

// Linux Device Driver Template/Skeleton with mmap
// Kernel Module
#include <linux/module.h>
#include <linux/init.h>
#include <linux/version.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/interrupt.h>
#inclu ......

linux Ï ÓÃcÓïÑÔ´´½¨mysqlÊý¾Ý¿â±Ê¼Ç£¨¶þ£©

linux Ï ÓÃcÓïÑÔ´´½¨mysqlÊý¾Ý¿â±Ê¼Ç£¨¶þ£©
                       
£­£­£­£­£­£­£­Á½¸ö¼òµ¥µÄÀý×Ó£¬¹©²Î¿¼±È½Ï
¡¶ÀýÒ»¡·
#include <stdio.h>
#include <stdlib.h>
#include
&q ......

LinuxÖÐtty pty pts ¸ÅÄîÇø±ð

±¾ÎÄÕª×Ô http://hi.baidu.com/yuhongchun027/blog/item/2ac559517ec1f5898c543002.html
LinuxÖÐtty pty pts ¸ÅÄîÇø±ð
»ù±¾¸ÅÄ
1> tty(ÖÕ¶ËÉ豸µÄͳ³Æ):
ttyÒ»´ÊÔ´ÓÚTeletypes£¬»òÕßteletypewriters£¬Ô­À´Ö¸µÄÊǵ紫´ò×Ö»ú£¬ÊÇͨ¹ý´®ÐÐÏßÓôòÓ¡»ú¼üÅÌͨ¹ýÔĶÁºÍ·¢ËÍÐÅÏ¢µÄ¶«Î÷£¬ºóÀ´Õâ¶«Î÷±»¼üÅÌÓëÏÔʾÆ÷È¡´ú£¬Ëù ......

LinuxµÄoopsÄں˵÷ÊÔÐÅÏ¢

      Oops¿ÉÒÔ¿´³ÉÊÇÄں˼¶µÄSegmentation Fault¡£Ó¦ÓóÌÐòÈç¹û½øÐÐÁË·Ç·¨ÄÚ´æ·ÃÎÊ»òÖ´ÐÐÁË·Ç·¨Ö¸Á»áµÃµ½SegfaultÐźţ¬Ò»°ãµÄÐÐΪÊÇcoredump£¬Ó¦ÓóÌÐòÒ²¿ÉÒÔ×Ô¼º½Ø»ñSegfaultÐźţ¬×ÔÐд¦Àí¡£Èç¹ûÄÚºË×Ô¼º·¸ÁËÕâÑùµÄ´íÎó£¬Ôò»á´ò³öOopsÐÅÏ¢¡£´¦ÀíÆ÷ʹÓõÄËùÓеØÖ·¼¸ºõ¶¼ÊÇͨ¹ýÒ»¸ö¸´ÔÓµÄÒ³± ......

linux ʶ±ð ntfs Îļþ¸ñʽ

±¾À´ÏëÓàkernel-module-ntfs-2.6.18-53.el5-2.1.27-0.rr.10.11.i686ÕâÖÖ¸ñʽµÄ°ü£¬µ«·¢ÏÖϵͳÄںˠ2.6.18-164.2.1.el5.plus
¸ù±¾ÕÒ²»µ½¶ÔÓ¦µÄÎļþ£¬ËùÒÔÖ»ºÃʹÓà ntfs-3g.
°²×°ºÜ¼òµ¥£¬Ö±½Ó´Óhttp://www.ntfs-3g.org/index.html ÏÂÔØ×îеÄÎļþ£¬
#wget http://www.ntfs-3g.org/ntfs-3g-2009.4.4.tgz
# ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ