第一次使用markdown做筆記

零‘OS基礎

  1. 分時
  2. 實時

算法的特性:

  • 1 又窮性,算法是執(zhí)行時候運行的有窮性,程序只是一段實現算法的代碼
  • 2 確定性,算法對于特定的輸入有特定的輸出,程序提供了確定算法結果的平臺
  • 3 可行性,算法需要考慮設計的可能,程序則具體是實現算法上的設計
  • 4 輸入,算法有輸入,算法的輸入依靠程序的平臺提供
  • 5 輸出,算法的輸出也靠代碼的支持

單內核:效率比較高,但是,一損全損。

微內核:其他設備出錯,不影響內存等的使用功能

UNIX家族OS的共同特點

  1. 很簡潔,僅幾百個系統(tǒng)調用
  2. 所有的東西都當作文件對待
  3. C語言編寫內核和系統(tǒng)工具軟件,強大的移植能力
  4. 高效的創(chuàng)建進程,獨特的fork
  5. 提供一套簡單與穩(wěn)定的進程間通信元語(IPC)
  6. 以文本形式存儲配置數據

內核編程的特點

  • 無libc,無任何第三方庫,不能包含第三方頭文件

  • GNU C而非ANSIC

  • 沒有內存保護機制

  • 不要輕易在內核中使用浮點數

  • 容積小而固定的棧--內核棧的大小為兩頁

  • 同步和并發(fā)--1.Linux是多任務操作系統(tǒng) 2.內核支持對稱多處理器系統(tǒng) 3.中斷是異步來的 4.Linux內核可以搶占

  • 可移植的重要性--
    字節(jié)序、字節(jié)對齊、不假定字長

死循環(huán)和無限遞歸的區(qū)別?--無限遞歸在調用函數的時候,會無限分配空間,導致棧區(qū)被占滿,爆炸。

進程睡眠

  1. 被動
  2. 主動
  3. 深度睡眠
  4. 淺度睡眠

內核線程

內核空間

對于提供的保護機制的現代操作系統(tǒng)來說,內核獨立普通應用程序,他處于系統(tǒng)態(tài)

被系統(tǒng)態(tài)保護起來的內存空間,成為內核空間

用戶空間

處理器在任何制定時間上的活動概括如下:

  1. 運行于用戶空間,執(zhí)行用戶進程(可睡眠)
  2. 運行于內核空間,處于進程的上下文,代表某個特定的內核線程執(zhí)行(可睡眠)
  3. 執(zhí)行于內核空間,處于一場上下文,與任何用戶進程無關,一般用來處理個特定的異常(如中斷,軟中斷)

Linux編碼風格--內核

1.接近K&R C風格

2.縮進

1)制表符(8個字符長度),反對多層縮進 
2)每行最多80個字符 

3.switch語句

1)case和switch同列
2)Through Case 時加注釋于下一行

4.花括號

1)函數體采用同列
2)其他采用:左括號緊跟在語句的最后,與語句同行,有括號要新起一行作為該行第一個字符,且于對應的語句同列
3)有花括號可以不單獨占一行,與后續(xù)關鍵字同行
4)不需要一定使用括號的語句可以忽略它(敗筆)

5.命名規(guī)范
6.函數

1)函數代碼長度不應該超過兩屏
2)局部變量不超過10個
3)允許使用inline

7.注釋

1)應該描述代碼要做什么和為什么這樣做,而不是通過什么來實現的
2)注釋不應該包含誰寫了那個函數,修改日期和其他瑣碎而無意義的內容
3)注釋中,重要信息常?!皒xx:”開頭,而bug通常是已“FIXME:”開頭

8.Typedef

typedef NT T; typedef int INT; x += y; x = x + y; typedef strcut STU { // }STU;

1)內核開發(fā)者強烈反對使用Typedef,認為:
2)
3)
4)

9.在源碼中減少使用ifdef

1)...
2)do{}while(0)和正常語句的區(qū)別

10.結構初始化

  • C語言中 struct STU st={“xx”,“ww”,“ee”,“ff”};
  • 內核中 struct foo my_foo = {.a = INTIAL_A,.b = INTIAL_B};

11.客文化

  1. 黑客--尋找漏洞,采取安全措施,防止核客攻擊計算機。褒義Hacker
  2. 核客--尋找系統(tǒng)漏洞,以便破壞(貶義)
  3. 駭客--專業(yè)從事商業(yè)軟件,惡意入侵別人的網站等(Cracker)
  4. 極客--隨著互聯網文化的興起,這個詞包含智力超群和努力的語意
  5. 紅客--一種精神,熱愛祖國,堅持正義,開拓進取的精神,抵御反擊破壞者
  6. 百客--網絡守護神
  7. 灰客--不黑不白
  8. 博客--愛寫blog的人
  9. 播客--愛show愛語音的人
  10. 閃客--瘋狂熱愛制作flash的人
  11. 賺客--憑借自己的網絡知識技術獲利的人
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 又來到了一個老生常談的問題,應用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢? 今天就這個問題開始,來談談操...
    tangsl閱讀 4,332評論 0 23
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • 一、溫故而知新 1. 內存不夠怎么辦 內存簡單分配策略的問題地址空間不隔離內存使用效率低程序運行的地址不確定 關于...
    SeanCST閱讀 8,141評論 0 27
  • 2017年9月23日,在西安長鳴路68號,陜西紅色革命紀念園舉行的新聞發(fā)布會意義重大,也將開啟西安文化旅游的新篇章……
    人人正能量閱讀 327評論 0 0
  • 第六章 參軍 許爸爸每天在床上輾轉反側,沒有睡過一天踏實的覺。幾天下來,額頭上又增添了幾道皺紋,顯得更加蒼老。他...
    陌生的云閱讀 457評論 4 2

友情鏈接更多精彩內容