偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Unix內核與開源講解

系統(tǒng) 其他OS
我們知道Unix內核沒法捕獲自己,而且,要使用浮點指令,不但要保存浮點寄存器,作為一個搶占式多任務、支持對稱多處理(SMP)的系統(tǒng),同步和并發(fā)是任何一個Unix內核hacker都需要時時刻刻小心的問題。

在Unix內核中使用浮點數非常困難,如果你想給自己找麻煩的話,可以試試。用戶空間代碼要使用浮點數指令時,一般來說會產生一個中斷,內核捕獲該中斷并作相應的處理。

然而,Unix內核沒法捕獲自己。而且,要使用浮點指令,不但要保存浮點寄存器,還要做很多繁瑣的事情——光看看Unix內核如何為用戶空間代碼使用浮點數就知道了,可以參考進程調度里的上下文切換。

用戶空間的程序可以在棧上申請大量的空間——定義足夠多的局部變量,因為用戶空間的棧非常大,而且可以動態(tài)增長。不過有些不夠智能的系統(tǒng)做不到動態(tài)增長。然而,Unix內核的棧非常小,而且無法動態(tài)增長。

作為一個搶占式多任務、支持對稱多處理(SMP)的系統(tǒng),同步和并發(fā)是任何一個Unix內核hacker都需要時時刻刻小心的問題。調度器“興之所至”,調度進程,這就需要同步;加上來自CPU外的各種中斷導致Unix內核需要對某些代碼或數據加以保護。

而搶占的意思就是,無論誰占用了CPU,都有可能被其他進程搶掉,內核也不例外。Linux對于競態(tài)條件提供了spinlock(自旋鎖)和semaphore(信號量)。

最后就是移植性問題。這個問題從來都不見簡單,而且linux的目標是多種平臺都能運行,因此移植性顯得更為重要。字節(jié)序問題就是一個典型的移植性問題。然而,應用程序可能僅僅為一個平臺開發(fā)。

看了這些,是不是覺得,其實Unix內核開發(fā)也不難呢?

有雄心的hacker們,不要被OS kernel這個名詞嚇倒??纯碙inux Kernel Development,準備好Linux內核源碼,沏上一杯茶,然后你就可以開發(fā)內核了!

參考:
Linux Kernel Development, 2nd edition, by Robert Love
Copyleft (C) 2007 raof01. 本文可以用于除商業(yè)用途外的所有用途。若要用于商業(yè)用途,請與作者聯(lián)系。

【編輯推薦】

  1. 簡介Unix系統(tǒng)的文件系統(tǒng)
  2. Unix系統(tǒng)中的小知識介紹
  3. 講解Unix系統(tǒng)的特點的知識
  4. 學習Unix系統(tǒng)經驗之談
  5. Unix系統(tǒng)和最初的 BSD 操作系統(tǒng)
責任編輯:小霞
相關推薦

2010-05-05 13:13:55

Unix內核

2010-04-30 16:08:20

Unix內核

2010-04-21 13:47:45

Unix內核

2010-04-21 12:54:46

Unix內核

2010-05-04 11:59:39

Unix系統(tǒng)

2010-04-21 15:20:31

Unix線程

2010-05-05 17:30:04

Unix MBB

2010-05-05 17:41:03

IBM Unix

2010-05-05 16:05:36

Unix cfengi

2010-05-04 12:25:28

Unix鏈接

2010-04-30 13:27:26

Unix cronta

2010-04-30 13:38:51

Unix at命令

2010-05-04 09:22:10

Unix文件

2010-05-05 10:19:51

Unix系統(tǒng)

2010-05-05 13:45:21

Unix Telnet

2010-05-04 13:42:18

Unix打印系統(tǒng)

2010-05-04 15:33:41

Unix系統(tǒng)

2010-05-05 15:02:39

Unix系統(tǒng)

2010-05-04 16:33:39

Unix系統(tǒng)

2010-04-29 10:15:01

Unix系統(tǒng)
點贊
收藏

51CTO技術棧公眾號