自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix內(nèi)核與開源講解

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

在Unix內(nèi)核中使用浮點(diǎn)數(shù)非常困難,如果你想給自己找麻煩的話,可以試試。用戶空間代碼要使用浮點(diǎn)數(shù)指令時(shí),一般來說會(huì)產(chǎn)生一個(gè)中斷,內(nèi)核捕獲該中斷并作相應(yīng)的處理。

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

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

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

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

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

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

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

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

【編輯推薦】

  1. 簡(jiǎn)介Unix系統(tǒng)的文件系統(tǒng)
  2. Unix系統(tǒng)中的小知識(shí)介紹
  3. 講解Unix系統(tǒng)的特點(diǎn)的知識(shí)
  4. 學(xué)習(xí)Unix系統(tǒng)經(jīng)驗(yàn)之談
  5. Unix系統(tǒng)和最初的 BSD 操作系統(tǒng)
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-05 13:13:55

Unix內(nèi)核

2010-04-30 16:08:20

Unix內(nèi)核

2010-04-21 13:47:45

Unix內(nèi)核

2010-04-21 12:54:46

Unix內(nèi)核

2010-04-21 15:20:31

Unix線程

2010-05-04 11:59:39

Unix系統(tǒng)

2010-05-05 17:30:04

Unix MBB

2010-05-05 16:05:36

Unix cfengi

2010-05-05 17:41:03

IBM Unix

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-04-30 13:27:26

Unix cronta

2010-05-04 12:25:28

Unix鏈接

2010-04-30 13:38:51

Unix at命令

2010-05-05 10:44:37

Unix 反引號(hào)

2010-04-29 10:15:01

Unix系統(tǒng)

2010-05-04 13:42:18

Unix打印系統(tǒng)

2010-04-21 12:12:56

Unix 消息隊(duì)列

2010-05-04 15:33:41

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

51CTO技術(shù)棧公眾號(hào)