亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 求教語(yǔ)言跨平臺(tái)的具體解釋 [打印本頁(yè)]

作者: AI0723    時(shí)間: 2012-10-30 14:06
標(biāo)題: 求教語(yǔ)言跨平臺(tái)的具體解釋
很多地方講到跨平臺(tái),首先平臺(tái)的意義是什么?
對(duì)與操作系統(tǒng)來講是硬件,就是cpu。那么對(duì)于編程語(yǔ)言,平臺(tái)是什么?是操作系統(tǒng)嗎?
我們講linux能支持很多cpu體系結(jié)構(gòu),那么它實(shí)現(xiàn)這種硬件可移植性的方式是什么?是不是linux將許多CPU體系結(jié)構(gòu)的特性抽象出來,它的源代碼中含有這么多體系結(jié)構(gòu)的參數(shù),但對(duì)于特定的某一臺(tái)機(jī)器,內(nèi)核中一些部分也是不需要的。
另外對(duì)于語(yǔ)言的可移植性,說到C語(yǔ)言,JAVA語(yǔ)言的跨平臺(tái)可移植性,他們的實(shí)現(xiàn)方式是怎么樣的?對(duì)于JAVA,對(duì)應(yīng)一個(gè)操作系統(tǒng)是不是有它特定的JVM。也就是對(duì)于語(yǔ)言的可移植性是因?yàn)橛胁煌木幾g器運(yùn)行在不同的平臺(tái)上呢?

作者: cjaizss    時(shí)間: 2012-10-30 20:33
AI0723 發(fā)表于 2012-10-30 14:06
很多地方講到跨平臺(tái),首先平臺(tái)的意義是什么?
對(duì)與操作系統(tǒng)來講是硬件,就是cpu。那么對(duì)于編程語(yǔ)言,平臺(tái)是 ...

內(nèi)核上層的結(jié)構(gòu)統(tǒng)一,下層實(shí)現(xiàn)因硬件而異.
C語(yǔ)言在源碼上可以實(shí)現(xiàn)跨平臺(tái)
作者: AI0723    時(shí)間: 2012-10-30 23:51
回復(fù) 2# cjaizss


   那C語(yǔ)言在源代碼的層次上可以跨平臺(tái),是怎么實(shí)現(xiàn)的?
為什么說C語(yǔ)言是可以直接操作硬件的語(yǔ)言,那我們?cè)诰幾g環(huán)境下用C語(yǔ)言寫成源代碼,為什么還跟所在操作系統(tǒng)有關(guān)系呢,很多情況都需要系統(tǒng)調(diào)用,比如對(duì)顯卡的操作,可以不通過系統(tǒng)調(diào)用直接寫個(gè)C程序嗎?那為什么操作系統(tǒng)又說所有對(duì)底層硬件的操作都要通過系統(tǒng)調(diào)用呢?
作者: cjaizss    時(shí)間: 2012-10-31 00:41
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss
驅(qū)動(dòng)也可以用C語(yǔ)言寫
作者: sqfasd    時(shí)間: 2012-10-31 10:38
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss

c語(yǔ)言在源碼上是可移植的。
這句話意思是c語(yǔ)言本身是可移植的,c語(yǔ)言本身是操作系統(tǒng)無關(guān)的。這里說的c是指ANSI C
但是c語(yǔ)言的標(biāo)準(zhǔn)庫(kù)有一部分是需要操作系統(tǒng)api的支持,但這都是后端和運(yùn)行時(shí)的事情,主要由編譯器來幫你完成。所以不同平臺(tái)的編譯器和libc是不一樣的。
如果你在你的程序里引用到特定平臺(tái)的api或庫(kù)(比如說在win下引用windows.h,在linux下引用linux/目錄下的頭文件),那你的程序還是不可移植的。
java的可移植性是由不同平臺(tái)不同的虛擬機(jī)來實(shí)現(xiàn)的,因?yàn)閖ava編譯成特殊的字節(jié)碼,然后由虛擬機(jī)解釋。
不是有句話嗎,c是一次編寫,處處編譯。java是一次編寫出處運(yùn)行。
作者: sqfasd    時(shí)間: 2012-10-31 10:50
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss
為什么說C語(yǔ)言是可以直接操作硬件的語(yǔ)言,那我們?cè)诰幾g環(huán)境下用C語(yǔ)言寫成源代碼,為什么還跟所在操作系統(tǒng)有關(guān)系呢,很多情況都需要系統(tǒng)調(diào)用,比如對(duì)顯卡的操作,可以不通過系統(tǒng)調(diào)用直接寫個(gè)C程序嗎?那為什么操作系統(tǒng)又說所有對(duì)底層硬件的操作都要通過系統(tǒng)調(diào)用呢?

保護(hù)模式下,在用戶態(tài)好像不能直接訪問硬件的吧,內(nèi)核態(tài)是可以的
實(shí)模式的操作系統(tǒng)是可以直接訪問硬件的

作者: accessory    時(shí)間: 2012-10-31 14:06
sqfasd 發(fā)表于 2012-10-31 10:50
保護(hù)模式下,在用戶態(tài)好像不能直接訪問硬件的吧,內(nèi)核態(tài)是可以的
實(shí)模式的操作系統(tǒng)是可以直接訪問硬件的 ...


保護(hù)模式下,用戶態(tài)也可以直接訪問硬件。至少X86上可以。
WINDOWS 不行是因?yàn)镺S作死了
LINUX 下面調(diào)用個(gè)IOPL(3) 就可以訪問硬件了。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2