原创 offsetof(TYPE, MEMBER)

offsetof(TYPE, MEMBER) 該宏在Linux內核代碼(版本2.6.22)中定義如下: #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER);

原创 BUG 和 BUG_ON

原文:http://blog.csdn.net/onlyfever/article/details/5722712 調試的時候很有用的東西:dump_stack   使用前,先在內核配置中把kernel debug選上: make me

原创 Linux內核的Oops

什麼是Oops?從語言學的角度說,Oops應該是一個擬聲詞。當出了點小事故,或者做了比較尷尬的事之後,你可以說"Oops",翻譯成中國話就叫做“哎呦”。“哎呦,對不起,對不起,我真不是故意打碎您的杯子的”。看,Oops就是這個意思。

原创 container_of 理解

問題:如何通過結構中的某個變量獲取結構本身的指針???關於container_of見kernel.h中:/*** container_of - cast a member of a structure out to the contain

原创 《Linux內核修煉之道》精華分享與討論(21)——二分法與printk()

人生就是一個茶几,上面擺滿了杯具。內核也是一個大茶几,不過它上面的杯具是一個個的bug。確定bug什麼時候被引入是一個很關鍵的步驟,在這個定位bug的過程中,不論有意或無意,都會很自然地用到二分查找的方法。 二分查找法的基本原理 對於二分

原创 linux shell 腳本之深入淺出的grep的用法

   今天在糾結grep用法時候,由於講解的教材比較少,糾結了較長的時間。最終還是攻下了,所以拿出來給大家分享。 grep       顯示匹配一個或多個模式的文本行,時常會作爲管道後的第一步,以便對匹配上的數據做進一步處理。 最

原创 ADB server didn't ACK * failed to start daemon * 解決方案

  前幾天請假了,回到公司後,打開電腦,插上手機,eclipse居然報ADB server didn't ACK * failed to start daemon *的錯誤,之前出這樣的問題,都是:   1. 查看任務管理器,關閉ad

原创 kdump

kexec是一個快速啓動機制,允許通過已經運行的內核的上下文啓動一個Linux內核,不需要經過BIOS。BIOS可能會消耗很多時間,特別是帶有衆多數量的外設的大型服務器。這種辦法可以爲經常啓動機器的開發者節省很多時間。 kdump 是

原创 自旋鎖spin_lock和raw_spin_lock

本文不打算詳細探究spin_lock的詳細實現機制,只是最近對raw_spin_lock的出現比較困擾,搞不清楚什麼時候用spin_lock,什麼時候用raw_spin_lock,因此有了這篇文章。 /**************

原创 linux statfs命令函數介紹

statfs 主要用來獲得磁盤的空間 sun 系統下爲 statvfs, linux系統下爲statfs   #ifdef sun #include <sys/statvfs.h> #endif #ifdef linux

原创 list_for_each_entry

參考: http://blog.sina.com.cn/s/blog_5e99b41e0100rxgf.html http://hi.baidu.com/shiftedmind/blog/item/1a7c8381e6a67fa56

原创 .globl _start

.globl指示告訴彙編器,_start這個符號要被鏈接器用到,所以要在目標文件的符號表中標記它是一個全局符號(在第 5.1 節 “目標文件”詳細解釋)。_start就像C程序的main函數一樣特殊,是整個程序的入口,鏈接器在鏈接時會查找

原创 讀寫鎖

讀寫鎖 讀寫鎖 (rwlock)功能特點簡介 讀寫鎖實際是一種特殊的自旋鎖,它把對共享資源的訪問者劃分成讀者和寫者,讀者只對共享資源進行讀訪問,寫者則需要對共享資源進行寫操作。這種鎖相對於自旋鎖而言,能提高併發性,因爲在多處理器系

原创 mknod命令

mknod命令用於創建一個設備文件,即特殊文件 首先要明白什麼是設備文件,簡單的我們說 操作系統與外部設備(入磁盤驅動器,打印機,modern,終端 等等)都是通過設備文件來進行通信的,在Unix/Linux系統與外部設備通訊之前,這個設

原创 Android Framework 分析

1.目錄樹 /framework/base/api  /framework/base/awt /framework/base/build /framework/base/camera 關 於camera的HAL接口庫。最終生成