原创 實現/dev/zero字符設備驅動

在類UNIX 操作系統中, /dev/zero 是一個特殊的文件,當你讀它的時候,它會提供無限的空字符(NULL, ASCII NUL, 0x00),即獲取的是一串二進制0。其中的一個典型用法是用它提供的字符流來覆蓋信息,另一個常見用法是

原创 samba服務器配置

Samba是一種自由軟件包,用來讓Unix系統的操作系統與微軟Windows操作系統的SMB/CIFS(Server Message Block/Common Internet File System)網絡協定做連接。和windows上的

原创 VMWare網絡設置的3中方式

一 VMware網絡設置的三種方式 1 Host-only連接方式   讓虛機具有與宿主機不同的各自獨立IP地址,但與宿主機位於不同網段,同時爲宿主主機新增一個IP地址,且保證該IP地址與各虛機IP地址位於同一網段。最終結果是新建了

原创 安裝VMware tools共享找不到gcc庫文件

在安裝VMware  tools共享的過程中,遇到的問題,給出的報錯信息顯示,大概是說找不到gcc庫文件,我手動輸入這個庫文件,它也提示無效,但是我們已經安裝了gcc,並且可以查看到gcc庫文件。其實問題出在這個vmware-config

原创 將多個設備合併爲一個內核模塊

這篇文章主要解決如何將之前介紹的三個字符設備驅動程序合併爲一個內核模塊,即將null字符設備驅動程序、zero字符設備驅動程序、4k大小的臨時存儲空間的字符設備驅動程序合併爲一個內核模塊,能夠加載到內核模塊中,具體實現過程如下所示: 將之

原创 實現/dev/null的字符設備驅動

/dev/null是個黑洞設備,它丟棄一切寫入其中的數據,空設備通常被用於丟棄不需要的輸出流。任何寫入該設備數據都會被丟棄掉。從這個裏面讀取數據返回空(也有人認爲是讀該空設備,直接讀到文件尾,那就是返回-1)。將一些不用內容經常發送給這個

原创 VMware中如何實現Linux系統與宿主機文件共享

參考:http://hi.baidu.com/fly_2009hui/blog/item/a62b484f0f4ac63baec3ab73.html 使用hgfs實現vmare文件傳輸一法 使用vmware(vmware workstat

原创 字符設備的註冊

在linux內核2.6版本以前,註冊一個字符設備的的經典方法是使用register_chrdev,相應的從設備中註銷字符設備的方法是unregister_chrdev,而在2.6版本以後,字符設備函數的註冊與註銷使用的是如下一套方法: #

原创 實現4K大小的臨時存儲空間的字符設備驅動

這篇文章介紹如何實現一個簡單的linux字符設備驅動,在這裏實現的字符設備驅動包括mydev_temp.h文件和mydev_temp.c文件,其中mydev_temp.h文件內容如下: #ifndef _MYDEV_TEMP_H_ #de

原创 Shell腳本根據設備名自動獲取設備號

寫驅動的時候如果使用自動分配設備號的方式,在創建設備結點的時候需要在 '/proc/devices' 文件中查看一下所分配的設備號。可以通過awk命令: awk '{if($2=="your-driver") {print $1}}'

原创 共享內存函數(shmget、shmat、shmdt、shmctl)

共享內存函數由shmget、shmat、shmdt、shmctl四個函數組成。下面的表格列出了這四個函數的函數原型及其具體說明。 1.   shmget函數原型 shmget(得到一個共享內存標識符或創建一個共享內存對象) 所

原创 socket編程之addrinfo結構體與getaddrinfo函數

1. 概述 IPv4中使用gethostbyname()函數完成主機名到地址解析,這個函數僅僅支持IPv4,且不允許調用者指定所需地址類型的任何信息,返回的結構只包含了用於存儲IPv4地址的空間。IPv6中引入了getaddrinfo()

原创 linux中fork函數

一、fork入門知識      一個進程,包括代碼、數據和分配給進程的資源。fork()函數通過系統調用創建一個與原來進程幾乎完全相同的進程,也就是兩個進程可以做完全相同的事,但如果初始參數或者傳入的變量不同,兩個進程也可以做不同的事

原创 FNV哈希算法

由來:FNV哈希算法全名爲Fowler-Noll-Vo算法,是以三位發明人Glenn Fowler,Landon Curt Noll,Phong Vo的名字來命名的,最早在1991年提出。 特點和用途:FNV能快速hash大量數據並保

原创 Linux進程間通訊方式之管道pipe

Linux 進程間通訊方式有以下幾種:1-》管道(pipe)和有名管道(fifo).2-》消息隊列3-》共享內存4-》信號量5-》信號(signal) 6-》套接字(sicket) 在Linux系統中,管道通信可以通過使用系統調用來實現。