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

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2441 | 回復(fù): 6
打印 上一主題 下一主題

求教語言跨平臺的具體解釋 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-10-30 14:06 |只看該作者 |倒序瀏覽
很多地方講到跨平臺,首先平臺的意義是什么?
對與操作系統(tǒng)來講是硬件,就是cpu。那么對于編程語言,平臺是什么?是操作系統(tǒng)嗎?
我們講linux能支持很多cpu體系結(jié)構(gòu),那么它實現(xiàn)這種硬件可移植性的方式是什么?是不是linux將許多CPU體系結(jié)構(gòu)的特性抽象出來,它的源代碼中含有這么多體系結(jié)構(gòu)的參數(shù),但對于特定的某一臺機(jī)器,內(nèi)核中一些部分也是不需要的。
另外對于語言的可移植性,說到C語言,JAVA語言的跨平臺可移植性,他們的實現(xiàn)方式是怎么樣的?對于JAVA,對應(yīng)一個操作系統(tǒng)是不是有它特定的JVM。也就是對于語言的可移植性是因為有不同的編譯器運(yùn)行在不同的平臺上呢?

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
2 [報告]
發(fā)表于 2012-10-30 20:33 |只看該作者
AI0723 發(fā)表于 2012-10-30 14:06
很多地方講到跨平臺,首先平臺的意義是什么?
對與操作系統(tǒng)來講是硬件,就是cpu。那么對于編程語言,平臺是 ...

內(nèi)核上層的結(jié)構(gòu)統(tǒng)一,下層實現(xiàn)因硬件而異.
C語言在源碼上可以實現(xiàn)跨平臺

論壇徽章:
0
3 [報告]
發(fā)表于 2012-10-30 23:51 |只看該作者
回復(fù) 2# cjaizss


   那C語言在源代碼的層次上可以跨平臺,是怎么實現(xiàn)的?
為什么說C語言是可以直接操作硬件的語言,那我們在編譯環(huán)境下用C語言寫成源代碼,為什么還跟所在操作系統(tǒng)有關(guān)系呢,很多情況都需要系統(tǒng)調(diào)用,比如對顯卡的操作,可以不通過系統(tǒng)調(diào)用直接寫個C程序嗎?那為什么操作系統(tǒng)又說所有對底層硬件的操作都要通過系統(tǒng)調(diào)用呢?

論壇徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-03 06:20:00數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-08-04 06:20:00
4 [報告]
發(fā)表于 2012-10-31 00:41 |只看該作者
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss
驅(qū)動也可以用C語言寫

論壇徽章:
0
5 [報告]
發(fā)表于 2012-10-31 10:38 |只看該作者
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss

c語言在源碼上是可移植的。
這句話意思是c語言本身是可移植的,c語言本身是操作系統(tǒng)無關(guān)的。這里說的c是指ANSI C
但是c語言的標(biāo)準(zhǔn)庫有一部分是需要操作系統(tǒng)api的支持,但這都是后端和運(yùn)行時的事情,主要由編譯器來幫你完成。所以不同平臺的編譯器和libc是不一樣的。
如果你在你的程序里引用到特定平臺的api或庫(比如說在win下引用windows.h,在linux下引用linux/目錄下的頭文件),那你的程序還是不可移植的。
java的可移植性是由不同平臺不同的虛擬機(jī)來實現(xiàn)的,因為java編譯成特殊的字節(jié)碼,然后由虛擬機(jī)解釋。
不是有句話嗎,c是一次編寫,處處編譯。java是一次編寫出處運(yùn)行。

論壇徽章:
0
6 [報告]
發(fā)表于 2012-10-31 10:50 |只看該作者
AI0723 發(fā)表于 2012-10-30 23:51
回復(fù) 2# cjaizss
為什么說C語言是可以直接操作硬件的語言,那我們在編譯環(huán)境下用C語言寫成源代碼,為什么還跟所在操作系統(tǒng)有關(guān)系呢,很多情況都需要系統(tǒng)調(diào)用,比如對顯卡的操作,可以不通過系統(tǒng)調(diào)用直接寫個C程序嗎?那為什么操作系統(tǒng)又說所有對底層硬件的操作都要通過系統(tǒng)調(diào)用呢?

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

論壇徽章:
0
7 [報告]
發(fā)表于 2012-10-31 14:06 |只看該作者
sqfasd 發(fā)表于 2012-10-31 10:50
保護(hù)模式下,在用戶態(tài)好像不能直接訪問硬件的吧,內(nèi)核態(tài)是可以的
實模式的操作系統(tǒng)是可以直接訪問硬件的 ...


保護(hù)模式下,用戶態(tài)也可以直接訪問硬件。至少X86上可以。
WINDOWS 不行是因為OS作死了
LINUX 下面調(diào)用個IOPL(3) 就可以訪問硬件了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP