proc
概念
賽普拉斯半導體公司產品,下一代可編程片上射頻系統PRoC LP。
基本介紹
proc文件系統是一個偽文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式為訪問系統內核數據的操作提供介面。用戶和應用程序可以通過proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。
目錄結構
目錄名稱 目錄內容
apm 高級電源管理信息
cmdline 內核命令行
Cpuinfo 關於Cpu信息
Devices 可以用到的設備(塊設備/字元設備)
Dma Used DMS channels
Filesystems 支持的文件系統
Interrupts 中斷的使用
Ioports I/O埠的使用
Kcore 內核核心印象
Kmsg 內核消息
Ksyms 內核符號表
Loadavg 負載均衡
Locks 內核鎖
Meminfo 內存信息
Misc Miscellaneous
Modules 載入模塊列表
Mounts 載入的文件系統
Partitions 系統識別的分區表
Rtc Real time clock
Slabinfo Slab pool info
Stat 全面統計狀態表s
Swaps 對換空間的利用情況
Version 內核版本
Uptime 系統正常運行時間
並不是所有這些目錄在你的系統中都有,這取決於你的內核配置和裝載的模塊。另外,在/proc下還有三個很重要的目錄:net,scsi和sys。Sys目錄是可寫的,可以通過它來訪問或修改內核的參數(見下一部分),而net和scsi則依賴於內核配置。例如,如果系統不支持scsi,則scsi目錄不存在。
進程目錄
除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是進程目錄。系統中當前運行的每一個進程都有對應的一個目錄在/proc下,以進程的PID號為目錄名,它們是讀取進程信息的介面。而self目錄則是讀取進程本身的信息介面,是一個link。Proc文件系統的名字就是由之而起。進程目錄的結構如下:
目錄名稱 目錄內容
Cmdline 命令行參數
Environ 環境變數值
Fd 一個包含所有文件描述符的目錄
Mem 進程的內存被利用情況
Stat 進程狀態
Status Process status in human readable form
Cwd 當前工作目錄的鏈接
Exe Link to the executable of this process
Maps 內存印象
Statm 進程內存狀態信息
Root 鏈接此進程的root目錄
用戶如果要查看系統信息,可以用cat命令。例如:
>; cat /proc/interrupts
CPU0
0: 8728810 XT-PIC timer
1: 895 XT-PIC keyboard
2: 0 XT-PIC cascade
3: 531695 XT-PIC aha152x
4: 2014133 XT-PIC serial
5: 44401 XT-PIC pcnet_cs
8: 2 XT-PIC rtc
11: 8 XT-PIC i82365
12: 182918 XT-PIC Mouse
13: 1 XT-PIC fpu PS/2
14: 1232265 XT-PIC ide0
15: 7 XT-PIC ide1
NMI: 0
2、 修改內核參數
在/proc文件系統中有一個有趣的目錄:/proc/sys。它不僅提供了內核信息,而且可以通過它修改內核參數,來優化你的系統。但是你必須很小心,因為可能會造成系統崩潰。最好是先找一台無關緊要的機子,調試成功后再應用到你的系統上。
要改變內核的參數,只要用vi編輯或echo參數重定向到文件中即可。下面有一個例子:
# cat /proc/sys/fs/file-max
4096
# echo 8192 >; /proc/sys/fs/file-max
# cat /proc/sys/fs/file-max
8192
如果你優化了參數,則可以把它們寫成腳本文件,使它在系統啟動時自動完成修改。
×××××××××××××××××××××××××××××××××
/proc 文件系統是一個假的文件系統。它不存在在磁碟某個磁碟上。而是由核心在內存中產生。用於提供關於系統的信息(originally about processes, hence the name)。下面說明一些最重要的文件和目錄。 /proc 文件系統在proc man頁中有更詳細的說明。
/proc/1
關於進程1的信息目錄。每個進程在/proc 下有一個名為其進程號的目錄。
/proc/cpuinfo
處理器信息,如類型、製造商、型號和性能。
/proc/devices
當前運行的核心配置的設備驅動的列表。
/proc/dma
顯示當前使用的DMA通道。
/proc/filesystems
核心配置的文件系統。
/proc/interrupts
顯示使用的中斷,and how many of each there have been.
/proc/ioports
當前使用的I/O埠。
/proc/kcore
系統物理內存映象。與物理內存大小完全一樣,但不實際佔用這麼多內存;it is generated on the fly as programs access it. (記住:除非你把它拷貝到什麼地方,/proc 下沒有任何東西佔用任何磁碟空間。)
/proc/kmsg
核心輸出的消息。也被送到syslog 。
/proc/ksyms
核心符號表。
/proc/loadavg
系統"平均負載";3個沒有意義的指示器指出系統當前的工作量。
/proc/meminfo
存儲器使用信息,包括物理內存和swap。
/proc/modules
當前載入了哪些核心模塊。
/proc/net
網路協議狀態信息。
/proc/self
到查看/proc 的程序的進程目錄的符號連接。當2個進程查看/proc 時,是不同的連接。這主要便於程序得到它自己的進程目錄。
/proc/stat
系統的不同狀態,such as the number of page faults since the system was booted.
/proc/uptime
系統啟動的時間長度。
/proc/version
核心版本。
注意所有上述文件給出易讀的文本文件,有時可能是不易讀的格式。有許多命令做了些格式化以更容易讀。例如,free 程序讀/proc/meminfo 並將給出的位元組數轉換為千位元組(並增加了一些信息)。
.賽普拉斯半導體公司推出其下一代可編程片上射頻系統PRoC LP。該產品把WirelessUSB LP 2.4GHz收發器與enCoRe II 8位快閃記憶體微控制器集成在一顆單晶元上。PRoC LP簡化了編碼和電路板布局,旨在縮減設計時間,並降低諸如滑鼠、演示工具和RF遙控器等創新、小型無線人機介面設備的板級空間要求。
PROCEDURE(存儲過程)的簡寫:實例: alter proc
alter pro [dbo].[sp_test]
@nick varchar=null,
@userid varchar=null
as
declare @count int
if @nick is not null
begin
print '搜索條件滿足執行搜索昵稱過程...... 搜索變數:'+@nick
select * from db_carduser where f_nickname like'%'+@nick+'%'
select @count= (select count(*) from db_carduser where f_nickname like'%'+@nick+'%')
end
else
begin
print 'userid有值執行查詢...... userid:'+@userid
select * from db_carduser wheref_userid=@userid
select @count=(select count(*) from db_carduser wheref_userid=@userid)
end
create table #tab_temp (tab1 varchar,tab2 varchar)
insert into #tab_temp(tab1) values (@count)
select * from #tab_temp
drop table #tab_temp
其格式為:
過程名 PROC 過程屬性
…
過程名 ENDP
CALL和RET指令都有NEAR和FAR的屬性,段內調用使用NEAR屬性,段間調用使用FAR屬性。出於方便,80x86的彙編程序用PROC偽操作的類型屬性來確定確定CALL和RET指令的屬性。