青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

思考系統(tǒng)API設計的問題

最近正好在思考系統(tǒng)API設計中考量的一些問題,

【某網(wǎng)友討論到】
: 那地址是不是同一個地址呢。我現(xiàn)在的理解是這樣的,假設有巨大的真實內存。windows首先將高2G的內存自己占了,用作各種內核對象。這2G內存共享給每個進程,但進程不能直接訪問,只能通過windows給定的函數(shù)訪問。
: 然后每個進程都給他2G內存,進程如果創(chuàng)建自己的對象就放到自己那2G內存里面,如果要建立內核對象就放到共享的那高2G里面去。
: 所以不同進程如果可以訪問高2G內存的話,任何進程訪問到同一個高地址實際上都是訪問到同一個對象。但如果訪問低2G地址的話,不同進程是對應不同的對象的。



在不同的進程中,詢問同一個內核對象的實際地址(無論是線性地址還是物理地址),是無意義的:

首先,內核對象只能由在內核態(tài)下的例程才能直接訪問,在我們日常的代碼中,所調用的Windows API,比如CreateFile, (注意調用剛開始時是處于用戶態(tài)下的),一般都會在ntdll.dll中找到對應的內核函數(shù)或例程,接著系統(tǒng)切換到內核態(tài),開始調用實際對應的內核函數(shù)(KiCreateFile),這個時候才會去訪問內核對象的實際地址,然后建立一個該內核對象對應當前進程的Handle,并把它返回給caller,同時切換回用戶態(tài);因此,對于用戶態(tài)程序來說,只要且只能知道該內核對象在當前進程中的對應的Handle就可以對其進行操作了;

其次,這樣的設計是出于對OS核心數(shù)據(jù)結構(當然包括我們正在討論的內核對象)的保護;如果用戶態(tài)程序可以輕易的獲取內核數(shù)據(jù)結構的實際地址,那么對于整個OS的安全和穩(wěn)定顯然構成很大的問題;一個用戶態(tài)的誤操作可以輕易的引起整個OS的崩潰,而有了這一層的保護,崩潰的只是當前進程而不是整個系統(tǒng);

接著上面這點,也可以看出,內核對象的如此設計達到了接納OS本身的平滑演進的目的。從Windows 3.0到95/98,從NT到Win2k/XP,再到眼下的Vista/Win7,Windows操作系統(tǒng)本身發(fā)生了巨大的變化和進步,采納了無數(shù)的新技術新方法,但是它基本的系統(tǒng)應用編程接口,也就是我們所熟知的windows API,卻并沒有發(fā)生太大的改變,很多Win 3.0 這個16位OS時代的程序代碼只要當初設計規(guī)范編碼規(guī)范,稍許修改就可以在最新版的OS上運行如飛;是什么做到了這些?也就是所謂的極為重要的向后兼容性,我個人認為,把操作系統(tǒng)的重要/主要功能抽象成內核對象,并通過一套極為solid的API暴露出來,達成了這個目標。

這是一種更高層次上的面向對象,把實現(xiàn)的細節(jié),把系統(tǒng)的復雜,簡單而優(yōu)雅的封裝了起來。你只要調用CreateFile去建個文件或管道或郵槽,不用擔心當前OS是Windows 3.0還是Win7,獲得的Handle,你也不用去關心它以及它所指向的內核對象是Windows 3.0的實現(xiàn)還是Win7的實現(xiàn)。

Windows上所有的精彩幾乎都是基于這套通過內核對象概念抽象并暴露的API基礎之上,COM/OLE,這個二十年前震撼性的ABI和IPC范疇的技術規(guī)范,其中很多的設計思路也是植根于內核對象的設計理念,如COM對象的引用計數(shù)和內核對象引用計數(shù),IUnknown和Windows Handle(前者是指向某個二進制兼容的組件對象,后者引用或間接指向某個內核對象,都是對于某個復雜概念的一致性抽象表述),等等;

