導航:首頁 > 編程系統 > linux設備發現過程

linux設備發現過程

發布時間:2024-01-27 05:15:07

linux系統初始化設備的過程主要有哪些

1.自檢:依賴於CPU,ROM中的程序
.載入BIOS,Boot Sequence確定啟動順序
3.MBR:
硬碟0磁軌0扇區的MBR文件,共512位元組
446:BootLoader
64:分區表,每16位元組一個分區
2:5A(一個特殊標記)
4.kernel文件vmlinuz+initrd:只能放在基本磁碟分區,BootLoader會把vmlinuz當做根來使用,即/vmlinuz
將vmlinuz載入到內存中使用。vmlinuz分為兩段,前半部分未壓縮段,是為了解壓第二段。
至此BootLoader任務完成,退場。
操作系統安裝時會執行一個命令,安裝程序完成後自動運行腳本,收集操作系統運行需要的腳本,將所需要的模塊打包成initrd,幫助內核完成初始化
initrd: ram disk,內核將之作為根來使用,將硬碟模擬成磁碟
5.initrd將所需文件復制到/下,內核完成初始化後進行根切換
6.啟動/sbin/init,由內核空間進入用戶空間
/lib/moles
/sbin/init:
/etc/inittab
id:3:initdefault:
/etc/rc.d/rc.sysinit腳本

Ⅱ 請問linux是如何產生和其發展的過程

一、簡單的說: 一個名叫Linus Torvalds 的芬蘭大學生想要了解Intel的新CPU386。他認為比較好的學習方法是自己編寫一個操作系統的內核。出於這種目的,加上他對當時Unix 變種版本(即Minix)對於80386類機器的脆弱支持十分不滿,他決定要開發出一個全功能的、支持POSIX標準的、類Unix的操作系統內核,該系統吸收了BSD和System V的優點,同時摒棄了它們的缺點。Linus獨立把這個內核開發到0.02 版,這個版本已經可以運行gcc、bash 和很少的一些應用程序。這些就是他開始的全部工作了。後來,他又開始在網際網路上尋求廣泛的幫助。

二、具體的分析: Linux 操作系統的誕生、發展和成長過程依賴於以下五個重要支柱:
UNIX 操作系統、 MINIX操作系統、 GNU 計劃、 POSIX 標准 、 Internet 網路

UNIX操作系統
Linux 操作系統是UNIX 操作系統的一個克隆版本。UNIX 操作系統是美國貝爾實驗室的Ken.Thompson和Dennis Ritchie 於1969 年夏在DEC PDP-7 小型計算機上開發的一個分時操作系統。Ken Thompson 為了能在閑置不用的PDP-7 計算機上運行他非常喜歡的星際旅行(Space travel)游戲,於是在1969 年夏天乘他夫人回家鄉加利福尼亞渡假期間,在一個月內開發出了UNIX 操作系統的原型。當時使用的是BCPL 語言(基本組合編程語言),後經Dennis Ritchie 於1972 年用移植性很強的C語言進行了改寫,使得UNIX 系統在大專院校得到了推廣。

MINIX操作系統
MINIX 系統是由Andrew S. Tanenbaum(AST)開發的。AST 是在荷蘭Amsterdam 的Vrije 大學數學與計算機科學系統工作,是ACM 和IEEE 的資深會員(全世界也只有很少人是兩會的資深會員)。MINIX 是他1987 年編制的,主要用於學生學習操作系統原理。到1991 年時版本是1.5。目前主要有兩個版本在使用:1.5 版和2.0 版。當然目前MINIX 系統已經是免費的,可以從許多FTP 上下載。
對於Linux 系統,他後來曾表示對其開發者Linus的稱贊。但他認為Linux的發展很大原因是由於他為了保持MINIX 的小型化,能讓學生在一個學期內就能學完,因而沒有接納全世界許多人對MINIX的擴展要求。因此在這樣的前提下激發了Linus 編寫Linux 系統。當然Linus 也正好抓住了這個好時機。
作為一個操作系統,MINIX 並不是優秀者,但它同時提供了用C 語言和匯編語言編寫的系統源代碼。這是第一次使得有抱負的程序員或hacker 能夠閱讀操作系統的源代碼。在當時,這種源代碼是軟體商們一直小心守護著的秘密。

