LinuxÄÚºËÖÐÓÃÓÚͬ²½µÄ¼¸ÖÖ»úÖÆ¼¯ÖÐÆðÀ´·ÖÎö
LinuxÄÚºËÖÐÓÃÓÚͬ²½µÄ¼¸ÖÖ»úÖÆ¼¯ÖÐÆðÀ´·ÖÎö£¬Ç¿µ÷ÁËËüÃÇÖ®¼äÔÚʵÏÖºÍʹÓÃÉϵIJ»Í¬¡£
¡¡¡¡Í¬²½Í¨³£ÊÇΪÁË´ïµ½¶àÏß³ÌÐͬµÄÄ¿µÄ¶øÉè¼ÆµÄÒ»ÖÖ»úÖÆ£¬Í¨³£°üº¬Òì²½ÐźŻúÖÆºÍ»¥³â»úÖÆ×÷ΪÆäʵÏֵĵײ㡣ÔÚLinux 2.4ÄÚºËÖÐÒ²ÓÐÏàÓ¦µÄ¼¼ÊõʵÏÖ£¬°üÀ¨ÐźÅÁ¿¡¢×ÔÐýËø¡¢Ô×Ó²Ù×÷ºÍµÈ´ý¶ÓÁУ¬ÆäÖÐÔ×Ó²Ù×÷ºÍµÈ´ý¶ÓÁÐÓÖÊÇʵÏÖÐźÅÁ¿µÄµ×²ã¡£
¡¡¡¡
¡¡¡¡Ò». µÈ´ý¶ÓÁкÍÒì²½ÐźÅ
¡¡¡¡
¡¡¡¡wait queueºÜÔç¾Í×÷Ϊһ¸ö»ù±¾µÄ¹¦Äܵ¥Î»³öÏÖÔÚLinuxÄÚºËÀïÁË£¬ËüÒÔ¶ÓÁÐΪ»ù´¡Êý¾Ý½á¹¹£¬Óë½ø³Ìµ÷¶È»úÖÆ½ôÃܽáºÏ£¬Äܹ»ÓÃÓÚʵÏÖºËÐĵÄÒ첽ʼþ֪ͨ»úÖÆ¡£ÎÒÃÇ´ÓËüµÄʹÓ÷¶Àý×ÅÊÖ£¬¿´¿´µÈ´ý¶ÓÁÐÊÇÈçºÎʵÏÖÒì²½ÐźŹ¦Äܵġ£
¡¡¡¡
¡¡¡¡ÔÚºËÐÄÔËÐйý³ÌÖУ¬¾³£»áÒòΪijЩÌõ¼þ²»Âú×ã¶øÐèÒª¹ÒÆðµ±Ç°Ị̈߳¬Ö±ÖÁÌõ¼þÂú×ãÁ˲żÌÐøÖ´ÐС£ÔÚ2.4ÄÚºËÖÐÌṩÁËÒ»×éнӿÚÀ´ÊµÏÖÕâÑùµÄ¹¦ÄÜ£¬ÏÂÃæµÄ´úÂë½ÚÑ¡×Ôkernel/printk.c£º
¡¡¡¡
¡¡¡¡ unsigned long log_size;
¡¡¡¡1: DECLARE_WAIT_QUEUE_HEAD(log_wait);...
¡¡¡¡4: spinlock_t console_lock = SPIN_LOCK_UNLOCKED;...
¡¡¡¡ int do_syslog(int type,char *buf,int len){
¡¡¡¡ ...
¡¡¡¡2: error=wait_event_interruptible(log_wait,log_size);
¡¡¡¡ if(error)
¡¡¡¡ goto out;
¡¡¡¡ ...
¡¡¡¡5: spin_lock_irq(
¡¡¡¡ ...
¡¡¡¡ log_size--;
¡¡¡¡ ...
¡¡¡¡6: spin_unlock_irq(
¡¡¡¡ ...
¡¡¡¡ }
¡¡¡¡ asmlinkage int printk(const char *fmt,...){
¡¡¡¡ ...
¡¡¡¡7: spin_lock_irqsave(console_lock,flags);
¡¡¡¡ ...
¡¡¡¡ log_size++;...
¡¡¡¡8: spin_unlock_irqrestore(
¡¡¡¡3: wake_up_interruptible(log_wait);
¡¡¡¡ ...
¡¡¡¡ }
¡¡¡¡
¡¡¡¡Õâ¶Î´úÂëʵÏÖÁËprintkµ÷ÓúÍsyslogÖ®¼äµÄͬ²½£¬syslogÐèÒªµÈ´ýprintkËÍÊý¾Ýµ½»º³åÇø£¬Òò´Ë£¬ÔÚ2:´¦µÈ´ýlog_size·Ç0£»¶øprintkÒ»±ß´«ËÍÊý¾Ý£¬Ò»±ßÔö¼Ólog_sizeµÄÖµ£¬Íê³Éºó»½ÐÑÔÚlog_waitÉϵȴýµÄËùÓÐỊ̈߳¨Õâ¸öÏ̲߳»ÊÇÓû§¿Õ¼äµÄÏ̸߳ÅÄ¶øÊǺËÄÚµÄÒ»¸öÖ´ÐÐÐòÁУ©¡£Ö´ÐÐÁË3:µÄwake_up_interruptible()ºó£¬2:´¦µÄwait_event_interruptible()·µ»Ø0£¬´Ó¶ø½øÈësyslogµÄʵ¼Ê¶¯×÷¡£
¡¡¡¡
¡¡¡¡1:ÊǶ¨Òålog_waitÈ«¾Ö±äÁ¿µÄºêµ÷Óá£
¡¡¡¡
¡¡¡¡ÔÚʵ¼Ê²Ù×÷log_sizeÈ«¾Ö±äÁ¿µÄʱºò£¬»¹Ê¹ÓÃÁËspin_lock×ÔÐýËøÀ´ÊµÏÖ»¥³â£¬¹ØÓÚ×ÔÐýËø£¬ÕâÀïÔݲ»×÷½âÊÍ£¬µ«´ÓÕâ¶Î´úÂëÖÐÒѾ¿ÉÒÔÇå³þµÄÖªµÀËüµÄʹÓ÷½·¨ÁË¡£
¡¡¡¡
¡¡¡¡ËùÓÐwait queueʹÓÃÉϵļ¼ÇÉÌåÏÖÔÚwait_event_interrupt
Ïà¹ØÎĵµ£º
Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ºÍÊý¾Ý´æ´¢¿é¡£
5. Á´½Ó·ÖΪ£º Ó²Á´½Ó ºÍ ·ûºÅÁ´½Ó ¡£
6. ³¬¼¶¿é°üº¬ÁËi½ ......
ÏÂÔØÐÂÄÚºËÒÔºó£¬ÏȰÑLinux-2.6.18.2.tar.bz2 ¸´ÖƵ½/usr/src/ µÄÏÂÃæ
tar –jxvf Linux-2.6.18.2.tar.bz2 cd Linux-2.6.18.2 make mrproper °ÑÔÀ´±àÒë²úÉúµÄÀ¬»øÉ¾³ý
ÅäÖÃÄں˿ÉÒÔ¸ù¾ÝÐèÒªÓë°®ºÃʹÓÃÏÂÃæÃüÁîÖеÄÒ»¸ö£º
££make config £¨»ùÓÚÎı¾µÄ×îΪ´«Í³µÄÅäÖýçÃæ£©
££make menuconfig £¨»ùÓÚÎı¾ ......
ÎÒÃÇͨ³£°ÑһЩ¹«Óú¯ÊýÖÆ×÷³Éº¯Êý¿â£¬¹©ÆäËü³ÌÐòʹÓá£
º¯Êý¿â·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
¾²Ì¬¿âÔÚ³ÌÐò±àÒëʱ»á±»Á¬½Óµ½Ä¿±ê´úÂëÖУ¬³ÌÐòÔËÐÐʱ½«²»ÔÙÐèÒª¸Ã¾²Ì¬¿â¡£
¶¯Ì¬¿âÔÚ³ÌÐò±àÒëʱ²¢²»»á±»Á¬½Óµ½Ä¿±ê´úÂëÖУ¬¶øÊÇÔÚ³ÌÐòÔËÐÐÊDzű»ÔØÈ룬Òò´ËÔÚ³ÌÐòÔËÐÐʱ»¹ÐèÒª¶¯Ì¬¿â´æÔÚ¡£
±¾ÎÄÖ÷Ҫͨ¹ý¾ÙÀýÀ´ËµÃ÷ÔÚLinuxÖÐÈçº ......
×¢Òâ×Ô¼ºµÄÄں˰汾 ÓÚ jdk °æ±¾ÎÊÌâ £»»¹ÓÐ ¾ÍÊÇ Òª½âѹµ½ /usr/javaĿ¼Ï ºÜÖØÒª£¬Òª²»È»µÈ×ųԿàÍ·£»
Ò»¡¢ÏÂÔØJDK
×Ô¼ºÏÂÔØ°É£¬²½Öè²»ÓÃдÁ˰ɣ»ÎÒÏÂÔØµÄÊÇjdk
-1_6_0_11-linux-i586.bin
¶þ¡¢°²×°
(1)ÔÚusrÏÂн¨Ò»¸öjavaÎļþ¼Ð
#mkdir /usr/java
(2)ÎÒÓõÄWinSCP½«JDK
Îļþ·ÅÈ ......
±¾Îĵµ²âÊÔ»·¾³£º
1£©Linux²Ù×÷ϵͳ°æ±¾£º
Red Hat Enterprise Linux Server release 5
2.6.18-8.el5
2£©jdk°æ±¾
1.5.0_16
LinuxÏÂÁ¬JavaÁ¬sap²½Öè
1£©ÏÂÔØsapjco.jar
  ......