十年前的.net,本來是作為COM的升級版本推出,把COM/OLE的實現(xiàn)復雜性封裝在了虛擬機平臺CLR里面,而從這個虛擬機的開源實現(xiàn)SSCLI,我們可以看到大量的COM機制在.net的具體實現(xiàn)里面起了舉足輕重的作用。在這些VM中大量symbol有著COR的前綴或者后綴,COR指代什么?Common Object Runtime, 原來CLR/SSCLI的設計思路也是把OS通過虛擬機VM的形式,并通過common object向應用程序暴露功能。

小結一下,
OS內核對象API,三十年前系統(tǒng)級別的對象抽象;
COM/OLE,二十年前二進制組件級別的對象抽象;
.net/CLR, 十年前虛擬機平臺級別的對象抽象;

寫到這里倒是引起了我其他的一些思考,軟件工業(yè)界一直以來對面向對象OO是熱火朝天,特別是語言層面,從C++/Java/C#到Python/JScript,不一而足;

但是我們有沒有從根本性的設計理念上對面向對象,察納雅言了呢?

如果現(xiàn)在設計Windows這套API的任務放在大家面前,會采用內核對象/Handle方案還是直接指向OS內部數(shù)據(jù)結構的方式來暴露功能?

從三十年前的這套API的設計中,我們真的可以學到很多。


 

