原创 kernel oops 分析

https://groups.google.com/group/linux.kernel/browse_thread/thread/b70bffe9015a8c41/ed9c0a0cfcd31111from Linus原文如下:---On

原创 內核中調用用戶程序的接口

1。進入正題前,先說明內核拷貝的一個問題 對於讀寫等接口 最需要注意的一點是:這種類型接口會調用copy_to_user 或者 copy_from_user這兩個是進行用戶空間拷貝在X86體系結構中 內核調用這個接口必須設置FS段寄存器的

原创 關於linux bitops的使用

內核API沒有通用的標準 即使在內核的文檔和頭文件也沒詳細給出一個多平臺開發中多處用到bitops   結果碰到許多問題1int find_first_zero_bit(void * addr, unsig

原创 GCC內嵌彙編之語法詳解

內嵌彙編語法如下:        __asm__(彙編語句模板: 輸出部分: 輸入部分: 破壞描述部分) 共四個部分:彙編語句模板,輸出部分,輸入部分,破壞描述部分,各部分使用“:”格開,彙編語句模板必

原创 關於有限狀態機的一種程序實現結構

 關於狀態機的定義已經比較模糊了大致猜一下  有限狀態機是指 起始結點到終點之間存在有限個數的狀態。通過這些狀態之間的跳轉可以簡單的對付複雜的輸入在實際應用中,許多狀態特性明顯或者不明顯的都能劃分出狀態機特

原创 關於volatile的一個疑惑

一般說來,volatile用在如下的幾個地方: 1、中斷服務程序中修改的供其它程序檢測的變量需要加volatile; 2、多任務環境下各任務間共享的標誌應該加volatile; 3、存儲器映射的硬件寄存器通常也要加volatile說

原创 GCC內嵌彙編簡介

 在內嵌彙編中,可以將C語言表達式指定爲彙編指令的操作數,而且不用去管如何將C語言表達式的值讀入哪個寄存器,以及如何將計算結果寫回C 變量,你只要告訴程序中C語言表達式與彙編指令操作數之間的對應關係即可,

原创 編碼檢查表--from the book(編碼精粹)

一般問題 你是否爲程序建立了DEBUG版本 你是否將發現的錯誤及時改正了 你是否堅持徹底調試編碼,即使耽誤了進度也在所不辭 你是否依靠測試組爲你測試編碼 你是否知道編碼的優先順序 你的變異程序是否有可選的各

原创 Linux rpc結構 一種事件驅動的狀態機處理

 Linux的RPC是作爲NFS的底層支持接口放在內核中的。當然,需要的話,其他模塊也能調用RPC接口。爲了高效的調度各個RPC請求,Linux的PRC調度實際上是一個事件驅動模型。C/S結構,大多使用多進

原创 《編程精粹-Microsoft編寫優質無錯代碼的祕訣》的摘錄

第一章:假想的編譯程序1.不要期待好運氣會碰到錯誤,應該去自己主動發現錯誤,排除運氣對程序測試的影響,主動地抓住錯誤每個機會2.這章作者假想了一個非常智能的編譯器,可以通過修改一些C語言規則,進行函數原形的檢查和提供警告消息主動的發現錯

原创 面試大全 血的教訓

 找工作3個月,自認爲基礎尚可,筆試基本能過,前前後後面試了大公司n個,但搞定的機率卻小。所謂知恥而後勇,着實需要反省反省總結總結。在面試過程中摸爬滾打了3個月,雖說沒吃上多少豬肉好歹也見識過很多豬跑,總結

原创 msra面試

面了3人,中午直接被趕回來。。。第一個 問了問項目然後讓寫一個轉換ipv4字符串成一個整數要求考慮儘可能有的特殊情況   然後設計測試用例第二個題目是54張撲克牌  紅黑各一半  問連續拿到相同花色的概率第

原创 Linux 計時概要

 1.用戶空間用戶空間可以使用下面的函數,這些是新增加的通用接口,用來替代過時的不夠精確的gettimeofday()。他們的精度取決於不同平臺,應該都是硬件實現,struct timespec可表示的最小

原创 如何在linux下編寫自己得rpc調用

linux rpc在內核中實現,源代碼位置是net/sunrpc/sunrpc不僅實現了rpc的調度,同時將rpc請求構造解析發送接受的通用部分進行了提取。要定義自己的rpc調用僅需要實現那些非通用的部分,下面簡要介紹怎麼實現一個自己的r

原创 AT&T與INTEL的彙編語言語法的區別

1、大小寫 INTEL格式的指令使用大寫字母,而AT&T格式的使用小寫字母。 例:     INTEL                          AT&T       MOV EAX,EBX