『壹』 linux驅動與設備節點簡介 & Android內核與Linux內核的區別
驅動是內核的一部分,作為直接訪問物理硬體的一個軟體層,用於應用程序與物理硬體設備通信。內核包含多種驅動,如WIFI、USB、Audio、藍牙、相機、顯示驅動。
(1)設備驅動程序三類:字元設備驅動程序、塊設備驅動程序、網路設備驅動程序;
(2)對應Linux三類設備:字元設備、塊設備、網路設備;
(3)常見字元設備:滑鼠、鍵盤、串口、控制台等;
(4)常見塊設備:各種硬碟、flash磁碟、RAM磁碟等;
(5)網路設備(網路介面):eth0、eth1,註:網路設備沒有設備節點,應用程序通過Socket訪問網路設備。由於網路設備面向報文,較難實現相關read、write等文件讀寫函數,所以驅動的實現也與字元設備和塊設備不同。
Linux使用對文件一樣的管理方式來管理設備,所有設備都以文件的形式存放在/dev目錄下,系統中的每個字元設備或者塊設備都必須為其創建一個設備文件,它包含了該設備的設備類型(塊設備或字元設備)、設備號(主設備號和次設備號)以及設備訪問控制屬性等。設備節點通過 mknod 命令創建,也可以由Udev用戶工具軟體在系統啟動後根據/sys目錄下每個設備的實際信息創建,使用後一種方式可以為每個設備動態分配設備號。
Linux中設備節點通過「mknod」命令創建,創建時需要指定主設備號和次設備號,即指定對應的驅動程序和對應的物理設備(訪問設備節點時就相當於通過其設備號訪問驅動程序進而間接訪問到物理設備)。主設備號用來區分不同種類的設備,而次設備號用來區分同一類型的多個設備。對於常用設備,Linux有約定俗成的編號,如硬碟的主設備號是3
理解:應用程序通過訪問設備節點讀取主設備號和次設備號,通過主設備號找對應的驅動,通過次設備號對應到具體物理設備。註:1個驅動對應一類設備,並用唯一主設備號標識。
Linux支持的各種設備的主設備號定義在include/linux/major.h文件中,已經在官方注冊的主設備號和次設備號在Documentation/devices.txt文件中。
Android系統最底層是Linux,並且在中間加上了一個Dalvik / ART的Java虛擬機,從表面層看是Android運行庫。每個Android應用都運行在自己的進程上,享有Dalvik / ART虛擬機為它分配的專有實例,並支持多個虛擬機在同一設備上高效運行,虛擬機執行的是專有格式的可執行文件(.dex) - 該格式經過優化,以將內存好用降到最低。
Android內核和Linux內核的差別主要體現在如下11個方面:
『貳』 如何在linux復制命令行的快捷鍵
幾種方法可以實現:
1、使用上行箭頭或Ctrl+P鍵,能調回之前的命令。
2、直接在命令行輸入!99(!和99中間沒有空格),重復執行上一個命令。
例如:
[test@linux]#!99
3、按 !! 並回車執行。
4、輸入 !-1 並回車執行。
在下面的例子中,如果想重復執行第 4 條命令,那麼可以執行 !4:
# history | more
『叄』 VMware linux 虛擬機 鍵盤輸入符號 不正確!!!
很象鍵盤映射問題,在虛擬機裡面修改鍵盤布局試試,國內一般是美國101鍵盤。
『肆』 linux 重定向中的 &> 和 >的作用
linux重定向中&>和>&是一個意思,是「復制一個文件描述符」的意思。
一、linux重定向的設備代碼
標准輸入(stdin) 代碼為 0 ,實際映射關系:/dev/stdin -> /proc/self/fd/0
標准輸出(stdout)代碼為 1 , 實際映射關系:/dev/stdout -> /proc/self/fd/1
標准錯誤輸出(stderr)代碼為 2 ,實際映射關系: /dev/stderr ->/pro/self/fd/2
舉例:正常輸出和錯誤信息都不顯示,把標准輸出和標准錯誤都重定向到/dev/null
#ls1>/dev/null2>/dev/null
二、linux重定向的符號意義
1. > 和 < 分別代表重定向的方向,是從左到右還是從右到左
2. >> 和 << 代表追加,也就是不改變重定向目標文件原有的內容,追加在後面。
#舉例:將執行"ls-lag"命令的結果追加到文件lee.dat中
ls-lag>>lee.dat
3. >&n 使用系統調用 p (2) 復制文件描述符 n 並把結果用作標准輸出;
4. <&n 標准輸入復制自文件描述符 n;
#舉例:讓標准錯誤輸出和標准輸入一樣都被存入到文件中
find/home-namelee*>all_lee2>&1
5. n<&- 表示將 n 號輸入關閉
6. <&- 表示關閉標准輸入(鍵盤)
7. n>&- 表示將 n 號輸出關閉
8. >&- 表示將標准輸出關閉
#舉例:關閉1,2文件描述符
lstest.shtest1.sh1>&-2>&-