Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÍøÂçÉ豸Çý¶¯Ñ§Ï°±Ê¼Ç( )

LinuxÍøÂçÉ豸Çý¶¯³ÌÐòÌåϵ½á¹¹
´ÓÉϵ½Ï£ºÍøÂçЭÒé½Ó¿Ú²ã-->ÍøÂçÉ豸½á¹¹²ã-->É豸Çý¶¯ÊµÏÖ²ã-->ÍøÂçÉ豸Óëý½é²ã
 
¼ÇÒä·½·¨£º
·ÖÈý²ã£¬1¡¢×îÉÏÃæÀí½âΪÎÒÃÇÓõÄÍøÂç´«Êä·½·¨£¬¾ÍÊÇÍøÂçЭÒ飬2¡¢×îÏÂÃæ¾ÍÊÇÎïÀíÓ²¼þ£¬¼´ÍøÂçÉ豸²ã£¬3¡¢ÖмäÊÇÒ»²ã£¬É豸Çý¶¯£¬È»ºó²ð³É2²¿·Ö£¬Éϲ¿·ÖÊǽṹ£¨²ã£©£¬Ï²¿·ÖÊǽṹÖк¯ÊýµÄʵÏÖ£¨²ã£©¡£
 
¹¦ÄÜÃèÊö£º
ÍøÂçЭÒé½Ó¿Ú²ã
dev_queue_xmit() ·¢ËÍÊý¾Ý£¬ netif_rx() ½ÓÊÕÊý¾Ý¡£
ÍøÂçÉ豸½á¹¹²ã
ÓÐÒ»¸ö½á¹¹net_device
É豸Çý¶¯ÊµÏÖ²ã
net_deviceÀïµÄº¯ÊýʵÏÖ£¬ ͨ¹ýhard_start_xmit()Æô¶¯·¢ËͲÙ×÷£¬Í¨¹ýÖжϴ¥·¢½ÓÊÕ²Ù×÷¡£
ÍøÂçÉ豸Óëý½é²ã
ÄÄÀï¹ÜµÄÁËÄÇô¶à£¬²»ÀíËüÓ²¼þÔõôʵÏֵġ£
 
ÍøÂçЭÒé½Ó¿Ú²ã
ÓÐÒ»¸öNBµÄ½á¹¹Ìå:sk_buff£¬½Ð×ö£ºÌ×½Ó×Ö»º³åÇø£¬¸÷²ãÖ®¼äÊý¾Ý´«Êä¶¼¿¿Ëû¡£
dev_queue_xmit()¡¢netif_rx()µÄ²ÎÊý¶¼ÊÇÖ»ÊÇsk_buff¡£
º¯ÊýÔ­ÐÍ£º
dev_queue_xmit(struct sk_buff  *sb );          //sbʵ¼ÊÊÇ skb£¬ÉÙдһ¸ökÖú¼Ç
netif_rx(struct sk_buff sk_buff  *sb);             //ͬÉÏ
 
sk_buff ÄÚÈÝÏê½â
 
1 ЭÒéÍ· £¬ÓкöàºÃ¶àЭÒéҪʹÓã¬ËùÒÔЭÒéÍ·ÊDZØÒªµÎ£¬µ±È»²»ÄÜͬʱʹÓÃTCP/IP UDP»òÕ߯äËûʲôЭÒ飬ËùÒÔ°ÑÍ·½á¹¹¶¨Òå³ÉÁªºÏÌå¡£
2 Êý¾Ý»º³åÇø£ºÒª¸ã¸öµØ·½·ÅÊý¾Ý£¬Òª¹¦ÄÜÇ¿´ó±ØÐëÄÜÕÒµ½¸÷ÐèÒªµÄλÖñÈÈ磺ͷ¡¢Î²… ËùÒÔÔÚsk_buffÖж¨ÒåÁË4¸öÖ¸Õ룺head¡¢ data¡¢tail¡¢end¡£Ö¸ÏòÊý¾Ý»º³åÇø¡£
head£º»º³åÇøÆðʼµØÖ·£¬sk_buff Ò»µ©´´½¨£¬headÊý¾Ý¾Í¹Ì¶¨ÁË¡£
data£ºµ±Ç°²ãµÄÓÐЧÊý¾ÝÆðʼµØÖ·
tail£º ÓÐЧÊý¾ÝµÄ½áβµØÖ·£¬ºÍdata¶ÔÓ¦
end£º»º³åÇøµÄ½áβµØÖ·£¬sk_buff Ò»µ©´´½¨£¬endÊý¾Ý¾Í¹Ì¶¨ÁË¡£
3 ³¤¶ÈÐÅÏ¢
len:Êý¾Ý°üÓÐЧÊý¾Ý³¤¶È£¬°üÀ¨Ð­ÒéÍ·ºÍ¸ºÔØ£¨Payload£¿£©
data_len:¼Ç¼·ÖƬµÄÊý¾Ý³¤¶È,Êý¾Ý°üµÄÓÐЧÊý¾ÝÊǷֳɼ¸Æ¬´æÔÚ²»Í¬µÄÄÚ´æ¿Õ¼äÖУ¬Ã¿Æ¬¿Õ¼ä×î´óÊÇÒ»Ò³¡£
truesize£º»º³åÇøµÄÕûÌ峤¶È£¬¼´£ºsizeof(struct sk_buff)+£¨´«Èëalloc_sdb()»òdev_alloc_skb()º¯ÊýµÄ³¤¶È£©--˵ʵ»°²»Àí½â´«È뺯ÊýµÄ³¤¶ÈÊÇʲô.
 
