日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

35 FreeBSD連載:串口和modem

撥號(hào)網(wǎng)絡(luò)局域網(wǎng)上的FreeBSD要和Internet(或其他廣域網(wǎng))連接,就需要使用廣域網(wǎng)界面 。對于一般用戶,采用普通電話線進(jìn)行撥號(hào)的方式,是比較常見的做法 。這就需要首先使用計(jì)算機(jī)的串口連接到modem(調(diào)制解調(diào)器)上,再通過modem連接到Internet上 。
串口和modem
因此如果采用撥號(hào)方式連接一臺(tái)計(jì)算機(jī)到遠(yuǎn)端,則必須配置好計(jì)算機(jī)的串口和modem 。
個(gè)人計(jì)算機(jī)一般有兩個(gè)串口,在Dos下稱為COM1、COM2,F(xiàn)reeBSD使用Unix的習(xí)慣從0開始排列數(shù)字,相應(yīng)的串口硬件為sio0、sio1 。啟動(dòng)時(shí)系統(tǒng)將自動(dòng)檢測這些硬件,檢測結(jié)果顯示在屏幕上,可以在登錄后使用dmesg來查看這些啟動(dòng)信息,判斷硬件是否真的被檢測到了 。如果串口被檢測到,就能使用連接到相應(yīng)串口上的外置modem進(jìn)行連接 。
如果使用內(nèi)置modem卡,卡上將包括一個(gè)串口設(shè)備,根據(jù)這個(gè)卡的設(shè)置,這個(gè)串口設(shè)備可以為sio2或sio3,因此必須保證內(nèi)核支持第三、第四個(gè)串口設(shè)備sio2和sio3 。但與DOS不同的是,modem卡使用的IRQ不能與已有串口共享硬件資源 。由于DOS是單任務(wù)操作系統(tǒng),不可能同時(shí)使用兩個(gè)串口,共享IRQ是可以的,因此COM1與COM3共享IRQ 4,COM2與COM4共享IRQ 3 。但是對于多用戶操作系統(tǒng)FreeBSD來講,同時(shí)會(huì)有多個(gè)進(jìn)程訪問設(shè)備,每個(gè)設(shè)備必須單獨(dú)占有IRQ,因此必須在內(nèi)核中將modem卡的IRQ設(shè)為另外的空閑值 。
要更改卡上的跳線或在DOS下運(yùn)行設(shè)置程序更改卡上的設(shè)置,以使硬件上設(shè)置與內(nèi)核配置相一致 。通常PNP的modem卡能正確設(shè)置硬件資源,也可以通過UserConfig重新設(shè)置 。
當(dāng)FreeBSD的內(nèi)核檢測到串口設(shè)備之后,就能夠通過相應(yīng)的設(shè)備文件來訪問這些串口了 。對應(yīng)第一個(gè)串口sio0的設(shè)備文件為/dev/ttyd0和/dev/cuaa0,對應(yīng)第二個(gè)串口sio2的設(shè)備文件為/dev/ttyd1和/dev/cuaa1,依次類推 。
FreeBSD對一個(gè)串口提供了兩個(gè)設(shè)備文件,事實(shí)上它們對應(yīng)同樣的硬件,只是屬性略有不同 。cuaa0主要用來撥出,ttyd0主要用于撥入和直接連接 。設(shè)置這兩個(gè)設(shè)備文件的原因是計(jì)算機(jī)與modem相互通信的數(shù)據(jù)有兩類,一種為計(jì)算機(jī)通過串口發(fā)送給modem的控制指令,常用的為Hayes的AT指令,這些數(shù)據(jù)是發(fā)送給modem的,而另一種數(shù)據(jù)是計(jì)算機(jī)通過modem發(fā)送到電話網(wǎng)上的傳輸數(shù)據(jù),這些數(shù)據(jù)只需要讓modem進(jìn)行調(diào)制解調(diào)即可 。而對于應(yīng)用程序來講,要想非常簡單的來區(qū)分這兩種數(shù)據(jù),就可以使用兩個(gè)初始狀態(tài)不同的設(shè)備文件 。
當(dāng)外部撥入內(nèi)部時(shí),電話連接已經(jīng)設(shè)置好了,數(shù)據(jù)傳輸是在計(jì)算機(jī)與電話網(wǎng)之間,modem只進(jìn)行調(diào)制解調(diào),此時(shí)就使用ttyd0 。而當(dāng)向外撥號(hào)時(shí),modem還沒有建立連接,計(jì)算機(jī)應(yīng)該向modem發(fā)送指令,控制modem執(zhí)行撥號(hào)等操作,此時(shí)就使用設(shè)備文件cuaa0 。一旦連接建立之后,系統(tǒng)將重置設(shè)備文件的屬性,使得cuaa0同樣也是將數(shù)據(jù)發(fā)送向電話網(wǎng)上 。
因此ttyd0和cuaa0這兩個(gè)設(shè)備文件,只是初始狀態(tài)不同,而并沒有本質(zhì)的差別 。事實(shí)上大多數(shù)撥號(hào)軟件會(huì)重置設(shè)備文件的狀態(tài),使用哪個(gè)設(shè)備都可以正確完成撥號(hào)過程 。然而習(xí)慣的做法仍然是使用cuaa0用于撥出,ttyd0作為撥入,這樣能避免某些軟件不能正確重置設(shè)備文件的狀態(tài)的問題 。
【35 FreeBSD連載:串口和modem】未完,待續(xù) 。。。

    推薦閱讀