GNU計劃
軟體產業在70年代成就了兩位針鋒相對的領袖人物,來自哈佛大學的比爾·蓋茨和Richard M.Stallman。前者宣布了Copyright(版權)時代的到來,並構建了微軟帝國的輝煌;後者於1984年創立自由軟體體系GNU,擬定普遍公用版權協議(GeneralPublicLicense,簡稱GPL),今天Linux的成功就得益於GPL協議。
所有GPL協議下的自由軟體都遵循著Richard M. Stallman的"Copyleft"(非版權)原則:即自由軟體允許用戶自由拷貝、修改和銷售,但是對其源代碼的任何修改都必須向所有用戶公開。
GNU 計劃和自由軟體基金會FSF(the Free Software Foundation)是由Richard M. Stallman 於1984 年一手創辦的。旨在開發一個類似UNIX 並且是自由軟體的完整操作系統:GNU 系統(GNU 是"GNU's Not Unix"的遞歸縮寫,它的發音為"guh-NEW")。
各種使用Linux 作為核心的GNU 操作系統正在被廣泛的使用。雖然這些系統通常被稱作"Linux",但是Stallman 認為,嚴格地說,它們應該被稱為GNU/Linux系統。
到上世紀90 年代初,GNU 項目已經開發出許多高質量的免費軟體,其中包括有名的emacs 編輯系統、bash shell 程序、gcc 系列編譯程序、gdb 調試程序等等。這些軟體為Linux 操作系統的開發創造了一個合適的環境。這是Linux 能夠誕生的基礎之一,以至於目前許多人都將Linux 操作系統稱為「GNU/Linux」操作系統。

POSIX標准
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發的一簇標准。該標準是基於現有的UNIX 實踐和經驗,描述了操作系統的調用服務介面。用於保證編制的應用程序可以在源代碼一級上在多種操作系統上移植和運行。它是在1980 年早期一個UNIX 用戶組(usr/group)的早期工作基礎上取得的。該UNIX 用戶組原來試圖將AT&T 的System V 操作系統和BerkeleyCSRG 的BSD 操作系統的調用介面之間的區別重新調和集成。並於1984 年定製出了/usr/group 標准。
關於POSIX標準的制定過程:略。
在90 年代初,POSIX 標準的制定正處在最後投票敲定的時候,那是1991-1993 年間。此時正是Linux剛剛起步的時候,這個UNIX 標准為Linux 提供了極為重要的信息,使得Linux 能夠在標準的指導下進行開發,並能夠與絕大多數UNIX 操作系統兼容。在最初的Linux 內核源代碼中(0.01 版、0.11 版)就已經為Linux 系統與POSIX 標準的兼容做好了准備工作。在Linux 0.01 版內核的/include/unistd.h 文件中就已經定義了幾個有關POSXI 標准要求的符號常數,而且Linus 在注釋中已寫道:「OK,這也許是個玩笑,但我正在著手研究它呢」。
可參考下《Linux就該這么學》了解更詳細的Linux知識。

Ⅲ 如何在Linux下實現設備的配置

現在的Linux內核中使用kmod來完成設備模塊的自動載入,它的一般工作機制是:在第一次引用設備模塊時,內核使用系統命令/sbin/modprobe載入這個設備模塊。為了使這種機制正常工作,您首先需要使用depmod -a建立表述模塊之間依賴關系的文件moles.dep,然後在/etc/moles.conf中設置正確的設備別名,如果還需要設置設備對應的參數。舉例來說,在設置網卡時網卡的驅動程序是ne2k-pci,網卡的設備別名是eth0,則在文件/etc/moles.conf中加入別名alias eth0 ne2k-pci,就設置了ne2000兼容的PCI網卡,這樣當有程序要嘗試訪問網路時,內核會自動載入網卡驅動程序ne2k-pci。

其二是需要根據設備的類型,以及安裝的拆蘆團Linux系統版本(不同的Linux發行版對於同一設備的配置腳本文件存在差異),設置設備對應的配置腳本文件。

1 配置鍵盤
1.1 配置鍵盤的設備模塊
對於我們常見的鍵盤一般有三種類型,其一為老式的五針鍵盤,其二為ps/2鍵盤,其三是usb滑鼠。對於前兩種鍵盤,一般現在的Linux發行版都把它們需要的設備模塊打包入內核,所以無需進行附加的模塊插入操作,鍵盤就能夠正常工作。而對於usb類型的鍵盤,一般而言,要使它正常工作必須先插入對應的設備模塊。

