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

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®½ø³Ì10

¼¸µã×¢Ò⣺
1.дʱ¸´ÖƼ¼ÊõÔÊÐí¸¸×Ó½ø³Ì¶ÁÏàͬµÄÎïÀíÒ³¡£Ö»ÒªÁ½ÕßÖÐÓÐÒ»¸öÊÔͼдһ¸öÎïÀíÒ³£¬Äں˾ͰÑÕâ¸öÒ³µÄÄÚÈÝ¿½±´µ½Ò»¸öеÄÎïÀíÒ³£¬²¢°ÑÕâ¸öеÄÎïÀíÒ³·ÖÅ䏸ÕýÔÚдµÄ½ø³Ì¡£
2.ÇáÁ¿¼¶½ø³ÌÔÊÐí¸¸×Ó½ø³Ì¹²Ïíÿ½ø³ÌÔÚÄں˵ĺܶàÊý¾Ý½á¹¹¡£
3.vfork()ϵͳµ÷Óô´½¨µÄ½ø³ÌÄܹ²ÏíÆä¸¸½ø³ÌµÄÄÚ´æµØÖ·¿Õ¼ä¡£ÎªÁË·ÀÖ¹¸¸½ø³ÌÖØÐ´×Ó½ø³ÌÐèÒªµÄÊý¾Ý£¬×èÈû¸¸½ø³ÌµÄÖ´ÐУ¬Ò»Ö±µ½×Ó½ø³ÌÍ˳ö»òÖ´ÐÐÒ»¸öеijÌÐòΪֹ¡£
ÇáÁ¿¼¶½ø³ÌÊÇÓÉclone£¨£©º¯Êý´´½¨µÄ¡£
#define CLONE_VM        0x00000100      ¹²ÏíÄÚ´æÃèÊö·ûºÍËùÓеÄÒ³±í
#define CLONE_FS        0x00000200      ¹²Ïí¸ùĿ¼ºÍµ±Ç°¹¤×÷Ŀ¼ËùÔÚµÄ±í£¬ÒÔ¼°ÓÃÓÚÆÁ±ÎÐÂÎÄ»¯³õʼÐí¿ÉÖ¤µÄλÑÚÂëÖµ
#define CLONE_FILES     0x00000400      ¹²Ïí´ò¿ªÎļþ±í
#define CLONE_SIGHAND   0x00000800      ¹²ÏíÐźŴ¦Àí³ÌÐòµÄ±í¡¢×èÈûÐźűíºÍ¹ÒÆðÐÅºÅ±í£¬Èç¹ûÕâ¸ö±ê־Ϊtrue£¬¾Í±ØÐëÉèÖÃCLONE_VM±êÖ¾¡£
#define CLONE_PTRACE    0x00002000      Èç¹û¸¸½ø³Ì±»¸ú×Ù£¬Ôò×Ó½ø³ÌÒ²±»¸ú×Ù¡£debugger³ÌÐòÏ£ÍûÒÔ×Ô¼º×÷Ϊ¸¸½ø³ÌÀ´¸ú×Ù×Ó½ø³Ì£¬ÔÚÕâÖÖÇé¿öÏ£¬Äں˰Ѹñê־ǿÖÃΪ1
#define CLONE_VFORK     0x00004000      ÔÚ·¢³övfork()ϵͳµ÷ÓÃʱÉèÖÃ
#define CLONE_PARENT    0x00008000      ÉèÖÃ×Ó½ø³ÌµÄ¸¸½ø³Ì£¨½ø³ÌÃèÊö·ûÖеÄparentºÍreal_parent×ֶΣ©Îªµ÷Óýø³ÌµÄ¸¸½ø³Ì
#define CLONE_THREAD    0x00010000      °Ñ×Ó½ø³Ì²åÈëµ½¸¸½ø³ÌµÄͬһÏß³Ì×éÖУ¬²¢ÆÈʹ×Ó½ø³Ì¹²Ïí¸¸½ø³ÌµÄÐźÅÃèÊö·û£¬Òò´ËÒ²ÉèÖÃ×Ó½ø³ÌµÄtgid×ֶκÍgroup_leader×ֶΡ£Èç¹ûÕâ¸ö±ê־λΪtrue,¾Í±ØÐëÉèÖÃCLONE_SIGHAND±êÖ¾
#define CLONE_NEWNS     0x00020000      µ±cloneÐèÒª×Ô¼ºµÄÃüÃû¿Õ¼äʱ£¨¼´Ëü×Ô¼ºµÄÒѹÒÔØÎļþϵͳÊÓͼ£©ÉèÖÃÕâ¸ö±êÖ¾¡£²»ÄÜͬʱÉèÖÃCLONE_NEWNSºÍCLONE_FS.
#define CLONE_SYSVSEM   0x00040000      ¹²Ïísystem v ipcÈ¡ÏûÐźÅÁ


