零‘OS基礎
- 分時
- 實時
算法的特性:
- 1 又窮性嵌莉,算法是執(zhí)行時候運行的有窮性,程序只是一段實現(xiàn)算法的代碼
- 2 確定性树埠,算法對于特定的輸入有特定的輸出稽荧,程序提供了確定算法結果的平臺
- 3 可行性年碘,算法需要考慮設計的可能澈歉,程序則具體是實現(xiàn)算法上的設計
- 4 輸入,算法有輸入屿衅,算法的輸入依靠程序的平臺提供
- 5 輸出埃难,算法的輸出也靠代碼的支持
單內(nèi)核:效率比較高,但是涤久,一損全損涡尘。
微內(nèi)核:其他設備出錯,不影響內(nèi)存等的使用功能
UNIX家族OS的共同特點
- 很簡潔,僅幾百個系統(tǒng)調(diào)用
- 所有的東西都當作文件對待
- C語言編寫內(nèi)核和系統(tǒng)工具軟件响迂,強大的移植能力
- 高效的創(chuàng)建進程考抄,獨特的fork
- 提供一套簡單與穩(wěn)定的進程間通信元語(IPC)
- 以文本形式存儲配置數(shù)據(jù)
內(nèi)核編程的特點
無libc,無任何第三方庫蔗彤,不能包含第三方頭文件
GNU C而非ANSIC
沒有內(nèi)存保護機制
不要輕易在內(nèi)核中使用浮點數(shù)
容積小而固定的棧--內(nèi)核棧的大小為兩頁
同步和并發(fā)--
1.Linux是多任務操作系統(tǒng) 2.內(nèi)核支持對稱多處理器系統(tǒng) 3.中斷是異步來的 4.Linux內(nèi)核可以搶占
可移植的重要性--
字節(jié)序川梅、字節(jié)對齊、不假定字長
死循環(huán)和無限遞歸的區(qū)別然遏?--無限遞歸在調(diào)用函數(shù)的時候贫途,會無限分配空間,導致棧區(qū)被占滿啦鸣,爆炸潮饱。
進程睡眠
- 被動
- 主動
- 深度睡眠
- 淺度睡眠
內(nèi)核線程
內(nèi)核空間
對于提供的保護機制的現(xiàn)代操作系統(tǒng)來說来氧,內(nèi)核獨立普通應用程序诫给,他處于系統(tǒng)態(tài)
被系統(tǒng)態(tài)保護起來的內(nèi)存空間,成為內(nèi)核空間
用戶空間
處理器在任何制定時間上的活動概括如下:
- 運行于用戶空間啦扬,執(zhí)行用戶進程(可睡眠)
- 運行于內(nèi)核空間中狂,處于進程的上下文,代表某個特定的內(nèi)核線程執(zhí)行(可睡眠)
- 執(zhí)行于內(nèi)核空間扑毡,處于一場上下文胃榕,與任何用戶進程無關,一般用來處理個特定的異常(如中斷瞄摊,軟中斷)
Linux編碼風格--內(nèi)核
1.接近K&R C風格
2.縮進
1)制表符(8個字符長度)勋又,反對多層縮進
2)每行最多80個字符
3.switch語句
1)case和switch同列
2)Through Case 時加注釋于下一行
4.花括號
1)函數(shù)體采用同列
2)其他采用:左括號緊跟在語句的最后苦掘,與語句同行,有括號要新起一行作為該行第一個字符楔壤,且于對應的語句同列
3)有花括號可以不單獨占一行鹤啡,與后續(xù)關鍵字同行
4)不需要一定使用括號的語句可以忽略它(敗筆)
5.命名規(guī)范
6.函數(shù)
1)函數(shù)代碼長度不應該超過兩屏
2)局部變量不超過10個
3)允許使用inline
7.注釋
1)應該描述代碼要做什么和為什么這樣做,而不是通過什么來實現(xiàn)的
2)注釋不應該包含誰寫了那個函數(shù)蹲嚣,修改日期和其他瑣碎而無意義的內(nèi)容
3)注釋中递瑰,重要信息常常“xxx:”開頭隙畜,而bug通常是已“FIXME:”開頭
8.Typedef
typedef NT T; typedef int INT; x += y; x = x + y; typedef strcut STU { // }STU;
1)內(nèi)核開發(fā)者強烈反對使用Typedef抖部,認為:
2)
3)
4)
9.在源碼中減少使用ifdef
1)...
2)do{}while(0)和正常語句的區(qū)別
10.結構初始化
- C語言中
struct STU st={“xx”,“ww”,“ee”,“ff”};
- 內(nèi)核中
struct foo my_foo = {.a = INTIAL_A,.b = INTIAL_B};
11.客文化
- 黑客--尋找漏洞,采取安全措施议惰,防止核客攻擊計算機慎颗。褒義Hacker
- 核客--尋找系統(tǒng)漏洞,以便破壞(貶義)
- 駭客--專業(yè)從事商業(yè)軟件言询,惡意入侵別人的網(wǎng)站等(Cracker)
- 極客--隨著互聯(lián)網(wǎng)文化的興起哗总,這個詞包含智力超群和努力的語意
- 紅客--一種精神,熱愛祖國倍试,堅持正義讯屈,開拓進取的精神,抵御反擊破壞者
- 百客--網(wǎng)絡守護神
- 灰客--不黑不白
- 博客--愛寫blog的人
- 播客--愛show愛語音的人
- 閃客--瘋狂熱愛制作flash的人
- 賺客--憑借自己的網(wǎng)絡知識技術獲利的人