對於usb類型的鍵盤,您若是要通過手動載入模塊的方式使其工作,必須首先插入usb橋接器模塊,然後您還必須插入鍵盤模塊usbkbd.o,以及keybdev.o,這樣usb鍵盤才能夠正常工作。此時,運行的系統命令:
/sbin/modprobe usbkbd
/sbin/modprobe keybdev

對於2.2.x系列的內核若要內核的kmod在需要時自動載入則必須在/etc/moles.conf文件中設置別名usb-interface,它對應您所使用的橋接器模塊。例如,當橋接器的類型為UHCI時,在/etc/moles.conf中加入設備別名:
alias usb-interface usb-uhci

對於2.4.x系列的內核,此設備別名則變為:
alias usb-controller usb-uhci
在設置了此別名之後,系統啟動時會自動進行usb設備檢測。當檢測過程發現連結的設備是系統支持的,那麼系統會自動插入所需的模塊。

1.2 鍵盤配置文件
鍵盤的配置文件/etc/sysconfig/keyboard,它的內容很簡單,可選配置項為KEYTABLE(隨著發行版本的不同這個文件的內容會有所差異,但是這個欄位是最重要的)。例如,當設置KEYTABLE = "us"時,表示系統使用美式鍵盤。

然後,為了正確的使用鍵盤上的功能鍵,您還需要調用命令mpkeys生成文件/etc/sysconfig/console/default.kmap。
/usr/bin/mpkeys > /etc/sysconfig/console/default.kmap
這個文件描述了鍵盤的鍵盤掃描碼和加入鍵盤修飾之後的鍵盤的相應的鍵盤掃描碼。

同樣,為了鍵盤能在X系統環境下正常工作,您可能也需要在X系統下對鍵盤進行設置,這時您就必須使用xmodmap來設置正確的鍵盤映射。例如,
/usr/X11R6/bin/xmodmap /usr/share/xmodmap/xmodmap.fr
設置您的X系統下的鍵盤為法語鍵盤。

在正確的配置了/etc/sysconfig/keyboard文件之後,X系統的配置程序會根據此文件的信息配置X中關於鍵盤配置的小節。當此文件內容不正確或者是此文件不存在時,X系統是無法啟動和配置的。

2 配置滑鼠
2.1 滑鼠的嘩滑基本信息
Linux支持四種不同的匯流排滑鼠硬體介面:Inport(Microsoft),Logitech,PS/旅橘2和ATI-XL。2.4內核也支持IBM PC110數字化板和Apple Desktop滑鼠。

Inport mice
Inport mice包含大多數舊類型的微軟滑鼠。Inport mice通常連接到主板的介面卡上。假如滑鼠線連接頭是圓的,有9針,則可能是Inport mice。
Logitech mice
PS/2 mice
ATI combo video/mice
IBM PC110 palmtop digitizer
Apple Desktop Mouse
Hybrid Mice
對於滑鼠協議,大多數匯流排滑鼠使用BusMouse協議,一些古老的Logitech滑鼠使用MouseSystems協議,而一些更老的微軟滑鼠使用Logitech協議。PS/2滑鼠總是使用PS/2協議。

不同類型的滑鼠對應的設備文件:

介面類型 設備 主設備號 次設備號
Logitech /dev/logibm 10 0
PS/2 /dev/psaux 10 1
Inport /dev/inportbm 10 2
ATI-XL /dev/atibm 10 3
USB mouse /dev/input/mice 13 63
表2-1

創建對應設備的命令:
mknod /dev/logimm c 10 0
mknod /dev/psaux c 10 1
mknod /dev/inportbm c 10 2
mknod /dev/atibm c 10 3
mknod /dev/input/mice c 13 63

在創建了滑鼠對應的設備文件之後,因為現在很多程序都使用/dev/mouse作為預設的滑鼠設備文件,所以為了使滑鼠正常工作你還要創建一個符號連接/dev/mouse指向真實的滑鼠設備文件。例如,對於ps/2滑鼠,/dev/mouse指向/dev/psaux,對於usb滑鼠,/dev/mouse/指向/dev/input/mice,對於串口滑鼠/dev/mouse指向/dev/ttyS0。對於不同的linux發行版本,這些文件可能有所不同,上述介紹主要是基於Redhat發布的配置。

