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

  免費注冊 查看新帖 |

Chinaunix

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

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

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

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

內核上層的結構統(tǒng)一,下層實現因硬件而異.
C語言在源碼上可以實現跨平臺

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


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

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

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

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

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

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

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


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

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP