原创 轉載 linux 2.6內核進程管理
linux 2.6內核進程管理 linux每個進程對應一個task_struct類型結構。該結構包含進程相關的所有信息。linux進程通過list_head組織雙向鏈表,每一個結點就是一個進程描述符。進程描述符裏面包含了進程所
原创 內核中的數據類型
第 11 章 內核中的數據類型 下一頁 11.4. 其他移植性問題 除了數據類型, 當編寫一個驅動時有幾個其他的軟件問題要記住, 如果你想在 Linux 平臺間可移植. 一個通常的規則是懷疑顯式的常量值. 常常通過使用預
原创 struct device淺析
struct device結構體(2.6.23) 一、定義:linux/include/linux/device.h struct device { struct klist klist_children;
原创 轉載 linux 2.6進程與線程
linux 2.6進程與線程 1 > 線程和進程的差別線程機制支持併發程序設計技術,在多處理器上能真正保證並行處理。而在linux實現線程很特別,linux把所有的線程都當作線程實現。linux下線程看起來就像普通
原创 GCC編譯關鍵字“__attribute__”
讓GCC編譯關鍵字“__attribute__”給你帶來方便 直接引入我們的主角(粗體部分): int my_printf (void *my_object, const char *my_format, ...) __
原创 轉載 C語言面試題總彙
C語言面試題總彙 4. static有什麼用途?(請至少說明兩種) 1.限制變量的作用域2.設置變量的存儲域7. 引用與指針有什麼區別?1) 引用必須被初始化,指針不必。2) 引用初始化以後不能被改變,指針可以改變
原创 在考慮大小端時拷貝數據
大端模式 所謂的大端模式,是指數據的低位(就是權值較小的後面那幾位)保存在內存的高地址中,而數據的高位,保存在內存的低地址中,這樣的存儲模式有點兒類似於把數據當作字符串順序處理:地址由小向大增加,而數據從高位往低位放; 小端模式
原创 淺談linux2.4 內核中斷下半部分(softirq機制)
linux2.4 內核中斷下半部分(bottom half)理解(請結合linux2.4內核代碼看): 首先先說一下爲什麼要採用中斷下半部分: 中斷服務函數大多需要在關中斷的情況下去執行,但是有的中斷服務函數執行需要較長的時間,如果系統長
原创 設置ip及dns過程中,形如"192.001.000.020"設置不成功,需轉換爲"192.1.0.20"
//設置ip及dns過程中,形如"192.001.000.020"設置不成功,需轉換爲"192.1.0.20"CSUDI_Error_Code CSUDITcpipStrToIp(const char * pStr, char * pIp
原创 二進制數字符串轉化爲二進制數
如何將一個二進制形式的數字字符串(如“10101010”)轉化成二進制的數據類型(以char型爲例)?答:想到移位的方法。char s[] = "10101011"char s8 = 0;for(i = 0;i < 8; i++){
原创 從大端模式buf中提取想要的位數
#define EXTRACT_32(_X) (((U32)*(_X+0) << 24) | ((U32)*(_X+1) << 16) | ((U32)*(_X+2) << 8) | ((U32)*(_X+3) << 0))#
原创 工作中的主觀臆斷
昨天遇到linux2.6下webs命令不能使用的情況,但是在另一個項目上是能用的,兩個項目上的uboot、內核都是一樣的,唯獨文件系統是裁剪過的,於是首先定位是文件系統的問題。一點一點恢復
原创 淺析container_of(ptr, type, member)
淺析container_of(ptr, type, member) #define container_of(ptr, type, member) ({ / const typeof( ((
原创 轉帖 copy_to_user,copy_from_user,get_user和put_user函數詳解
copy_to_user,copy_from_user,get_user和put_user函數詳解 字符設備驅動驅動的讀,寫。如:ssize_t xxx_read(struct file *filp, char __use
原创 轉載 wait隊列,及函數解析
wait隊列,及函數解析 在內核裏面,等待隊列是有很多用處的,尤其是在中斷處理、進程同步、定時等場合。有時候,一個進程可能要等待一些事件的發生,如磁盤操作結束、一些系統資源的釋放等等。等待隊列存放着是暫時資源未得到滿足的進程