在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)之:設(shè)備驅(qū)動(dòng)概述

            嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)之:設(shè)備驅(qū)動(dòng)概述

            作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/257112.htm

            11.1概述

            11.1.1簡介及驅(qū)動(dòng)模塊

            是通過各種驅(qū)動(dòng)程序來駕馭硬件設(shè)備的,它為用戶屏蔽了各種各樣的設(shè)備,驅(qū)動(dòng)硬件是最基本的功能,并且提供統(tǒng)一的操作方式。程序是內(nèi)核的一部分,硬件驅(qū)動(dòng)程序是最基本的組成部分,在Linux內(nèi)核源程序中也占有60%以上。因此,熟悉驅(qū)動(dòng)的編寫是很重要的。

            在第2章中已經(jīng)提到過,Linux內(nèi)核中采用可加載的模塊化設(shè)計(jì)(LKMs,LoadableKernelModules),一般情況下編譯的Linux內(nèi)核是支持可插入式模塊的,也就是將最基本的核心代碼編譯在內(nèi)核中,其他的代碼可以編譯到內(nèi)核中,或者編譯為內(nèi)核的模塊文件(在需要時(shí)動(dòng)態(tài)加載)。

            常見的驅(qū)動(dòng)程序是作為內(nèi)核模塊動(dòng)態(tài)加載的,比如聲卡驅(qū)動(dòng)和網(wǎng)卡驅(qū)動(dòng)等,而Linux最基礎(chǔ)的驅(qū)動(dòng),如CPU、PCI總線、TCP/IP協(xié)議、APM(高級(jí)電源管理)、VFS等驅(qū)動(dòng)程序則直接編譯在內(nèi)核文件中。有時(shí)也把內(nèi)核模塊叫做驅(qū)動(dòng)程序,只不過驅(qū)動(dòng)的內(nèi)容不一定是硬件罷了,比如ext3文件系統(tǒng)的驅(qū)動(dòng)。因此,加載驅(qū)動(dòng)就是加載內(nèi)核模塊。

            這里,首先列舉一些模塊相關(guān)的命令。

            n lsmod列出當(dāng)前系統(tǒng)中加載的模塊,其中左邊第一列是模塊名,第二列是該模塊大小,第三列則是使用該模塊的對(duì)象數(shù)目。如下所示:

            $lsmod

            ModuleSizeUsedby

            Autofs120680(autoclean)(unused)

            eepro100181281

            iptable_nat 192520(autoclean)(unused)

            ip_conntrack185401(autoclean)[iptable_nat]

            iptable_mangle22720(autoclean)(unused)

            iptable_filter22720(autoclean)(unused)

            ip_tables119365[iptable_natiptable_mangleiptable_filter]

            usb-ohci193280(unused)

            usbcore545281[usb-ohci]

            ext3677282

            jbd444802[ext3]

            aic7xxx1147043

            sd_mod115843

            scsi_mod985122[aic7xxxsd_mod]

            n rmmod是用于將當(dāng)前模塊卸載。

            n insmod和modprobe是用于加載當(dāng)前模塊,但insmod不會(huì)自動(dòng)解決依存關(guān)系,即如果要加載的模塊引用了當(dāng)前內(nèi)核符號(hào)表中不存在的符號(hào),則無法加載,也不會(huì)去查在其他尚未加載的模塊中是否定義了該符號(hào);modprobe可以根據(jù)模塊間依存關(guān)系以及/etc/modules.conf文件中的內(nèi)容自動(dòng)加載其他有依賴關(guān)系的模塊。

            11.1.2設(shè)備分類

            本書在前面也提到過,Linux的一個(gè)重要特點(diǎn)就是將所有的設(shè)備都當(dāng)做文件進(jìn)行處理,這一類特殊文件就是設(shè)備文件,它們可以使用前面提到的文件、I/O相關(guān)函數(shù)進(jìn)行操作,這樣就大大方便了對(duì)設(shè)備的處理。它通常在/dev下面存在一個(gè)對(duì)應(yīng)的邏輯設(shè)備節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)以文件的形式存在。

            Linux系統(tǒng)的設(shè)備分為3類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。

            n 字符設(shè)備通常指像普通文件或字節(jié)流一樣,以字節(jié)為單位順序讀寫的設(shè)備,如并口設(shè)備、虛擬控制臺(tái)等。字符設(shè)備可以通過設(shè)備文件節(jié)點(diǎn)訪問,它與普通文件之間的區(qū)別在于普通文件可以被隨機(jī)訪問(可以前后移動(dòng)訪問指針),而大多數(shù)字符設(shè)備只能提供順序訪問,因?yàn)閷?duì)它們的訪問不會(huì)被系統(tǒng)所緩存。但也有例外,例如幀緩存(framebuffer)是一個(gè)可以被隨機(jī)訪問的字符設(shè)備。

            n 塊設(shè)備通常指一些需要以塊為單位隨機(jī)讀寫的設(shè)備,如IDE硬盤、SCSI硬盤、光驅(qū)等。塊設(shè)備也是通過文件節(jié)點(diǎn)來訪問,它不僅可以提供隨機(jī)訪問,而且可以容納文件系統(tǒng)(例如硬盤、閃存等)。Linux可以使用戶態(tài)程序像訪問字符設(shè)備一樣每次進(jìn)行任意字節(jié)的操作,只是在內(nèi)核態(tài)內(nèi)部中的管理方式和內(nèi)核提供的驅(qū)動(dòng)接口上不同。

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            linux相關(guān)文章:linux教程



            上一頁 1 2 3 下一頁

            評(píng)論


            相關(guān)推薦

            推薦視頻

            更多>>

            技術(shù)專區(qū)

            關(guān)閉