Linuxϵͳµ÷ÓÃÁбí
±¾ÎÄÁгöÁ˴󲿷ֳ£¼ûµÄLinuxϵͳµ÷Ó㬲¢¸½ÓмòÒªÖÐÎÄ˵Ã÷¡£ ÒÔÏÂÊÇLinuxϵͳµ÷ÓõÄÒ»¸öÁÐ±í£¬°üº¬Á˴󲿷ֳ£ÓÃϵͳµ÷ÓúÍÓÉϵͳµ÷ÓÃÅÉÉú³öµÄµÄº¯Êý¡£Õâ¿ÉÄÜÊÇÄãÔÚ»¥ÁªÍøÉÏËùÄÜ¿´µ½µÄΨһһƪÖÐÎÄ×¢Ê͵ÄLinuxϵͳµ÷ÓÃÁÐ±í£¬¼´Ê¹ÊǼòµ¥µÄ×ÖĸÐòÓ¢ÎÄÁÐ±í£¬ÄÜ×öµ½ÕâôÍêȫҲÊǺܺ±¼ûµÄ¡£ °´ÕÕ¹ßÀý£¬Õâ¸öÁбíÒÔman pagesµÚ2½Ú£¬¼´ÏµÍ³µ÷ÓýÚΪÀ¶±¾¡£°´ÕÕ±ÊÕßµÄÀí½â£¬¶ÔÆä×÷ÁË´óÖµķÖÀ࣬ͬʱҲ×÷ÁËһЩССµÄÐ޸ģ¬É¾È¥Á˼¸¸ö½ö¹©ÄÚºËʹÓ㬲»ÔÊÐíÓû§µ÷ÓõÄϵͳµ÷Ó㬶Ըö±ð±¾ÈËÉÔ¾õ²»Í׵ĵط½×÷ÁËһЩСµÄÐ޸쬲¢¶ÔËùÓÐÁгöµÄϵͳµ÷Óø½ÉϼòҪעÊÍ¡£ ÆäÖÐÓÐһЩº¯ÊýµÄ×÷ÓÃÍêÈ«Ïàͬ£¬Ö»ÊDzÎÊý²»Í¬¡££¨¿ÉÄܺܶàÊìϤC++ÅóÓÑÂíÉϾÍÄÜÁªÏëÆðº¯ÊýÖØÔØ£¬µ«ÊDZðÍüÁËLinuxºËÐÄÊÇÓÃCÓïÑÔдµÄ£¬ËùÒÔÖ»ÄÜÈ¡³É²»Í¬µÄº¯ÊýÃû£©¡£»¹ÓÐһЩº¯ÊýÒѾ¹ýʱ£¬±»ÐµĸüºÃµÄº¯ÊýËù´úÌæÁË£¨gccÔÚÁ´½ÓÕâЩº¯Êýʱ»á·¢³ö¾¯¸æ£©£¬µ«ÒòΪ¼æÈݵÄÔÒò»¹±£Áô×Å£¬ÕâЩº¯ÊýÎÒ»áÔÚÇ°Ãæ±êÉÏ¡°*¡±ºÅÒÔÊ¾Çø±ð¡£ Ò»¡¢½ø³Ì¿ØÖÆ£º 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
½ø³ÌÖ÷¶¯Èóö´¦ÀíÆ÷,²¢½«×Ô¼ºµÈºòµ÷¶È¶ÓÁжÓβ vfork
´´½¨Ò»¸ö×Ó½ø³Ì£¬ÒÔ¹©Ö´ÐÐгÌÐò£¬³£ÓëexecveµÈͬʱʹÓà wait
µÈ´ý×Ó½ø³ÌÖÕÖ¹ wait3
²Î¼ûwait waitpid
Ïà¹ØÎĵµ£º
STAT(¸ÃÐг̵Ä״̬)
D: ²»¿ÉÓÃÐźÅÖжϵÄ˯Ãß״̬
R: ÕýÔÚÖ´Ðлò´¦ÓÚÖ´ÐжÓÁÐÖÐ
S: ¿ÉÒÔÓÃÐźÅÖжϵÄ˯Ãß״̬
T: ÔÝÍ£Ö´ÐÐ
Z: ½©ËÀ״̬
££££££££££££££££££££££££££££££££££££
W: ûÓÐ×ã¹»µÄ¼ÇÒäÌå·ÖÒ³¿É·ÖÅä
<: ¸ßÓÅÏÈÐòµÄÐгÌ
N: µÍÓÅÏÈÐòµÄÐгÌ&nbs ......
List_Head
²Ù×÷ϵͳÄں˾³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ»·Á´±í¡¢Ë«ÏòÁ´±íµÄʵÏÖ¡£ÔÚ<Linux/list.h>ÎļþÖж¨ÒåÁËÒ»¸ölist_headÀàÐͼòµ¥½á¹¹£º
struct list_head {
struct list_head *next, *prev;
};
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á´±íÓëÒ»¸öÊý¾Ý½á¹ ......
ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçcha ......
¼ÍÏþá°Ôø¾Ëµ£º“ÊÀ¼äµÄµÀÀíÓëÊÂÇ飬¶¼ÔÚ¹ÅÈ˵ÄÊéÖÐ˵¾¡£¬ÏÖÔÚÈçÔÙÖøÊö£¬ÈÔÈ»³¬²»¹ý¹ÅÈ˵ķ¶Î§£¬ÓֺαØÔÙ¶àÖøÊö¡£”ÓÚÊÇËûÒ»ÉúÖ®ÖУ¬´Ó²»ÖøÊ飬ֻÊDZàÊé--ÕûÀíǰÈ˵ĵ伮£¬½«ÖйúÎÄ»¯×÷ϵͳµÄ·ÖÀ࣬ÒÔ±ãÓÚÒÔºóµÄѧÕßÃÇѧϰ¡£×Ô¼ºµÄÖø×÷Ö»ÓСºÔÄ΢²ÝÌñʼǡ»Ò»²á¶øÒÑ¡£
&nb ......
ÎÊÌâµÄÒý³ö£º
µ±¶ÔͬһÎļþ¾ä±ú£¨ÔÚWindowsÏ£©»òÊÇÎļþÃèÊö·û£¨ÔÚLinuxÏ£©½øÐÐËæ»ú¶Áд²Ù×÷ʱ£¬»á´æÔÚÎļþÖ¸ÕëµÄ¶¨Î»Óë¶Á\дÁ©¸ö²½Ö裬µ«ÓÉÓÚÕâ²»ÊÇÒ»¸öÔ×Ó²Ù×÷£¬¾Í¿ÉÄܲúÉúÈçÏÂÎÊÌ⣺½ø³ÌA¶ÔijÎļþÏȶ¨Î»µ½ f1 ´¦£¬È»ºó±»Öжϣ¬È»ºó½ø³ÌB¶ÔͬһÎļþ¶¨Î»µ½ f2 ´¦£¬È» ......