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

Linux·¢Ëͺ¯Êýdev_queue_xmit·ÖÎö

µ±Éϲã×¼±¸ºÃÒ»¸ö°üÖ®ºó£¬½»¸øÏÂÃæÕâ¸öº¯Êý´¦Àí
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;
//Ê×ÏÈÅжÏskbÊÇ·ñ±»·Ö¶Î£¬Èç¹û·ÖÁ˶β¢ÇÒÍø¿¨²»Ö§³Ö·ÖÉ¢¶ÁµÄ»°ÐèÒª½«ËùÓжÎÖØÐÂ×éºÏ³ÉÒ»¸ö¶Î
//ÕâÀï__skb_linearizeÆäʵ¾ÍÊÇ__pskb_pull_tail(skb, skb->data_len),Õâ¸öº¯Êý»ù±¾ÉϵÈͬÓÚpskb_may_pull
//pskb_may_pullµÄ×÷ÓþÍÊǼì²âskb¶ÔÓ¦µÄÖ÷bufÖÐÊÇ·ñÓÐ×ã¹»µÄ¿Õ¼äÀ´pull³ölen³¤¶È£¬
//Èç¹û²»¹»¾ÍÖØÐ·ÖÅäskb²¢½«fragsÖеÄÊý¾Ý¿½±´ÈëзÖÅäµÄÖ÷buffÖУ¬¶øÕâÀォ²ÎÊýlenÉèÖÃΪskb->datalen£¬
//Ò²¾ÍÊǻὫËùÓеÄÊý¾ÝÈ«²¿¿½±´µ½Ö÷buffÖУ¬ÒÔÕâÖÖ·½Ê½Íê³ÉskbµÄÏßÐÔ»¯
if (skb_shinfo(skb)->frag_list &&
!(dev->features & NETIF_F_FRAGLIST) &&
__skb_linearize(skb))
goto out_kfree_skb;
/* Fragmented skb is linearized if device does not support SG,
* or if at least one of fragments is in highmem and device
* does not support DMA from it.
*/
//Èç¹ûÉÏÃæÒѾ­ÏßÐÔ»¯ÁËÒ»´Î£¬ÕâÀïµÄ__skb_linearize¾Í»áÖ±½Ó·µ»Ø
//×¢ÒâÇø±ðfragsºÍfrag_list£¬
//ǰÕßÊǽ«¶àµÄÊý¾Ý·Åµ½µ¥¶À·ÖÅäµÄÒ³ÃæÖУ¬sk_buffÖ»ÓÐÒ»¸ö¡£¶øºóÕßÔòÊÇÁ¬½Ó¶à¸ösk_buff
if (skb_shinfo(skb)->nr_frags &&
(!(dev->features & NETIF_F_SG) || illegal_highdma(dev, skb)) &&
__skb_linearize(skb))
goto out_kfree_skb;
/* Èç¹û´Ë°üµÄУÑéºÍ»¹Ã»ÓмÆËã²¢ÇÒÇý¶¯²»Ö§³ÖÓ²¼þУÑéºÍ¼ÆË㣬ÄÇôÐèÒªÔÚÕâÀï¼ÆËãУÑéºÍ*/
if (skb->ip_summed == CHECKSUM_PARTIAL) {
skb_set_transport_header(skb, skb->csum_start -
skb_headroom(skb));
if (!dev_can_checksum(dev, skb) && skb_checksum_help(skb))
goto out_kfree_skb;
}
gso:
/* Disable soft irqs for various locks below. Also
* stops preemption for RCU.
*/
rcu_read_lock_bh();
//Ñ¡ÔñÒ»¸ö·¢ËͶÓÁУ¬Èç¹ûÉ豸ÌṩÁËselect_queue»Øµ÷º¯Êý¾ÍʹÓÃËü£¬·ñÔòÓÉÄÚºËÑ¡ÔñÒ»¸ö¶ÓÁÐ
//´ó²¿·ÖÇý¶¯¶¼²»»áÉèÖöà¸ö¶ÓÁ


Ïà¹ØÎĵµ£º

linux crontab ¼Æ»®ÈÎÎñ

