[LinuxFocus-icon]
<--  | ��ҳ  | վ���ͼ  | ����  | ����

���� | �����ڿ� | ���� | ����LF
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

[Sandeep Grover]
by Sandeep Grover
<sandeep<at>Magma-DA.com>

��������:

Sandeep Grover Ϊӡ�ڰ����ݵ� Magma Design Automation ����, -- ���� һ�����ٳɳ��� EDA (��������Զ���) ��˾��������ҵ��ʱ�䣬��̽�� Linux ���ڲ����ƣ���ϣ����һ���ܹ����ں������Լ��Ĺ��ס�


Ŀ¼:

 

���� Proc �ļ�ϵͳ

[the proc filesystem]

ժҪ:

Linux �ں��ṩ��һ��ͨ�� /proc �ļ�ϵͳ��������ʱ�����ں��ڲ����ݽṹ�� �ı��ں����õĻ��ơ������ڸ���Ӳ��ƽ̨�ϵ� Linux ϵͳ�� /proc �ļ�ϵͳ�� �����������ͬ�ģ�������ֻ���ۻ��� intel x86 �ܹ��� Linux /proc �ļ�ϵ ͳ��


_________________ _________________ _________________

 

/proc --- һ�������ļ�ϵͳ

/proc �ļ�ϵͳ��һ���ں˺��ں�ģ����������� (process) ������Ϣ�Ļ��� (���Խ��� /proc)�����α�ļ�ϵͳ������Ժ��ں��ڲ����ݽṹ���н�������ȡ �йؽ��̵�������Ϣ���������� (on the fly) �ı����� (ͨ���ı��ں˲���)�� �������ļ�ϵͳ��ͬ��/proc �������ڴ�֮�ж�����Ӳ���ϡ������쿴�ļ� /proc/mounts (�� mount ����һ���г������Ѿ����ص��ļ�ϵͳ)����ῴ������ һ���������ģ�


grep proc /proc/mounts
/proc /proc proc rw 0 0

/proc ���ں˿��ƣ�û�г��� /proc ���豸����Ϊ /proc ��Ҫ������ں˿��� ��״̬��Ϣ�����Դ󲿷���Щ��Ϣ���߼�λ��λ���ں˿��Ƶ��ڴ档�� /proc ���� һ�� 'ls -l' ���Կ����󲿷��ļ����� 0 �ֽڴ�ģ������쿴��Щ�ļ���ʱ��ȷ ʵ���Կ���һЩ��Ϣ������ô���ܣ�������Ϊ /proc �ļ�ϵͳ������������ļ�ϵ ͳһ�����Լ�ע�ᵽ�����ļ�ϵͳ�� (VFS) �ˡ�Ȼ����ֱ���� VFS ������������ �ļ���Ŀ¼�� i-node ��ʱ��/proc �ļ�ϵͳ�Ÿ����ں��е���Ϣ������Ӧ���ļ� ��Ŀ¼��

 

���� proc �ļ�ϵͳ

���ϵͳ�л�û�м��� proc �ļ�ϵͳ������ͨ������������� proc �ļ�ϵͳ��

mount -t proc proc /proc

��������ɹ�������� proc �ļ�ϵͳ������ϸ�����Ķ� mount ����� man page��

 

�쿴 /proc ���ļ�

/proc ���ļ��������ڷ����й��ں˵�״̬������������ԡ��������еĽ��̵� ״̬����Ϣ���󲿷� /proc �е��ļ���Ŀ¼�ṩϵͳ�����������µ���Ϣ������ /proc �е��ļ�������ģ��������Կ���ʹ���κ��ļ��༭������'more', 'less'�� 'cat'�����ij������鿴�����༭������ͼ��һ�������ļ�ʱ������ļ���ͨ���ں� �е���Ϣ��ƾ�յ� (on the fly) �����ˡ�����һЩ�Ҵ��ҵ�ϵͳ�еõ���һЩ��Ȥ �����

$ ls -l /proc/cpuinfo
-r--r--r-- 1 root root 0 Dec 25 11:01 /proc/cpuinfo

$ file /proc/cpuinfo
/proc/cpuinfo: empty

$ cat /proc/cpuinfo

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 6
cpu MHz         : 1000.119
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips        : 1998.85

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 6
cpu MHz         : 1000.119
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 mmx fxsr xmm
bogomips        : 1992.29

����һ����˫ CPU ��ϵͳ�еõ��Ľ���������󲿷ֵ���Ϣʮ������ظ��������ϵ ͳ�����õ�Ӳ����Ϣ����Щ /proc ���ļ��Ǿ�������ģ���ͬ�Ĺ��߿��Ա��������� ��Щ���������Ϣ������ɿɶ�����ʽ�������Ĺ��߰�����'top', 'ps', 'apm' �ȡ�

 

�õ����õ�ϵͳ/�ں���Ϣ


proc �ļ�ϵͳ���Ա������ռ����õĹ���ϵͳ�������е��ں˵���Ϣ��������һЩ��Ҫ ���ļ���

proc �е��ļ�Զ��ֹ�����г�����ô�ࡣ��Ҫ��һ���˽�Ķ��߿��Զ� /proc ��ÿһ�� �ļ���'more'һ�»���ο�����[1]��ȡ������й� /proc Ŀ¼�е��ļ�����Ϣ���ҽ��� ʹ��'more'������'cat'��������֪������ļ���С����Ϊ��Щ�ļ� (���� kcore) ���� ��dz�����

 

�й������еĽ��̵���Ϣ

