LinuxÉ豸Çý¶¯ÖеIJ¢·¢¿ØÖÆ
²¢·¢Ó뾺̬
½â¾ö¾ºÌ¬ÎÊÌâµÄ;¾¶ÊDZ£Ö¤¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
·ÃÎʹ²Ïí×ÊÔ´µÄ´úÂëÇøÓò³ÆÎªÁÙ½çÇø£¬ÁÙ½çÇøÐèÒªÒÔijÖÖ»¥³â»úÖÆ¼ÓÒÔ±£»¤¡£ÖÐ¶ÏÆÁ±Î¡¢Ô×Ó²Ù×÷¡¢×ÔÐýËøºÍÐźÅÁ¿µÈÊÇLinuxÉ豸Çý¶¯ÖпɲÉÓõĻ¥³â;¾¶¡£
ÖÐ¶ÏÆÁ±Î
ÖÐ¶ÏÆÁ±Î½«Ê¹µÃÖжÏÓë½ø³ÌÖ®¼äµÄ²¢·¢²»ÔÙ·¢Éú£¬¶øÇÒ£¬ÓÉÓÚLinuxÄں˵Ľø³Ìµ÷¶ÈµÈ²Ù×÷¶¼ÒÀÀµÖжÏÀ´ÊµÏÖ£¬ÄÚºËÇÀÕ¼½ø³ÌÖ®¼äµÄ²¢·¢Ò²¾ÍµÃÒÔ±ÜÃâÁË¡£µ«ÊÇ£¬ÐèҪעÒâÊǵÄÊdz¤Ê±¼äµÄÖжÏÊÇΣÏյģ¬ÓпÉÄܵ¼ÖÂÊý¾Ý¶ªÊ§»ò×Åϵͳ±ÀÀ£¡£
local_irq_disable()ºÍlocal_irq_enable()¶¼Ö»ÄܽûÖ¹ºÍʹÄܱ¾CPUÄÚµÄÖжϣ¬²»Äܽâ¾öSMP¶àCPUÒý·¢µÄ¾ºÌ¬¡£
local_irq_save(flags)³ýÁ˽øÐнûÖ¹ÖжϲÙ×÷ÒÔÍ⣬»¹±£´æÄ¿Ç°CPUµÄÖжÏλÐÅÏ¢£¬local_irq_restore(flags)½øÐÐÏà·´µÄ²Ù×÷¡£
Èç¹ûÖ»Ïë½ûÖ¹Öжϵĵװ벿£¬Ó¦Ê¹ÓÃlocal_bh_disable(),ʹÄܵװ벿ʹÓÃlocal_bh_enable()¡£
Ô×Ó²Ù×÷
Ô×Ó²Ù×÷Ö¸µÄÊÇÔÚÖ´Ðйý³ÌÖв»»á±»±ðµÄ´úÂë·¾¶ËùÖжϵIJÙ×÷¡£
LinuxÄÚºËÌṩÁËһϵÁк¯ÊýÀ´ÊµÏÖÄÚºËÖеÄÔ×Ó²Ù×÷£¬ÕâЩº¯ÊýÓÖ·ÖΪÁ½À࣬·Ö±ðÕë¶ÔλºÍÕûÐͱäÁ¿½øÐÐÔ×Ó²Ù×÷¡£
ÕûÐÍÔ×Ó²Ù×÷
1. ÉèÖÃÖµ void atomic_set(atomic_t *v,int i); Atomic_t v = ATOMIC_INT(0);
2. »ñȡֵ atomic_read(atomic_t *v);
3. ¼Ó¼õ void atomic_add(int i,atomic_t *v); void atomic_sub(int i,atomic_t *v);
4. ×ÔÔö×Ô¼õ void atomic_inc(atomic_t *v); void atomic_dec(atomic_t *v);
5. ²Ù×÷²âÊÔ int atomic_inc_and_test(atomic_t *v); int atomic_dec_and_test(atomic_t *v); int atomic_sub_and_test(int i, atomic_t *v);
²Ù×÷ºó²âÊÔÆäÖµÊÇ·ñΪ0£¬Îª0·µ»Øtrue£¬·ñÔò·µ»Øfalse¡£
6. ²Ù×÷·µ»Øint atomic_inc_and_return(atomic_t *v); int atomic_dec_and_return(atomic_t *v); int atomic_sub_and_return(int i, atomic_t *v); int atomic_add_and_return(int i, atomic_t *v);
²Ù×÷ºó·µ»ØÐÂÖµ¡£
λÔ×Ó²Ù×÷
1. ÉèÖÃλ void set_bit(nr,void *addr); ÉèÖÃaddrµØÖ·µÄµÚnr룬¼´½«Î»Ð´1¡£
2. Çå³ýλ void clear_bit(nr,void *addr); ½«Î»Ð´Îª0¡£
3. ¸Ä±äλ void change_bit(nr,void *addr); ½«Î»½øÐз´Öá£
4. ²âÊÔλtest_bit(nr,void *addr); ·µ»ØµÚnrλ¡£
5. ²âÊÔ²Ù×÷int test_and_set_bit(nr,void *addr); int test_and_clear_bit(nr,void *addr); int test_and_change_bit(nr,void *a
Ïà¹ØÎĵµ£º
NAPI ÊÇ Linux ÉϲÉÓõÄÒ»ÖÖÌá¸ßÍøÂç´¦ÀíЧÂʵļ¼Êõ£¬ËüµÄºËÐĸÅÄî¾ÍÊDz»²ÉÓÃÖжϵķ½Ê½¶ÁÈ¡Êý¾Ý£¬¶ø´úÖ®ÒÔÊ×ÏȲÉÓÃÖжϻ½ÐÑÊý¾Ý½ÓÊյķþÎñ³ÌÐò£¬È»ºó POLL µÄ·½·¨À´ÂÖѯÊý¾Ý¡£Ëæ×ÅÍøÂçµÄ½ÓÊÕËٶȵÄÔö¼Ó£¬NIC ´¥·¢µÄÖжÏÄÜ×öµ½²»¶Ï¼õÉÙ£¬Ä¿Ç° NAPI ¼¼ÊõÒѾÔÚÍø¿¨Çý¶¯²ãºÍÍøÂç²ãµÃµ½Á˹㷺µÄÓ¦Óã¬Çý¶¯²ã´ÎÉÏÒѾÓÐ E1000 Ï ......
×÷Õߣº±±ÄÏÄϱ±
À´×Ô£ºLinuxSir.Org
ÕªÒª£º±¾ÎÄÊǹØÓÚLinux²Ù×÷ϵͳÖ÷»úÃû(hostname)µÄÎĵµ£¬¶ÔÖ÷ÒªÅäÖÃÎļþ/etc/hosts½øÐмòÒªµÄ˵Ã÷ £»ÁíÍâ¶Ô»ùÅä¾ß¹¤¾ßhostnameÒ²½øÐÐÁ˾ÙÀý˵Ã÷£» »¶Ó¸ßÊÖ¸«Õý£¬Ð»Ð»£»
Ŀ¼
2.1 Ö÷»úÃûÅäÖÃÎļþ /etc/hosts½â˵£»
2.2 Ö÷»úÃû(hostname)ºÍÓòÃû(Domain£©µÄÇø±ð£»
......
ǰ¡¡ÑÔ
¡¡¡¡Ëæ×Ÿ÷ÖÖ±ãЯǶÈëʽÉ豸ÐÔÄܵÄÈÕÒæÌá¸ß£¬¹¦ÄÜÈÕÒæ·á¸»£¬ÆäµçÔ´½ôÕŵÄÎÊÌâÒ²ÈÕÒæÍ»³ö£¬¹úÄÚÐÂÍÆ³öµÄijЩ¾ßÓÐPDAµÈ¶àÖÖ¹¦ÄܵÄÖÇÄܵ绰ÔÚÃܼ¯Ê¹ÓÃÏÂÖ»ÄÜά³Ö°ëÌ죬¶àÊýÉãÏñ»ú
ºÍÊýÂëÏà»ú
ÔÚ
Ò»´Î³äµçºó¶¼Ö»ÓÐÒ»¸öСʱ×óÓÒµÄÀÛ»ý¹¤×÷ʱ¼ä¡£Linux×÷Ϊһ¸ö¿ª·ÅÔ´´úÂëµÄ²Ù×÷ϵͳ£¬ÓµÓзdz£·á¸»µÄÈí¼þ ......
Linux 2.6Äں˵ÄÒ»¸öÖØÒªÌØÉ«ÊÇÌṩÁËͳһµÄÄÚºËÉ豸ģÐÍ¡£Ëæ×ż¼ÊõµÄ²»¶Ï½ø²½£¬ÏµÍ³µÄÍØÆË½á¹¹Ô½À´Ô½¸´ÔÓ£¬¶ÔÖÇÄܵçÔ´¹ÜÀí¡¢ÈȲå°ÎÒÔ¼°plug and playµÄÖ§³ÖÒªÇóÒ²Ô½À´Ô½¸ß£¬2.4ÄÚºËÒѾÄÑÒÔÂú×ãÕâЩÐèÇó¡£ÎªÊÊÓ¦ÕâÖÖÐÎÊÆµÄÐèÒª£¬2.6Äں˿ª·¢ÁËȫеÄÉ豸ģÐÍ¡£
2.6 ......