LinuxϵͳϵĶàÏ̱߳à³ÌÈëÃÅÒ»
ÒýÑÔ
¡¡¡¡Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳÖÐÈ¥£¬ÊÇÔÚ80Äê´úÖÐÆÚ£¬ solarisÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnixÒ²Ö§³ÖÏ̵߳ĸÅÄµ«ÊÇÔÚÒ»¸ö½ø³Ì£¨process£©ÖÐÖ»ÔÊÐíÓÐÒ»¸öỊ̈߳¬ÕâÑù¶àÏ߳̾ÍÒâζ×Ŷà½ø³Ì¡£ÏÖÔÚ£¬¶àÏ̼߳¼ÊõÒѾ±»Ðí¶à²Ù×÷ϵͳËùÖ§³Ö£¬°üÀ¨Windows/NT£¬µ±È»£¬Ò²°üÀ¨Linux¡£
¡¡¡¡ÎªÊ²Ã´ÓÐÁ˽ø³ÌµÄ¸ÅÄîºó£¬»¹ÒªÔÙÒýÈëÏß³ÌÄØ£¿Ê¹ÓöàÏ̵߳½µ×ÓÐÄÄЩºÃ´¦£¿Ê²Ã´µÄϵͳӦ¸ÃÑ¡ÓöàỊ̈߳¿ÎÒÃÇÊ×ÏȱØÐë»Ø´ðÕâЩÎÊÌâ¡£
¡¡¡¡Ê¹ÓöàÏ̵߳ÄÀíÓÉÖ®Ò»ÊǺͽø³ÌÏà±È£¬ËüÊÇÒ»Öַdz£"½Ú¼ó"µÄ¶àÈÎÎñ²Ù×÷·½Ê½¡£ÎÒÃÇÖªµÀ£¬ÔÚLinuxϵͳÏ£¬Æô¶¯Ò»¸öеĽø³Ì±ØÐë·ÖÅä¸øËü¶ÀÁ¢µÄµØÖ·¿Õ¼ä£¬½¨Á¢ÖÚ¶àµÄÊý¾Ý±íÀ´Î¬»¤ËüµÄ´úÂë¶Î¡¢¶ÑÕ»¶ÎºÍÊý¾Ý¶Î£¬ÕâÊÇÒ»ÖÖ"°º¹ó"µÄ¶àÈÎÎñ¹¤×÷·½Ê½¡£¶øÔËÐÐÓÚÒ»¸ö½ø³ÌÖеĶà¸öỊ̈߳¬ËüÃDZ˴ËÖ®¼äʹÓÃÏàͬµÄµØÖ·¿Õ¼ä£¬¹²Ïí´ó²¿·ÖÊý¾Ý£¬Æô¶¯Ò»¸öÏß³ÌËù»¨·ÑµÄ¿Õ¼äԶԶСÓÚÆô¶¯Ò»¸ö½ø³ÌËù»¨·ÑµÄ¿Õ¼ä£¬¶øÇÒ£¬Ï̼߳ä±Ë´ËÇл»ËùÐèµÄʱ¼äҲԶԶСÓÚ½ø³Ì¼äÇл»ËùÐèÒªµÄʱ¼ä¡£
¡¡¡¡Ê¹ÓöàÏ̵߳ÄÀíÓÉÖ®¶þÊÇÏ̼߳䷽±ãµÄͨÐÅ»úÖÆ¡£¶Ô²»Í¬½ø³ÌÀ´Ëµ£¬ËüÃǾßÓжÀÁ¢µÄÊý¾Ý¿Õ¼ä£¬Òª½øÐÐÊý¾ÝµÄ´«µÝÖ»ÄÜͨ¹ýͨÐŵķ½Ê½½øÐУ¬ÕâÖÖ·½Ê½²»½ö·Ñʱ£¬¶øÇҺܲ»·½±ã¡£Ïß³ÌÔò²»È»£¬ÓÉÓÚͬһ½ø³ÌϵÄÏß³ÌÖ®¼ä¹²ÏíÊý¾Ý¿Õ¼ä£¬ËùÒÔÒ»¸öÏ̵߳ÄÊý¾Ý¿ÉÒÔÖ±½ÓΪÆäËüÏß³ÌËùÓã¬Õâ²»½ö¿ì½Ý£¬¶øÇÒ·½±ã¡£µ±È»£¬Êý¾ÝµÄ¹²ÏíÒ²´øÀ´ÆäËûһЩÎÊÌ⣬ÓеıäÁ¿²»ÄÜͬʱ±»Á½¸öÏß³ÌËùÐ޸ģ¬ÓеÄ×Ó³ÌÐòÖÐÉùÃ÷ΪstaticµÄÊý¾Ý¸üÓпÉÄܸø¶àÏ̳߳ÌÐò´øÀ´ÔÖÄÑÐԵĴò»÷£¬ÕâЩÕýÊDZàд¶àÏ̳߳ÌÐòʱ×îÐèҪעÒâµÄµØ·½¡£
¡¡¡¡³ýÁËÒÔÉÏËù˵µÄÓŵãÍ⣬²»ºÍ½ø³Ì±È½Ï£¬¶àÏ̳߳ÌÐò×÷ΪһÖÖ¶àÈÎÎñ¡¢²¢·¢µÄ¹¤×÷·½Ê½£¬µ±È»ÓÐÒÔϵÄÓŵ㣺
¡¡¡¡1) Ìá¸ßÓ¦ÓóÌÐòÏìÓ¦¡£Õâ¶ÔͼÐνçÃæµÄ³ÌÐòÓÈÆäÓÐÒâÒ壬µ±Ò»¸ö²Ù×÷ºÄʱºÜ³¤Ê±£¬Õû¸öϵͳ¶¼»áµÈ´ýÕâ¸ö²Ù×÷£¬´Ëʱ³ÌÐò²»»áÏìÓ¦¼üÅÌ¡¢Êó±ê¡¢²Ëµ¥µÄ²Ù×÷£¬¶øʹÓöàÏ̼߳¼Êõ£¬½«ºÄʱ³¤µÄ²Ù×÷£¨time consuming£©ÖÃÓÚÒ»¸öеÄỊ̈߳¬¿ÉÒÔ±ÜÃâÕâÖÖÞÏÞεÄÇé¿ö¡£
¡¡¡¡2) ʹ¶àCPUϵͳ¸ü¼ÓÓÐЧ¡£²Ù×÷ϵͳ»á±£Ö¤µ±Ïß³ÌÊý²»´óÓÚCPUÊýĿʱ£¬²»Í¬µÄÏß³ÌÔËÐÐÓÚ²»Í¬µÄCPUÉÏ¡£
¡¡¡¡3) ¸ÄÉƳÌÐò½á¹¹¡£Ò»¸ö¼È³¤ÓÖ¸´ÔӵĽø³Ì¿ÉÒÔ¿¼ÂÇ·ÖΪ¶à¸öỊ̈߳¬³ÉΪ¼¸¸ö¶ÀÁ¢»ò°ë¶ÀÁ¢µÄÔËÐв¿·Ö£¬ÕâÑùµÄ³ÌÐò»áÀûÓÚÀí½âºÍÐ޸ġ£
¡¡¡¡ÏÂÃæÎÒÃÇÏÈÀ´³¢ÊÔ±àдһ¸ö¼òµ¥µÄ¶àÏ̳߳ÌÐò¡£
¡¡¡¡¼òµ¥µÄ¶àÏ̱߳à³Ì
¡¡¡¡LinuxϵͳϵĶàÏß³Ì×ñÑPOSIXÏ߳̽ӿڣ¬³ÆΪpthread¡£±àд
Ïà¹ØÎĵµ£º
ÐéÄâ»úÏÂlinuxÏ¿ÉÒÔÓÃʹÓÃÖ÷»úµÄ´®¿Ú(ÐéÄâ»úÌí¼ÓÓ²¼þÀïÃæ¿ÉÑ¡)
linuxϵij¬¼¶ÖÕ¶Ëminicom
½øÈ볬¼¶Öն˵ÄÃüÁî
[root]#minicom -s
Ñ¡Ôñ´®¿ÚÒ»Ïî
ÐèÒªÉ趨´®¿ÚttyS0£¨ÄãµÄ´®¿ÚµÄÉ豸Ãû£©
²¨ÌØÂÊ115200
Ó²¼þÁ÷¿Ø¹Ø±Õ£¨Ä¬ÈÏÊÇ¿ªÆô£¬Èç¹û¿ªÆôµÄ»°£¬²»ÄÜÓüüÅÌÊäÈ룩
Èí¼þÁ÷¿Ø¹Ø±Õ
Save setup as dfl
exit
OK£¬Õâ¾Í¿É ......
Ç¿ÖÆͨ¹ý¶ÑÕ»´«µÝ²ÎÊý£¬²»ÒªÓüĴæÆ÷´«µÝ
×Ðϸ¿´Ò»ÏÂÓÐasmlinkageµÄµØ·½Í¨³£ÊÇϵͳµ÷Óõĺ¯Êý£¬ÒòΪÔÚϵͳµ÷ÓÃÖУ¬¼Ä´æÆ÷´ÓÓû§¿Õ¼ä´«¹ýÀ´ºóSAVE_ALLѹÈë¶ÑÕ»£¬½Ó×ŵ÷ÓÃÏàÓ¦µÄϵͳµ÷Óú¯Êý£¬ÕâÑùϵͳµ÷Óú¯ÊýÒ»¶¨Òª±£Ö¤ÊÇͨ¹ý¶ÑÕ»´«µÝ²ÎÊýµÄ
תÌùÒ»¶Î£º
The asmlinkage tag is one other thing that we should observe a ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔز¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³Æʱ³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ» ......
Windows ºÍ Linux µÄIPC API¶ÔÓ¦±í
Table 1. Process mapping
Windows
Linux
Classification
CreateProcess()
CreateProcessAsUser()
fork()
setuid()
exec()
Mappable
TerminateProcess()
kill()
Mappable
SetThreadpriority()
GetThreadPriority()
Setpriority()
getPriority()
Mappa ......
3¡¢Ìõ¼þ±äÁ¿
¡¡¡¡Ç°Ò»½ÚÖÐÎÒÃǽ²ÊöÁËÈçºÎʹÓû¥³âËøÀ´ÊµÏÖÏ̼߳äÊý¾ÝµÄ¹²ÏíºÍͨÐÅ£¬»¥³âËøÒ»¸öÃ÷ÏÔµÄȱµãÊÇËüÖ»ÓÐÁ½ÖÖ״̬£ºËø¶¨ºÍ·ÇËø¶¨¡£¶øÌõ¼þ±äÁ¿Í¨¹ýÔÊÐíÏß³Ì×èÈûºÍµÈ´ýÁíÒ»¸öÏ̷߳¢ËÍÐźŵķ½·¨ÃÖ²¹ÁË»¥³âËøµÄ²»×㣬Ëü³£ºÍ»¥³âËøÒ»ÆðʹÓá£Ê¹ÓÃʱ£¬Ìõ¼þ±äÁ¿±»ÓÃÀ´×èÈûÒ»¸öỊ̈߳¬µ±Ìõ¼þ²»Âú×ãʱ£¬Ïß³ÌÍùÍù½â¿ªÏ ......