Crontab:linux¼Æ»®ÈÎÎñ¡£·Ç³£ÓÐÓõÄÒ»¸öÃüÁ¿ÉÒÔÔÚÖÜÆÚÐԵ͍ÒåÒ»¸öÈÎÎñµÄÖ´ÐÐʱ¼ä¡£×î¶ÌµÄÖÜÆÚΪ1·ÖÖÓ¡£ÒòΪcrontabÊÇÊØ»¤½ø³Ì£¬Ã¿¹ý1·ÖÖÓ»á¼ì²éÒ»´Î¡£
Crontab –l: Áгöµ±Ç°µÄÈÎÎñÁÐ±í¡£
Crontab –e:±à¼­µ±Ç°µÄÈÎÎñÁÐ±í¡£¿ÉÒÔͨ¹ývi±à¼­Æ÷À´±à¼­ÈÎÎñÁÐ±í¡£
¸ñʽÈçÏ£º
·Ö ʱ ÈÕ Ô ÖÜ ÃüÁî
¿´¼¸¸öÀý×Ó ......

linuxϵÄed ±à¼­Æ÷

linuxϵÄed ±à¼­Æ÷
ed ±à¼­Æ÷ÊÇ Linux ²Ù×÷ϵͳÏÂ×î¼òµ¥µÄÎı¾±à¼­Æ÷¡£ËüÊÇÒÔÐÐΪµ¥Î»¶ÔÎļþ½øÐб༭µÄ±à¼­Æ÷£¬¶ø²»Ïñ MS-DOS ϵͳÏ嵀 edit ÄÇÑùÊÇÒÔÕû¸öÆÁÄ»¿ò¼ÜΪµ¥Î»¶ÔÎļþ½øÐб༭µÄ¡£Òò´Ë£¬Èç¹ûÄãÒѾ­Ï°¹ßÁËʹÓà edit ÕâÖÖ·ç¸ñµÄ±à¼­Æ÷£¬ÄÇôÄã¿ÉÄÜÐèÒªÒ»¶Îʱ¼ä²ÅÄÜϰ¹ß ed µÄ·ç¸ñ¡£µ«ÊÇÕâ²¢²»ÖØÒª£¬ÒòΪ ed µÄ¼ò± ......

Linux 0.12ÄÚºË

LinuxʹÓôÓ1970Äê1ÔÂ1ÈÕ0ʱ0·Ö0ÃëÆðµ½¿ª»úʱ¾­¹ýµÄÃëÊý×÷Ϊ¿ª»úʱ¼ä, ÊÇÔÚmain.cºÍmktime.cÖнøÐгõʼ»¯µÄ.
1. linux/init/main.c
/*
 * read current time from CMOS.
 * ·ÃÎÊCMOSÐèҪͨ¹ý¶Ë¿Ú0x70, 0x71½øÐÐ.
 * ¶ÁÊý¾Ýʱ,ÏÈÓÃOUTÖ¸ÁîÏò0x70·¢ËÍÒª¶ÁÈ¡×Ö½ÚµÄÆ«ÒÆÎ»ÖÃÖµ, È»ºóÓÃINÖ¸Áî´Ó0x71¶ÁÊý¾Ý. ......

linuxϲ鿴nginx£¬apache£¬mysql£¬phpµÄ±àÒë²ÎÊý

ÒýÓÃhttp://www.linuxtone.org/html/76/t-2776.html
ÓÐʱºònginx£¬apache£¬mysql£¬php±àÒëÍêÁËÏë¿´¿´±àÒë²ÎÊý¿ÉÒÔÓÃÒÔÏ·½·¨
nginx±àÒë²ÎÊý£º
#/usr/local/nginx/sbin/nginx -V
CODE:
nginx version: nginx/0.6.32
built by gcc 4.1.2 20071124 (Red Hat 4.1.2-42)
configure arguments: --user=www --group=www --p ......

linux´ÅÅÌIO²é¿´

hiphop_linux
linux´ÅÅÌIO²é¿´(iostat)
##############
#
#    ²Ù×÷
#
##############
# iostat -x 1 10
Linux 2.6.18-92.el5xen    02/03/2009
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