原创 字符設備模板

linux驅動makefile寫法: ifneq ($*KERNELRELEASE),) obj-m :=hello.o else KERNELDIR?=/lib/modules/$(shell uname -r) /build PWD :

原创 Llinux啓動流程

部分引用他人總結,如有侵權,請告知本人刪除一、引導過程    內核引導過程依次涉及的文件爲    src/arch/i386/boot/bootsect.S    src/arch/i386/boot/setup.S    src/arch

原创 Makefile經典教程

       makefile很重要      什麼是makefile?或許很多Winodws的程序員都不知道這個東西,因爲那些Windows的IDE都爲你做了這個工作,但我覺得要作一個好的和professional的程序員,makefil

原创 Inotify

使用inotifyAPI的幾個關鍵步驟: 1、使用inotify_init()創建一個inotify實例,返回一個文件描述符 2、使用inotify_add_watch()向inotify實例的監控列表添加條目。每個監控項都包含一個路徑名以

原创 tasklet、工作隊列和共享隊列

tasklet(小任務): tasklet在很多方面類似內核定時器:他們始終在中斷期間運行,始終會在調度他們的同一CPU上運行,而且都接收一個unsigned long參數。不同的是,不能要求tasklet在某個給定的時間執行,調度一個ta

原创 Linux設備模型——設備驅動模型和sysfs文件系統解讀

轉載自 http://blog.csdn.net/yj4231/article/details/7799245 作者:yj4231本文將對Linux系統中的sysfs進行簡單的分析,要分析sysfs就必須分析內核的driver-model(

原创 bash下. : () {} [] [[]] (())的解釋

http://blog.chinaunix.net/uid-20380484-id-1692999.html bash下有很多像{}、[]等一些符號命令,下面是我對一些常用的符號命令的學習筆記,若有錯誤或紕漏望各位兄弟指正。一、.(sour

原创 Linux中LANG,LC_ALL,local詳解

locale 是國際化與本土化過程中的一個非常重要的概念,個人認爲,對於中文用戶來說,通常會涉及到的國際化或者本土化,大致包含三個方面:看中文,寫中文,與 window中文系統的兼容和通信。從實際經驗上看來,locale的設定與看中文關係不

原创 關於might_sleep的一點說明

原文地址:關於might_sleep的一點說明 作者:MagicBoy2010這個函數我在看代碼時基本上是直接忽略的(因爲我知道它實際上不幹什麼事),不過因爲內核中很多函數一開始就會用一下它,爲了方便那些正在學習內核源碼的網友,本帖專門討論

原创 高級字符驅動程序操作之ioctl

高級字符驅動程序操作之ioctlioctl: 用戶空間原型:int ioctl(int fd, unsigned long cmd, …); “...”並非可變參數,而是可選參數,防止編譯器進行類型檢查。 驅動原型:int (*ioctl)

原创 權能與受限操作

權能與受限操作 全部全能操作可以在<linux/capability.h>中找到,其中包含了系統能夠理解的所有權能;不修改內核源碼,對驅動程序開發者來講有意義的權能如下所示: CAP_DAC_OVERRIDE 越過文件或目錄的訪問權限(數

原创 c有趣代碼片段

#define min(x,y) ({\    typeof(x) _x=(x); \    typeof(y) _y=(y); \    (void) (&_x==&_y); \    _x < _y ? _x : _y; })出現在內核

原创 併發與競態

linux驅動——併發和竟態序——正在運行的多個用戶空間程序可能以一個令人驚訝的組合方式訪問我們的代碼。SMP系統甚至可能在不同的處理器上同時執行我們的代碼。內核代碼是可搶佔的,因此我們的驅動程序代碼可在任何時候丟失對處理器的獨佔。信號量(

原创 qemu&kgdb

本文內容參考了:http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/相關內容: http://liang00fang00yy3.blog.163.com/blog/static/4

原创 KGDB環境搭建及調試

轉載自wangbaolin719的ChinaUnix博客  http://blog.chinaunix.net/uid-27717694-id-4051339.html前言:經過多天的努力嘗試,不知道死了多少次機器重裝了多少次系統,終於將K