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Ó ......
תÖÁ£º http://dev.yesky.com/412/2639912.shtml
¶ÔÓÚÌṩÁËMMU£¨´æ´¢¹ÜÀíÆ÷£¬¸¨Öú²Ù×÷ϵͳ½øÐÐÄÚ´æ¹ÜÀí£¬ÌṩÐéʵµØÖ·×ª»»µÈÓ²¼þÖ§³Ö£©µÄ´¦ÀíÆ÷¶øÑÔ£¬LinuxÌṩÁ˸´ÔӵĴ洢¹ÜÀíϵͳ£¬Ê¹µÃ½ø³ÌËùÄÜ·ÃÎʵÄÄÚ´æ´ïµ½4GB¡£
¡¡¡¡½ø³ÌµÄ4GBÄÚ´æ¿Õ¼ä±»ÈËΪµÄ·ÖΪÁ½¸ö²¿·Ö--Óû§¿Õ¼äÓëÄں˿ռ䡣Óû§¿Õ¼äµØÖ··Ö²¼´Ó0µ½3GB(PAGE_OFFSET£¬ÔÚ0x86ÖÐËüµÈÓÚ0xC0000000)£¬3GBµ½4GBΪÄں˿ռ䣬ÈçÏÂͼ£º
¡¡¡¡Äں˿ռäÖУ¬´Ó3Gµ½vmalloc_startÕâ¶ÎµØÖ·ÊÇÎïÀíÄÚ´æÓ³ÉäÇøÓò£¨¸ÃÇøÓòÖаüº¬ÁËÄں˾µÏñ¡¢ÎïÀíÒ³¿ò±ímem_mapµÈµÈ£©£¬±ÈÈçÎÒÃÇʹÓõÄVMwareÐéÄâϵͳÄÚ´æÊÇ160M£¬ÄÇô3G¡«3G+160MÕâÆ¬ÄÚ´æ¾ÍÓ¦¸ÃÓ³ÉäÎïÀíÄÚ´æ¡£ÔÚÎïÀíÄÚ´æÓ³ÉäÇøÖ®ºó£¬¾ÍÊÇvmallocÇøÓò¡£¶ÔÓÚ160MµÄϵͳ¶øÑÔ£¬vmalloc_startλÖÃÓ¦ÔÚ3G+160M¸½½ü£¨ÔÚÎïÀíÄÚ´æÓ³ÉäÇøÓëvmalloc_startÆÚ¼ä»¹´æÔÚÒ»¸ö8MµÄgapÀ´·ÀÖ¹Ô¾½ç£©£¬vmalloc_endµÄλÖýӽü4G(×îºóλÖÃϵͳ»á±£ÁôһƬ128k´óСµÄÇøÓòÓÃÓÚרÓÃÒ³ÃæÓ³Éä)£¬ÈçÏÂͼ£º
¡¡¡¡kmallocºÍget_free_pageÉêÇëµÄÄÚ´æÎ»ÓÚÎïÀíÄÚ´æÓ³ÉäÇøÓò£¬¶øÇÒÔÚÎïÀíÉÏÒ²ÊÇÁ¬ÐøµÄ£¬ËüÃÇÓëÕæÊµµÄÎïÀíµØÖ·Ö»ÓÐÒ»¸ö¹Ì¶¨µÄÆ«ÒÆ£¬Òò´Ë´æÔڽϼòµ¥µÄת»»¹ØÏµ£¬virt_to_phys()¿ÉÒÔʵÏÖÄÚºËÐéÄâµØÖ·×ª»¯Îª ......
¸øËùÓÐÓû§Ìí¼Ó¿ÉÖ´ÐеÄȨÏÞ
#chmod +x jdk-1_5_0_02-linux-i586.rpm.bin
#./jdk-1_5_0_02-linux-i586.rpm.bin
´Ëʱ»áÉú³ÉÎļþjdk-1_5_0_02-linux-i586.rpm£¬
ͬÑù¸øËùÓÐÓû§Ìí¼Ó¿ÉÖ´ÐеÄȨÏÞ
#chmod +x jdk-1_5_0_02-linux-i586.rpm
-------------ÍøÉϲ鵽£¬Òª½øÐÐÏÂÃæÒ»²½£¬ÎÒÔÙ./jdkʱºò¾ÍÒѾ³öÏÖÐÒéÁË£¬Ò²¾ÍÊÇÒѾ°²×°ÍêÁË
---------------------°²×°³ÌÐò
---------------------#rpm -ivh jdk-1_5_0_02-linux-i586.rpm
---------------------³öÏÖ°²×°ÐÒéµÈ£¬°´½ÓÊܼ´¿É¡£
Linux°²×°JDK²½Öè2.ÉèÖû·¾³±äÁ¿
#vi /etc/profile
ÔÚ×îºóÃæ¼ÓÈë
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:¡çJAVA_HOME/lib.tools.jar
PATH=¡çJAVA_HOME/bin:¡çPATH
export JAVA_HOME CLASSPATH PATH
±£´æÍ˳ö¡£
ҪʹJDKÔÚËùÓеÄÓû§ÖÐʹÓ㬿ÉÒÔÕâÑù£º
vi /etc/profile.d/java.sh
ÔÚеÄjava.shÖÐÊäÈëÒÔÏÂÄÚÈÝ£º
#set java environment
JAVA_HOME=/usr/java/jdk-1_5_0_02
CLASSPATH=.:¡çJAVA_HOME/lib/tools.jar
PATH=¡çJAVA_HOME/bin:¡çPATH
export JAVA_HOME CLASSPATH PATH
±£´æÍ˳ö£¬È»ºó¸øjava.sh·ÖÅäȨÏÞ£ºchmod 755 /etc/profil ......
ת×Ô http://blog.china-pub.com/more.asp?name=uniware&id=35478
ÔÚLinuxϲúÉú²¢µ÷ÊÔcoreÎļþ
ÏÈ¿´¿´ÎÒÓõÄÊǸöʲô»úÆ÷£º
$ uname -a
Linux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 EDT 2004 i686 i686 i386 GNU/Linux
ÔÙ¿´¿´Ä¬ÈϵÄһЩ²ÎÊý£¬×¢Òâcore file sizeÊǸö0£¬³ÌÐò³ö´íʱ²»»á²úÉúcoreÎļþÁË¡£
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 4
max memory size (kbytes, -m) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 7168
virtual memory (kbytes, -v) unlimited
д¸ö¼òµ¥µÄ³ÌÐò£¬¿´¿´coreÎļþÊDz»Êǻᱻ²úÉú¡£
$ more foo.c
#include <stdio.h>
static void sub(void);
int main(void)
{
sub();
return 0;
}
static void sub(void)
{
int *p = NULL;
/* deref ......
Ò»°ãÀ´Ëµ£¬Ä¿Ç°Ð°æµÄ Linux Ô¤Éè¿ÉÒÔÖ§³ÖµÄÍøÂ翨оƬ×éÊýÁ¿ÒѾºÜÍ걸ÁË£¬ºÜ¶àÍøÂ翨оƬ¶¼ÒѾ±»Ö§³Ö,ÀýÈçRLT 8139 оƬ ( RealTek 8139 ) µÄÍøÂ翨ËùÒÔʹÓÃÕß¿ÉÒÔºÜÇáÒ×µÄÉ趨ºÃËûÃǵÄÍøÂ翨¡£²»¹ý£¬Èç¹ûÍòÒ»²»ÐÒºËÐÄûÓÐÖ§³Ö¸ÃÍøÂ翨µÄ»°£¬ÄÇô¿ÉÒÔ͸¹ýÖØÐ±àÒëºËÐÄ»òÕß±àÒëÍøÂ翨Çý¶¯Ä£¿é ( Modules )£¬²¢ÇÒ¼ÓÔØ¸ÃÄ£¿é£¬½ñÌì¾ÍÊÇÕâôÇÉ,Åöµ½Ò»¸öD-Link µÄDFE-530TX,û·¨,Ö»ÓÐÊÖ¶¯°²×°ÍøÂ翨Çý¶¯³ÌÐòÁË.¿ÉÒÔÓÃÃüÁî:
# dmesg | grep eth
À´²é¿´ÏµÍ³Æô¶¯ÐÅÏ¢,ÏÔʾ³ö eth0 »òÕß eth1 µÄÐÅÏ¢£¬Èç¹ûeth1ûÕÒµ½ÕýÈ·µÄÐÅÏ¢,ÄǾͱíʾ Linux ÎÞ·¨ÕÒµ½¸ÃÓ²¼þ, eth0ÊÇ8139µÄ,ÒѾÏÔʾÕý³£,ÀýÈç:
[root@kindgeorge root]# dmesg | grep eth
eth0: RealTek RTL8139 Fast Ethernet at 0xf0160000, 00:0a:a6:30:0d:0e, IRQ 11
eth0: Identified 8139 chip type 'RTL-8139C'
eth0: Setting 10mbps full-duplex based on auto-negotiated partner ability 4061.
Ò». ²é¿´×Ô¼ºÏµÍ³µÄÄں˰汾.
&n ......
1.ÏÂÔØmemcached·þÎñÆ÷¶Ë°²×°Îļþ
°æ±¾£º
memcached-1.4.2.tar.gz
ÏÂÔØµØÖ·£ºhttp://www.danga.com/memcached/download.bml
2.ÏÂÔØlibevent£¬memcachedÐèÒªÓõ½socked£¬ÒÀÀµ´Ë°²×°Îļþ¡£
°æ±¾£º
libevent-1.4.12-stable.tar.gz
ÏÂÔØµØÖ·£ºhttp://www.monkey.org/~provos/libevent/
3.ÓÉÓÚlinuxϵͳ¿ÉÄÜĬÈÏÒѾ°²×°libevent£¬
Ö´ÐÐÃüÁrpm -qa|grep libevent²é¿´ÏµÍ³ÊÇ·ñ´øÓиð²×°Èí¼þ
Èç¹ûÓÐÖ´ÐÐÃüÁrpm -e libevent-1.1a-3.2.1 --nodeps£¨ÓÉÓÚϵͳ×Ô´øµÄ°æ±¾¾É£¬ºöÂÔÒÀÀµÉ¾³ý£©
4.°²×°libevent£¬
tar zxvf libevent-1.4.12-stable.tar.gz
cd libevent-1.4.12-stable
./configure --prefix=/usr/local/libevent-1.4
make
make install
5.°²×°memcached
tar zxvf memcached-1.4.2.tar.gz
cd memcached-1.4.2
./configure --prefix=/usr/local/memcached-1.4.2 --with-libevent=/usr/local/libevent-1.4/
make
make install
ÖÁ´Ëmemcached°²×°Íê±Ï
6.²âÊÔ
......