תÔØ£linux 2.6 ½ø³Ì×ܽá
תÔØ£linux 2.6 ½ø³Ì×ܽá
½ø³Ì¡¢ÇáÁ¿¼¶½ø³Ì£¨LWP£©¡¢Ïß³Ì
½ø³Ì£º³ÌÐòÖ´ÐÐÌ壬ÓÐÉúÃüÆÚ£¬ÓÃÀ´·ÖÅä×ÊÔ´µÄʵÌå
Ị̈߳º·ÖÅäCPUµÄʵÌå¡£
Óû§¿Õ¼äʵÏÖ£¬Ò»¸öÏß³Ì×èÈû£¬ËùÓж¼×èÈû¡£
ÄÚºËʵÏÖ£¬²»»áËùÓÃÏà¹ØÏ̶߳¼×èÈû¡£ÓÃLWPʵÏÖ£¬ÓÃÏß³Ì×é±íʾÕâЩÏß³ÌÂß¼ÉÏËùÊôµÄ½ø³Ì¡£
½ø³ÌÃèÊö·û
½ø³ÌÃèÊö·û£¨¼ò³Æpd, process descriptors£©£¬½á¹¹ÌåÊÇ£ºtask_struct
Êý¾Ý½Ï¶à£¬´æ·ÅÔÚkenerlµÄ¶¯Ì¬ÄÚ´æ¿Õ¼ä¡£
pdµÄÒýÓ÷ÅÔÚthread_infoÖУ¬
thread_infoÓëÄÚºËÕ»£¬·ÅÔÚÒ»¸ö8K¿Õ¼ä£¨ËüµÄµØÖ·8K¶ÔÆ룩¡£Äں˳ÌÐòʹÓõÄÕ»¿Õ¼äºÜС¡£
thread_infoÔڵײ¿£¬ÄÚºËÕ»ÔÚ¶¥²¿ÏòÏÂÔö³¤¡£
ºÃ´¦£º¶àCPUʱ·½±ã£¬Ã¿¸öCPU¸ù¾Ý×Ô¼ºµÄÕ»Ö¸Õë¾Í¿ÉÒÔÕÒµ½µ±Ç°µÄpd £¨ÒÔºóÓÃcurrent±íʾµ±Ç°CPUÔËÐеĽø³ÌÃèÊö·û£©¡£
esp(ÄÚºËÕ»Ö¸Õë)µÍ8λÖÃÁ㣬¾ÍÊÇthread_infoµØÖ·¡£
ÿ½ø³ÌÓÐ×Ô¼ºµÄthread_info, (·ÖÅäÊͷź¯Êý: alloc_thread_info, free_thread_info)
ÃèÊö·ûµÄÄÚÈÝ
Ïà¹ØµÄID £¨Ò»¸ö4ÔªËØÊý×飩
½ø³ÌID £¨PID£©
PID°´´´½¨Ë³ÐòÁ¬ÐøÔö³¤£¬µ½×î´óÖµºó´Ó×îСֵ¿ªÊ¼¡£
0ºÅ½ø³Ì£º½»»»½ø³Ì£¨swapper£©
ÓÐPID¿ÉÓÃλͼ£¬±íʾÄÇÒ»¸öPID¿ÉÓã¬ÖÁÉÙÕ¼Ò»¸öÒ³¡£
Ïß³Ì×éID£¨tgid£©£¬ÓÃLWPʵÏÖ¶àÏß³ÌÖ§³Ö
¶à½ø³Ìʱ£¬½ø³Ìid£¬¾ÍÊÇÏß³Ì×éid, Ò²¾ÍÊÇ×鳤µÄpid£¨LWP£©¡£ getpid() È¡µÄÊÇÏß³Ì×éµÄid(tgid), Ò²ÊÇ×鳤µÄpid.
µ¥Ïß³Ìʱ£¬pid = gid¡£ËùÒÔgetpid,Ò²ÊÇÕæÕýµÄpid.
½ø³Ì×éID(pgrp)¡£
»Ø»°µÄID(session).
×éID£¬¶¼ÊÇ×鳤µÄPID¡£FIXME: µ«pbÒ²Óи÷×鳤µÄPID
Ïß³Ì×鳤£ºtgid
½ø³Ì×鳤£ºsignal->pgrp £¬
»á»°³¤£ºsignal->session
¹ÜÀíIDÊý¾Ý½á¹¹——¹þÏ£±í¹ÜÀí (ÀûÓÃidÕÒµ½ËùÓÃÏà¹ØµÄpd£¬·½±ã)¡£
Ò»¸ö¹þÏ£±íÊý×é(pid_hash),´æ·ÅËĸö¹þÏ£±í£¬ ÿһ¸ö±í´ú±íÒ»Ààid (pid, tgid, pgrp, session)
ÿ¸ö¹þÏ£±íµÄÓÉÊý×飨Ë÷ÒýΪ¹þÏ£Öµ£©ºÍ¶þάÁ´±í(ǶÈëµ½½ø³ÌÃèÊö·ûÄÚµÄpidsÖÐ)ʵÏÖ
Ïà¹ØÎĵµ£º
Ò»¡¢ÌáÇ°µÄ»°
¡¡¡¡ÒªËµCÓïÑÔºÍLinuxµÄ¹Øϵ´ó¼ÒÓ¦¸Ã¶¼²»»áÄ°Éú£¬LinuxϵͳÄں˾ÍÊÇÓÃCÓïÑÔ¿ª·¢µÄ£¬ËùÒÔËùÓеÄLinuxϵͳÏÂÃæ ¶¼»áÓÐCµÄ±àÒëµ÷ÊÔ¹¤¾ß£¬²»¹ýÕâЩ¹¤¾ß¶¼ÊÇÃüÁîʽµÄ£¬Õýʽ¿ª·¢µÄ»°»áºÜ²»·½±ã¡£FedoraÔÚ°²×°µÄʱºò¿ÉÒÔÑ¡Ôñ°²×°Fedora Eclipse£¬Õâ¸öIDEºÜÇ¿´ó£¬C£¬C++£¬Java£¬PythonµÈµÈ¶¼Ö§³Ö£¬¶øÇÒ±àÒ룬µ÷ÊÔºÍ ......
תÔØÇë×¢Ã÷³ö´¦£º±à³Ì±Ê¼ÇBLOG
¹¤ÓûÉÆÆäÊ£¬±ØÏÈÀûÆäÆ÷¡£ÓÃÁËÕâô¾ÃµÄlinux£¬ÏÖÔڱȽÏÖ÷Á÷µÄ¼¸¸öC/C++µÄIDE»ù±¾ÒѶ¼ÓùýÁË£¬ÏÖÔÚÀ´¶ÔËûÃÇ×öһϼòµ¥µÄ±È½Ï¡£
1¡¢VIM
Ê×ÏÈҪ˵µÄÊÇVIM¡£ÎÒÈÏΪ£¬VIMÖ»ÊÇÒ»¸ö±à¼Æ÷£¬²»ÄÜËãÊÇIDE¡£Ëä˵VIMÓкܶà²å¼þ£¬ÀýÈç´úÂëÕÛµþ¡¢µÝ½øµÈ£¬¿ÉÒÔ½«VIM×齨³É¼¸ºõÀàËÆÒ»¸öIDE£¬µ«Ê¼ÖÕËü²»ÊÇ× ......
Ëæ×ÅLinuxµÄÓ¦ÓÃÈÕÒæ¹ã·º£¬ÌرðÊÇÔÚÍøÂçÓ¦Ó÷½Ã棬ÓдóÁ¿µÄÍøÂç·þÎñÆ÷ʹÓÃLinux²Ù×÷ϵͳ¡£ÓÉÓÚLinuxµÄ×ÀÃæÓ¦ÓúÍWindowsÏà±È»¹ÓÐÒ»¶¨µÄ²î¾à£¬ËùÒÔÔÚÆóÒµÓ¦ÓÃÖÐÍùÍùÊÇLinuxºÍWindows²Ù×÷ϵͳ¹²´æÐγÉÒì¹¹ÍøÂç¡£ÔÚ·þÎñÆ÷¶Ë´ó¶àʹÓÃLinuxºÍUnixµÄ£¬Ä¿Ç°LinuxµÄÉó¤Ó¦ÓÃÁìÓòÊǵ¥Ò»Ó¦ÓõĻù´¡·þÎñÆ÷Ó¦Óã¬Æ©ÈçDNSºÍDHCP·þÎñÆ÷¡¢W ......
Ëæ×ÅÒ»¾äfork£¬Ò»¸öнø³ÌßÉßÉÂäµØ£¬µ«ËüÕâʱֻÊÇÀϽø³ÌµÄÒ»¸ö¿Ë¡¡£
È»ºóËæ×Åexec£¬Ð½ø³ÌÍÑÌ¥»»¹Ç£¬Àë¼Ò¶ÀÁ¢£¬¿ªÊ¼ÁËΪÈËÃñ·þÎñµÄÖ°ÒµÉúÑÄ¡£
ÈËÓÐÉúÀϲ¡ËÀ£¬½ø³ÌÒ²Ò»Ñù£¬Ëü¿ÉÒÔÊÇ×ÔÈ»ËÀÍö£¬¼´ÔËÐе½mainº¯ÊýµÄ×îºóÒ»¸ö"}"£¬´ÓÈݵØÀëÎÒÃǶøÈ¥£»Ò²¿ÉÒÔÊÇ×Ôɱ£¬×ÔɱÓÐ2ÖÖ·½
ʽ£¬Ò»ÖÖÊǵ÷ÓÃexitº¯Êý£¬Ò»ÖÖÊÇÔÚma ......
.tar
¡¡¡¡½â°ü£ºtar xvf FileName.tar
¡¡¡¡´ò°ü£ºtar cvf FileName.tar DirName
¡¡¡¡£¨×¢£ºtarÊÇ´ò°ü£¬²»ÊÇѹËõ£¡£©
¡¡¡¡———————————————
¡¡¡¡.gz
¡¡¡¡½âѹ1£ºgunzip FileName.gz
¡¡¡¡½âѹ2£º ......