ʹÓà /proc ÎļþϵͳÀ´·ÃÎÊ Linux Äں˵ÄÄÚÈÝ
Õâ¸öÐéÄâÎļþϵͳÔÚÄں˿ռäºÍÓû§¿Õ¼äÖ®¼ä´ò¿ªÁËÒ»¸öͨÐÅ´°¿Ú
ÎĵµÑ¡Ïî
´òÓ¡±¾Ò³
½«´ËÒ³×÷Ϊµç×ÓÓʼþ·¢ËÍ
ÑùÀý´úÂë
¼¶±ð£º ³õ¼¶
M. Tim Jones (mtj@mtjones.com), ×ÊÉîÊ×ϯÈí¼þ¹¤³Ìʦ, Emulex
2006 Äê 4 ÔÂ 24 ÈÕ
/proc ÎļþϵͳÊÇÒ»¸öÐéÄâÎļþϵͳ£¬Í¨¹ýËü¿ÉÒÔʹÓÃÒ»ÖÖÐµķ½·¨ÔÚ Linux® Äں˿ռäºÍÓû§¿Õ¼äÖ®¼ä½øÐÐͨÐÅ¡£ÔÚ /proc ÎļþϵͳÖУ¬ÎÒÃÇ¿ÉÒÔ½«¶ÔÐéÄâÎļþµÄ¶Áд×÷ΪÓëÄÚºËÖÐʵÌå½øÐÐͨÐŵÄÒ»ÖÖÊֶΣ¬µ«ÊÇÓëÆÕͨÎļþ²»Í¬µÄÊÇ£¬ÕâЩÐéÄâÎļþµÄÄÚÈݶ¼ÊǶ¯Ì¬´´½¨µÄ¡£±¾ÎÄ¶Ô /proc ÐéÄâÎļþϵͳ½øÐÐÁ˽éÉÜ£¬²¢Õ¹Ê¾ÁËËüµÄÓ÷¨¡£
×î³õ¿ª·¢ /proc ÎļþϵͳÊÇΪÁËÌṩÓйØÏµÍ³Öнø³ÌµÄÐÅÏ¢¡£µ«ÊÇÓÉÓÚÕâ¸öÎļþϵͳ·Ç³£ÓÐÓã¬Òò´ËÄÚºËÖеĺܶàÔªËØÒ²¿ªÊ¼Ê¹ÓÃËüÀ´±¨¸æÐÅÏ¢£¬»òÆôÓö¯Ì¬ÔËÐÐʱÅäÖá£
/proc Îļþϵͳ°üº¬ÁËһЩĿ¼£¨ÓÃ×÷×éÖ¯ÐÅÏ¢µÄ·½Ê½£©ºÍÐéÄâÎļþ¡£ÐéÄâÎļþ¿ÉÒÔÏòÓû§³ÊÏÖÄÚºËÖеÄһЩÐÅÏ¢£¬Ò²¿ÉÒÔÓÃ×÷Ò»ÖÖ´ÓÓû§¿Õ¼äÏòÄں˷¢ËÍÐÅÏ¢µÄÊֶΡ£Êµ¼ÊÉÏÎÒÃDz¢²»»áͬʱÐèҪʵÏÖÕâÁ½µã£¬µ«ÊDZ¾ÎĽ«ÏòÄúչʾÈçºÎÅäÖÃÕâ¸öÎļþϵͳ½øÐÐÊäÈëºÍÊä³ö¡£
¾¡¹ÜÏñ±¾ÎÄÕâÑù¶ÌСµÄһƪÎÄÕÂÎÞ·¨Ïêϸ½éÉÜ /proc µÄËùÓÐÓ÷¨£¬µ«ÊÇËüÒÀÈ»¶ÔÕâÁ½ÖÖÓ÷¨½øÐÐÁËչʾ£¬´Ó¶ø¿ÉÒÔÈÃÎÒÃÇÌå»áһϠ/proc ÊǶàôǿ´ó¡£Çåµ¥ 1 ÊÇ¶Ô /proc Öв¿·ÖÔªËØ½øÐÐÒ»´Î½»»¥²éѯµÄ½á¹û¡£ËüÏÔʾµÄÊÇ /proc ÎļþϵͳµÄ¸ùĿ¼ÖеÄÄÚÈÝ¡£×¢Ò⣬ÔÚ×ó±ßÊÇһϵÁÐÊý×Ö±àºÅµÄÎļþ¡£Ã¿¸öʵ¼ÊÉ϶¼ÊÇÒ»¸öĿ¼£¬±íʾϵͳÖеÄÒ»¸ö½ø³Ì¡£ÓÉÓÚÔÚ GNU/Linux Öд´½¨µÄµÚÒ»¸ö½ø³ÌÊÇ init ½ø³Ì£¬Òò´ËËüµÄ process-id Ϊ 1¡£È»ºó¶ÔÕâ¸öĿ¼ִÐÐÒ»¸ö ls ÃüÁÕâ»áÏÔʾºÜ¶àÎļþ¡£Ã¿¸öÎļþ¶¼ÌṩÁËÓйØÕâ¸öÌØÊâ½ø³ÌµÄÏêϸÐÅÏ¢¡£ÀýÈ磬Ҫ²é¿´ init µÄ command-line ÏîµÄÄÚÈÝ£¬Ö»Ðè¶Ô cmdline ÎļþÖ´ÐÐcat ÃüÁî¡£
/proc ÖÐÁíÍâһЩÓÐȤµÄÎļþÓУºcpuinfo£¬Ëü±êʶÁË´¦ÀíÆ÷µÄÀàÐͺÍËÙ¶È£»pci£¬ÏÔʾÔÚ PCI ×ÜÏßÉÏÕÒµ½µÄÉ豸£»modules£¬±êʶÁ˵±Ç°¼ÓÔØµ½ÄÚºËÖеÄÄ£¿é¡£
Çåµ¥ 1. ¶Ô /proc µÄ½»»¥¹ý³Ì
[root@plato]# ls /proc
1 2040 2347 2874 474 fb mdstat sys
104 2061 2356 2930 9 filesystems meminfo sysrq-trigger
113 2073 2375 2933 acpi fs misc sysvipc
1375 21 2409 2934 buddyinfo ide
Ïà¹ØÎĵµ£º
1¡¢ÒýÑÔ
ÔÚ
linuxϵͳ
Ï£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“
command not found
”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿
PATH
µÄÉèÖÃÎÊÌ⣬¶ø
PATH
µÄÉèÖÃÒ²ÊÇÔÚ
linux
϶¨ÖÆ»·¾³±äÁ¿µ ......
#include "stdio.h"
#include "math.h"
#include "time.h"
#define INTERVAL 1 ¶¨ÒåºêµÄʱ¼ä¼ä¸ôΪ1Ãë
//
void On_Time() //ÿһÃ뼤·¢µÄʼþ
{
printf("now=%s\n","JJK");
}
void Timer() //ʱÖӵĺ¯Êý
{ time_t newclk,oldclk;
while(1)
&nb ......
ÓüÇʱ¾Ð´C³ÌÐò£¬²¢±àÒë¡£ ¸Õ×°ºÃµÄϵͳ
ÖÐÒѾÓÐGCCÁË£¬µ«ÊÇÕâ¸öGCCʲôÎļþ¶¼²»ÄܱàÒ룬ÒòΪûÓÐһЩ±ØÐëµÄÍ·Îļþ£¬ËùÒÔÒª°²×°build-essentialÕâ¸öÈí¼þ
°ü£¬°²×°ÁËÕâ¸ö°ü»á×Ô¶¯°²×°ÉÏg++,libc6-dev,linux
-libc-dev,libstdc++6-4.1-devµÈһЩ±ØÐëµÄÈí¼þºÍÍ·ÎļþµÄ¿â¡£
¿ÉÒÔÔÚÐÂÁ¢µÃÀïÃæË ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
½üÈÕ£¬ÔÚLinuxCON 2009´ó»áÉÏ£¬×ÀÃæ
Linux
ÓÖ³ÉΪҵ½ç¹Ø×¢µÄ½¹µãÖ®Ò»¡£¸÷ÖÖ²»Í¬µÄÉùÒô£¬É¤ÃŶ¼ºÜ´ó¡£ÔÚÕâ·×·×ÈÂȵķÕΧÖУ¬
Linux
ÈçºÎ×ß³ö×ÀÃæÀ§¾³£¿
& ......