Linux ÐÂÔöϵͳµ÷ÓÃµÄÆôʾ
×î½üÔÚÑо¿ Linux Äں˵Äʱ¼ä×Óϵͳ£¬ÎªÏÂһƪ³¤ÎÄ¡¶·þÎñÆ÷³ÌÐòÖеÄÈÕÆÚÓëʱ¼ä¡·×ö×¼±¸£¬ÎÞÒâÖÐ×¢Òâµ½ÁË Linux ÐÂÔöµÄ¼¸¸öϵͳµ÷ÓõĶԱàд·þÎñÆ÷´úÂëµÄÓ°Ï죬ÏÈ´óּǼÔÚÕâÀï¡£ÕâÆª²©¿ÍÒ²¿ÉËã×÷ǰһƪ¡¶¶àÏ̷߳þÎñÆ÷µÄ³£Óñà³ÌÄ£ÐÍ¡·µÄÒ»¸ö×¢½Å¡£ 1. ·þÎñÆ÷³ÌÐòµÄ·ç¸ñ¿ÉÄÜÔÚ±ä еĴ´½¨ÎļþÃèÊö·ûµÄ syscall Ò»°ã¶¼Ö§³Ö¶îÍâµÄ flags ²ÎÊý£¬¿ÉÒÔÖ±½ÓÖ¸¶¨ O_NONBLOCK ºÍ FD_CLOEXEC£¬ÀýÈ磺 accept4 – 2.6.28 eventfd2 – 2.6.27 inotify_init1 – 2.6.27 pipe2 – 2.6.27 signalfd4 – 2.6.27 timerfd_create 2.6.25 ÒÔÉÏ 6 ¸ö syscalls£¬³ýÁË×îºóÒ»¸öÊÇй¦ÄÜ£¬ÆäÓàµÄ¶¼ÊÇÔöÇ¿ÔÓеĵ÷Ó㬰ÑÊý×ÖβºÅÈ¥µô¾ÍÊÇÔÀ´µÄ syscall¡£ O_NONBLOCK µÄ¹¦ÄÜÊÇ¿ªÆô¡°·Ç×èÈûIO¡±£¬¶øÎļþÃèÊö·ûĬÈÏÊÇ×èÈûµÄ¡£ ÕâЩ´´½¨ÎļþÃèÊö·ûµÄϵͳµ÷ÓÃÄÜÖ±½ÓÉ趨 O_NONBLOCK Ñ¡Ï»òÐíÄÜ·´Ó³µ±Ç° Linux £¨·þÎñ¶Ë£©¿ª·¢µÄ·çÏò£¬ÄǾÍÊÇÎÒÔÚǰһƪ²©¿Í¡¶¶àÏ̷߳þÎñÆ÷µÄ³£Óñà³ÌÄ£ÐÍ¡·ÀïÍÆ¼öµÄ one loop per thread + (non-blocking IO with IO multiplexing)¡£´ÓÕâЩÄں˸͝À´¿´£¬non-blocking IO ÒѾÖ÷Á÷µ½ÈÃÄÚºËÔö¼Ó syscall ÒÔ½Úʡһ´Î fcntl(2) µ÷Óõij̶ÈÁË¡£ ÁíÍ⣬ÒÔÏÂÐÂϵͳµ÷ÓÿÉÒÔÔÚ´´½¨ÎļþÃèÊö·ûʱ¿ªÆô FD_CLOEXEC Ñ¡Ï dup3 – 2.6.27 epoll_create1 – 2.6.27 FD_CLOEXEC µÄ¹¦ÄÜÊÇÈóÌÐò fork() ʱ£¬×Ó½ø³Ì»á×Ô¶¯¹Ø±ÕÕâ¸öÎļþÃèÊö·û£¨¼ûÏÂÃæµÄ¸üÕý£©¡£¶øÎļþÃèÊöĬÈÏÊDZ»×Ó½ø³Ì¼Ì³ÐµÄ£¨ÕâÊÇ´«Í³ Unix µÄÒ»ÖÖµäÐÍ IPC£¬±ÈÈçÓà pipe(2) ÔÚ¸¸×Ó½ø³Ì¼äµ¥ÏòͨÐÅ£©¡£ ÒÔÉÏ 8 ¸öРsyscalls ¶¼ÔÊÐíÖ±½ÓÖ¸¶¨ FD_CLOEXEC£¬»òÐí˵Ã÷ fork() µÄÖ÷ҪĿµÄÒѾ²»ÔÙÊÇ´´½¨ worker process ²¢Í¨¹ý¹²ÏíµÄÎļþÃèÊö·ûºÍ¸¸½ø³Ì±£³ÖͨÐÅ£¬¶øÊÇÏñ Windows µÄ CreateProcess ÄÇÑù´´½¨¡°¸É¾»¡±µÄ½ø³Ì£¬ÆäÓ븸½ø³ÌûÓжàÉٹϸ𡣠ÒÔÉÏÁ½¸ö flags ÔÚÎÒ¿´À´£¬ËµÃ÷ Linux ·þÎñÆ÷¿ª·¢µÄÖ÷Á÷Ä£ÐÍÕýÔÚÓÉ fork() + worker processes Ä£ÐÍת±äΪÎÒǰÎÄÍÆ¼öµÄ¶àÏß³ÌÄ£ÐÍ¡£fork() µÄʹÓÃÆµ¶È»á´ó´ó½µµÍ£¬½«À´»òÐíÖ»ÓÐרߺÔðÆô¶¯±ðµÄ½ø³ÌµÄ¡°¿´ÃŹ·³ÌÐò¡±²Å»áµ÷Óà fork()£¬¶øÒ»°ãµÄ·þÎñÆ÷³ÌÐò£¨´Ë´¦¡°·þÎñÆ÷³ÌÐò¡±µÄ¶¨Òå¼ûÎÒǰһƪÎÄÕ£©²»»áÔÙ fork() ³ö×Ó½ø³ÌÁË¡£ÔÒòÖ®Ò»ÊÇ£¬fork() Ò»°ã²»ÄÜÔÚ¶àÏ̳߳ÌÐòÖе÷Óã¬ÒòΪ Linux µÄ fork() Ö»¿Ë¡µ±Ç°Ïß³ÌµÄ thread of control£¬²»¿Ë¡ÆäËûÏ̡߳£Ò²¾ÍÊÇ˵²»ÄÜ
Ïà¹ØÎĵµ£º
Ö£ÑåÐË
(mlinux@163.com
)¹ú·À¿Æ´ó¼ÆËã»úѧԺ
2002 Äê 12 ÔÂ 11 ÈÕ
Ò»¸ö´óÐ͵ÄÓ¦ÓÃϵͳ£¬ÍùÍùÐèÒªÖÚ¶à½ø³ÌÐ×÷£¬½ø³Ì£¨Linux½ø³Ì¸ÅÄî¼û¸½1£©¼äͨÐŵÄÖØÒªÐÔÏÔ¶øÒ×¼û¡£±¾ÏµÁÐÎÄÕ²ûÊöÁË
Linux»·¾³Ïµļ¸ÖÖÖ÷Òª½ø³Ì¼äͨÐÅÊֶΣ¬²¢Õë¶Ôÿ¸öͨÐÅÊֶιؼü¼¼Êõ»·½Ú¸ø³öÏêϸʵÀý¡£Îª´ïµ½²ûÃ÷ÎÊÌâµÄÄ¿µÄ£¬±¾ÎÄ»¹¶ÔijЩͨР......
ת×Ô£ºhttp://blog.csdn.net/dog250/archive/2010/02/09/5303687.aspx
Ê×ÏÈ£¬Õâ¸örootkitÆäʵÊÇÒ»¸öÄÚºËľÂí£¬ºÍ´ó¶àÊýľÂí²»Í¬µÄÊÇ£¬¶ñÒâľÂíËùÔڵĻúÆ÷Êǿͻ§¶Ë¶ø²»ÊÇ·þÎñÆ÷£¬¶øºÚ¿ÍËùÔڵĻúÆ÷ÊÇ·þÎñÆ÷£¬ÕâÑù×öµÄºÃ´¦ÔÚÓÚ¿ÉÒÔ¶ã±Ü·À»ðǽ£¬Ò»°ãµÄ·À»ðǽ¶ÔÍâ³öµÄ°üÉó²é²»ÊÇÄÇôÑϸñ¶ø¶Ô½øÈëµÄ°üÉó²éÑϸñ£¬Èç¹û¶ñÒâ³ÌÐòÊÇ·þ ......
ת×Ô£ºhttp://blog.csdn.net/dog250/archive/2010/02/09/5303688.aspx
Õâ¸örootkitʹÓõļ¼Êõ²»±Èǰһ¸ö£¬Ëü²»ÊÇÀ¹½ØÏµÍ³µ÷Ó㬶øÊÇÀ¹½Ø¾ßÌåÎļþϵͳµÄ»Øµ÷º¯Êý£¬±¾ÉíÎļþϵͳµÄ»Øµ÷º¯Êý¾ÍÊǶ¯Ì¬×¢²áµÄ£¬ºÜÊDz»È·¶¨£¬ÄÇô·´ºÚÈí¼þ×ÔÈ»¾Í²»Äܼòµ¥Ï½áÂÛ˵Õâ¸öº¯Êý±»ºÚµôÁË£¬Òò´ËÕâ¸örootkit¿´À´±Èǰһ¸öÂÔʤһ³ï£¬×ÔÈ»µÄ£¬¼ ......
I learned some experience while Nanjing found 0x03 error. At begining, we don't know why our GSRM(a linux process) hang in a short time 5 seconds sometimes. It didn't handle any message at that time and the interruption is not regularly. So we assume we have Linux OS problem. We did following checks ......