Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ :

linuxÄں˶ÁÊé±Ê¼Ç£¨½ø³ÌÖÕÖ¹º¯Êý·ÖÎö£©Èý

do_exit() Function
-----------------------------------------------------------------------
kernel/exit.c
707 NORET_TYPE void do_exit(long code)
708 {
709 struct task_struct *tsk = current;
710
711 if (unlikely(in_interrupt()))
712 panic("Aiee, killing interrupt handler!");
713 if (unlikely(!tsk->pid))
714 panic("Attempted to kill the idle task!");
715 if (unlikely(tsk->pid == 1))
716 panic("Attempted to kill init!");
717 if (tsk->io_context)
718 exit_io_context();
719 tsk->flags |= PF_EXITING;
720 del_timer_sync(&tsk->real_timer);
721
722 if (unlikely(in_atomic()))
723 printk(KERN_INFO "note: %s[%d] exited with preempt_count %d\n",
724 current->comm, current->pid,
725 preempt_count());
-----------------------------------------------------------------------
Line 707²ÎÊýcodeÊǽø³Ç·µ»Ø¸ø¸¸½ø³ÌµÄÍ˳öÂë Lines 711716 È·±£Ä¿Ç°½ø³Ì²»ÊÇÒ»¸öÖжϴ¦Àí½ø³Ì£¬È·±£²»ÊÇidle½ø³Ì£¨PID=0£©»òÕßÊÇinit½ø³Ì£ ......

linuxϵͳµ÷ÓÃÁбí

Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó
½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐ
Ö¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø
³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
setpgid
Éè
ÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
setpgrp
Éè
Öõ±Ç°½ø³Ì×é±êÖ¾ºÅ
getpid
»ñÈ¡½ø³Ì±êʶºÅ
getppid
Ȗ
È¡¸¸½ø³Ì±êʶºÅ
getpriority
»ñÈ¡µ÷¶ÈÓÅÏȼ¶
setpriority
Éè
Öõ÷¶ÈÓÅÏȼ¶
modify_ldt
¶Áд½ø³ÌµÄ±¾µØÃèÊö±í
nanosleep
ʹ
½ø³Ì˯ÃßÖ¸¶¨µÄʱ¼ä
nice
¸Ä±ä·Öʱ½ø³ÌµÄÓÅÏȼ¶
pause
¹Ò
Æð½ø³Ì£¬µÈ´ýÐźÅ
personality
ÉèÖýø³ÌÔËÐÐÓò
prctl
¶Ô
½ø³Ì½øÐÐÌØ¶¨²Ù×÷
ptrace
½ø³Ì¸ú×Ù
sched_get_priority_max
È¡
µÃ¾²Ì¬ÓÅÏȼ¶µÄÉÏÏÞ
sched_get_priority_min
È¡µÃ¾²Ì¬ÓÅÏȼ¶µÄÏÂÏÞ
sched_getparam
È¡
µÃ½ø³ÌµÄµ÷¶È²ÎÊý
sched_getscheduler
È¡µÃÖ¸¶¨½ø³ÌµÄµ÷¶È²ßÂÔ
sched_rr_get_interval
È¡
µÃ°´RRËã·¨µ÷¶ÈµÄʵʱ½ø³ÌµÄʱ¼äƬ³¤¶È
sched_setparam
ÉèÖýø³ÌµÄµ÷¶È²ÎÊý
sched_setscheduler
Éè
ÖÃÖ¸¶¨½ø³ÌµÄµ÷¶È²ßÂԺͲÎÊý
sched_yield
½ø³ÌÖ÷¶¯Èóö´¦ÀíÆ÷,²¢½«×Ô¼ºµÈºòµ÷¶È¶ ......

Linux Socketѧϰ±Ê¼Ç£¨1£© ѧϰĿ¼

1. Sockets ½éÉÜ
2. ÓòºÍµØÖ··ÖÀà
3. µØÖ·×ª»»º¯Êý
4. SocketÀàÐÍÒÔ¼°¸÷ÖÖЭÒé
5. ½«µØÖ·ºÍSocketÏà°ó¶¨
6. ÃæÏòÎÞÁ¬½ÓµÄЭÒé
7. ÃæÏòÁ¬½ÓµÄЭÒé
8. ·þÎñÆ÷¶ËµÄÃæÏòÁ¬½ÓЭÒé
9. Ö÷»úºÍÍøÂçÃû²éѯ
---------------------------------------------
10. ÔÚSocketÉÏʹÓñê×¼I/O
11. ²¢·¢¿Í»§ºÍ·þÎñÆ÷
12. Socket Ñ¡Ïî
13. ÓÃUDP½øÐй㲥
14. Out-of-Band Êý¾Ý
15. ʹÓÃiNetd ºǫ́½ø³Ì
16. ÍøÂ簲ȫ±à³Ì
17. Passing Credentials and File Descriptors
18. Ò»¸öʵ¼ÊµÄÍøÂç³ÌÐòÀý×Ó ......

linux쵀OllyDbg EDB

Ô­´´ÎÄÕ£¬×ªÔØÇë×¢Ã÷³ö´¦£¬Ð»Ð»£¡
×÷ÕߣºÇåÁÖ£¬²©¿ÍÃû£º·É¿Õ¾²¶É
ÔÚwindowsÏÂ×ö¹ý·´»ã±àµÄÈË£¬¹À¼Æ¶¼ÈÏʶollydbgÕâÑùÈí¼þ¡£Ã»´í£¬ollydbgÊÇwindowÏÂ×öÆÆ½âÈí¼þºÍ·´»ã±àÈí¼þÈËÊ¿µÄÀûÆ÷¡£ÏÖÔÚ½éÉÜÒ»¸öºÍollydbgÒ»ÑùµÄÈí¼þ£¬µ«ËüÊÇÔÚlinuxÏÂÔËÐÐµÄ --- EDG¡£
Õâ¸öÈí¼þµÄ×÷Õß±¾À´ÊǸöÈí¼þ·´»ã±àÈËÊ¿£¬ÔÚwindowsϾ­³£·´»ã±à¸÷ÖÖûÓпªÔ´µÄÈí¼þ¡£µ«ÊÇ¿àÓÚÔÚlinuxûÓÐÕâ·½ÃæÀàËÆµÄÈí¼þ£¨Õâ¾ÍÊÇlinuxϵĺô¦£¬ÒòΪ´ó¶àÈí¼þ¶¼¿ªÔ´ÁË£¬ËùÒÔҲûʲôÈËÐèҪȥ·´»ã±àÕâЩÈí¼þ£¬¹þ¹þ£©£¬×÷Õß¾Í×Ô¼ºÇ××ÔдÁËÒ»¸ö£¬²¢ÇÒ»¹¿ªÁËÔ´¡£
Èí¼þʹÓÃÁËQT4.5ÒÔÉϺÍboost1.35ÒÔÉϰ汾À´±àÒë¡£
ÏÖÔÚÀ´¿´ÏÂÕâ¸öÈí¼þµÄ¼¸¸ö½ØÍ¼£º
ÏëÒª×ölinuxÏµķ´»ã±à³ÌÐòµÄ¾ÍÓõÃÉÏÕâ¸öÈí¼þÁË£¬µ«ÊÇ£¬ÎÒ¾õµÃÕâ¸öÈí¼þµÄ×î´óºÃ´¦¾ÍÊÇ¿ªÔ´£¬ÄÇôÄã¾Í¿ÉÒÔÖªµÀ±ðÈËÊÇÔõÃ´ÖÆ×÷Õâ¿î·´»ã±àµÄ³ÌÐòµÄ£¬±Ï¾¹linuxÏÂÄÇô¶àÈí¼þ¶¼ÊÇ¿ªÔ´µÄ£¬·´»ã±à¾ÍÏԵò»ÊÇÄÇô±ØÐë¡£
Ïë½øÒ»²½Á˽âÕâ¿îÈí¼þ£¬²¢ÏÂÔØ£¬¿ÉÒÔµ½Èí¼þµÄÖ÷Ò³ÉÏÁ˽⣺
http://www.codef00.com/projects.php ......

LinuxÏÂSocket±à³Ì

ʲôÊÇSocket
¡¡¡¡ Socket½Ó¿ÚÊÇTCP/IPÍøÂçµÄAPI£¬Socket½Ó¿Ú¶¨ÒåÁËÐí¶àº¯Êý»òÀý³Ì£¬³ÌÐòÔ±¿ÉÒÔÓÃËüÃÇÀ´¿ª·¢TCP/IPÍøÂçÉϵÄÓ¦ÓóÌÐò¡£ÒªÑ§InternetÉϵÄTCP/IPÍøÂç±à³Ì£¬±ØÐëÀí½âSocket½Ó¿Ú¡£
¡¡ ¡¡ Socket½Ó¿ÚÉè¼ÆÕß×îÏÈÊǽ«½Ó¿Ú·ÅÔÚUnix²Ù×÷ϵͳÀïÃæµÄ¡£Èç¹ûÁ˽âUnixϵͳµÄÊäÈëºÍÊä³öµÄ»°£¬¾ÍºÜÈÝÒ×Á˽âSocketÁË¡£ÍøÂçµÄ SocketÊý¾Ý´«ÊäÊÇÒ»ÖÖÌØÊâµÄI/O£¬SocketÒ²ÊÇÒ»ÖÖÎļþÃèÊö·û¡£SocketÒ²¾ßÓÐÒ»¸öÀàËÆÓÚ´ò¿ªÎļþµÄº¯Êýµ÷ÓÃSocket()£¬¸Ãº¯Êý·µ »ØÒ»¸öÕûÐ͵ÄSocketÃèÊö·û£¬ËæºóµÄÁ¬½Ó½¨Á¢¡¢Êý¾Ý´«ÊäµÈ²Ù×÷¶¼ÊÇͨ¹ý¸ÃSocketʵÏֵġ£³£ÓõÄSocketÀàÐÍÓÐÁ½ÖÖ£ºÁ÷ʽSocket £¨SOCK_STREAM£©ºÍÊý¾Ý±¨Ê½Socket£¨SOCK_DGRAM£©¡£Á÷ʽÊÇÒ»ÖÖÃæÏòÁ¬½ÓµÄSocket£¬Õë¶ÔÓÚÃæÏòÁ¬½ÓµÄTCP·þÎñÓ¦Óã»Êý¾Ý ±¨Ê½SocketÊÇÒ»ÖÖÎÞÁ¬½ÓµÄSocket£¬¶ÔÓ¦ÓÚÎÞÁ¬½ÓµÄUDP·þÎñÓ¦Óá£
Socket½¨Á¢
¡¡¡¡ÎªÁ˽¨Á¢Socket£¬³ÌÐò¿ÉÒÔµ÷ÓÃSocketº¯Êý£¬¸Ãº¯Êý·µ»ØÒ»¸öÀàËÆÓÚÎļþÃèÊö·ûµÄ¾ä±ú¡£socketº¯ÊýÔ­ÐÍΪ£º
¡¡¡¡ int socket(int domain, int type, int protocol);
¡¡ ¡¡ domainÖ¸Ã÷ËùʹÓõÄЭÒé×壬ͨ³£ÎªPF_INET£¬±íʾ»¥ÁªÍøÐ­Òé×壨TCP/IPЭÒé×壩£»type²ÎÊýÖ¸¶¨socketµÄÀàÐÍ£º SOCK_STREAM »òSOCK_DGR ......

linuxÖÐselect()º¯Êý·ÖÎö

select()µÄ»úÖÆÖÐÌṩһfd_setµÄÊý¾Ý½á¹¹£¬Êµ¼ÊÉÏÊÇÒ»longÀàÐ͵ÄÊý×飬 Ã¿Ò»¸öÊý×éÔªËØ¶¼ÄÜÓëÒ»´ò¿ªµÄÎļþ¾ä±ú£¨²»¹ÜÊÇSocket¾ä±ú,»¹ÊÇÆäËû Îļþ»òÃüÃû¹ÜµÀ»òÉ豸¾ä±ú£©½¨Á¢ÁªÏµ£¬½¨Á¢ÁªÏµµÄ¹¤×÷ÓɳÌÐòÔ±Íê³É£¬ µ±µ÷ÓÃselect()ʱ£¬ÓÉÄں˸ù¾ÝIO״̬ÐÞ¸Äfd_setµÄÄÚÈÝ£¬ÓÉ´ËÀ´Í¨ÖªÖ´ ÐÐÁËselect()µÄ½ø³ÌÄÄÒ»Socket»òÎļþ¿É¶Á£¬ÏÂÃæ¾ßÌå½âÊÍ£º 
#include 
#include 
#include 
int select(nfds, readfds, writefds, exceptfds, timeout) 
int nfds; 
fd_set *readfds, *writefds, *exceptfds; 
struct timeval *timeout; 
ndfs£ºselect¼àÊÓµÄÎļþ¾ä±úÊý£¬ÊÓ½ø³ÌÖдò¿ªµÄÎļþÊý¶ø¶¨,Ò»°ãÉèÎªÄØÒª¼àÊÓ¸÷Îļþ ÖеÄ×î´óÎļþºÅ¼ÓÒ»¡£ 
readfds£ºselect¼àÊӵĿɶÁÎļþ¾ä±ú¼¯ºÏ¡£ 
writefds: select¼àÊӵĿÉдÎļþ¾ä±ú¼¯ºÏ¡£ 
exceptfds£ºselect¼àÊÓµÄÒì³£Îļþ¾ä±ú¼¯ºÏ¡£ 
timeout£º±¾´Îselect()µÄ³¬Ê±½áÊøÊ±¼ä¡££¨¼û/usr/sys/select.h£¬ ¿É¾«È·ÖÁ°ÙÍò·ÖÖ®Ò»Ã룡£© 
µ±readfds»òwritefdsÖÐÓ³Ï ......
×ܼǼÊý:40319; ×ÜÒ³Êý:6720; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [96] [97] [98] [99] 100 [101] [102] [103] [104] [105]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