序言Linux是Unix作業系統的一種變種,在Linux下編寫驅動程式的原理和思想完全類似於其他的Unix系統,但它dos或window環境下的驅動程式有很大的區別。在Linux環境下設計驅動程式,思想簡潔,操作方便,功能也很強大,但是支援函數少,只能依賴kernel中的函數,有些常用的操作要自己來編寫,而且調試也不方便。本人這幾周來為實驗室自行研製的一塊多媒體卡編製了驅動程式,獲得了一些經驗,願與Linux
Linux下的裝置驅動程式被組織為一組完成不同任務的函數的集合,通過這些函數使得linux的裝置操作猶如檔案一般。在應用程式看來,硬體裝置只是一個裝置檔案,應用程式可以象操作普通檔案一樣對硬體裝置進行操作,如open()、close()、read()、write()
環境RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9 + Putty 0.62問題Linux下打包壓縮war、解壓war包和jar命令解決把project_a檔案夾下的檔案打包成project.war1.打包jar - xvf project.war /project_a-c 建立war包-v 顯示過程資訊-f 指 定 JAR檔案名稱,通常這個參數是必須的-M 不產生所有項的清單
老男孩Linux培訓新班剛開始,老男孩發現群裡就在討論這個su和su -的區別,有的同學們說,直接su就可以,有的說必須要su -。有的同學直接發問,到底su和su -有什麼區別?1授之以“魚”的答案6.6.1.3 su命令執行個體當不加任何參數執行su命令時,表示要切換到root使用者,但這樣執行,會遇到一些問題。因為雖然是切換到root使用者了,但並沒有改變為root使用者登入環境,使用者預設的登入環境,可以在/etc/passwd
環境RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9問題假設有一個CSV(comma separated value)檔案,裡面有一些我們需要的資訊 ,但是格式卻有問題,目前資料的列順序是:姓名,公司名,州名縮寫,郵政 編碼,現在我們希望講這些資料重新組 織,以便在我們的某個軟體中使用,需要的格式為:姓名,州名縮寫-郵遞區號,公司名。也就是說,我們要調整 列順序,還要合并兩個列來構成一個新列。另外, 我們的軟體不能接受逗號前後
環境RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9任務下面的文本中包含名字、電話和為黨派運動捐款的數額。名字:電話:1月捐 款情況:2月捐款情況:3月捐款情況Mike Harrington :(510) 548- 1278:250:100:175Christian Dobbins:(408) 538-2358:155:90:201Susan Dalsass:(206) 654-6279:250:60:50Archie McNichol:(206) 548- 134
1主機、外設驅動分離的意義在Linux裝置驅動架構的設計中,除了有分層設計實現以外,還有分隔的思想。舉一個簡單的例子,假設我們要通過SPI匯流排訪問某外設,在這個訪問過程中,要通過操作CPU XXX上的SPI控制器的寄存器來達到訪問SPI外設YYY的目的,最簡單的方法是:return_type xxx_write_spi_yyy(...){xxx_write_spi_host_ctrl_reg(ctrl);xxx_
環境Red Hat Linux 9 + Windows 7 Ultimate問題Linux下如何掛載隨身碟解決1.Linux下掛載隨身碟需要啟動 Vmware的USB服務(VMware USBArbitration Service);2.滑鼠點進 Linux內;3.案頭---------->建立終端---------->執行fdisk -l 命令尋找隨身碟裝置;4.找到隨身碟裝置名稱,執行掛載命令;mount -t vfat/dev/sdb1
任務要求研發部開發人員David和Peter屬於組A;行政部人員Jack 和Mike屬於組B;1、建立共用目錄“/project_a”,該目錄裡面的檔案只能由 研發部開發人員讀取、增加、刪除、修改以及執行,其他使用者不能對該目錄進行 任何的訪問操作;2、建立目錄“/project_b”,該目錄裡面的檔案只能由行 政部人員讀取、增加、刪除、修改以及執行,其他使用者不能對該目錄進行任何的
Zorin OS是基於Ubuntu的Linux發行,特別為Linux新手而設計。它擁有類似Windows的圖形化使用者介面,以及很多類似Windows下的應用軟體。Zorin OS還帶有能讓使用者運行很多Windows軟體的程式。該發行的終極目標是提供一份可作為Windows替換的Linux選擇,並讓Windows使用者在 避免煩瑣的同時享受Linux的所有特性。Zorin OS 6.1 基於 Ubuntu 12.04(因為這是 LTS
環境RedHat Linux 9 + VWWare 8.0 + SSH 3.2.9任務要求使 用Samba服務完成下面的任務:假如公司有財務,技術,領導3個部門,我們 分別為3個部門建立3個使用者組為caiwu,network,lingdao;三個部門裡各有 2個使用者,我們建使用者分別為caiwu01,caiwu02,network01,network02, lingdao01,lingdao021、首先伺服器採用使用者驗證的方式,每個使用者可以訪
Linux kernel作者Linus Torvalds在Linux 3.8中合并了Ingo Molnar的一個補丁,正式宣告終止支援i386處理器。在合并該補丁之後,來自1991年的386 DX33古老系統將不能在現代的Linux kernel下啟動。Linus對此評論,他不是多愁善感者,他慶幸終於擺脫了.i386處理器是英特爾在1985年推出的32位微處理器,有275000個晶體管,被廣泛應用在1980年代中期到1990年代中期的IBM PC相容機中,英特爾直到2007年9月才完全停止生產8
環境:RedHat Linux 9+VirtualBox 4.1a. 下載 Sambasamba-common-2.2.7a-7.9.0.i386.rpm下載地址:http://download.csdn.net/detail/wentasy/4130749samba-client-2.2.7a-7.9.0.i386.rpm下載地址:http://download.csdn.net/detail/wentasy/4130754samba-
環境:VirtualBox4.1 + RedHat Linux 6問題:按退格鍵出現問號如圖所示:問題分析:誤用reset命令所致。解決:設定環境變數(在文 字介面裡設定,也就是類似於Windows的Dos介面):在bash下,執行如 下語句:$ stty erase ^?或者把 stty erase ^?添加到.bash_profile 中。在csh下,執行如下語句:$ stty erase ^H或者把 stty erase ^H添加到.cshrc中。
用戶端向伺服器端發送請求,伺服器收到請求做相應的處理,將處理結果傳回用戶端。下面採用TCP協議實現伺服器和用戶端之間的串連。1. 用戶端約定雙方的傳輸協議(UDP或者TCP),根據傳輸協議建立socket;伺服器的IP地址和連接埠號碼;串連伺服器;擷取伺服器傳遞迴來的資料。#include<string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/time.h>
定義帶外資料想 像一下在銀行人們排起隊等待處理他們的帳單。在這個隊伍中每個人最後都會移到前面由出納員進行服務。現在想像一下一個走入銀行,越過整個隊伍,然後用槍抵 住出納員。這個就可以看作為帶 外 資料 。這個強盜越過整個隊伍,是因為這把槍給了他淩駕於眾人的權力。出納員也會集中注意力於這個強盜身上,因為他知道當前 的形勢是很緊急的。相應的,一個串連的流式套介面上的帶 外 資料 的工作原理也與此類似。通常情況下,資料 由串連的一端流到另一端,並且認為 資料
通訊端機制提供了兩個通訊端選項介面來控制通訊端的行為。一個介面用來設定選項,另外一個介面用來允許我們請求選項的狀態。我們可以獲得以及設定三種類型的選項。1.通用選項,可以工作在所有的通訊端類型。2.在通訊端層次上面進行管理的選項,但是依賴底部協議的支援。3.和每個協議相關的協議選項。Single UNIX Specification 只定義了通訊端層的選項(上面所提到的前面兩項)我們可以通過setsockopt函數來設定通訊端選項。#include <sys/socket.h>int
1. 概述IPv4中使用gethostbyname()函數完成主機名稱到位址解析,這個函數僅僅支援IPv4,且不允許調用者指定所需地址類型的任何資訊,返回的結構只包含了用於儲存IPv4地址的空間。IPv6中引入了getaddrinfo()的新API,它是協議無關的,既可用於IPv4也可用於IPv6。getaddrinfo函數能夠處理名字到地址以及服務到連接埠這兩種轉換,返回的是一個addrinfo的結構(列表)指標而不是一個地址清單。這些addrinfo結構隨後可由套介面函數直接使用。如此以來,
popenLinux C進程I/O函數,與pclose函數一起使用。表標頭檔#include <stdio.h>函數定義FILE * popen ( const char * command , const char * type );int pclose ( FILE * stream );函數說明popen() 函數通過建立一個管道,調用 fork 產生一個子進程,執行一個 shell 以運行命令來開啟一個進程。這個進程必須由 pclose() 函數關閉,而不是 fclose()
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #include <pthread.h> pthread_mutex_t* g_mutex; //建立共用的mutex void init_mutex(void) {