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

linux 2.6 kernel epoll

http://hi.baidu.com/j_fo/blog/item/a43fa60fa6e2f4eaab6457d5.html
Linux2.6ÄÚºËepoll½éÉÜ
2008-11-05 16:35
http://blog.csdn.net/rstevens/archive/2007/10/30/1858067.aspx
http://hi.baidu.com/jmlover/blog/item/24c28b131e6b48d7f7039ee6.html
http://hi.baidu.com/jmlover/blog/item/e64df724f12926348744f91b.html
Ãû´Ê½âÊÍ£ºman epollÖ®ºó£¬µÃµ½ÈçϽá¹û£º
NAME
epoll - I/O event notification facility
SYNOPSIS
#include <sys/epoll.h>
DEscrīptION
epoll is a variant of poll(2) that can be used either as Edge or Level
Triggered interface and scales well to large numbers of watched fds.
Three system calls are provided to set up and control an epoll set:
epoll_create(2), epoll_ctl(2), epoll_wait(2).
An epoll set is connected to a file descrīptor created by
epoll_create(2).   Interest for certain file descrīptors is then
registered via
epoll_ctl(2). Finally, the actual wait is started by epoll_wait(2).
Æäʵ£¬Ò»ÇеĽâÊͶ¼ÊǶàÓàµÄ£¬°´ÕÕÎÒĿǰµÄÁ˽⣬EPOLLÄ£ÐÍËÆºõÖ»ÓÐÒ»ÖÖ¸ñʽ£¬ËùÒÔ´ó¼ÒÖ»Òª²Î¿¼ÎÒÏÂÃæµÄ´úÂ룬¾ÍÄܹ»¶ÔEPOLLÓÐËùÁ˽âÁË£¬´úÂëµÄ½âÊͶ¼ÒѾ­ÔÚ×¢ÊÍÖУº
while (TRUE)
{
int nfds = epoll_wait (m_epoll_fd, m_events, MAX_EVENTS, EPOLL_TIME_OUT);//µÈ´ýEPOLLʼþµÄ·¢Éú£¬Ï൱ÓÚ¼àÌý£¬ÖÁÓÚÏà¹ØµÄ¶Ë¿Ú£¬ÐèÒªÔÚ³õʼ»¯EPOLLµÄʱºò°ó¶¨¡£
if (nfds <= 0)
continue;
m_bOnTimeChecking = FALSE;
G_CurTime = time(NULL);
for (int i=0; i<nfds; i++)
{
try
{
if (m_events[i].data.fd == m_listen_http_fd)//Èç¹ûмà²âµ½Ò»¸öHTTPÓû§Á¬½Óµ½°ó¶¨µÄHTTP¶Ë¿Ú£¬½¨Á¢ÐµÄÁ¬½Ó¡£ÓÉÓÚÎÒÃÇвÉÓÃÁËSOCKETÁ¬½Ó£¬ËùÒÔ»ù±¾Ã»Óá£
{
OnAcceptHttpEpoll ();
}
else if (m_events[i].data.fd == m_listen_sock_fd)//Èç¹ûмà²âµ½Ò»¸öSOCKETÓû§Á¬½Óµ½Á˰󶨵ÄSOCKET¶Ë¿Ú£¬½¨Á¢ÐµÄÁ¬½Ó¡£
{
OnAcceptSockEpoll ();
}
else if (m_events[i].events & EPOLLIN)//Èç¹ûÊÇÒѾ­Á¬½ÓµÄÓû§£¬²¢ÇÒÊÕµ½Êý¾Ý£¬ÄÇô½øÐжÁÈë¡£
{
OnReadEpoll (i);
}
OnWriteEpoll (i);//²é¿´µ±Ç°µÄ»î¶¯Á¬½ÓÊÇ·ñÓÐÐèҪд³öµÄÊý¾Ý¡£
}
catch (int)
{
PRINTF ("CATCH²¶»ñ´íÎó\n");


Ïà¹ØÎĵµ£º

linuxÍøÇÅÉèÖÃMACµØÖ·Ê±µÄÐÐΪ

brctl addbr br0
ifconfig br0
br0 MAC is 00:00:00:00:00:00
brctl addif br0 eth1  (eth1 is xx:xx:xx:xx:xx:33)
ifconfig br0
br0 MAC is xx:xx:xx:xx:xx:33  same as eth1, auto change
brctl addif br0 eth2  (eth2 is xx:xx:xx:xx:xx:30)
ifconfig br0
br0 MAC is xx:xx:xx:xx:xx:30  sa ......

linux nfsÉèÖÃ

ʹÓùý³ÌÖеÄÐĵãº
Ò»¡¢½â³ýĿ¼ӳÉä¹ØÏµ
umount Ŀ¼¿ÉÒÔ½â³ý¹ØÁª¹ØÏµ
±ØÐëÏÈÔÚ¿Í»§¶Ëumount£¬È»ºóÔÚ·þÎñÆ÷¶ËÍ£Ö¹nfs·þÎñ£¬ÒÔ¼°ÐÞ¸Ä/etc/exports£¬·ñÔòµÄ»°»áµ¼ÖÂdf -hÎÞ·¨¹Ø±Õ
¶þ¡¢mount.nfs: Input/output error
½â¾ö:ÔÚ¿Í»§¶ËÒ²ÐèÆô¶¯portmap
Èý¡¢ÐÞ¸ÄÍê±Ï/etc/exportsÎļþÖ®ºó£¬¿ÉÒÔÖØÆônfs·þÎñ£¬Ò²¿ÉÒÔʹÓÃexp ......

linux ³£ÓÃÃüÁî

Ŀ¼ºÍÎļþ²Ù×÷
²é¿´µ±Ç°Ä¿Â¼Ïà¶ÔÓÚ¸ùĿ¼µÄλÖÃ
¡¡
¡¡¡¡pwd
²é¿´µ±Ç°Ä¿Â¼ÄÚÈÝ
¡¡¡¡ls
ÒÔ³¤¸ñʽ²é¿´µ±Ç°Ä¿Â¼ÄÚÈÝ¡£¶ÔӦÿ¸öÎļþµÄÌõÄ¿½«°üÀ¨Á¬½ÓÊýÄ¿¡¢ËùÓÐÕß¡¢´óС¡¢×îºóÐÞ¸Äʱ¼ä¡¢È¨ÏÞµÈÄÚÈÝ
¡¡¡¡ls -l
¸Ä±äµ±Ç°Ä¿Â¼¡£Ä¿µÄĿ¼Ãû¿ÉÓÃÏà¶Ô·¾¶±íʾ£¬Ò²¿ÉÒÔÓþø¶Ô·¾¶±íʾ¡£
cd [Ä¿µÄĿ¼Ãû]
×ªÒÆµ½ÉÏÒ»¼¶Ä¿Â¼
c ......

linuxÄÚºËÔ´ÂëÖг£¼ûºê¶¨Òå

1. gccµÄ__attribute__±àÒïÊôÐÔ
ÒªÁ˽âLinux Kernel´úÂëµÄ·Ö¶ÎÐÅÏ¢£¬ÐèÒªÁ˽âÒ»ÏÂgccµÄ__attribute__µÄ±àÒïÊôÐÔ£¬__attribute__Ö÷ÒªÓÃÓڸıäËùÉùÃ÷»ò¶¨ÒåµÄº¯Êý»òÊý¾ÝµÄÌØÐÔ£¬ËüÓкܶà×ÓÏÓÃÓڸıä×÷ÓöÔÏóµÄÌØÐÔ¡£±ÈÈç¶Ôº¯Êý£¬noline½«½ûÖ¹½øÐÐÄÚÁªÀ©Õ¹¡¢noreturn±íʾûÓзµ»ØÖµ¡¢pure±íÃ÷º¯Êý³ý·µ»ØÖµÍ⣬²»»áͨ¹ýÆäËü ......

Ïê½âLinuxÏÂOracleµÄ¾²Ä¬°²×°


ÔÚÄ³Ð©ÌØÊâµÄÇé¿öÏ£¬ÈçÒòÎªÍøÂç»òÕßXÅäÖõĹØÏµÎÞ·¨Á¬½Óµ½X server»òÕßÖ÷»úÉÏûÓÐX£¬¾Í¿ÉÒÔʹÓþ²Ä¬°²×°µÄ·½Ê½°²×°Êý¾Ý¿â£¬Í¬ÑùÈç¹ûÐèÒª´ó¹æÄ£²¿Êð£¬Ôò¾²Ä¬°²×°½«»á´ó´ó¼õÇáDBAµÄÖØ¸´ÀͶ¯Á¦£¬¶øÇÒ¾²Ä¬°²×°²»ÐèÒªX£¬´Ó°²×°Ð§ÂÊ  
ÔÚÄ³Ð©ÌØÊâµÄÇé¿öÏ£¬ÈçÒòÎªÍøÂç»òÕßXÅäÖõĹØÏµÎÞ·¨Á¬½Óµ½X server»òÕßÖ÷»úÉÏûÓÐX£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