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

思考系統(tǒng)API設(shè)計(jì)的問(wèn)題

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

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



在不同的進(jìn)程中,詢(xún)問(wèn)同一個(gè)內(nèi)核對(duì)象的實(shí)際地址(無(wú)論是線(xiàn)性地址還是物理地址),是無(wú)意義的:

首先,內(nèi)核對(duì)象只能由在內(nèi)核態(tài)下的例程才能直接訪(fǎng)問(wèn),在我們?nèi)粘5拇a中,所調(diào)用的Windows API,比如CreateFile, (注意調(diào)用剛開(kāi)始時(shí)是處于用戶(hù)態(tài)下的),一般都會(huì)在ntdll.dll中找到對(duì)應(yīng)的內(nèi)核函數(shù)或例程,接著系統(tǒng)切換到內(nèi)核態(tài),開(kāi)始調(diào)用實(shí)際對(duì)應(yīng)的內(nèi)核函數(shù)(KiCreateFile),這個(gè)時(shí)候才會(huì)去訪(fǎng)問(wèn)內(nèi)核對(duì)象的實(shí)際地址,然后建立一個(gè)該內(nèi)核對(duì)象對(duì)應(yīng)當(dāng)前進(jìn)程的Handle,并把它返回給caller,同時(shí)切換回用戶(hù)態(tài);因此,對(duì)于用戶(hù)態(tài)程序來(lái)說(shuō),只要且只能知道該內(nèi)核對(duì)象在當(dāng)前進(jìn)程中的對(duì)應(yīng)的Handle就可以對(duì)其進(jìn)行操作了;

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

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

這是一種更高層次上的面向?qū)ο螅褜?shí)現(xiàn)的細(xì)節(jié),把系統(tǒng)的復(fù)雜,簡(jiǎn)單而優(yōu)雅的封裝了起來(lái)。你只要調(diào)用CreateFile去建個(gè)文件或管道或郵槽,不用擔(dān)心當(dāng)前OS是Windows 3.0還是Win7,獲得的Handle,你也不用去關(guān)心它以及它所指向的內(nèi)核對(duì)象是Windows 3.0的實(shí)現(xiàn)還是Win7的實(shí)現(xiàn)。

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

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

小結(jié)一下,
OS內(nèi)核對(duì)象API,三十年前系統(tǒng)級(jí)別的對(duì)象抽象;
COM/OLE,二十年前二進(jìn)制組件級(jí)別的對(duì)象抽象;
.net/CLR, 十年前虛擬機(jī)平臺(tái)級(jí)別的對(duì)象抽象;

寫(xiě)到這里倒是引起了我其他的一些思考,軟件工業(yè)界一直以來(lái)對(duì)面向?qū)ο驩O是熱火朝天,特別是語(yǔ)言層面,從C++/Java/C#到Python/JScript,不一而足;

