❶ linux的相關問題
1 test -d
文件測試
test命令也可以用於檢查文件的狀態
-e 文件存在則為真
-r 文件存在並且可讀則為真
-w 文件存在並且可寫則為真
-x 文件存在並且可執行則為真
-s 文件存在並且至少有一個字元則為真
-d 文件存在並且為目錄則為真
-f 文件存在並且為普通文件則為真
-c 文件存在並且為字元型文件則為真
-b 文件存在並且為塊特殊文件則為真
-a並且 -o或者 !非
2 能為myfile1更新時間的命令____touch
3 linux中的歸檔解檔命令____tar
4 編譯是優先順序的取值范圍是:______,默認的優先順序是____
中進程的優先極是由進程的nice值決定的,值越小,優先順序越高
5 linux中標准設備文件有哪些.分別用什麼符號表示.
----------------------------------------------------------------------
主設備號 設備類型
次設備號=文件名 簡要說明
----------------------------------------------------------------------
0 未命名設備(例如:掛載的非設備)
0 = 未空設備號保留
1 char 內存設備
1 = /dev/mem 直接存取物理內存
2 = /dev/kmem 存取經過內核虛擬之後的內存
3 = /dev/null 空設備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。
4 = /dev/port 存取 I/O 埠
5 = /dev/zero 零位元組源,只能讀取到無限多的零位元組。
7 = /dev/full 滿設備。任何寫入都將失敗,並把errno設為ENOSPC以表示沒有剩餘空間。
8 = /dev/random 隨機數發生器。完全由用戶的輸入來產生隨機數。
如果用戶停止所有動作,則停止產生新的隨機數。
9 = /dev/urandom 更快,但是不夠安全的隨機數發生器。盡可能由用戶的輸入來產生隨機數,
如果用戶停止所有動作,則把已經產生的隨機數做為種子來產生新的隨機數。
10 = /dev/aio 非同步 I/O 通知介面
11 = /dev/kmsg 任何對該文件的寫入都將作為 printk 的輸出
1 block RAM disk
0 = /dev/ram0 第1個 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2個 RAM disk
...
200 = /dev/ram200 第200個 RAM disk
4 char TTY(終端)設備
0 = /dev/tty0 當前虛擬控制台
1 = /dev/tty1 第1個虛擬控制台
...
63 = /dev/tty63 第63個虛擬控制台
4 block 如果根文件系統以是以只讀方式掛載的,那麼就不可能創建真正的設備節點,
此時就使用該設備作為動態分配的主(major)設備的別名
0 = /dev/root
5 char 其他 TTY 設備
0 = /dev/tty 當前 TTY 設備
1 = /dev/console 系統控制台
2 = /dev/ptmx 所有 PTY master 的復用器
7 char 虛擬控制台捕捉設備(這些設備既允許讀也允許寫)
0 = /dev/vcs 當前虛擬控制台(vc)的文本內容
1 = /dev/vcs1 tty1 的文本內容
...
63 = /dev/vcs63 tty63 的文本內容
128 = /dev/vcsa 當前虛擬控制台(vc)的文本/屬性內容
129 = /dev/vcsa1 tty1 的文本/屬性內容
...
191 = /dev/vcsa63 tty63 的文本/屬性內容代碼:
7 block 回環設備(用一個普通的磁碟文件來模擬一個塊設備)
對回環設備的綁定由 mount(8) 或 losetup(8) 處理
0 = /dev/loop0 第1個回環設備
1 = /dev/loop1 第2個回環設備
...
8 block SCSI 磁碟(0-15)
0 = /dev/sda 第1個 SCSI 磁碟(整個磁碟)
16 = /dev/sdb 第2個 SCSI 磁碟(整個磁碟)
32 = /dev/sdc 第3個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdp 第16個 SCSI 磁碟(整個磁碟)
分區表示方法如下(以第3個 SCSI 磁碟為例)
33 = /dev/sdc1 第1個分區
34 = /dev/sdc2 第2個分區
...
47 = /dev/sdc15 第15個分區
對於Linux/i386來說,分區1-4是主分區,5-15是邏輯分區。
9 block Metadisk(RAID)設備
0 = /dev/md0 第1組 metadisk
1 = /dev/md1 第2組 metadisk
...
metadisk 驅動用於將同一個文件系統分割到多個物理磁碟上。
10 char 非串口滑鼠,各種雜項設備和特性
1 = /dev/psaux PS/2滑鼠
131 = /dev/temperature 機器內部溫度
134 = /dev/apm_bios APM(高級電源管理) BIOS
135 = /dev/rtc 實時時鍾(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系統管理匯流排(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)介面
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)介面
175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能監視計數器
183 = /dev/hwrng 通用硬體隨機數發生器
184 = /dev/cpu/microcode CPU微代碼更新介面
186 = /dev/atomicps 進程狀態數據的原子快照
188 = /dev/smbusbios SMBus(系統管理匯流排) BIOS
200 = /dev/net/tun TAP/TUN 網路設備(TAP/TUN以軟體的方式實現了網路設備)
TAP模擬了乙太網幀(第二層),TUN模擬了IP包(第三層)。
202 = /dev/emd/ctl 增強型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用戶層輸入設備驅動支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用戶空間的虛擬文件系統)
231 = /dev/snapshot 系統內存快照
232 = /dev/kvm 基於內核的虛構機(基於AMD SVM和Intel VT硬體虛擬技術)
11 block SCSI CD-ROM 設備
0 = /dev/scd0 第1個 SCSI CD-ROM
1 = /dev/scd1 第2個 SCSI CD-ROM
...代碼:
13 char 核心輸入設備
32 = /dev/input/mouse0 第1個滑鼠
33 = /dev/input/mouse1 第2個滑鼠
...
62 = /dev/input/mouse30 第31個滑鼠
63 = /dev/input/mice 所有滑鼠的統一
64 = /dev/input/event0 第1個事件隊列
65 = /dev/input/event1 第2個事件隊列
...
95 = /dev/input/event1 第32個事件隊列
21 char 通用 SCSI 設備(通常是SCSI光碟機)
0 = /dev/sg0 第1個通用 SCSI 設備
1 = /dev/sg1 第2個通用 SCSI 設備
...
29 char 通用幀緩沖(frame buffer)設備
0 = /dev/fb0 第1個幀緩沖設備
1 = /dev/fb1 第2個幀緩沖設備
...
31 = /dev/fb31 第32個幀緩沖設備
30 char iBCS-2 兼容設備
0 = /dev/socksys 套接字訪問介面
1 = /dev/spx SVR3 本地 X 介面
32 = /dev/inet/ip 網路訪問介面
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 還需要下面的連接必須存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null代碼:
36 char Netlink 支持
0 = /dev/route 路由, 設備更新, kernel to user
3 = /dev/fwmonitor Firewall packet 復制
59 char sf 防火牆模塊
0 = /dev/firewall 與 sf 內核模塊通信
65 block SCSI 磁碟(16-31)
0 = /dev/sdq 第17個 SCSI 磁碟(整個磁碟)
16 = /dev/sdr 第18個 SCSI 磁碟(整個磁碟)
32 = /dev/sds 第19個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdaf 第32個 SCSI 磁碟(整個磁碟)
66 block SCSI 磁碟(32-47)
0 = /dev/sdag 第33個 SCSI 磁碟(整個磁碟)
16 = /dev/sdah 第34個 SCSI 磁碟(整個磁碟)
32 = /dev/sdai 第35個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdav 第48個 SCSI 磁碟(整個磁碟)
89 char I2C 匯流排介面
0 = /dev/i2c-0 第1個 I2C 適配器
1 = /dev/i2c-1 第2個 I2C 適配器
...
98 block 用戶模式下的虛擬塊設備(分區處理方式與 SCSI 磁碟相同)
0 = /dev/ubda 第1個用戶模式塊設備
16 = /dev/udbb 第2個用戶模式塊設備
...
103 block 審計(Audit)設備
0 = /dev/audit 審計(Audit)設備
128-135 char Unix98 PTY master
這些設備不應當存在設備節點,而應當通過 /dev/ptmx 介面訪問。
136-143 char Unix98 PTY slave
這些設備節點是自動生成的(伴有適當的許可權和模式),不能手動創建。
方法是通過使用適當的 mount 選項(通常是:mode=0620,gid=<"tty"組的gid>)
將 devpts 文件系統掛載到 /dev/pts 目錄即可。
0 = /dev/pts/0 第1個 Unix98 PTY slave
1 = /dev/pts/1 第2個 Unix98 PTY slave
...代碼:
153 block Enhanced Metadisk RAID (EMD) 存儲單元(分區處理方式與 SCSI 磁碟相同)
0 = /dev/emd/0 第1個存儲單元
1 = /dev/emd/0p1 第1個存儲單元的第1個分區
2 = /dev/emd/0p2 第1個存儲單元的第2個分區
...
15 = /dev/emd/0p15 第1個存儲單元的第15個分區
16 = /dev/emd/1 第2個存儲單元
32 = /dev/emd/2 第3個存儲單元
...
240 = /dev/emd/15 第16個存儲單元
180 char USB 字元設備
96 = /dev/usb/hiddev0 第1個USB人機界面設備(滑鼠/鍵盤/游戲桿/手寫版等人操作計算機的設備)
...
111 = /dev/usb/hiddev15 第16個USB人機界面設備
180 block USB 塊設備(U盤之類)
0 = /dev/uba 第1個USB 塊設備
8 = /dev/ubb 第2個USB 塊設備
16 = /dev/ubc 第3個USB 塊設備
...
192 char 內核 profiling 介面
0 = /dev/profile Profiling 控制設備
1 = /dev/profile0 CPU 0 的 Profiling 設備
2 = /dev/profile1 CPU 1 的 Profiling 設備
...
193 char 內核事件跟蹤介面
0 = /dev/trace 跟蹤控制設備
1 = /dev/trace0 CPU 0 的跟蹤設備
2 = /dev/trace1 CPU 1 的跟蹤設備
...
195 char Nvidia 圖形設備(比如顯卡)
0 = /dev/nvidia0 第1個 Nvidia 卡
1 = /dev/nvidia1 第2個 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制設備
202 char 特定於CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...代碼:
===================================================================
這部分詳細說明一些應該或可能存在於 /dev 目錄之外的文件。
鏈接最好使用與這里完全相同的格式(絕對路徑或相對路徑)。
究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決於不同的設備。
必須的鏈接
必須在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 標准輸入文件描述府
/dev/stdout fd/1 symbolic 標准輸出文件描述符
/dev/stderr fd/2 symbolic 標准錯誤文件描述符
/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須
/dev/X0R null symbolic 僅為 iBCS-2 所必須
[注意] /dev/X0R 是 <字母 X>-<數字 0>-<字母 R>
推薦的鏈接
推薦在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/core /proc/kcore symbolic 為了向後兼容
/dev/ramdisk ram0 symbolic 為了向後兼容
/dev/ftape qft0 symbolic 為了向後兼容
/dev/bttv0 video0 symbolic 為了向後兼容
/dev/radio radio0 symbolic 為了向後兼容
/dev/i2o* /dev/i2o/* symbolic 為了向後兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定義的鏈接
下面的鏈接很可能需要根據機器的實際硬體配置創建其中的一部分甚至全部。
這些鏈接僅僅是為了迎合習慣用法,它們既非必須也非推薦。
鏈接 目標 鏈接類型 簡要說明
/dev/mouse mouse port symbolic 當前滑鼠
/dev/tape tape device symbolic 當前磁帶
/dev/cdrom CD-ROM device symbolic 當前CD-ROM
/dev/cdwriter CD-writer symbolic 當前CD-writer
/dev/scanner scanner symbolic 當前掃描儀
/dev/modem modem port symbolic 當前數據機
/dev/root root device symbolic 當前根文件系統所在設備
/dev/swap swap device symbolic 當前swap所在設備
/dev/modem 不應當用於能夠同時支持呼入和呼出的modem,因為往往會導致鎖文件問題。
如果存在 /dev/modem ,那麼它應當指向一個恰當的主 TTY 設備。
對於SCSI設備,
/dev/tape 和 /dev/cdrom 應該分別指向"cooked"設備 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 應當分別指向恰當的 /dev/sg* 。
/dev/mouse 可以指向一個主串列 TTY 設備、一個硬體滑鼠、
或者一個對應滑鼠驅動程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在於 /dev 中。常見的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 滑鼠多路復用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出現)
/dev/initctl fifo pipe init 監聽它並從中獲取信息(用戶與 init 進程交互的通道)
掛載點
以下名稱被保留用於掛載特殊的文件系統。
這些特殊的文件系統只提供內核界面而不提供標準的設備節點。
/dev/pts devpts PTY slave 文件系統
/dev/shm tmpfs 提供對 POSIX 共享內存的直接訪問
請參考
❷ UNIX系統中,把I/O設備當作( )來處理。 A. 目錄文件 B. 索引文件 C. 普通文件 D. 特殊文件
設備文件(特殊文件),故選擇D。
❸ linux的相關問題...
1 test -d
文件測試
test命令也可以用於檢查文件的狀態
-e 文件存在則為真
-r 文件存在並且可讀則為真
-w 文件存在並且可寫則為真
-x 文件存在並且可執行則為真
-s 文件存在並且至少有一個字元則為真
-d 文件存在並且為目錄則為真
-f 文件存在並且為普通文件則為真
-c 文件存在並且為字元型文件則為真
-b 文件存在並且為塊特殊文件則為真
-a並且 -o或者 !非
2 能為myfile1更新時間的命令____touch
3 linux中的歸檔解檔命令____tar
4 編譯是優先順序的取值范圍是:______,默認的優先順序是____
中進程的優先極是由進程的nice值決定的,值越小,優先順序越高
5 linux中標准設備文件有哪些.分別用什麼符號表示.
----------------------------------------------------------------------
主設備號 設備類型
次設備號=文件名 簡要說明
----------------------------------------------------------------------
0 未命名設備(例如:掛載的非設備)
0 = 未空設備號保留
1 char 內存設備
1 = /dev/mem 直接存取物理內存
2 = /dev/kmem 存取經過內核虛擬之後的內存
3 = /dev/null 空設備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。
4 = /dev/port 存取 I/O 埠
5 = /dev/zero 零位元組源,只能讀取到無限多的零位元組。
7 = /dev/full 滿設備。任何寫入都將失敗,並把errno設為ENOSPC以表示沒有剩餘空間。
8 = /dev/random 隨機數發生器。完全由用戶的輸入來產生隨機數。
如果用戶停止所有動作,則停止產生新的隨機數。
9 = /dev/urandom 更快,但是不夠安全的隨機數發生器。盡可能由用戶的輸入來產生隨機數,
如果用戶停止所有動作,則把已經產生的隨機數做為種子來產生新的隨機數。
10 = /dev/aio 非同步 I/O 通知介面
11 = /dev/kmsg 任何對該文件的寫入都將作為 printk 的輸出
1 block RAM disk
0 = /dev/ram0 第1個 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2個 RAM disk
...
200 = /dev/ram200 第200個 RAM disk
4 char TTY(終端)設備
0 = /dev/tty0 當前虛擬控制台
1 = /dev/tty1 第1個虛擬控制台
...
63 = /dev/tty63 第63個虛擬控制台
4 block 如果根文件系統以是以只讀方式掛載的,那麼就不可能創建真正的設備節點,
此時就使用該設備作為動態分配的主(major)設備的別名
0 = /dev/root
5 char 其他 TTY 設備
0 = /dev/tty 當前 TTY 設備
1 = /dev/console 系統控制台
2 = /dev/ptmx 所有 PTY master 的復用器
7 char 虛擬控制台捕捉設備(這些設備既允許讀也允許寫)
0 = /dev/vcs 當前虛擬控制台(vc)的文本內容
1 = /dev/vcs1 tty1 的文本內容
...
63 = /dev/vcs63 tty63 的文本內容
128 = /dev/vcsa 當前虛擬控制台(vc)的文本/屬性內容
129 = /dev/vcsa1 tty1 的文本/屬性內容
...
191 = /dev/vcsa63 tty63 的文本/屬性內容代碼:
7 block 回環設備(用一個普通的磁碟文件來模擬一個塊設備)
對回環設備的綁定由 mount(8) 或 losetup(8) 處理
0 = /dev/loop0 第1個回環設備
1 = /dev/loop1 第2個回環設備
...
8 block SCSI 磁碟(0-15)
0 = /dev/sda 第1個 SCSI 磁碟(整個磁碟)
16 = /dev/sdb 第2個 SCSI 磁碟(整個磁碟)
32 = /dev/sdc 第3個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdp 第16個 SCSI 磁碟(整個磁碟)
分區表示方法如下(以第3個 SCSI 磁碟為例)
33 = /dev/sdc1 第1個分區
34 = /dev/sdc2 第2個分區
...
47 = /dev/sdc15 第15個分區
對於Linux/i386來說,分區1-4是主分區,5-15是邏輯分區。
9 block Metadisk(RAID)設備
0 = /dev/md0 第1組 metadisk
1 = /dev/md1 第2組 metadisk
...
metadisk 驅動用於將同一個文件系統分割到多個物理磁碟上。
10 char 非串口滑鼠,各種雜項設備和特性
1 = /dev/psaux PS/2滑鼠
131 = /dev/temperature 機器內部溫度
134 = /dev/apm_bios APM(高級電源管理) BIOS
135 = /dev/rtc 實時時鍾(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系統管理匯流排(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)介面
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)介面
175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能監視計數器
183 = /dev/hwrng 通用硬體隨機數發生器
184 = /dev/cpu/microcode CPU微代碼更新介面
186 = /dev/atomicps 進程狀態數據的原子快照
188 = /dev/smbusbios SMBus(系統管理匯流排) BIOS
200 = /dev/net/tun TAP/TUN 網路設備(TAP/TUN以軟體的方式實現了網路設備)
TAP模擬了乙太網幀(第二層),TUN模擬了IP包(第三層)。
202 = /dev/emd/ctl 增強型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用戶層輸入設備驅動支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用戶空間的虛擬文件系統)
231 = /dev/snapshot 系統內存快照
232 = /dev/kvm 基於內核的虛構機(基於AMD SVM和Intel VT硬體虛擬技術)
11 block SCSI CD-ROM 設備
0 = /dev/scd0 第1個 SCSI CD-ROM
1 = /dev/scd1 第2個 SCSI CD-ROM
...代碼:
13 char 核心輸入設備
32 = /dev/input/mouse0 第1個滑鼠
33 = /dev/input/mouse1 第2個滑鼠
...
62 = /dev/input/mouse30 第31個滑鼠
63 = /dev/input/mice 所有滑鼠的統一
64 = /dev/input/event0 第1個事件隊列
65 = /dev/input/event1 第2個事件隊列
...
95 = /dev/input/event1 第32個事件隊列
21 char 通用 SCSI 設備(通常是SCSI光碟機)
0 = /dev/sg0 第1個通用 SCSI 設備
1 = /dev/sg1 第2個通用 SCSI 設備
...
29 char 通用幀緩沖(frame buffer)設備
0 = /dev/fb0 第1個幀緩沖設備
1 = /dev/fb1 第2個幀緩沖設備
...
31 = /dev/fb31 第32個幀緩沖設備
30 char iBCS-2 兼容設備
0 = /dev/socksys 套接字訪問介面
1 = /dev/spx SVR3 本地 X 介面
32 = /dev/inet/ip 網路訪問介面
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 還需要下面的連接必須存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null代碼:
36 char Netlink 支持
0 = /dev/route 路由, 設備更新, kernel to user
3 = /dev/fwmonitor Firewall packet 復制
59 char sf 防火牆模塊
0 = /dev/firewall 與 sf 內核模塊通信
65 block SCSI 磁碟(16-31)
0 = /dev/sdq 第17個 SCSI 磁碟(整個磁碟)
16 = /dev/sdr 第18個 SCSI 磁碟(整個磁碟)
32 = /dev/sds 第19個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdaf 第32個 SCSI 磁碟(整個磁碟)
66 block SCSI 磁碟(32-47)
0 = /dev/sdag 第33個 SCSI 磁碟(整個磁碟)
16 = /dev/sdah 第34個 SCSI 磁碟(整個磁碟)
32 = /dev/sdai 第35個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdav 第48個 SCSI 磁碟(整個磁碟)
89 char I2C 匯流排介面
0 = /dev/i2c-0 第1個 I2C 適配器
1 = /dev/i2c-1 第2個 I2C 適配器
...
98 block 用戶模式下的虛擬塊設備(分區處理方式與 SCSI 磁碟相同)
0 = /dev/ubda 第1個用戶模式塊設備
16 = /dev/udbb 第2個用戶模式塊設備
...
103 block 審計(Audit)設備
0 = /dev/audit 審計(Audit)設備
128-135 char Unix98 PTY master
這些設備不應當存在設備節點,而應當通過 /dev/ptmx 介面訪問。
136-143 char Unix98 PTY slave
這些設備節點是自動生成的(伴有適當的許可權和模式),不能手動創建。
方法是通過使用適當的 mount 選項(通常是:mode=0620,gid=<"tty"組的gid>)
將 devpts 文件系統掛載到 /dev/pts 目錄即可。
0 = /dev/pts/0 第1個 Unix98 PTY slave
1 = /dev/pts/1 第2個 Unix98 PTY slave
...代碼:
153 block Enhanced Metadisk RAID (EMD) 存儲單元(分區處理方式與 SCSI 磁碟相同)
0 = /dev/emd/0 第1個存儲單元
1 = /dev/emd/0p1 第1個存儲單元的第1個分區
2 = /dev/emd/0p2 第1個存儲單元的第2個分區
...
15 = /dev/emd/0p15 第1個存儲單元的第15個分區
16 = /dev/emd/1 第2個存儲單元
32 = /dev/emd/2 第3個存儲單元
...
240 = /dev/emd/15 第16個存儲單元
180 char USB 字元設備
96 = /dev/usb/hiddev0 第1個USB人機界面設備(滑鼠/鍵盤/游戲桿/手寫版等人操作計算機的設備)
...
111 = /dev/usb/hiddev15 第16個USB人機界面設備
180 block USB 塊設備(U盤之類)
0 = /dev/uba 第1個USB 塊設備
8 = /dev/ubb 第2個USB 塊設備
16 = /dev/ubc 第3個USB 塊設備
...
192 char 內核 profiling 介面
0 = /dev/profile Profiling 控制設備
1 = /dev/profile0 CPU 0 的 Profiling 設備
2 = /dev/profile1 CPU 1 的 Profiling 設備
...
193 char 內核事件跟蹤介面
0 = /dev/trace 跟蹤控制設備
1 = /dev/trace0 CPU 0 的跟蹤設備
2 = /dev/trace1 CPU 1 的跟蹤設備
...
195 char Nvidia 圖形設備(比如顯卡)
0 = /dev/nvidia0 第1個 Nvidia 卡
1 = /dev/nvidia1 第2個 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制設備
202 char 特定於CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...代碼:
===================================================================
這部分詳細說明一些應該或可能存在於 /dev 目錄之外的文件。
鏈接最好使用與這里完全相同的格式(絕對路徑或相對路徑)。
究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決於不同的設備。
必須的鏈接
必須在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 標准輸入文件描述府
/dev/stdout fd/1 symbolic 標准輸出文件描述符
/dev/stderr fd/2 symbolic 標准錯誤文件描述符
/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須
/dev/X0R null symbolic 僅為 iBCS-2 所必須
[注意] /dev/X0R 是 <字母 X>-<數字 0>-<字母 R>
推薦的鏈接
推薦在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/core /proc/kcore symbolic 為了向後兼容
/dev/ramdisk ram0 symbolic 為了向後兼容
/dev/ftape qft0 symbolic 為了向後兼容
/dev/bttv0 video0 symbolic 為了向後兼容
/dev/radio radio0 symbolic 為了向後兼容
/dev/i2o* /dev/i2o/* symbolic 為了向後兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定義的鏈接
下面的鏈接很可能需要根據機器的實際硬體配置創建其中的一部分甚至全部。
這些鏈接僅僅是為了迎合習慣用法,它們既非必須也非推薦。
鏈接 目標 鏈接類型 簡要說明
/dev/mouse mouse port symbolic 當前滑鼠
/dev/tape tape device symbolic 當前磁帶
/dev/cdrom CD-ROM device symbolic 當前CD-ROM
/dev/cdwriter CD-writer symbolic 當前CD-writer
/dev/scanner scanner symbolic 當前掃描儀
/dev/modem modem port symbolic 當前數據機
/dev/root root device symbolic 當前根文件系統所在設備
/dev/swap swap device symbolic 當前swap所在設備
/dev/modem 不應當用於能夠同時支持呼入和呼出的modem,因為往往會導致鎖文件問題。
如果存在 /dev/modem ,那麼它應當指向一個恰當的主 TTY 設備。
對於SCSI設備,
/dev/tape 和 /dev/cdrom 應該分別指向"cooked"設備 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 應當分別指向恰當的 /dev/sg* 。
/dev/mouse 可以指向一個主串列 TTY 設備、一個硬體滑鼠、
或者一個對應滑鼠驅動程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在於 /dev 中。常見的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 滑鼠多路復用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出現)
/dev/initctl fifo pipe init 監聽它並從中獲取信息(用戶與 init 進程交互的通道)
掛載點
以下名稱被保留用於掛載特殊的文件系統。
這些特殊的文件系統只提供內核界面而不提供標準的設備節點。
/dev/pts devpts PTY slave 文件系統
/dev/shm tmpfs 提供對 POSIX 共享內存的直接訪問
❹ unit操作是什麼
一:操作系統的功能
計算機內部有很多種類的部件,如顯示器、磁碟、鍵盤以及內存等等。如果這些沒有一個有條理的章法來管理,那就會徹底「亂套」, 最後什麼也幹不成。所以計算機必須懂得如何去協調各類部件,能夠解決可能出現的各種問題,這就要懂得如何「管理」自己的「五臟六腑」。最初的計算機都是由操作人員發命令來直接控制的,這樣不但費事而且不太可靠。後來,人們逐漸地編寫一些程序,用來協助調度各種設備,以後,這些程序越來越多,匯總起來就構成了操作系統。
操作系統(Opreating System)說到底就是所有管理計算機的程序的集合。發展到今天,各種各樣的操作系統可謂是五花八門,各顯神通,可以說,今天的計算機一點也離不開操作系統了。
在啟動計算機時,當所有固化的事情(如自檢)都作完之後,就開始載入操作系統。所以,大部分的操作系統都是可以自啟動(Boot)的,也就是一開始就不需要用戶操心,自己啟動運行;並且當我們運行一個程序或者使用一個工作站時,它又要負責管理這個程序或這個工作站,直到我們關機退出操作系統為止。當然,也有一些操作系統是不能自啟動的,它依賴於別的操作系統啟動以後再把它裝入。比如Windows 3.1 ,Netware等都需要啟動DOS再裝入。但是只要我們一啟動它,它也擔任起了管理計算機的工作。總之,不論是不是自啟動的操作系統,都是計算機系統的「管家」。
一般來說,操作系統都具備如下功能:
1:存儲器管理 包括存儲空間的分配、保護等,既要為程序的運行提供足夠的內存,又要合理的使用它,使寶貴的內存資源不被浪費。
2:進程管理 通常,我們把一個程序的一次運行叫作一個進程,一個良好的操作系統應當允許多個程序同時運行,一個程序也允許同時啟動它的多個拷貝,說到底就是允許有許多個進程同時存在。創建進程,在不同進程之間的切換,進程之間的通信,以及一個進程正常或者異常結束後的善後工作都要由操作系統來處理。
3:設備管理 為了有效合理地使用各種設備,比如顯示器、列印機、磁碟、光碟、滑鼠等,操作系統把這些統一管理起來,以提高這些設備的利用率。
4:文件管理 計算機中所有存儲在硬碟上的信息都是以文件的形式存在。在操作系統中管理的部分通常也稱為文件系統,文件管理的目標是:方便程序員對文件的操作,比如閱讀改寫,查找等,同時還要保證文件的安全,要對重要文件提供專門的保護措施。
5:提供人機界面 提供一個人與機器對話的環境,讓使用者通過命令的方式或其它的方式來操作計算機。
一般我們根據操作系統功能的強弱將操作系統分為如下幾種:
1:單用戶單任務 一般在單機上用,在微機上比較流行,最具代表性的是DOS,只能由一個人用,一次只能運行一個程序。
2:單用戶多任務 仍然是由一個人使用,但是可以通過一定的切換方式來同時運行多個程序,其中最典型的要算是Windows。
3:多用戶多任務 可以由很多人一起同時使用,也能同時運行多個程序,操作系統本身在主機上運行,多個用戶可以通過終端(只有顯示器和鍵盤的工作台)或其它微機(工作站)連上系統,所有用戶共享主機的資源而互不幹擾,必要時,互相之間還可以通信。這種系統中最常見 、使用最多的恐怕就只有UNIX了。連上數據機(MODEM)以後,遠在千里之外的終端或工作站也能同時使用這一套UNIX系統(如圖):
UNIX是一個多用戶的操作系統,通常同時會有一個以上的用戶使用它,那麼,它是怎樣同時應付每個不同的用戶的不盡相同的要求呢?其實它使用了一種叫「分時系統」的技術。
分時系統既是操作系統的一種類型,又是對配置了分時系統的計算機系統的一種稱呼。通常,在一台主機上連接了多個鍵盤顯示終端,用戶可以通過各自的終端,以交互作用的方式使用計算機,共享主機上所配置的各種硬、軟體資源。這里,我們將每個終端上讓主機做的具體事務叫做「作業」。
為使終端用戶不僅在編輯時能和系統進行會話,而且在作業處理過程中的各個階段,也能與自己的作業交互作用,這就要求系統能對用戶鍵入的命令及時響應。顯然,在分時系統中,作業的運行方式不能像單用戶系統那樣,一個作業長期佔有CPU運行,其它作業則因不能獲得CPU而處於長期等待的狀態,致使其它用戶請求不能得到及時響應。所以,通過長期的實踐探索,實現「分時系統」主要使用過下述幾種方法:
在分時系統中,將CPU的運行時間分成一個個很小的單位,例如幾毫秒或微妙,依次分給同時使用系統的每個用戶,這就叫做時間片。在一個時刻,CPU 只能運行一個用戶的程序,當這個時間片結束時,CPU 將該用戶的程序運行狀態保存下來,然後去運行下一個用戶的程序,直到下次輪到當前用戶的時間片,再繼續運行。當我們使用足夠小的時間片,而且CPU 的運算速度足夠快時,每個用戶都可以感覺不到他是和其他用戶一起使用一套系統,彷彿CPU 一直在運行他的程序。
一般情況下,用戶使用計算機時,CPU 不是每時每刻都忙忙碌碌。比如,當用戶在鍵盤輸入時,CPU 要等用戶的輸入,在列印、存取盤時,CPU 要等候這些慢速的設備,這時如果CPU 去處理其他程序,既不影響原來的作業,又多做了工作,這樣,分時系統就明顯提高了效率。
一般地,我們認為分時系統有以下四個特徵:
1:多路性 系統將若干個用戶終端通過多路卡連接到一台主機上。宏觀上,多個用戶同時工作,共享系統資源;各終端作業輪流運行一個時間片。多路性提高了資源利用率,節省了開支,促進了計算機的廣泛使用。
2:獨立性 每個用戶各佔一台終端,彼此獨立操作,互不幹擾,從用戶角度說,每一用戶並不感覺到其它用戶的存在,就象整個系統被他所獨占。
3.及時性 終端用戶請求能在很短時間間隔內獲得響應。該響應時間間隔的大小由人們所能接受的等待時間來確定,通常把響應時間規定為2-3秒鍾。
4.交互性 用戶能與系統進行較廣泛的人機對話。即用戶從鍵盤輸入命令,請求系統服務和控製程序的運行,系統能及時響應該命令,並在終端顯示響應結果。交互性有力地支持了工程設計和方案論證,顯著地提高了研究,檢查和調整程序的效率。由於交互性作用是分時系統的重要特徵,因而分時系統也被稱為交互作用系統。
UNIX就是這樣一種簡潔高效的多用戶分時操作系統。
二:UNIX的發展演變及特點
在1968-1969年間,由AT&T(美國電報電話公司)BELL實驗室的Ken Thompson、Dennis Ritchie 等與MIT(麻省理工學院)和Gernal Electric聯合開發第一套分時操作系統-MULTICS,雖然最後終於可以在一種稱為是GE645的機器上運行,但是MUTICS還是太龐大、太復雜,以至於開發者們都不知道要把它作成一個什麼樣的東西,所以BELL退出了MULTICS的研究計劃。
1970年以後Ken Thompson在原有部分MUTICS成果的基礎上用匯編語言編寫了一個全新的操作系統——UNIX ,並把它放到DEC PDP-7計算機上去運行。當然,此時的UNIX還只是一個簡單的雛形,而且匯編語言寫的程序不容易在其它機型上移植,所以並不能算是一個完整的操作系統。
很快,Dennis Ritchie又用C語言重寫了UNIX,由於C語言同時具有高級語言和匯編語言的功能,可移植性相當好,這就大大推動了UNIX在不同型式的機器上的移植,使UNIX能夠流行起來。
1976年Dennis Ritchie自己成功地將UNIX 移植到INTERDATA的8/32上,以後便從小型機(如:VAX,PDP-11系列) 發展到大型計算機(如IBM370,MDAHL490……),而後又延伸到微機系列(如:8086,80386,80486,Pentium等)。
目前主要有如下幾種種類型的UNIX版本:
AT&T是UNIX的原始發行商。System V是最新的AT&T UNIX版本。原先AT&T每次更新UNIX,就增加UNIX 的系統號,如UNIX System I、UNIX System II到UNIX System IV。在1983年後AT&T發行System V以後,不再增加系統號,而是在系統號後加上了發行號,如System V Release 3和System V Release 4。
BERKELEY UNIX是位於BERKELY的加利福尼亞大學開發的UNIX版本。最新版本是BSD Release 4.3。
XENIX 是Microsoft公司與SCO公司聯合開發的基於INTEL80x86系列晶元系統的微機UNIX版本。由於開始沒有得到AT&T的授權,所以另外起名叫XENIX,採用的標準是AT&T的UNIX SVR3(System V Release 3)。Microsoft將系統提供給象IBM這樣的設備製造商,隨著他們的機器一起銷售;而SCO則將XENIX命名為SCO XENIX買給個人用戶。後來AT&T放鬆了對UNIX命名的限制,SCO就將SCO-XENIX改名為SCO UNIX,目前最新的是SCO UNIX 5.0,並逐漸稱為微機版UNIX系統的主流。由於INTEL系列晶元的微機現在使用最廣泛,所以SCO UNIX也成了最常見的UNIX版本。
LINUX也是一套微機版的UNIX系統,它的主要運行環境也是基於INTEL系列晶元的微型計算機,由於它是一個免費的UNIX版本,而且全面支持INTERNET服務,所以流傳非常廣泛。在1991年,在芬蘭赫爾辛基大學的Linus Torvalds編寫了一套MINIX(Mini Unix 微型UNIX),通過他自己的努力,微型UNIX成長起來。但是Linus並沒有把軟體拿來賣錢,而是免費提供給廣大計算機愛好者,所以不能冠以商業軟體UNIX的名稱,於是Linus便將這套系統叫做Linux。Linux具有UNIX的全部功能,而且全世界有許多志願者為它編寫升級組件,Linus也不斷推出內核的新版本,於是它成了學習UNIX和組建INTERNET站點的最經濟的選擇。目前Linux有許多發行版,一般可以從INTERNET網路免費得到,或者花費少量光碟成本和郵寄費購買光碟版Linux,國內使用最普遍的有Slackware和Redhat版,它們採用的系統內核都一樣,但是外圍組件略有差別。我們這本教材將使用目前最新版的Slackware3.4版作為藍本。
許多硬體廠商在生產網路計算機時,都配備了自主開發的UNIX系統,最常見的有SUN開發的SOLARIS(SUN-OS)系統,惠普的HP-UX系統,還有IBM等廠家也有自己的UNIX版本。
通常認為UNIX具有以下三個顯著的特點。
1:交互性 交互性是指UNIX會對你輸入的每一條有效指令馬上做出反應,也就是平常我們所說的人機對話功能。
2:多用戶 UNIX作為多用戶的操作系統,以分時系統方式支持終端和計算機工作站。不同地域不同國家的計算機終端可通過UNIX系統緊密的連接起來,形成一個龐大的計算網路,這也將成為社會日益發展的一種趨勢,即使在當今我們也能夠感到UNIX在通信網路的重要作用。
3:多任務 在同一台計算機上,UNIX能同時支持多個程序的執行,允許你並發地執行幾個程序。例如,在運行電子數據表這個應用程序中,你想啟動另一個應用程序而又不想中斷它,你可把電子數據表放到後台運行,在前台啟動另一個程序。
UNIX除了前面談到的三點外還有許多特點。比如移植性好,分級的文件結構,還有I/O重定向和管道等等,這在以後的學習中將會陸續談到。UNIX支持很龐大的用戶功能,並且採用了許多安全的保護措施。但比起WINDOWS來,用戶界面可能會顯得不太友好;比起DOS來,可能會比較復雜難以掌握,這就需要我們花一定功夫來學習它,熟悉它,應用它。
❺ 關於linux 復制的問題,希望大家給解決一下,謝謝
cp /root/qq/a/wen.txt /root/sun
也可以用mv命令,mv相當於剪切,和mv用法一樣。
❻ 請問Linux作為伺服器操作系統都是嵌入式的嗎
zt
我幫你查找了兩個資料,你看看對你是否可以有點幫助;
嵌入式Linux系統的設計與應用
摘要:隨著嵌入式Linux系統的迅速發展,嵌入式Linux已發展成為嵌入式操作系統的一個重要分支。本文介紹了嵌入式Linux的設計和幾種流行的嵌入式Linux系統。
關鍵詞:嵌入式Linux
一、引言
嵌入式系統(Embedded Systems)是根據應用的要求,將操作系統和功能軟體集成於計算機硬體系統之中,從而實現軟體與硬體一體化的計算機系統。嵌入式系統出現於60年代晚期,它最初被用於控制機電電話交換機,如今已被廣泛的應用於工業製造、過程式控制制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費類產品等眾多領域。嵌入式系統在數量上遠遠超過了各種通用計算機系統:計算機系統核心CPU,每年在全球范圍內的產量大概在二十億顆左右,其中超過80%應用於各類專用性很強的嵌入式系統。
一般的說,凡是帶有微處理器的專用軟硬體系統都可以稱為嵌入式系統。和通用的計算平台相比,嵌入式系統往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬體集成度高、計算能力相對較低等特點。多年來,嵌入式設備中沒有操作系統,其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設備僅僅需要一道簡單的控製程序,以管理數量有限的按鈕和指示燈,沒有使用操作系統的必要;其次,它往往只具有有限的硬體資源,不足以支持一個操作系統。
然而,隨著硬體的發展,嵌入式系統變得越來越復雜,最初的控製程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統提供。於是,在70年代末期出現了嵌入式操作系統(Embedded Operating Systems),它的出現大大簡化了應用程序設計,並可以有效的保障軟體質量和縮短開發周期。簡單的ES一般並不使用操作系統,只包含一些控制流程,但是隨著嵌入式操作系統在復雜性上的增長,簡單的流程式控制制就不能滿足系統的要求,這是就必須考慮使用操作系統做系統軟體。因此,嵌入式操作系統就應運而生。
隨著EOS的廣泛應用,業界已推出一些應用比較成功的EOS產品。歸納起來EOS應該具有以下幾個特點:小巧、實時性、可裝卸、固化代碼、弱交互性、強穩定性和統一的介面。目前使用最多的EOS產品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(國內凱思集團公司自主研製開發)等。其中,Vxwork使用最為廣泛、市場佔有率最高,其突出特點是實時性強(採用優先順序搶占和輪轉調度等機制),除此之外,其可靠性和可剪裁性也相當不錯。QNX是一種伸縮性極佳的系統,其核心加上實時POSIX環境和一個完整的窗口系統還不到一兆。相比之下,Microsoft WinCE的核心體積龐大,實時性能也差強人意,但由於Windows系列友好的用戶界面和為程序員所熟悉的API,並捆綁IE、Office等應用程序,正逐漸獲得更大的市場份額。而與這些商業化的操作系統相比,Linux已經越來越受到人們的注意。
二、嵌入式Linux概述
Linux是一個成熟而穩定的網路操作系統。將Linux植入嵌入式設備具有眾多的優點。首先,Linux的源代碼是開放的,任何人都可以獲取並修改,用之開發自己的產品。其次,Lirmx是可以定製的,其系統內核最小隻有約134kB。一個帶有中文系統和圖形用戶界面的核心程序也可以做到不足1MB,並且同樣穩定。另外,它和多數Unix系統兼容,應用程序的開發和移植相當容易。同時,由於具有良好的可移植性,人們已成功使Linux運行於數百種硬體平台之上。
然而,Linux並非專門為實時性應用而設計,因此如果想在對實時性要求較高的嵌入式系統中運行Linux,就必須為之添加實時軟體模塊。這些模塊運行的內核空間正是操作系統實現進程調度、中斷處理和程序執行的部分,因此錯誤的代碼可能會破壞操作系統,進而影響整個系統的可靠性和穩定性。Linux的眾多優點還是使它在嵌入式領域獲得了廣泛的應用,並出現了數量可觀的嵌入式Linux系統。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用於在小型工業計算機,尤其是PC/104模塊。ThinLinux面向專用的照相機伺服器、X-10控制器、MP3播放器和其它類似的嵌入式應用。LOAF是Linux On A Floppy的縮略語,它運行在386平台上。
三、Linux作為嵌入式操作系統的優勢
Linux作為嵌入式操作系統的優勢主要有以下幾點:
1、 可應用於多種硬體平台。Linux已經被移植到多種硬體平台,這對於經費,時間受限制的研究與開發項目是很有吸引力的。原型可以在標准平台上開發後移植到具體的硬體上,加快了軟體與硬體的開發過程。Linux採用一個統一的框架對硬體進行管理,從一個硬體平台到另一個硬體平台的改動與上層應用無關。Linux可以隨意地配置,不需要任何的許可證或商家的合作關系,源代碼可以免費得到。這使得採用Linux作為操作系統不會遇到任何關於版權的糾紛。毫無疑問,這會節省大量的開發費用。本身內置網路支持,而目前嵌入式系統對網路支持要求越來越高。Linux的高度模塊化使添加部件非常容易。
2、 Linux是一個和Unix相似、以內核為基礎的、具有完全的內存訪問控制,支持大量硬體(包括X86,Alpha、ARM和Motorola等現有的大部分晶元)等特性的一種通用操作系統。其程序源碼全部公開,任何人可以修改並在GUN通用公共許可證(GNU General Public License)下發行。這樣,開發人員可以對操作系統進行定製,適應其特殊需要。
3、 Linux帶有Unix用戶熟悉的完善的開發工具,幾乎所有的Unix系統的應用軟體都已移植到了Linux上。Linux還提供了強大的網路功能,有多種可選擇窗口管理器(X Windows)。其強大的語言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。
四、嵌入式Linux的建立
完整的嵌入式Linux解決方案應包括嵌入式Linux操作系統內核、運行環境、圖形化界面和應用軟體等。由於嵌入式設備的特殊要求,嵌入式Linux解決方案中的內核、環境、GUI等都與標准Linux有很大不同,其主要挑戰是如何在狹小的FLASH、ROM和內存中實現高質量的任務實時調度、圖形化顯示、網路通信等功能。
1、 精簡內核
Linux內核有自己的結構體系,其中進程管理、內存管理和文件系統是其最基本的3個子系統。圖1簡單表示了它的框架。用戶進程可直接通過系統調用或者函數庫來訪問內核資源。正因為Linux內核具有這樣的結構,因此修改內核時必須注意各個子系統之間的協調。
嵌入式Linux內核一般由標准Linux內核裁剪而來。用戶可根據需求配置系統,剔除不需的服務功能、文件系統和設備驅動。經過裁剪、壓縮後的系統內核一般只有300k左右,十分適合嵌入式設備。同標准Linux不同的是嵌入式Linux必須要實現從FLASH或ROM的啟動。標准Linux啟動代碼實現了系統初始化和從軟盤、硬碟O盤區引導內核。嵌入式Linux一般保存在FLASH或ROM中,標准LILO無法引導。在支持直接從FLASH設備引導的系統中,如華恆公司的uClinux,引導程序主要完成對硬體系統的初始化工作和操作系統的解壓、移位工作。在不支持直接從FLASH引導的系統中,FLASH設備只能作為非引導磁碟使用。此時,可採用先從硬碟或軟盤載入一個小操作系統,如嵌入式DOS,然後再執行"Loadlin"載入程序從FLASH引導嵌入式Linux。
對標准Linux的修改主要是虛擬內存和調度程序部分的改動。因為標准Linux系統使用虛擬內存管理的目的是為了能同時運行多個進程,但是這樣每個待運行的進程所能分配的CPU時間片就受限制,資源的使用效率就低。這樣對於實時性要求較高的嵌入式系統來說,實時任務往往要求CPU具有很高的突發處理能力,即在有些時候需要極高的處理效率,因此需要屏蔽內核的虛擬內存管理機制。對於無硬碟設備的嵌入式系統,不必採用虛存管理。強實時需求的嵌入式應用可以通過修改任務調度模塊實現,主要是在內核和設備驅動程序中加入了許多切換點。在該點處,系統檢測是否存在未處理的緊急中斷,有則剝奪內核的運行,及時處理中斷。實現實時性服務的一個較好的方法是在標準的Linux內核上增加一個實時內核,標准Linux內核作為一個任務運行於實時內核上,強實時性任務也直接運行在實時內核上,如RT-Linux等。
文件系統是嵌入式Linux操作系統必不可少的。但標准Linux支持大量的文件系統,因此除了滿足系統的正常運行需要而保留一種外,其它的全部可以刪除,利用原有的設置選項可以移除。一般嵌入式設備文件系統主要使用RamDisk技術和網路文件系統技術。RamDisk可駐留於Flash,運行時載入到內存中。
2、 精簡運行環境
Linux通常的運行環境指用戶運行任何應用的基礎設施,主要包括函數庫和基本命令集等。標准Linux系統同時向用戶提供了靜態和動態函數庫。靜態函數庫在生成應用時直接鏈接到用戶應用中。動態庫在應用運行時才鏈接。由於嵌入式系統應用一般都是在開發平台上預先生成的,因此嵌入式系統只需向應用提供動態函數庫。Linux應用運行所需的函數庫主要有C庫、數學庫、線程庫、加密庫、網路通信庫等。其中最基本的是C語言的運行庫glib。這個庫主要完成基本的輸入輸出,內存訪問,文件處理。一個標準的glib庫大約要1200kB存儲空間,考慮到嵌入式Linux內核往往很小,這種運行庫實在太大,我們做了一些精簡的工作,方法有兩種:(1)、使用靜態連接的方法,完全不使用運行庫動態連接;(2)、對這個庫的函數進行精簡。
在一個桌面系統上,使用動態連接可以帶來許多好處。使用動態連接庫,可以讓應用程序跟函數庫的更新、升級分離,便於維護,可以讓同時運行的多個程序共享一段代碼。但是,在嵌入式系統中,很少有多個程序並行的可能,程序的維護,尤其是庫函數的維護更新是不常見的。這時,使用靜態連接的優勢就極為明顯。因為靜態連接可以只將庫中用到的部分連接進程序。在應用程序較少(小於5)的情況下,靜態連接可以達到較好的結果。為了便於將來擴充的需要,我們也採用第二種方法,針對我們的需要,對庫函數的內容進行精簡,只保留一些基本功能,還有一種方法是採用其它的C語言運行庫。但是這些庫對兼容性影響很大。
基本命令集同樣是運行用戶應用的基礎,主要包括初始化進程init,終端獲取getty、Shell和基本命令等。嵌入式系統的啟動過程可能與標准Linux不同,例如跳過登錄過程直接啟動GUI等。這就要求修改init,getty等。標准Linux命令集同樣由於體積問題無法直接應用於嵌入式環境。目前,小命令集的解決方法主要有集成方法和匯編方法兩種。集成方法採用集成公共部分減少命令集整體體積,用C實現,有較好的平台移植性;匯編方法則採用匯編編程減少每個命令的體積.這樣可使體積很小但其平台移植性較差。
3、 嵌入式Linux下的GUI
GUI在嵌入式系統或者實時系統中的地位越來越重要,比如PDA、DVD播放機、WAP手機等,都需要一個完整.漂亮的圖形用戶界面。這些系統對GUI的基本要求包括:(1)、輕型、佔用資源少;(2)、高性能;(3)、高可靠性;(4)、可配置。這些也成為評價嵌入式系統的重要指標。目前,嵌入式Linux上的GUI主要有winCE、Micro Window、緊縮的X Window、MiniGUI(國內做得較好的自由軟體之一)。標准Linux的Xfree86由於體積龐大,運行環境要求高,無法運行於嵌入式環境。嵌入式GUI主要通過削減功能,降低性能來實現體積小和佔用資源少。目前嵌入式Linux上的GUI環境主要有兩類:X類和win32類。X類GUI分為服務方和客戶方兩方。伺服器方提供滑鼠、鍵盤處理和顯示功能,客戶方是用戶應用,服務方和客戶方通過socket介面和X協議通信。採用該方式十分有利於遠程網路圖形化服務,客戶方和服務方可通過網路實現X協議和圖形顯示。典型的X類GUI有Micro Window、緊縮的X Window等。win32類的GUI不存在客戶方和服務方,每個任務都自成一體,任何任務間的切換、事件分發由專門的管理任務負責。如wiCE、MiniGUI就是類似於win32類的GUI。
五、當前流行的幾種嵌入式Linux系統
除了智能數字終端領域以外,Linux在移動計算平台、智能工業控制、金融業終端系統,甚至軍事領域都有著廣泛的應用前景。這些Linux被統稱為"嵌入式Linux"。
1、RT-Linux
這是由美國墨西哥理工學院開發的嵌入式Linux操作系統。到目前為止,RT-Linux已經成功地應用於太空梭的空間數據採集、科學儀器測控和電影特技圖像處理等廣泛領域。RT-Linux開發者並沒有針對實時操作系統的特性而重寫Linux的內核,因為這樣做的工作量非常大,而且要保證兼容性也非常困難。為此,RT-Linux提出了精巧的內核,並把標準的Linux核心作為實時核心的一個進程,同用戶的實時進程一起調度。這樣對Linux內核的改動非常小,並且充分利用了Linux下現有的豐富的軟體資源。
2、uClinux
uCLinux是Lineo公司的主打產品,同時也是開放源碼的嵌入式Linux的典範之作。uCLinux主要是針對目標處理器沒有存儲管理單元MMU(Memory Management Unit) 的嵌入式系統而設計的。它已經被成功地移植到了很多平台上。由於沒有MMU,其多任務的實現需要一定技巧。uCLinux是一種優秀的嵌入式Linux版本,是micro-Conrol-Linux的縮寫。它秉承了標准Linux的優良特性,經過各方面的小型化改造,形成了一個高度優化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,卻仍然保留了Linux的大多數的優點:穩定、良好的移植性、優秀的網路功能、對各種文件系統完備的支持和標准豐富的API。它專為嵌入式系統做了許多小型化的工作,目前已支持多款CPU。其編譯後目標文件可控制在幾百KB數量級,並已經被成功地移植到很多平台上。
3、Embedix
Embedix是由嵌入式Linux行業主要廠商之一Luneo推出的,是根據嵌入式應用系統的特點重新設計的Linux發行版本。Embedix提供了超過25種的Linux系統服務,包括Web伺服器等。系統需要最小8MB內存,3MB ROM或快速快閃記憶體。Embedix基於Linux 2.2內核,並已經成功地移植到了Intel x86和PowerPC處理器系列上。像其它的Linux版本一樣,Embedix可以免費獲得。Luneo還發布了另一個重要的軟體產品,它可以讓在Windows CE上運行的程序能夠在Embedix上運行。Luneo還將計劃推出Embedix的開發調試工具包、基於圖形界面的瀏覽器等。可以說,Embedix是一種完整的嵌入式Linux解決方案。
4、Xlinux
XLinux是由美國網虎公司推出,主要開發者是陳盈豪。他在加盟網虎幾個月後便開發出了基於XLinux的、號稱是世界上最小的嵌入式Linux系統,內核只有143KB,而且還在不斷減小。XLinux核心採用了"超字元集"專利技術,讓Linux核心不僅可能與標准字元集相容,還含蓋了1 2個國家和地區的字元集。因此,XLinux在推廣Linux的國際應用方面有獨特的優勢。
5、PoketLinux
由Agenda公司採用、作為其新產品"VR3PDA"的嵌入式Linux操作系統。它可以提供跨操作系統構造統一的、標准化的和開放的信息通信基礎結構,在此結構上實現端到端方案的完整平台。PoketLinux資源框架開放,使普通的軟體結構可以為所有用戶提供一致的服務。PoketLinux平台使用戶的視線從設備、平台和網路上移開,由此引發了信息技術新時代的產生。在PoketLinux中,稱之為用戶化信息交換(CIE),也就是提供和訪問為每個用戶需求而定製的"主題"信息的能力,而不管正在使用的設備是什麼。
6、MidoriLinux
由Transmeta公司推出的MidoriLinux操作系統代碼開放,在GUN普通公共許可(GPL)下發布,可以在http://midori.transmeta.com上立即獲得。該公司有個名為"MidoriLinux計劃"。"MidoriLinux"這個名字來源於日本的"綠色"---Midori,用來反映其Linux操作系統的環保外觀。
7、紅旗嵌入式Linux
由北京中科院紅旗軟體公司推出的嵌入式Linux是國內做得較好的一款嵌入式操作系統。目前,中科院計算所自行開發的開放源碼的嵌入式操作系統---Easy Embedded OS(EEOS)也已經開始進入實用階段了。該款嵌入式操作系統重點支持p-Java。系統目標一方面是小型化,另一方面能重用Linux的驅動和其它模塊。由於有中科院計算所的強大科研力量做後盾,EEOS有望發展成為功能完善、穩定、可靠的國產嵌入式操作系統平台。
六、結束語
由於Linux是一個內核源代碼開放、具備一整套工具鏈、有強大的網路支持及成本低廉的操作系統,因此嵌入式Linux自誕生起就秉承了這眾多獨特優勢,這使它正在並越來越多地受到人們的關注。據Even Data數據顯示,期望使用嵌入式Linux的用戶從2001年的11%增到2002年27%,而同期Vxwork只是從16%到18%,Win CE從9%到14%。另外,在嵌入式Linux的各種應用市場中,通信(語音和數據)名列第一,2000年的銷售額是1300萬美元,而2005年預計將達到1.26億美元,可以預見,嵌入式Linux將在未來的通信用嵌入式操作系統中占據強有力的地位
Linux是目前十分火爆的操作系統。它是由芬蘭赫爾辛基大學的一個大學生Linus B. Torvolds在1991年首次編寫的。標志性圖標是一個可愛的小企鵝。
Linux是一種類Unix系統,Linus當時編寫它的目的是為了替代一種名叫Minix的操作系統。Minix是由一個名叫Andrew Tannebaum的計算機教授編寫的,當時由於Unix是一個商業軟體,其源代碼是不能拿來進行教學的,Andrew教授就自己編寫了一個系統用於教學。最
初的Minix用一張軟盤就能裝下,麻雀雖小、五臟俱全,Minix具有一般操作系統的特徵,它同時兼容Unix系統。
Linux是一個免費的操作系統,用戶可以免費獲得其源代碼,並能夠隨意修改。它是在共用許可證GPL(General Public License)保護下的自由軟體,也有好幾種版本,如Red Hat Linux、Slackware,以及國內的Xteam Linux等。
Linux具有許多Unix系統的功能和特點,能夠兼容Unix,但無需支付Unix高額的費用。比如一個Unix程序員在單位可以在Unix系統上進行工作,回到家裡在Linux系統上也能完成同樣的工作,而不必重新購買Unix。要知道Unix的價格比常見的Windows要高出若干倍,和Linux的低廉更是相距甚遠。
Linux的應用也十分廣泛。Sony最新的PS2游戲機就採用了Linux作為系統軟體,使PS2搖身一變,成為了一台Linux工作站。著名的電影《泰坦尼克號》的數字技術合成工作就是利用100多台Linux伺服器來完成的。
2001年8月17日,Linux發布了最新的Linux 2.4.9版,它也已經十歲了。
Linux的優點
Linux的流行是因為它具有許多誘人之處。
1、完全免費
Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。正是由於這一點,來自全世界的無數程序員參與了Linux的修改、編寫工作,程序員可以根據自己的興趣和靈感對其進行改變。這讓Linux吸收了無數程序員的精華,不斷壯大。
2、完全兼容POSIX 1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
3、多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
4、良好的界面
Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Windows系統,用戶可以使用滑鼠對其進行操作。在X-Windows環境中就和在Windows中相似,可以說是一個Linux版的Windows。
5、豐富的網路功能
互聯網是在Unix的基礎上繁榮起來的,Linux的網路功能當然不會遜色。它的網路功能和其內核緊密相連,在這方面Linux要優於其他操作系統。在Linux中,用戶可以輕松實現網頁瀏覽、文件傳輸、遠程登陸等網路工作。並且可以作為伺服器提供WWW、FTP、E-Mail等服務。
6、可靠的安全、穩定性能
Linux採取了許多安全技術措施,其中有對讀、寫進行許可權控制、審計跟蹤、核心授權等技術,這些都為安全提供了保障。Linux由於需要應用到網路伺服器,這對穩定性也有比較高的要求,實際上Linux在這方面也十分出色。
7、支持多種平台
Linux可以運行在多種硬體平台上,如具有x86、680x0、SPARC、Alpha等處理器的平台。此外Linux還是一種嵌入式操作系統,可以運行在掌上電腦、機頂盒或游戲機上。2001年1月份發布的Linux 2.4版內核已經能夠完全支持Intel 64位晶元架構。同時Linux也支持多處理器技術。多個處理器同時工作,使系統性能大大提高。
Linux的不足
由於在現在的個人電腦操作系統行業中,微軟的Windows系統仍然佔有大部分的份額,絕大多數的軟體公司都支持Windows。這使得Windows上的應用軟體應有盡有,而其他的操作系統就要少一些。許多用戶在換操作系統的時候都會考慮以前的軟體能否繼續使用,換了操作系統後是否會不方便。雖然Linux具有DOS、Windows模擬器,可以運行一些Windows程序,但Windows系統極其復雜,模擬器所模擬的運行環境不可能完全與真實的Windows環境一模一樣,這就使得一些軟體無法正常運行。
許多硬體設備面對Linux的驅動程序也不足,不少硬體廠商是在推出Windows版本的驅動程序後才編寫Linux版的。但一些大硬體廠商在這方面做得還不錯,他們的Linux版驅動程序一般都推出得比較及時。
軟體支持的不足是Linux最大的缺憾,但隨著Linux的發展,越來越多的軟體廠商會支持Linux,它應用的范圍也越來越廣。這只小企鵝的前景是十分光明的。
❼ Linux是干什麼用的
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。
Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU工程各種工具和資料庫的操作系統。
(7)在linux中通常把設備作為什麼來處理擴展閱讀:
Linux操作系統的主要特性;
1、完全免費並且開放
Linux是一款免費的操作系統,用戶可以通過網路或其他途徑免費獲得,並可以任意修改其源代碼。這是其他的操作系統所做不到的。
2、完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。
3、多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
❽ 在操作系統中,處理機的狀態分為什麼
系統態和用戶態
❾ 操作系統幾個填空題
就緒
避免
進程動態,程序靜態
內外存之和
0E1F(H)
塊設備
請求分頁
8.
從大到小
存儲介質特性
❿ 在linux中是不是能看到設備節點就說明設備可以被訪問了解決思路
Linux 中的設備有2種類型:字元設備(無緩沖且只能順序存取)、塊設備(有緩沖且可以隨機存取)。每個字元設備和塊設備都必須有主、次設備號,主設備號相同的設備是同類設備(使用同一個驅動程序)。這些設備中,有些設備是對實際存在的物理硬體的抽象,而有些設備則是內核自身提供的功能(不依賴於特定的物理硬體,又稱為"虛擬設備")。每個設備在 /dev 目錄下都有一個對應的文件(節點)。可以通過 cat /proc/devices 命令查看當前已經載入的設備驅動程序的主設備號。內核能夠識別的所有設備都記錄在原碼樹下的 Documentation/devices.txt 文件中。在 /dev 目錄下除了字元設備和塊設備節點之外還通常還會存在:FIFO管道、Socket、軟/硬連接、目錄。這些東西沒有主/次設備號。
了解這些設備的最基本要求就是對 每個設備文件的含義了如指掌,下面就醫列表的形式列出常見的設備文件以及相應的含義(比較偏僻的就省略了):
----------------------------------------------------------------------
主設備號 設備類型
次設備號=文件名 簡要說明
----------------------------------------------------------------------
0 未命名設備(例如:掛載的非設備)
0 = 未空設備號保留
1 char 內存設備
1 = /dev/mem 直接存取物理內存
2 = /dev/kmem 存取經過內核虛擬之後的內存
3 = /dev/null 空設備。任何寫入都將被直接丟棄,任何讀取都將得到EOF。
4 = /dev/port 存取 I/O 埠
5 = /dev/zero 零位元組源,只能讀取到無限多的零位元組。
7 = /dev/full 滿設備。任何寫入都將失敗,並把errno設為ENOSPC以表示沒有剩餘空間。
8 = /dev/random 隨機數發生器。完全由用戶的輸入來產生隨機數。
如果用戶停止所有動作,則停止產生新的隨機數。
9 = /dev/urandom 更快,但是不夠安全的隨機數發生器。盡可能由用戶的輸入來產生隨機數,
如果用戶停止所有動作,則把已經產生的隨機數做為種子來產生新的隨機數。
10 = /dev/aio 非同步 I/O 通知介面
11 = /dev/kmsg 任何對該文件的寫入都將作為 printk 的輸出
1 block RAM disk
0 = /dev/ram0 第1個 RAM disk (initrd只能使用ram0)
1 = /dev/ram1 第2個 RAM disk
...
200 = /dev/ram200 第200個 RAM disk
4 char TTY(終端)設備
0 = /dev/tty0 當前虛擬控制台
1 = /dev/tty1 第1個虛擬控制台
...
63 = /dev/tty63 第63個虛擬控制台
4 block 如果根文件系統以是以只讀方式掛載的,那麼就不可能創建真正的設備節點,
此時就使用該設備作為動態分配的主(major)設備的別名
0 = /dev/root
5 char 其他 TTY 設備
0 = /dev/tty 當前 TTY 設備
1 = /dev/console 系統控制台
2 = /dev/ptmx 所有 PTY master 的復用器
7 char 虛擬控制台捕捉設備(這些設備既允許讀也允許寫)
0 = /dev/vcs 當前虛擬控制台(vc)的文本內容
1 = /dev/vcs1 tty1 的文本內容
...
63 = /dev/vcs63 tty63 的文本內容
128 = /dev/vcsa 當前虛擬控制台(vc)的文本/屬性內容
129 = /dev/vcsa1 tty1 的文本/屬性內容
...
191 = /dev/vcsa63 tty63 的文本/屬性內容
7 block 回環設備(用一個普通的磁碟文件來模擬一個塊設備)
對回環設備的綁定由 mount(8) 或 losetup(8) 處理
0 = /dev/loop0 第1個回環設備
1 = /dev/loop1 第2個回環設備
...
8 block SCSI 磁碟(0-15)
0 = /dev/sda 第1個 SCSI 磁碟(整個磁碟)
16 = /dev/sdb 第2個 SCSI 磁碟(整個磁碟)
32 = /dev/sdc 第3個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdp 第16個 SCSI 磁碟(整個磁碟)
分區表示方法如下(以第3個 SCSI 磁碟為例)
33 = /dev/sdc1 第1個分區
34 = /dev/sdc2 第2個分區
...
47 = /dev/sdc15 第15個分區
對於Linux/i386來說,分區1-4是主分區,5-15是邏輯分區。
9 block Metadisk(RAID)設備
0 = /dev/md0 第1組 metadisk
1 = /dev/md1 第2組 metadisk
...
metadisk 驅動用於將同一個文件系統分割到多個物理磁碟上。
10 char 非串口滑鼠,各種雜項設備和特性
1 = /dev/psaux PS/2滑鼠
131 = /dev/temperature 機器內部溫度
134 = /dev/apm_bios APM(高級電源管理) BIOS
135 = /dev/rtc 實時時鍾(Real Time Clock)
144 = /dev/nvram 非易失配置 RAM
162 = /dev/smbus 系統管理匯流排(System Management Bus)
164 = /dev/ipmo Intel的智能平台管理(Intelligent Platform Management)介面
173 = /dev/ipmikcs 智能平台管理(Intelligent Platform Management)介面
175 = /dev/agpgart AGP圖形地址重映射表(Graphics Address Remapping Table)
182 = /dev/perfctr 性能監視計數器
183 = /dev/hwrng 通用硬體隨機數發生器
184 = /dev/cpu/microcode CPU微代碼更新介面
186 = /dev/atomicps 進程狀態數據的原子快照
188 = /dev/smbusbios SMBus(系統管理匯流排) BIOS
200 = /dev/net/tun TAP/TUN 網路設備(TAP/TUN以軟體的方式實現了網路設備)
TAP模擬了乙太網幀(第二層),TUN模擬了IP包(第三層)。
202 = /dev/emd/ctl 增強型 Metadisk RAID (EMD) 控制器
220 = /dev/mptctl Message passing technology (MPT) control
223 = /dev/input/uinput 用戶層輸入設備驅動支持
227 = /dev/mcelog X86_64 Machine Check Exception driver
228 = /dev/hpet HPET driver
229 = /dev/fuse Fuse(用戶空間的虛擬文件系統)
231 = /dev/snapshot 系統內存快照
232 = /dev/kvm 基於內核的虛構機(基於AMD SVM和Intel VT硬體虛擬技術)
11 block SCSI CD-ROM 設備
0 = /dev/scd0 第1個 SCSI CD-ROM
1 = /dev/scd1 第2個 SCSI CD-ROM
...
13 char 核心輸入設備
32 = /dev/input/mouse0 第1個滑鼠
33 = /dev/input/mouse1 第2個滑鼠
...
62 = /dev/input/mouse30 第31個滑鼠
63 = /dev/input/mice 所有滑鼠的統一
64 = /dev/input/event0 第1個事件隊列
65 = /dev/input/event1 第2個事件隊列
...
95 = /dev/input/event1 第32個事件隊列
21 char 通用 SCSI 設備(通常是SCSI光碟機)
0 = /dev/sg0 第1個通用 SCSI 設備
1 = /dev/sg1 第2個通用 SCSI 設備
...
29 char 通用幀緩沖(frame buffer)設備
0 = /dev/fb0 第1個幀緩沖設備
1 = /dev/fb1 第2個幀緩沖設備
...
31 = /dev/fb31 第32個幀緩沖設備
30 char iBCS-2 兼容設備
0 = /dev/socksys 套接字訪問介面
1 = /dev/spx SVR3 本地 X 介面
32 = /dev/inet/ip 網路訪問介面
33 = /dev/inet/icmp
34 = /dev/inet/ggp
35 = /dev/inet/ipip
36 = /dev/inet/tcp
37 = /dev/inet/egp
38 = /dev/inet/pup
39 = /dev/inet/udp
40 = /dev/inet/idp
41 = /dev/inet/rawip
此外,iBCS-2 還需要下面的連接必須存在
/dev/ip -> /dev/inet/ip
/dev/icmp -> /dev/inet/icmp
/dev/ggp -> /dev/inet/ggp
/dev/ipip -> /dev/inet/ipip
/dev/tcp -> /dev/inet/tcp
/dev/egp -> /dev/inet/egp
/dev/pup -> /dev/inet/pup
/dev/udp -> /dev/inet/udp
/dev/idp -> /dev/inet/idp
/dev/rawip -> /dev/inet/rawip
/dev/inet/arp -> /dev/inet/udp
/dev/inet/rip -> /dev/inet/udp
/dev/nfsd -> /dev/socksys
/dev/X0R -> /dev/null
36 char Netlink 支持
0 = /dev/route 路由, 設備更新, kernel to user
3 = /dev/fwmonitor Firewall packet 復制
59 char sf 防火牆模塊
0 = /dev/firewall 與 sf 內核模塊通信
65 block SCSI 磁碟(16-31)
0 = /dev/sdq 第17個 SCSI 磁碟(整個磁碟)
16 = /dev/sdr 第18個 SCSI 磁碟(整個磁碟)
32 = /dev/sds 第19個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdaf 第32個 SCSI 磁碟(整個磁碟)
66 block SCSI 磁碟(32-47)
0 = /dev/sdag 第33個 SCSI 磁碟(整個磁碟)
16 = /dev/sdah 第34個 SCSI 磁碟(整個磁碟)
32 = /dev/sdai 第35個 SCSI 磁碟(整個磁碟)
...
240 = /dev/sdav 第48個 SCSI 磁碟(整個磁碟)
89 char I2C 匯流排介面
0 = /dev/i2c-0 第1個 I2C 適配器
1 = /dev/i2c-1 第2個 I2C 適配器
...
98 block 用戶模式下的虛擬塊設備(分區處理方式與 SCSI 磁碟相同)
0 = /dev/ubda 第1個用戶模式塊設備
16 = /dev/udbb 第2個用戶模式塊設備
...
103 block 審計(Audit)設備
0 = /dev/audit 審計(Audit)設備
128-135 char Unix98 PTY master
這些設備不應當存在設備節點,而應當通過 /dev/ptmx 介面訪問。
136-143 char Unix98 PTY slave
這些設備節點是自動生成的(伴有適當的許可權和模式),不能手動創建。
方法是通過使用適當的 mount 選項(通常是:mode=0620,gid=<"tty"組的gid>)
將 devpts 文件系統掛載到 /dev/pts 目錄即可。
0 = /dev/pts/0 第1個 Unix98 PTY slave
1 = /dev/pts/1 第2個 Unix98 PTY slave
...
153 block Enhanced Metadisk RAID (EMD) 存儲單元(分區處理方式與 SCSI 磁碟相同)
0 = /dev/emd/0 第1個存儲單元
1 = /dev/emd/0p1 第1個存儲單元的第1個分區
2 = /dev/emd/0p2 第1個存儲單元的第2個分區
...
15 = /dev/emd/0p15 第1個存儲單元的第15個分區
16 = /dev/emd/1 第2個存儲單元
32 = /dev/emd/2 第3個存儲單元
...
240 = /dev/emd/15 第16個存儲單元
180 char USB 字元設備
96 = /dev/usb/hiddev0 第1個USB人機界面設備(滑鼠/鍵盤/游戲桿/手寫版等人操作計算機的設備)
...
111 = /dev/usb/hiddev15 第16個USB人機界面設備
180 block USB 塊設備(U盤之類)
0 = /dev/uba 第1個USB 塊設備
8 = /dev/ubb 第2個USB 塊設備
16 = /dev/ubc 第3個USB 塊設備
...
192 char 內核 profiling 介面
0 = /dev/profile Profiling 控制設備
1 = /dev/profile0 CPU 0 的 Profiling 設備
2 = /dev/profile1 CPU 1 的 Profiling 設備
...
193 char 內核事件跟蹤介面
0 = /dev/trace 跟蹤控制設備
1 = /dev/trace0 CPU 0 的跟蹤設備
2 = /dev/trace1 CPU 1 的跟蹤設備
...
195 char Nvidia 圖形設備(比如顯卡)
0 = /dev/nvidia0 第1個 Nvidia 卡
1 = /dev/nvidia1 第2個 Nvidia 卡
...
255 = /dev/nvidiactl Nvidia 卡控制設備
202 char 特定於CPU模式的寄存器(model-specific register,MSR)
0 = /dev/cpu/0/msr CPU 0 的 MSRs
1 = /dev/cpu/1/msr CPU 1 的 MSRs
...
203 char CPU CPUID 信息
0 = /dev/cpu/0/cpuid CPU 0 的 CPUID
1 = /dev/cpu/1/cpuid CPU 1 的 CPUID
...
===================================================================
這部分詳細說明一些應該或可能存在於 /dev 目錄之外的文件。
鏈接最好使用與這里完全相同的格式(絕對路徑或相對路徑)。
究竟是使用硬鏈接(hard)還是軟連接(symbolic)取決於不同的設備。
必須的鏈接
必須在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/fd /proc/self/fd symbolic 文件描述府
/dev/stdin fd/0 symbolic 標准輸入文件描述府
/dev/stdout fd/1 symbolic 標准輸出文件描述符
/dev/stderr fd/2 symbolic 標准錯誤文件描述符
/dev/nfsd socksys symbolic 僅為 iBCS-2 所必須
/dev/X0R null symbolic 僅為 iBCS-2 所必須
[注意] /dev/X0R 是 <字母 X>-<數字 0>-<字母 R>
推薦的鏈接
推薦在所有的系統上都存在這些連接:
鏈接 目標 鏈接類型 簡要說明
/dev/core /proc/kcore symbolic 為了向後兼容
/dev/ramdisk ram0 symbolic 為了向後兼容
/dev/ftape qft0 symbolic 為了向後兼容
/dev/bttv0 video0 symbolic 為了向後兼容
/dev/radio radio0 symbolic 為了向後兼容
/dev/i2o* /dev/i2o/* symbolic 為了向後兼容
/dev/scd? sr? hard 代替 SCSI CD-ROM 的名字
本地定義的鏈接
下面的鏈接很可能需要根據機器的實際硬體配置創建其中的一部分甚至全部。
這些鏈接僅僅是為了迎合習慣用法,它們既非必須也非推薦。
鏈接 目標 鏈接類型 簡要說明
/dev/mouse mouse port symbolic 當前滑鼠
/dev/tape tape device symbolic 當前磁帶
/dev/cdrom CD-ROM device symbolic 當前CD-ROM
/dev/cdwriter CD-writer symbolic 當前CD-writer
/dev/scanner scanner symbolic 當前掃描儀
/dev/modem modem port symbolic 當前數據機
/dev/root root device symbolic 當前根文件系統所在設備
/dev/swap swap device symbolic 當前swap所在設備
/dev/modem 不應當用於能夠同時支持呼入和呼出的modem,因為往往會導致鎖文件問題。
如果存在 /dev/modem ,那麼它應當指向一個恰當的主 TTY 設備。
對於SCSI設備,
/dev/tape 和 /dev/cdrom 應該分別指向"cooked"設備 /dev/st* 和 /dev/sr* ;
而 /dev/cdwriter 和 /dev/scanner 應當分別指向恰當的 /dev/sg* 。
/dev/mouse 可以指向一個主串列 TTY 設備、一個硬體滑鼠、
或者一個對應滑鼠驅動程序的套接字(例如 /dev/gpmdata)。
套接字和管道
持久套接字和命名管道可以存在於 /dev 中。常見的有:
/dev/printer socket lpd 本地套接字
/dev/log socket syslog 本地套接字
/dev/gpmdata socket gpm 滑鼠多路復用器(multiplexer)
/dev/gpmctl socket (LFS-LiveCD中出現)
/dev/initctl fifo pipe init 監聽它並從中獲取信息(用戶與 init 進程交互的通道)
掛載點
以下名稱被保留用於掛載特殊的文件系統。
這些特殊的文件系統只提供內核界面而不提供標準的設備節點。
/dev/pts devpts PTY slave 文件系統
/dev/shm tmpfs 提供對 POSIX 共享內存的直接訪問
===================================================================
終端(或TTY)設備是一種特殊的字元設備。終端設備是可以在會話中扮演控制終端角色的任何設備,
包括:虛擬控制台、串列介面(已廢棄)、偽終端(PTY)。
所有的終端設備共享一個通用的功能集合:line discipline,
它既包含通用的終端 line discipline 也包含SLIP和PPP模式。
所有的終端設備的命名都很相似。這部分內容將解釋命名規則和各種類型的TTY(終端)的使用。
需要注意的是這些命名習慣包含了幾個歷史遺留包袱。
其中的一些是Linux所特有的,另一些則是繼承自其他系統,
還有一些反映了Linux在成長過程中拋棄了原來借用自其它系統的一些習慣。
井號(#)在設備名里表示一個無前導零的十進制數。
虛擬控制台(Virtual console)和控制台設備(console device)
虛擬控制台是在系統視頻監視器上全屏顯示的終端。
虛擬控制台被命名為編號從 /dev/tty1 開始的 /dev/tty# 。
/dev/tty0 是當前虛擬控制台。
/dev/tty0 用於在不能使用幀緩沖設備(/dev/fb*)的機器上存取系統視頻卡,
注意,不要將 /dev/console 用於此目的。
/dev/console 由內核管理,系統消息將被發送到這里。
單用戶模式下必須允許 login 使用 /dev/console 。
串列介面(已廢棄)
這里所說的"串列介面"是指 RS-232 串列介面和任何模擬這種介面的設備,
不管是在硬體(例如數據機)還是在軟體(例如ISDN驅動)中模擬。
在linux中的每一個串列介面都有兩個設備名:
主設備或呼入(callin)設備、交替設備或呼出(callout)設備。
設備類型之間使用字母的大小寫進行區分。
比如,對於任意字母X,"tty"設備名為 /dev/ttyX# ,而"cu"設備名則為 /dev/cux# 。
由於歷史原因,/dev/ttyS# 和 /dev/ttyC# 分別等價於 /dev/cua# 和 /dev/cub# 。
名稱 /dev/ttyQ# 和 /dev/cuq# 被保留為本地使用。
偽終端(PTY)
偽終端用於創建登陸會話或提供其它功能,
比如通過 TTY line discipline (包括SLIP或者PPP功能)來處理任意的數據生成。
每一個 PTY 都有一個master端和一個slave端。按照 System V/Unix98 的 PTY 命名方案,
所有master端共享同一個 /dev/ptmx 設備節點(打開它內核將自動給出一個未分配的PTY),
所有slave端都位於 /dev/pts 目錄下,名為 /dev/pts/# (內核會根據需要自動生成和刪除它們)。
一旦master端被打開,相應的slave設備就可以按照與 TTY 設備完全相同的方式使用。
master設備與slave設備之間通過內核進行連接,等價於擁有 TTY 功能的雙向管道(pipe)。
===============================
你可能會很奇怪,為什麼沒有 /dev/hda 這樣的設備,難道不常用么?
原因在於從 2.6.19 開始,內核引入了新的ATA驅動,將SATA/IDE硬碟同意使用 /dev/sd? 來表示了,所以 /dev/hd? 就沒有存在的必要了