檔案系統
基本介紹
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遙控器等創新、小型無線人機接口設備的板級空間要求。
SQL
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指令的屬性。