NBµÄ½á¹¹Ìå:sk_buffµÄ²Ù×÷
¸÷²ãÖ®¼ä¾Í¿¿Ëû£¬µ±È»ÐèÒª¶ÔËû½øÐвÙ×÷¡£
Ø  ·ÖÅ䣺
struct sk_buff  *alloc_skb(unsigned int len,int priority);


Ïà¹ØÎĵµ£º

LinuxÏÂtelnetÉèÖÃ

Telnet·þÎñµÄÅäÖò½ÖèÈçÏÂ:
    Ò»¡¢°²×°TelnetÈí¼þ°ü(ͨ³£ÒªÁ½¸ö£©
¡¡¡¡1¡¢ Telnet-clIEnt (»ò Telnet)£¬Õâ¸öÈí¼þ°üÌṩµÄÊÇ Telnet ¿Í»§¶Ë³ÌÐò£»
¡¡¡¡2¡¢ Telnet-server £¬Õâ¸öÈí¼þ°üÌṩµÄÊÇ Telnet ·þÎñÆ÷¶Ë³ÌÐò£»
¡¡¡¡°²×°Ö®Ç°Ïȼì²âÊÇ·ñÕâЩÈí¼þ°üÒѰ²×°£¬·½·¨ÈçÏ£º
¡¡¡¡[root@echo root]# ......

linuxÖÐÏÔʾÖÐÎÄÂÒÂëµÄÎÊÌâ

ÓÉÓÚÔÚwindowsÏÂĬÈÏÊÇgb±àÂ룬¶øÎÒµÄvimĬÈÏÊÇutf-8£¨geditĬÈÏÒ²ÊÇutf-8£©£¬ËùÒÔ´ò¿ª»á³ÉÂÒÂë¡£ÐÞ¸ÄÁËÒ»ÏÂÅäÖÃÎļþ£¬
ʹvi
Ö§³Ögb±àÂë¾ÍºÃÁË¡£
$vi
 ~/.vimrc
let
&termencoding=&encoding
set fileencodings=utf-8,gbk
$:wq
ÔÙ
´Î´ò¿ªvi
£¬ÏÔʾ¾ÍÕý³£ÁË¡£
Èç¹ûÄãÐèÒªÔÚlinuxÏÂÃæÓõ½windowsÏ ......

LinuxÏÂviÃüÁîÏê½â

vi
±à¼­Æ÷ÊÇËùÓÐUnix¼°Linuxϵͳϱê×¼µÄ±à¼­Æ÷£¬ËüµÄÇ¿´ó²»Ñ·É«ÓÚÈκÎ×îеÄÎı¾±à¼­Æ÷£¬ÕâÀïÖ»ÊǼòµ¥µØ½éÉÜÒ»ÏÂËüµÄÓ÷¨ºÍһС²¿·ÖÖ¸Áî¡£ÓÉÓÚ¶Ô
Unix¼°LinuxϵͳµÄÈκΰ汾£¬vi±à¼­Æ÷ÊÇÍêÈ«ÏàͬµÄ£¬Òò´ËÄú¿ÉÒÔÔÚÆäËûÈκνéÉÜviµÄµØ·½½øÒ»²½Á˽âËü¡£ViÒ²ÊÇLinuxÖÐ×î»ù±¾µÄÎı¾±à¼­
Æ÷£¬Ñ§»áËüºó£¬Äú½«ÔÚLinuxµÄÊÀ½çÀ ......

linux yumÃüÁîÏê½â

Ò». yumÊÇʲô
yum = Yellow dog Updater, Modified
Ö÷Òª¹¦ÄÜÊǸü·½±ãµÄÌí¼Ó/ɾ³ý/¸üÐÂRPM°ü.
ËüÄÜ×Ô¶¯½â¾ö°üµÄÒÐÀµÐÔÎÊÌâ.
ËüÄܱãÓÚ¹ÜÀí´óÁ¿ÏµÍ³µÄ¸üÐÂÎÊÌâ
×¢:ΪʲôҪʹÓÃyum¶ø²»ÓÃapt,×î¼òµ¥µÄÔ­Òò,Fedora×Ô´ø

¶þ. ......

linux VFSµÄÊý¾Ý½á¹¹

£¨1£©»ù±¾¸ÅÄî
      ´Ó±¾ÖÊÉϽ²£¬ÎļþϵͳÊÇÌØÊâµÄÊý¾Ý·Ö²ã´æ´¢½á¹¹£¬Ëü°üº¬Îļþ¡¢Ä¿Â¼ºÍÏà¹ØµÄ¿ØÖÆÐÅÏ¢¡£ÎªÁËÃèÊöÕâ½á¹¹£¬LinuxÒýÈëһЩ»ù±¾¸ÅÄî:
A£¬Îļþ£ºÒ»×éÔÚÂß¼­ÉϾßÓÐÍêÕûÒâÒåµÄÐÅÏ¢ÏîµÄϵÁС£ÁíÍ⣬ÔÚLinuxÖУ¬³ýÁËÆÕͨÎļþ£¬ÆäËûÖîÈçĿ¼¡¢É豸¡¢Ì×½Ó×ÖµÈÒ²ÒÔÎļþ±»¶Ô´ý¡£×ÜÖ® ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