posted on 2010-12-01 21:28 flagman 閱讀(10214) 評論(0)  編輯 收藏 引用 所屬分類: 設計 Design操作系統(tǒng) OSCOM/COM+.net/CLR

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統(tǒng)計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99精品视频免费观看视频| 欧美午夜精品久久久久久人妖 | 欧美成人免费在线观看| 一区二区亚洲精品| 99精品国产在热久久| 一区二区在线不卡| 午夜精品在线视频| 午夜在线观看免费一区| 亚洲激情在线视频| 欧美v国产在线一区二区三区| 亚洲一区制服诱惑| 亚洲国产婷婷香蕉久久久久久99 | 欧美国产精品久久| 国产女主播一区| 亚洲摸下面视频| 亚洲欧美韩国| 国产欧美日本一区二区三区| 亚洲私人影院在线观看| 亚洲精品日韩综合观看成人91| 亚洲精品国产精品国自产观看浪潮 | 国产一区二区三区在线观看视频| 一区二区不卡在线视频 午夜欧美不卡'| 欧美凹凸一区二区三区视频| 欧美www视频在线观看| 亚洲国产三级在线| 欧美午夜一区二区福利视频| 亚洲神马久久| 久久尤物视频| 99国产精品视频免费观看一公开| 国产精品一二三| 久久网站热最新地址| 亚洲高清在线播放| 麻豆久久婷婷| 一本色道久久综合狠狠躁的推荐| 欧美xart系列高清| 99成人免费视频| 国产亚洲欧美一区二区三区| 欧美高清一区| 欧美mv日韩mv国产网站| 欧美一级在线视频| 99精品99久久久久久宅男| 欧美激情一区二区三区在线视频 | 国内精品久久久久伊人av| 欧美韩日一区| 久久久夜夜夜| 亚洲主播在线观看| 亚洲精品女av网站| 亚洲制服欧美中文字幕中文字幕| 免费高清在线一区| 欧美专区亚洲专区| 另类专区欧美制服同性| 欧美一区二区在线免费播放| 日韩午夜电影| 亚洲欧美激情视频| 亚洲伊人久久综合| 午夜精品久久久久久久99水蜜桃 | 欧美精品久久久久久久久老牛影院 | 国产亚洲欧美日韩日本| 午夜精品久久久久久久久久久久久| 亚洲第一综合天堂另类专| 91久久中文| 亚洲韩国一区二区三区| 99国产精品久久久久久久| 亚洲性夜色噜噜噜7777| 亚洲一区在线观看视频| 久久久久国产精品人| 蜜桃av一区二区| 亚洲五月婷婷| 毛片一区二区| 国产亚洲成av人在线观看导航| 欧美日韩一区国产| 国产亚洲激情视频在线| 亚洲天堂免费观看| 美女黄色成人网| 久久激情视频久久| 欧美日韩另类视频| 91久久黄色| 亚洲电影免费| 免费黄网站欧美| 国产一区美女| 久久精品99久久香蕉国产色戒| 亚洲伊人久久综合| 亚洲国产日韩在线一区模特| 久久精品青青大伊人av| 国内成+人亚洲+欧美+综合在线| 欧美日韩国产一级| 亚洲视频axxx| 亚洲一区二区欧美日韩| 国产精品国产三级国产普通话三级| 欧美日韩亚洲一区二区三区在线观看 | 久久久精品网| 亚洲第一主播视频| 欧美日韩国产影院| 亚洲伊人网站| 久久久视频精品| 亚洲激情在线观看视频免费| 欧美77777| 欧美精品www在线观看| 亚洲欧美另类在线| 久久久国产精品一区二区三区| 老司机免费视频一区二区三区| 久久综合影音| 一本色道88久久加勒比精品| 亚洲深夜福利网站| 亚洲人成小说网站色在线| 亚洲一区二区少妇| 99精品国产在热久久| 亚洲欧美第一页| 亚洲午夜久久久久久久久电影网| 久久久久久一区二区| 国产精品乱码久久久久久| 牛牛国产精品| 黄色亚洲网站| 午夜精品免费在线| 亚洲性感激情| 欧美日韩另类国产亚洲欧美一级| 精品福利免费观看| 亚洲欧美日本精品| 亚洲一区二区在线看| 欧美大片在线影院| 亚洲国产欧美在线| 欧美日韩国产bt| 亚洲精品在线视频观看| 极品少妇一区二区三区| 一区二区三区偷拍| 欧美视频精品在线| 91久久久久久国产精品| 亚洲精品一品区二品区三品区| 久久一二三四| 亚洲国产精品久久精品怡红院| 你懂的国产精品永久在线| 亚洲国产高清高潮精品美女| 欧美亚洲视频| 亚洲欧洲精品成人久久奇米网 | 国产亚洲aⅴaaaaaa毛片| 午夜精品久久| 免费观看国产成人| 夜夜狂射影院欧美极品| 欧美剧在线观看| 亚洲欧美日韩国产综合精品二区| 亚洲第一福利社区| 欧美日韩国产色视频| 午夜精品www| 亚洲国产精品久久久久婷婷884| 欧美欧美天天天天操| 亚洲欧美区自拍先锋| 欧美高清视频一区| 欧美专区在线| 亚洲香蕉在线观看| 亚洲电影自拍| 国内外成人免费激情在线视频| 亚洲成在线观看| 免费观看在线综合色| 亚洲男女自偷自拍| 亚洲视频高清| 亚洲午夜视频| 欧美亚洲网站| 亚洲美女黄网| 99精品国产一区二区青青牛奶| 亚洲最新中文字幕| 一本色道久久综合亚洲精品婷婷 | 久久不见久久见免费视频1| 亚洲精品影院在线观看| 好吊色欧美一区二区三区视频| 欧美影片第一页| 午夜精品国产精品大乳美女| 亚洲综合不卡| 欧美一级在线视频| 久久这里只有| 免费在线看一区| 欧美日韩精品欧美日韩精品| 欧美激情a∨在线视频播放| 久久在线免费观看视频| 欧美精品1区| 欧美午夜剧场| 国产精品国产三级国产普通话三级 | 欧美成人黑人xx视频免费观看| 欧美成人小视频| 亚洲精品一级| 亚洲欧美区自拍先锋| 久久中文在线| 欧美亚韩一区| 亚洲国产cao| 欧美伊久线香蕉线新在线| 农夫在线精品视频免费观看| 一区二区三区 在线观看视| 久久经典综合| 国产精品日韩在线一区| 亚洲人成免费| 亚洲国产欧美日韩精品| 欧美一级大片在线免费观看| 久久九九久久九九| 久久久久久久久久久久久久一区| 欧美国产日韩一区二区| 亚洲片在线观看| 欧美一区国产一区| 国产一区二区成人久久免费影院| 欧美日韩1区| 亚洲视频在线二区| 欧美高清自拍一区|