Ïà¹ØÎĵµ£º

linux»·¾³±äÁ¿

LinuxÊÇÒ»¸ö¶àÓû§µÄ²Ù×÷ϵͳ¡£Ã¿¸öÓû§µÇ¼ϵͳºó£¬¶¼»áÓÐÒ»¸öרÓõÄÔËÐл·¾³¡£Í¨³£Ã¿¸öÓû§Ä¬ÈϵĻ·¾³¶¼ÊÇÏàͬµÄ£¬Õâ¸öĬÈÏ»·¾³Êµ¼ÊÉϾÍÊÇÒ»×é»·¾³±äÁ¿µÄ¶¨Òå¡£Óû§¿ÉÒÔ¶Ô×Ô¼ºµÄÔËÐл·¾³½øÐж¨ÖÆ£¬Æä·½·¨¾ÍÊÇÐÞ¸ÄÏàÓ¦µÄϵͳ»·¾³±äÁ¿¡£
³£¼ûµÄ»·¾³±äÁ¿
¶ÔÓÚPATHºÍHOMEµÈ»·¾³±äÁ¿´ó¼Ò¶¼²»Ä°Éú¡£³ý´ËÖ®Í⣬»¹ÓÐÏÂÃæÒ»Ð©³ ......

linuxÄں˺¯Êý±Ê¼Ç(Ò»)

½ø³Ì¹ÜÀíº¯Êý
pid_t getpid();·µ»Øµ±Ç°½ø³ÌµÄ±êʶºÅPID
pid_t fork();´´½¨Ò»¸ö½ø³Ì¡£
pid_t vfork();Óëfork()ÏàËÆ£¬vfork±£Ö¤×Ó½ø³ÌÏÈÔËÐУ¬ÔÚËüµ÷ÓÃexec»òexitÖ®ºó¸¸½ø³Ì²Å¿ÉÄܱ»µ÷Óá£
execº¯Êý×壺ÓÃÓÚ°ÑÒ»¸öгÌÐòÔØÈëµ÷Óýø³ÌµÄÄÚ´æ¿Õ¼ä£¬À´¸Ä±ä½ø³ÌµÄÖ´ÐдúÂ룬´Ó¶øÐγÉнø³Ì¡£execve²ÅÊÇÕæÕýÒâÒåÉϵÄϵͳµ÷
ÓÃ ......

Linux ELFÎļþ×°ÈëÓëÖ´ÐиÅÊö


ELFÊÇlinuxÖÐʹÓÃ×î¹ã·ºµÄÒ»ÖÖÓ¦ÓóÌÐò¸ñʽ£¬ÎªÁËŪÇå³þLinuxÄÚºËÊÇÈçºÎ½²ELFÎļþ¾«È·Ó³Éäµ½Ö¸¶¨ÄÚ´æ¿Õ¼ä£¬ÉÏÖÜÄ©°ÑÄÚºËsys_execve²¿·ÖºÃºÃ¿´ÁËÒ»±é£¬Ð¡½áÈçÏ£º
1. ELF¸ñʽ
ELFÖ¸¶¨Á˽ø³ÌÖÐtext¶Î¡¢bss¶Î¡¢data¶ÎµÈÓ¦¸Ã·ÅÖõ½½ø³ÌÐéÄâÄÚ´æ¿Õ¼äµÄʲôλÖã¬ÒÔ¼°¼Ç¼Á˽ø³ÌÐèÒªÓõ½µÄ¸÷ÖÖ¶¯Ì¬Á´½Ó¿âµÄλÖá£
2. sys_exe ......

LinuxÇý¶¯³ÌÐò¿ª·¢ É豸¿ØÖƽӿÚ

ÐòÑÔ
É豸Çý¶¯³ÌÐòµÄÒ»¸ö»ù±¾¹¦ÄܾÍÊǹÜÀíºÍ¿ØÖÆÉ豸£¬Í¬Ê±ÎªÓû§Ó¦ÓóÌÐòÌṩ¹ÜÀíºÍ¿ØÖÆÉ豸µÄ½Ó¿Ú¡£ÎÒÃÇÇ°ÃæµÄ“Hello World”Çý¶¯³ÌÐòÒѾ­¿ÉÒÔÌṩ¶Áд¹¦ÄÜÁË£¬ÔÚÕâÀïÎÒÃǽ«À©Õ¹ÎÒÃǵÄÇý¶¯ÒÔÖ§³ÖÉ豸¿ØÖƽӿڣ¬ÔÚLinuxÖÐÕâ¸ö½Ó¿ÚÊÇͨ¹ýioctlº¯ÊýÀ´ÊµÏֵġ£
É豸¿ØÖƽӿڣ¨ioctl º¯Êý£©
»ØÏëÒ»ÏÂÎÒÃÇÔÚ×Ö·ûÉ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