開發(fā)linux兼容內(nèi)核的策略與路線_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、開發(fā)LinuxLinux兼容內(nèi)核的策略與路線LinuxLinuxkerneldevelopmentstrategiescompatiblewiththeline毛德操Maudoperation筆者自從提出Linux兼容內(nèi)核的構(gòu)想以后,聽到了不少反響。SinceIproposedtheideaofLinuxcompatiblekernellaterIheardalotofrepercussions.其中支持者固然不乏其人,如開源軟件推進聯(lián)

2、盟主WhichiscertainlynoshtageofsuppterssuchastheOpenSourceSoftwarePromotionUnion席陸首群Ilthefirstgroup先生、倪光南院士、還有OSDL的平野正信先生,都是支持的。Mr.NiGuangnanacademiciansaswellasOSDLsMr.Hiranoisbelievedaresuppted.但是無庸諱言,對此不以為然的意見也有不少。Needle

3、sstosayhoweverdonotagreewiththeviewstherearemany.有趣的是,這些不以為然的意見往往分成兩個極端。Interestinglytheseviewsdisagreeoftendividedintotwoextremes.一個極端說,Linux兼容內(nèi)核要達到的目標(biāo)已經(jīng)達到了,因此根本就不用多此一舉。AnextremethatLinuxcompatiblekerneltoachievehasbeen

4、achievedsothereisnoneedredundant.說已經(jīng)達到,是因為在用戶空間我們已經(jīng)有了Wine,而NdisWrapper則已經(jīng)解決了把Windows設(shè)備驅(qū)動裝入Linux內(nèi)核的問題。SaidtohavebeenreachedbecausewealreadyhaveintheuserspaceWinebutithasbeenresolvedNdisWrapperWindowsdevicedrivertoloadLinu

5、xkernelproblem.另一個極端呢,則是說兼容內(nèi)核的難度太大,根本就不可能成功,所以只是一個“夢”。Theotherextremeitiscompatiblewiththekernelisthattoodifficultsimplycannotsucceedsoonlya“dream.“顯然,在談?wù)撻_發(fā)路線圖之前首先應(yīng)該回答這兩種意見。Obviouslytalkingabouttheroadmapshouldbeanswered

6、befethefirstofthesetwoviews.幸好它們正好互相構(gòu)成回答。Ftunatelytheyarejustanotherfmanswer.首先,正如筆者在另幾篇文章中所說,Wine只是在邏輯上、功能上基本解決了用Linux內(nèi)核來模擬仿真Windows內(nèi)核的問題,但是性能上是無法令人滿意的,而且說基本上解決其實也很勉強。FirstasIhavesaidinotherarticlesWineisonlylogicalfunc

7、tionbasicallysolvedwiththeLinuxkerneltosimulateSimulationWindowskernelproblembutperfmanceisnotsatisfactythatbasicallysolutionisactuallyveryreluctant.至于NdisWrapper,它所解決的是一些網(wǎng)絡(luò)設(shè)備(網(wǎng)卡)的驅(qū)動,而不是普遍意義上的設(shè)備驅(qū)動。AsNdisWrapperitsolvedso

8、mewkdevice(NIC)drivernotthegeneralsenseofthedevicedriver.更何況NdisWrapper設(shè)備驅(qū)動的上層只能是Linux的Socket,而不能與諸多文件操作的系統(tǒng)調(diào)用掛上鉤。MeovertheupperNdisWrapperdevicedrivercanonlybeLinuxSocketnotwithalotoffilemanipulationsystemcallsprocessisl

9、inked.實際上,退一步說,即使NdisWrapper和Wine真的已經(jīng)分黑盒子中,光憑幾本書能得到多少信息、如何就能開發(fā)出跟Windows兼容的內(nèi)核?ToodifficultfthepeoplethatthereisaconcernthatisWindowsthecodeisnotpublichiddenintheblackboxevenwiththefewbookstogetmuchinfmationhowcandevelopco

10、mpatiblewiththeWindowskernel這種顧慮當(dāng)然也有一些道理,但是ReactOS又在這方面給我們提供了參考。ThisconcernofcoursethereissometruthbutinthiscontextReactOShasprovideduswithinfmation.ReactOS以零為起點從頭開發(fā),Wine只在內(nèi)核外面做文章,尚且都能在一定程度上達到設(shè)計目標(biāo),而我們站在它們的肩膀上,又有Linux內(nèi)核作為

11、原材料,至少條件比他們好多了。ReactOStozeroasastartingpointfromscratchWineonlymakeanissueoutofthekernelyetitcanbetosomeextenttomeetthedesigngoalswestontheirshouldersanotherLinuxkernelasarawmaterialatleastmuchbetterconditionsthantheyare

12、.當(dāng)然,把Wine、NdisWrapper和ReactOS作為參考意味著我們需要吃透、或者至少基本上理解它們的代碼。OfcoursetheWineNdisWrapperReactOSasareferencemeansthatweneedtounderstwellatleastbasicallyundersttheircode.為此筆者將陸續(xù)寫一些分析文章在本網(wǎng)站上推出,起個拋轉(zhuǎn)引玉的作用。TodothisIwillgraduallywr

13、iteanalyticalarticlesonthissitelaunchsincetheroleofaparabolicquotedYu.總之,兼容內(nèi)核的開發(fā)既不是唾手可得,也不是難于上青天,既不能一蹴而就,也不至于遙遙無期。Inshtneithercompatiblewiththedevelopmentofthekernelisaneasynisitimpossiblefthecountywecannotbedoneovernigh

14、tyouwillnotbeputoffindefinitely.說起來還是那句老話:戰(zhàn)略上藐視困難,戰(zhàn)術(shù)上重視困難。Thatitisanoldsayinggoes:strategicdefianceofdifficultiestacticallydifficult.后發(fā)跟進、逐步逼近后發(fā)跟進、逐步逼近FollowupFollowupafterafterthethehairhairgraduallygraduallyapproaching

15、approaching我們開發(fā)兼容內(nèi)核不能采取一步到位、而應(yīng)采取逐步逼近的策略。Wehavedevelopedcompatiblewiththekernelcannottakeonestepbutshouldadoptagradualapproachofthestrategy.以系統(tǒng)調(diào)用界面為例,我們完全可以先擱置那些用于GUI、即win32k.sys的擴充系統(tǒng)調(diào)用,即便是對于248個常規(guī)系統(tǒng)調(diào)用也可以分期分批地實現(xiàn)。Thesystem

16、callinterfacefexamplewecansetasidethoseusedfthefirstGUIthewin32k.sysexpansionofsystemcallsevencallsftheconventionalsystem248canalsobeachievedinstages.實際上,我們甚至并無必要追求一個完整的實現(xiàn)。Infactweevendonotneedtopursueacompleteimplementa

17、tion.工程上有一個所謂2080原理,說是20%的工作量往往可以實現(xiàn)80%的功能,而剩下的20%功能卻往往需要80%的工作量才能實現(xiàn)。Wksonasocalled2080principlethatis20%ofthewkloadcanoftenachieve80%ofthefunctionwhiletheremaining20%ofthefeaturesareoftenrequiredtoachieve80%ofthewkload.如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論