對於現在最常見的三種滑鼠:串口滑鼠、PS/2滑鼠和USB滑鼠而言,由於對PS/2滑鼠支持一般都打在內核中,所以您也不需要在滑鼠工作之前插入設備模塊。但對於其他的兩種滑鼠,插入模塊的操作一般是必須的。對於串口滑鼠而言,您必須先插入模塊serial.o,
/sbin/modprobe serial

成功的插入模塊之後,如果串口滑鼠支持即插即用的串口協議,您可以從串口(/dev/ttyS*)讀到滑鼠的類型信息,然後由此信息,完成滑鼠的配置文件。對於USB滑鼠,為了使其正常工作,您必須先插入模塊usbmouse.o和mousedev.o
/sbin/modprobe usbmouse
/sbin/modprobe mousedev
同樣,為了使滑鼠驅動程序能夠自動載入,您也需要在/etc/moles.conf文件中創建usb-interface(usb-controller)別名。

2.2 滑鼠配置文件
正確配置滑鼠必須生成配置文件/etc/sysconfig/mouse,它包括下列選項:MOUSETYPE、XMOUSETYPE、FULLNAME、XEMU3、DEVICE。該滑鼠配置文件也是X配置文件中滑鼠配置節的基礎。如果沒有這個文件,很多X配置程序將無法工作。

MOUSETYPE=
配置滑鼠的類型,包括ps/2、Busmouse、imps2、netmouse、Microsoft、Logitech、MouseMan、MMHitTab、MouseSystems、pnp、logim、ms3、MMSeries等。

XMOUSETYPE=
X系統下配置的滑鼠的類型,包括MouseMan、IntelliMouse、MMSeries、MMHittab、Logitech、MouseMan、Microsoft、MouseSystems、PS/2、BusMouse等。

FULLNAME=
描述滑鼠設備的全名。例如,對於普通PS/2滑鼠,其全名為PS/2|Standard。

XEMU3=
是否模擬三鍵滑鼠,可選參數為yes或no。

DEVICE=
描述滑鼠對應的設備文件。例如。對於普通PS/2滑鼠,設備文件為psaux。

2.3 滑鼠的配置技巧
通過gpm能在命令行方式下使用滑鼠。這樣在控制台方式下,就可以使用滑鼠進行剪貼等操作了。例如,對於ps/2滑鼠,它的配置方式是:
gpm -t ps/2 -m /dev/psaux
如果不指定-m選項,那麼系統會去查找文件/dev/mouse。

滑鼠移動不規則可能是因為對滑鼠設置了錯誤的協議。如新的Logitech滑鼠不使用Logitech協議,而用微軟協議(MouseMan)。如果您的滑鼠移動不規則,那您可能首先需要嘗試更換一下MouseType(XMouseType)指定的值。
在X系統下,您如果需要更換滑鼠的左、右鍵,那麼可以執行xmodmap -e "pointer = 3 2 1"。

Ⅳ 嵌入式linux 驅動設備識別過程

驅動程序識別設備時,有以下兩種方法:
(1)驅動程序本身帶有設備的信息,比如開始地址、中斷號等:載入驅動程序時,就可以根據這些信息來識別設備。
(2)驅動程序本身沒有設備的信息,但是內核中已經(或以後)根據其他方式確定了很多設備的信息;載入驅動程序時,將驅動程序與這些設備逐個比較,確定兩者是否匹配(match)。如果驅動程序與某個設備匹配,就可以通過該驅動程序操作這個設備了。內核常使用第二種方法來識別設備,這可以將各種設備集中在-一個文件中管理,當開發板的配置改變時,便於修改代碼。在內核文件includePnuxÔatform _device.h 中,定義了兩個數據結構來表示這些設備和驅動程序: platform_ device 結構用來描述設備的名稱、ID、所佔用的資源(比如內存地址/大小、中斷號)等; platform_ driver 結構用來描述各種操作函數, 比如枚舉函數、移除設備函數、驅動的名稱等。內核啟動後,首先構造鏈表將描述設備的platform_device結構組織起來,得到一一個設備的列表:當載入某個驅動程序的platform_ driver 結構時,使用一.些匹配函數來檢查驅動程序能否支持這些設備,常用的檢查方法很簡單:比較驅動程序和設備的名稱。

