ÔÚLinuxÖд´½¨¾²Ì¬¿âºÍ¶¯Ì¬¿â
ÎÒÃÇͨ³£°ÑһЩ¹«Óú¯ÊýÖÆ×÷³Éº¯Êý¿â£¬¹©ÆäËü³ÌÐòʹÓá£
º¯Êý¿â·ÖΪ¾²Ì¬¿âºÍ¶¯Ì¬¿âÁ½ÖÖ¡£
¾²Ì¬¿âÔÚ³ÌÐò±àÒëʱ»á±»Á¬½Óµ½Ä¿±ê´úÂëÖУ¬³ÌÐòÔËÐÐʱ½«²»ÔÙÐèÒª¸Ã¾²Ì¬¿â¡£
¶¯Ì¬¿âÔÚ³ÌÐò±àÒëʱ²¢²»»á±»Á¬½Óµ½Ä¿±ê´úÂëÖУ¬¶øÊÇÔÚ³ÌÐòÔËÐÐÊDzű»ÔØÈ룬Òò´ËÔÚ³ÌÐòÔËÐÐʱ»¹ÐèÒª¶¯Ì¬¿â´æÔÚ¡£
±¾ÎÄÖ÷Ҫͨ¹ý¾ÙÀýÀ´ËµÃ÷ÔÚLinuxÖÐÈçºÎ´´½¨¾²Ì¬¿âºÍ¶¯Ì¬¿â£¬ÒÔ¼°Ê¹ÓÃËüÃÇ¡£
ÔÚ´´½¨º¯Êý¿âǰ£¬ÎÒÃÇÏÈÀ´×¼±¸¾ÙÀýÓõÄÔ´³ÌÐò£¬²¢½«º¯Êý¿âµÄÔ´³ÌÐò±àÒë³É.oÎļþ¡£
µÚ1²½£º±à¼µÃµ½¾ÙÀýµÄ³ÌÐò--hello.h¡¢hello.cºÍmain.c£»
hello.h(¼û³ÌÐò1)Ϊ¸Ãº¯Êý¿âµÄÍ·Îļþ¡£
hello.c(¼û³ÌÐò2)ÊǺ¯Êý¿âµÄÔ´³ÌÐò£¬ÆäÖаüº¬¹«Óú¯Êýhello£¬¸Ãº¯Êý½«ÔÚÆÁÄ»ÉÏÊä³ö"Hello XXX!"¡£
main.c(¼û³ÌÐò3)Ϊ²âÊÔ¿âÎļþµÄÖ÷³ÌÐò£¬ÔÚÖ÷³ÌÐòÖе÷ÓÃÁ˹«Óú¯Êýhello¡£
³ÌÐò1: hello.h
#ifndef HELLO_H
#define HELLO_H
void hello(const char *name);
#endif //HELLO_H
³ÌÐò2: hello.c
#include <stdio.h>
void hello(const char *name)
{
printf("Hello %s!\n", name);
}
³ÌÐò3: main.c
#include "hello.h"
int main()
{
hello("everyone");
return 0;
}
µÚ2²½£º½«hello.c±àÒë³É.oÎļþ£»
ÎÞÂÛ¾²Ì¬¿â£¬»¹ÊǶ¯Ì¬¿â£¬¶¼ÊÇÓÉ.oÎļþ´´½¨µÄ¡£Òò´Ë£¬ÎÒÃDZØÐ뽫Դ³ÌÐòhello.cͨ¹ýgccÏȱàÒë³É.oÎļþ¡£
ÔÚϵͳÌáʾ·ûϼüÈëÒÔÏÂÃüÁîµÃµ½hello.oÎļþ¡£
# gcc -c hello.c
#
(×¢1£º±¾ÎIJ»½éÉܸ÷ÃüÁîʹÓÃºÍÆä²ÎÊý¹¦ÄÜ£¬ÈôÏ£ÍûÏêϸÁ˽âËüÃÇ£¬Çë²Î¿¼ÆäËûÎĵµ¡£)
(×¢2£ºÊ××Ö·û"#"ÊÇϵͳÌáʾ·û£¬²»ÐèÒª¼üÈ룬ÏÂÎÄÏàͬ¡£)
ÎÒÃÇÔËÐÐlsÃüÁî¿´¿´ÊÇ·ñÉú´æÁËhello.oÎļþ¡£
# ls
hello.c hello.h hello.o main.c
#
(×¢3£ºÊ××Ö·û²»ÊÇ"#"ΪϵͳÔËÐнá¹û£¬ÏÂÎÄÏàͬ¡£)
ÔÚlsÃüÁî½á¹ûÖУ¬ÎÒÃÇ¿´µ½ÁËhello.oÎļþ£¬±¾²½²Ù×÷Íê³É¡£
ÏÂÃæÎÒÃÇÏÈÀ´¿´¿´ÈçºÎ´´½¨¾²Ì¬¿â£¬ÒÔ¼°Ê¹ÓÃËü¡£
µÚ3²½£ºÓÉ.oÎļþ´´½¨¾²Ì¬¿â£»
¾²Ì¬¿âÎļþÃûµÄÃüÃû¹æ·¶ÊÇÒÔlibΪǰ׺£¬½ô½Óןú¾²Ì¬¿âÃû£¬À©Õ¹ÃûΪ.a¡£ÀýÈ磺ÎÒÃǽ«´´½¨µÄ¾²Ì¬¿âÃûΪmyhello£¬Ôò¾²Ì¬¿âÎļþÃû¾ÍÊÇlibmyhello.a¡£ÔÚ´´½¨ºÍʹÓþ²Ì¬¿âʱ£¬ÐèҪעÒâÕâµã¡£´´½¨¾²Ì¬¿âÓÃarÃüÁî¡£
ÔÚϵͳÌáʾ·ûϼüÈëÒÔÏÂÃüÁ´´½¨¾²Ì¬¿âÎļþlibmyhello.a¡£
# ar cr li
Ïà¹ØÎĵµ£º
ÔÚdebian Linux·þÎñÆ÷µÄÈÕÖ¾ÖУ¬dmesg³öÏÖÀàËÆµÄÐÅÏ¢£º
TCP: Treason uncloaked! Peer 202.106.38.7:57824/80 shrinks window 3573023813:3573023814. Repaired.
TCP: Treason uncloaked! Peer 202.106.38.7:57824/80 shrinks window 3573023813:3573023814. Repaired.
TCP: Treason uncloaked! Peer 202.99.99.211:3760 ......
http://blog.chinaunix.net/u/25764/showart_1882931.html
Òý£º±¾À´´òË㽫Õⲿ·ÖÄÚÈݲ¢Èëµ½¡¶The Linux Kernel Module Programming Guide±Ê¼Ç¡·ÖÐÈ¥£¬µ«ÊÇÏëÏÂÄÚ´æ¿Õ¼ä¹ÜÀí·ÃÎÊÏ൱»ù´¡ÖØÒª¶øÇÒÄÚÈÝÁ¿½Ï´ó£¬ËùÒԾ͵¥¶À¼Ç¼¡£ÔÚ¹ýÈ¥Ò»ÄêÀÓÉÓڳɹ¦¿ª·¢¹ý¼¸¸öÆÄΪ¸´ÔÓµÄÉ豸Çý¶¯£¬¾Í×ÔÒÔÎªÕÆÎÕÁËÇý¶¯¿ª·¢µÄ·½·¨ºÍ¼¼ÇÉ£¬ÊÂÊ ......
µ±Éϲã×¼±¸ºÃÒ»¸ö°üÖ®ºó£¬½»¸øÏÂÃæÕâ¸öº¯Êý´¦Àí
int dev_queue_xmit(struct sk_buff *skb)
{
struct net_device *dev = skb->dev;
struct netdev_queue *txq;
struct Qdisc *q;
int rc = -ENOMEM;
/* GSO will handle the following emulations directly. */
if (netif_needs_gso(dev, skb))
goto gso; ......
Èç¹ûÄãÄÜÕýÈ·»Ø´ðÒÔÏÂÎÊÌâ²¢Éî¿ÌÀí½âÏà¹ØÖªÊ¶µãÔÀí£¬ÄÇôÄã¿ÉÒÔËãµÃÉÏ»ù±¾ºÏ¸ñµÄLinuxÄں˿ª·¢¹¤³Ìʦ£¬ÊÔÊÔ¿´£¡
1)LinuxÖÐÖ÷ÒªÓÐÄļ¸ÖÖÄÚºËËø£¿
2)LinuxÖеÄÓû§Ä£Ê½ºÍÄÚºËģʽÊÇʲôº¬Ò⣿
3)ÔõÑùÉêÇë´ó¿éÄÚºËÄڴ棿
4)Óû§½ø³Ì¼äͨÐÅÖ÷ÒªÄļ¸ÖÖ·½Ê½£¿
5)ͨ¹ý»ï°éϵͳÉêÇëÄÚºËÄÚ´æµÄº¯ÊýÓÐÄÄЩ£¿
6)Í ......