LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
2006-10-26 13:34
×÷Õߣº
³ö´¦£ºLinux
ÔðÈα༣º·½ÖÛ
Ïà¹Ø×¨Ì⣺
LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ
¡¡¡¡LinuxÄÚºËÖж¨ÒåÁËÒ»¸ötimer_list½á¹¹£¬ÎÒÃÇÔÚÇý¶¯³ÌÐòÖпÉÒÔÀûÓÃÖ®£º
struct timer_list {
¡¡struct list_head list;
¡¡unsigned long expires; //¶¨Ê±Æ÷µ½ÆÚʱ¼ä
¡¡unsigned long data; //×÷Ϊ²ÎÊý±»´«È붨ʱÆ÷´¦Àíº¯Êý
¡¡void (*function)(unsigned long);
};
¡¡¡¡ÏÂÃæÊǹØÓÚtimerµÄAPIº¯Êý£º
¡¡¡¡Ôö¼Ó¶¨Ê±Æ÷
void add_timer(struct timer_list * timer);
¡¡¡¡É¾³ý¶¨Ê±Æ÷
int del_timer(struct timer_list * timer);
¡¡¡¡
¡¡¡¡Ð޸Ķ¨Ê±Æ÷µÄexpire
int mod_timer(struct timer_list *timer, unsigned long expires);
¡¡¡¡Ê¹Óö¨Ê±Æ÷µÄÒ»°ãÁ÷³ÌΪ£º
¡¡¡¡£¨1£©timer¡¢±àдfunction£»
¡¡¡¡£¨2£©ÎªtimerµÄexpires¡¢data¡¢function¸³Öµ£»
¡¡¡¡£¨3£©µ÷ÓÃadd_timer½«timer¼ÓÈëÁÐ±í£»
¡¡¡¡£¨4£©ÔÚ¶¨Ê±Æ÷µ½ÆÚʱ£¬function±»Ö´ÐУ»
¡¡¡¡£¨5£©ÔÚ³ÌÐòÖÐÉæ¼°timer¿ØÖƵĵط½Êʵ±µØµ÷ÓÃdel_timer¡¢mod_timerɾ³ýtimer»òÐÞ¸ÄtimerµÄexpires¡£
¡¡¡¡ÎÒÃÇ¿ÉÒԲο¼drivers\char\keyboard.cÖмüÅ̵ÄÇý¶¯ÖйØÓÚtimerµÄ²¿·Ö£º
…
#include <linux/timer.h>
…
static struct timer_list key_autorepeat_timer =
{
¡¡function: key_callback
};
static void
kbd_processkeycode(unsigned char keycode, char up_flag, int autorepeat)
{
¡¡char raw_mode = (kbd->kbdmode == VC_RAW);
¡¡if (up_flag) {
¡¡¡¡rep = 0;
¡¡¡¡if(!test_and_clear_bit(keycode, key_down))
¡¡¡¡¡¡up_flag = kbd_unexpected_up(keycode);
¡¡} else {
¡¡¡¡rep = test_and_set_bit(keycode, key_down);
¡¡¡¡/* If the keyboard autorepeated for us, ignore it.
¡¡¡¡* We do our own autorepeat processing.
¡¡¡¡*/
¡¡¡¡if (rep && !autorepeat)
¡¡¡¡¡¡return;
¡¡}
¡¡if (kbd_repeatkeycode == keycode || !up_flag || raw_mode) {
¡¡¡¡kbd_repeatkeycode = -1;
¡¡¡¡del_timer(&key_autorepeat_timer);
¡¡}
¡¡…
¡¡/*
¡¡* Calculate the next time when we have to do some autorepeat
¡¡* processing. Note that we do not do autorepeat processing
¡¡* while in raw mode but we do do autorepeat processing in
¡¡* medium raw mode.
Ïà¹ØÎĵµ£º
http://linux.chinaitlab.com/administer/774036.html
[ ÆðÔ´ ]Linux/UnixÏÂÊØ»¤½ø³Ì£¨Daemon£©´ó¼Ò¶¼ÖªµÀ£¬±ÈÈçÎÒÃdz£ÓõÄhttpd¡¢mysqldµÈµÈ£¬¾ÍÊdz£×¤ÄÚ´æÔËÐеijÌÐò£¬ÀàËÆÓÚWindowsϵķþÎñ¡£Ò»°ãÊØ»¤½ø³Ì¶¼ÊÇʹÓÃC/C++À´Ð´£¬¾ÍÊÇͨ¹ýforkÉú³É×Ó½ø³Ì£¬µ±Ç°Ì¨shellϵĸ¸½ø³Ì±»É±µô£¬×Ó½ø³Ì¾Íתµ½ºǫ́ÔËÐУ¬ÎªÁ˲» ......
ºìÆì×ÀÃæLinux4.1ϰ²×°ºÍÅäÖÃJSP·þÎñÆ÷È«¹¥ÂÔ
ÕâÁ½ÌìÊÔ×ÅÔÚºìÆìLinux×ÀÃæ°æ4.1ϰ²×°WEB·þÎñÆ÷£¬Òѳɹ¦°²×°£¬ÏÖ°ÑÎҵݲװ¹ý³Ì½éÉÜÈçÏ£¬ÒÔ¸øÓÐÏàËÆÐèÇóµÄÍøÓѲο¼¡£
ÎҵݲװҪÇóÊÇÖ§³ÖJSP¡¢html¡¢htmÍøÒ³£¬ËùÒÔÑ¡ÓÃJDK1.5.0+Tomcat5.5.4+mySQL4.1.7£¬ÕâЩ¶¼Êǵ±Ç°¸÷Èí¼þ×îеÄÎȶ¨°æ±¾£¨·Ç²âÊ԰棩¡£ÔÝûÓа²×°Apacheº ......
http://blog.sina.com.cn/s/blog_490168e50100dw9r.html
Ò»¡¢Äں˱àÒë
1¡¢×¼±¸¹¤×÷
£¨1£©ÕûÀí³öϵͳÐèÒªÖ§³ÖµÄÓ²¼þ¡¢ÎļþϵͳÀàÐÍÒÔ¼°ÍøÂçÐÒéµÈÄÚÈÝ¡£
£¨2£©½¨ÒéÓÃÃüÁîuname –r ²é¿´Ò»ÏÂϵͳµÄ°æ±¾ºÅ£¬Èç¹ûÄãµÄϵͳ°æ±¾Ó뽫Ҫ±àÒëµÄÄں˰汾һÖ£¬½¨Ò齫/lib/modulesϵÄÄÚÈݱ¸·Ý£¬·ñÔò½«À´µÄmake modules_insta ......
LinuxÇý¶¯Ñ§Ï°¼Ç¼ devfs_mk_cdev
< type="text/javascript">
2.4ÄÚºË×¢²áÇý¶¯ÒªÓãº
int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);
2.4ÄÚºË×¢ÏúÇý¶¯ÒªÓãº
int unregister_chrdev( unsigned int ......