但是我們有沒(méi)有從根本性的設(shè)計(jì)理念上對(duì)面向?qū)ο螅旒{雅言了呢?

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

從三十年前的這套API的設(shè)計(jì)中,我們真的可以學(xué)到很多。


 

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

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

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(1)

隨筆分類(lèi)

隨筆檔案

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一区在线直播| 亚洲成人在线免费| 在线不卡中文字幕播放| 国产乱码精品一区二区三区五月婷 | 日韩视频专区| 在线一区欧美| 国产亚洲精品久久久久久| 99re66热这里只有精品3直播 | 欧美大片一区二区| 欧美日本国产在线| 国产精品福利在线| 国产日韩欧美在线视频观看| 国内激情久久| 99人久久精品视频最新地址| 午夜欧美大片免费观看| 久久亚洲精选| 日韩亚洲精品视频| 欧美在线一区二区| 女同性一区二区三区人了人一| 欧美人与性动交a欧美精品| 国产欧美va欧美va香蕉在| 国内精品久久久久久久97牛牛| 亚洲国产一区二区在线| 午夜综合激情| 亚洲日韩第九十九页| 国产精品99久久久久久有的能看| 欧美一区二区视频在线| 欧美日本一道本| 伊人成人在线视频| 亚洲一区二区三区乱码aⅴ| 久久久最新网址| 中文一区二区| 欧美激情在线狂野欧美精品| 国产香蕉97碰碰久久人人| 亚洲精品中文字幕在线观看| 久久精品91| 国产精品99久久不卡二区 | 久久三级福利| 国产欧美日韩精品丝袜高跟鞋| 亚洲毛片一区二区| 久久综合久久久| 亚洲男人的天堂在线aⅴ视频| 欧美国产视频在线观看| 激情欧美亚洲| 久久精品国产一区二区电影| 一区二区三区日韩精品| 欧美黄网免费在线观看| 在线精品观看| 久久深夜福利免费观看| 亚洲永久精品大片| 国产精品久久97| 国产精品99久久久久久人 | 亚洲高清视频一区| 久久久国产精品一区二区中文| 国产精品成av人在线视午夜片| 亚洲人午夜精品免费| 美女脱光内衣内裤视频久久网站| 午夜免费久久久久| 亚洲综合色网站| 亚洲视频久久| 欧美三级视频在线播放| 一区二区三区日韩欧美| 国产精品欧美久久久久无广告| 精久久久久久久久久久| 久久国产精品久久久久久| 亚洲伊人伊色伊影伊综合网| 欧美日韩精品系列| 在线亚洲免费| 亚洲无人区一区| 国产精品乱人伦中文| 先锋影音一区二区三区| 亚洲欧美在线一区二区| 狠狠综合久久av一区二区老牛| 老**午夜毛片一区二区三区| 久久婷婷国产麻豆91天堂| 亚洲全部视频| 一区二区精品国产| 国产美女精品| 欧美成人国产va精品日本一级| 欧美va天堂| 小黄鸭精品密入口导航| 久久精品国产成人| 91久久国产自产拍夜夜嗨| 亚洲精品免费网站| 国产九区一区在线| 免费在线国产精品| 欧美日韩免费| 久久精品国产一区二区电影 | 欧美一级在线播放| 在线观看日韩av先锋影音电影院| 蜜臀va亚洲va欧美va天堂| 欧美成人嫩草网站| 午夜精品久久久久久| 久久午夜av| 午夜精品99久久免费| 欧美在线播放高清精品| 亚洲精品一区二区三区婷婷月| 一区二区三区欧美在线| 黄色成人精品网站| 一本到高清视频免费精品| 国产一二精品视频| 日韩视频专区| 亚洲电影毛片| 午夜亚洲伦理| 夜夜嗨一区二区| 久久久久久999| 欧美在线短视频| 欧美日韩黄色大片| 久久综合成人精品亚洲另类欧美 | 欧美一区二区三区啪啪| aa级大片欧美| 久久久噜噜噜久噜久久| 亚洲午夜精品久久| 鲁鲁狠狠狠7777一区二区| 羞羞色国产精品| 欧美日韩免费视频| 欧美国产国产综合| 国产一区二区三区四区三区四| 亚洲一区在线播放| 一本色道久久综合亚洲精品小说 | 91久久国产综合久久蜜月精品| 亚洲天堂成人在线观看| 影音先锋成人资源站| 午夜在线一区二区| 一区二区欧美亚洲| 欧美激情精品久久久久久黑人 | 亚洲成人在线视频网站| 亚洲一区二区三区四区在线观看 | 在线免费观看日本一区| 欧美一区午夜精品| 欧美诱惑福利视频| 国产精品日韩在线观看| 99精品欧美| 亚洲深夜福利| 欧美午夜电影完整版| 亚洲每日更新| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品伦一区| 亚洲一区二区欧美| 香蕉久久精品日日躁夜夜躁| 欧美四级电影网站| 99国产精品视频免费观看一公开| 一区二区三区波多野结衣在线观看| 麻豆精品视频在线观看视频| 久久婷婷久久一区二区三区| 国产在线精品成人一区二区三区| 午夜精品在线看| 久久五月激情| 亚洲国产精品成人一区二区| 老司机午夜精品| 亚洲欧洲日韩综合二区| 一区二区三区欧美成人| 欧美久久视频| 亚洲一区二区欧美日韩| 久久国产88| 亚洲国产精品黑人久久久| 欧美激情视频给我| 亚洲天天影视| 久久综合一区二区| 亚洲每日在线| 国产精品日韩欧美| 久久精品一本| 亚洲三级影院| 欧美在线一区二区三区| 亚洲二区在线观看| 欧美日韩综合| 免费美女久久99| 欧美日韩三区| 欧美在线网址| 亚洲人成人99网站| 亚洲欧美综合另类中字| 在线精品国精品国产尤物884a| 免费一级欧美在线大片| 一区二区三区成人| 蜜桃精品一区二区三区| 亚洲图中文字幕| 在线观看的日韩av| 一区二区三区免费网站| 国产裸体写真av一区二区| 久久综合中文字幕| 亚洲综合激情| 亚洲国产精品久久久久秋霞影院| 亚洲一二三四久久| 亚洲欧洲三级电影| 国产精品自在在线| 欧美第一黄网免费网站| 欧美一级视频精品观看| 亚洲美女免费精品视频在线观看| 久久国产精品99精品国产| 亚洲人成网站999久久久综合| 国产日韩欧美精品一区| 欧美日韩精品一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 中日韩视频在线观看| 欧美激情一区二区三区在线视频| 欧美一区二区三区在线看| 一本色道精品久久一区二区三区| 一区二区三区在线看| 国产婷婷色综合av蜜臀av| 国产精品黄色|