/proc �ļ�ϵͳ�������ڻ�ȡ�����еĽ��̵���Ϣ���� /proc ����һЩ��ŵ���Ŀ¼��ÿ����ŵ�Ŀ¼��Ӧһ������ id (PID)��������ÿһ�������еĽ��� /proc �ж���һ�������� PID ������Ŀ¼����Щ��Ŀ¼�а��������ṩ�йؽ��̵�״̬�ͻ�������Ҫϸ����Ϣ���ļ������������Ų���һ�������еĽ��̡�

$ ps -aef | grep mozilla
root 32558 32425 8  22:53 pts/1  00:01:23  /usr/bin/mozilla
����������ʾ��һ���������е� mozilla ���̵� PID �� 32558�����Ӧ�ģ�/proc ��Ӧ����һ������ 32558 ��Ŀ¼

$ ls -l /proc/32558
total 0
-r--r--r--    1 root  root            0 Dec 25 22:59 cmdline
-r--r--r--    1 root  root            0 Dec 25 22:59 cpu
lrwxrwxrwx    1 root  root            0 Dec 25 22:59 cwd -> /proc/
-r--------    1 root  root            0 Dec 25 22:59 environ
lrwxrwxrwx    1 root  root            0 Dec 25 22:59 exe -> /usr/bin/mozilla*
dr-x------    2 root  root            0 Dec 25 22:59 fd/
-r--r--r--    1 root  root            0 Dec 25 22:59 maps
-rw-------    1 root  root            0 Dec 25 22:59 mem
-r--r--r--    1 root  root            0 Dec 25 22:59 mounts
lrwxrwxrwx    1 root  root            0 Dec 25 22:59 root -> //
-r--r--r--    1 root  root            0 Dec 25 22:59 stat
-r--r--r--    1 root  root            0 Dec 25 22:59 statm
-r--r--r--    1 root  root            0 Dec 25 22:59 status
�ļ� "cmdline" ������������ʱ���õ������С�"envir" ���̵Ļ��������� "status" �ǽ��̵�״̬��Ϣ�������������̵��û����û�ID (UID) ����ID(GID) �� ������ID (PPID)�����н��̵�ǰ��״̬������"Sleelping"��"Running"�� ÿ�����̵�Ŀ¼���м����������ӣ�"cwd"��ָ����̵�ǰ����Ŀ¼�ķ��� ���ӣ�"exe"ָ�����еĽ��̵Ŀ�ִ�г���"root"ָ��������̿����� ��Ŀ¼��Ŀ¼ (ͨ����"/")��Ŀ¼"fd"����ָ�����ʹ�õ��ļ������������ӡ� "cpu"�������� SMP �ں�ʱ���֣������ǰ� CPU ���ֵĽ���ʱ�䡣

/proc/self ��һ����Ȥ����Ŀ¼����ʹ�ó�����Է����ʹ�� /proc ���ұ����̵���Ϣ��/proc/self ��һ�����ӵ� /proc �з��� /proc �Ľ�������Ӧ�� PID ��Ŀ¼�ķ������ӡ�

 

ͨ�� /proc ���ں˽���


�������۵Ĵ󲿷� /proc ���ļ���ֻ���ġ���ʵ���� /proc �ļ�ϵͳͨ�� /proc �пɶ�д���ļ��ṩ�˶��ں˵Ľ������ơ�д��Щ�ļ����Ըı��ں� ��״̬�����Ҫ���ظĶ���Щ�ļ���/proc/sys Ŀ¼������пɶ�д���ļ� ��Ŀ¼�����Ա����ڸı��ں���Ϊ��

/proc/sys/kernel - ���Ŀ¼������ͨ���ں���Ϊ����Ϣ�� /proc/sys/kernel/{domainname, hostname} ����Ż���/������������������� ��Щ�ļ����������޸���Щ���֡�

$ hostname
machinename.domainname.com

$ cat /proc/sys/kernel/domainname
domainname.com

$ cat /proc/sys/kernel/hostname
machinename

$ echo "new-machinename"  > /proc/sys/kernel/hostname

$ hostname
new-machinename.domainname.com

������ͨ���޸� /proc �ļ�ϵͳ�е��ļ������ǿ����޸����������ܶ��� �������õ��ļ������� /proc/sys/kernel/�����ﲻ�����г�������Щ�ļ��� ���߿����Լ�ȥ���Ŀ¼�鿴�Եõ�����ϸ����Ϣ��
��һ�������õ�Ŀ¼�� /proc/sys/net�����Ŀ¼�е��ļ����� �����޸Ļ���/������������ԡ����磬���޸�һ���ļ�������������� ������ļ������

$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
�⽫������������Ļ�������Ϊ������Ӧ icmp_echo��������������Ӧ�� ������������ ping ��ѯ��

$ ping machinename.domainname.com
no answer from machinename.domainname.com
Ҫ�Ļ�ȱʡ���ã�ֻҪ
$ echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/proc/sys �»������������������ڸı��ں����ԡ����߿���ͨ���ο����� [1], [2] ��ȡ������Ϣ��

 

����

/proc �ļ�ϵͳ�ṩ��һ�������ļ��� Linux �ڲ��ӿڡ�����������ȷ��ϵͳ �ĸ��ֲ�ͬ�豸�ͽ��̵�״̬�������ǽ������á�����������Ӧ���й���� �ļ�ϵͳ��֪ʶ��������� Linux ϵͳ�Ĺؼ���

 

�����


 

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ����ҳ�� 

<--, back to the index of this issue

��ҳ��LinuxFocus�༭��ά��
© Sandeep Grover, FDL
LinuxFocus.org
������Ϣ:
en --> -- : Sandeep Grover <sandeep<at>Magma-DA.com>
en --> cn: ���� <gnawux(at)21cn.com>

2004-02-17, generated by lfparser version 2.46