Ⅳ linux內核怎麼訪問設備節點

設備節點代表是每個機算機硬體,那個軟體要用那個硬體,它就會打開那內設備節點嘛。。。 /dev/ttyS0這個是串容口0 也就是windows 裡面的com1 ,只有要用到串口0的程序才會打開這個設備節點。 個人愚見,僅供參考,望及時採納

Ⅵ linux操作系統怎麼識別USB介面設備

linux系統會自動識別USB介面為串口磁碟sda(通常為sda1,可通過fdisk
-l命令查詢),掛載就可用。
例:新建掛載目錄mkdir
/mnt/usb,掛載mount
/dev/sda1
/mnt/usb,用完卸載掛起點unmount
/dev/sda1
/mnt/usb。

Ⅶ linux用mknod怎麼創建設備怎麼用

首先要明白什麼是設備文件,簡單的我們說,操作系統與外部設備(入磁碟驅動器,列印機,modern,終端
等等)都是通過設備文件來進行通信的,在Unix/Linux系統與外部設備通訊之前,這個設備必須首先要有一個設備文件,設備文件均放在/dev目錄下。
一般情況下在安裝系統的時候系統自動創建了很多已檢測到的設備的設備文件,但有時候我們也需要自己手動創建,命令行生成設備文件的方式有
insf,mksf,mknod等等
根據mknod命令的使用參數來看【mknod
Name
{
b
|
c
}
Major
Minor
】,使用mknod之前,至少要明白以下幾點:
設備文件類型:分為塊設備和字元設備。ls
-l
/dev
結果顯示第一個欄位有b***

c****,這里即標識了塊設備和字元設備。
字元設備文件----字元設備文件傳送數據給設備的時候,一次傳送一個字元,終端,列印機,繪圖儀,modern等設備都經過字元設備文件傳送數據
塊設備---系統通過塊設備文件存取一個設備的時候,先從內存中的buffer中讀或寫數據,而不是直接傳送數據到物理磁碟,這種方式能有效的提高磁碟和CD-ROMS的I/O性能。磁碟和CD-ROMS即可以使用字元設備文件也可使用塊設備文件。
主號和次號
主號:當在任意目錄使用ls
-l
時,結果的第5個欄位就是主號,設備主號代表了這個設備使用的是哪個設備驅動程序
次號:次號是一個24位的十六進制數字,定義了設個設備在系統中的物理的位置
就拿我們常用的創建卷組來看:
先來看看mknod
命令,如果該設備文件你想放在一個特定的文件夾下當然就先創建文件夾
mknod
設備文件名[/dev/xyz]
b/c
主號
次號
{
mkdir
/dev/vg01
mknod
/dev/vg01/group
c
64
0X010000}
創建之後,就可以使用你想要創建的設備對於德創建命令了,如我現在的卷組的創建命令:
vgcreate
/dev/vg01
/dev/dsk/c*t*d*
一直進行下去,之後的步驟根據不同的設備而不盡相同。

閱讀全文

與linux設備發現過程相關的資料

熱點內容
jsp展示clob欄位 瀏覽:779
nyx在網路上是什麼意思 瀏覽:145
樂播農業app是什麼 瀏覽:530
編程框架如何開發 瀏覽:136
金庸群俠傳3修改代碼 瀏覽:712
檢察院的文件類別有哪些 瀏覽:793
怎麼把九游殘留數據刪除 瀏覽:828
有什麼女生主動聊天的app 瀏覽:436
有哪些可以督促自己的app 瀏覽:244
用USB傳輸視頻文件夾顯示為空 瀏覽:710
恢復文件軟體免費版手機 瀏覽:648
lg怎麼隱藏文件 瀏覽:836
蘋果免費讀書app推薦 瀏覽:497
劉駿微信 瀏覽:113
書旗舊版本80 瀏覽:467
教編程考什麼證 瀏覽:990
下載編程貓後哪裡有客服 瀏覽:13
如何編輯歌曲文件格式 瀏覽:638
cf無限領取cdk工具 瀏覽:350
如何讓手機文件保存到電腦上 瀏覽:459

友情鏈接