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

Chinaunix

標題: 編譯器對應的平臺是指cpu還是操作系統(tǒng)? [打印本頁]

作者: AI0723    時間: 2013-05-17 17:57
標題: 編譯器對應的平臺是指cpu還是操作系統(tǒng)?
現(xiàn)在有沒有直接對CPU指令集編程的編譯器,即不通過系統(tǒng)調(diào)用實現(xiàn)硬件級的操作。
當初沒有操作系統(tǒng)的時候編譯器的環(huán)境是什么?
作者: dengbao2001    時間: 2013-05-17 18:11
先粘貼過來,再替換吧
作者: cjaizss    時間: 2013-05-20 09:11
AI0723 發(fā)表于 2013-05-17 17:57
現(xiàn)在有沒有直接對CPU指令集編程的編譯器,即不通過系統(tǒng)調(diào)用實現(xiàn)硬件級的操作。
當初沒有操作系統(tǒng)的時候編譯 ...

你沒搞明白之間的關系
作者: cjaizss    時間: 2013-05-20 09:13
AI0723 發(fā)表于 2013-05-17 17:57
現(xiàn)在有沒有直接對CPU指令集編程的編譯器,即不通過系統(tǒng)調(diào)用實現(xiàn)硬件級的操作。
當初沒有操作系統(tǒng)的時候編譯 ...

第一,接口的規(guī)范性。
第二,多用戶操作系統(tǒng)下,誰想干什么就干什么,那不是亂套了?小兵都可以代替皇帝做事。
作者: AI0723    時間: 2013-05-30 23:05
cjaizss 發(fā)表于 2013-05-20 09:11
你沒搞明白之間的關系

版大,可能我描述的不清楚,我的意思是,編譯器開發(fā)是在操作系統(tǒng)之前,最初的情況是用機器語言寫一個編譯器,運行在某個cpu的硬件平臺上,單任務運行,這時候并沒有操作系統(tǒng)的概念,然后用這個編譯器擴展到其他高級語言編譯器,然后寫出各種各樣的程序,程序多了,并且這時候的cpu支持了多道任務,那么這時候就有牛人想寫操作系統(tǒng)了,管理各種各樣的程序,比如gun開發(fā)出gcc等工具的時候,gun的操作系統(tǒng)并沒有做出來,那么linux是用gcc編譯出來的對么,那么gcc并沒有依賴linux,為啥現(xiàn)在的gcc在linux中編譯程序時必須要通過系統(tǒng)調(diào)用才能使應用程序和硬件打交道呢?是最初編譯linux 的gcc和今天集成在linux的gcc不同了嗎?
作者: cjaizss    時間: 2013-05-31 09:00
AI0723 發(fā)表于 2013-05-30 23:05
版大,可能我描述的不清楚,我的意思是,編譯器開發(fā)是在操作系統(tǒng)之前,最初的情況是用機器語言寫一個編譯 ...

完全可以在邏輯下搞個編譯器啊,既然已經(jīng)綁定到OS上執(zhí)行了,那就后來就只好遵循OS的規(guī)則
作者: AI0723    時間: 2013-05-31 10:54
cjaizss 發(fā)表于 2013-05-31 09:00
完全可以在邏輯下搞個編譯器啊,既然已經(jīng)綁定到OS上執(zhí)行了,那就后來就只好遵循OS的規(guī)則

版大,有點不懂,在邏輯下搞個編譯器什么意思呢?綁定到OS的gcc和編譯OS的gcc有什么不同呢?不是說gcc從開發(fā)出來到現(xiàn)在沒太變過么。
作者: cjaizss    時間: 2013-05-31 12:09
AI0723 發(fā)表于 2013-05-31 10:54
版大,有點不懂,在邏輯下搞個編譯器什么意思呢?綁定到OS的gcc和編譯OS的gcc有什么不同呢?不是說gcc從開 ...

gcc既然可以運行在linux上,為什么就不能運行在UNIX上?
編譯編譯。說白了,不就是文字翻譯,既然linux可干這事,UNIX也可干,邏輯也可干,連打孔機理論上都沒問題。
作者: AI0723    時間: 2013-05-31 12:38
cjaizss 發(fā)表于 2013-05-31 12:09
gcc既然可以運行在linux上,為什么就不能運行在UNIX上?
編譯編譯。說白了,不就是文字翻譯,既然linux可 ...

你說的是裸機吧,對呀,我的意思就是這個,為啥不能用編譯器直接編譯出在裸機上運行的程序?
作者: cjaizss    時間: 2013-05-31 12:54
AI0723 發(fā)表于 2013-05-31 12:38
你說的是裸機吧,對呀,我的意思就是這個,為啥不能用編譯器直接編譯出在裸機上運行的程序?

能啊,誰說不能?
作者: AI0723    時間: 2013-05-31 13:05
cjaizss 發(fā)表于 2013-05-31 12:54
能啊,誰說不能。

那這樣的編譯器現(xiàn)在能找到不?
作者: cjaizss    時間: 2013-05-31 22:04
本帖最后由 cjaizss 于 2013-05-31 22:06 編輯
AI0723 發(fā)表于 2013-05-31 13:05
那這樣的編譯器現(xiàn)在能找到不?

隨便一個編譯器都成,你知道所謂“編譯”的步驟是什么嗎?
預編譯->編譯->匯編->鏈接
這個順序各步驟的意義你明白嗎?
作者: AI0723    時間: 2013-06-01 01:07
cjaizss 發(fā)表于 2013-05-31 22:04
隨便一個編譯器都成,你知道所謂“編譯”的步驟是什么嗎?
預編譯->編譯->匯編->鏈接
這個順序各步驟的 ...

跟這個有關系嗎?我有一臺華碩的筆記本,處理器是酷睿T2370,我在這個本子上不想裝任何操作系統(tǒng),只想運行一個小程序,比如顯示hello兩個字,怎么實現(xiàn)呢?就單純指在另一臺計算機上編譯程序的過程,忽略了做IMAGE這種東西的步驟,然后轉(zhuǎn)移到我筆記本上運行,那個代碼和跟我筆記本上有操作系統(tǒng)編譯器的代碼一致么?



另外關于編譯的步驟我確實也有疑惑,為啥這樣設定呢,高級語言為啥不能直接到機器語言,跳過匯編的步驟,好像這30年計算機各方面發(fā)展巨大,但編譯器的前進卻是舉步維艱,編譯是不是較其他方面更難啊。

作者: cjaizss    時間: 2013-06-02 22:25
AI0723 發(fā)表于 2013-06-01 01:07
跟這個有關系嗎?我有一臺華碩的筆記本,處理器是酷睿T2370,我在這個本子上不想裝任何操作系統(tǒng),只想運行 ...

先明白了我說的之后再來想你這個帖子中問的東西
作者: AI0723    時間: 2013-06-03 01:02
cjaizss 發(fā)表于 2013-06-02 22:25
先明白了我說的之后再來想你這個帖子中問的東西

版大,感謝你忙碌之中的答復,我在學習linux,很菜,能不能解釋下你說過的。非常感謝
作者: cjaizss    時間: 2013-06-03 08:43
AI0723 發(fā)表于 2013-06-03 01:02
版大,感謝你忙碌之中的答復,我在學習linux,很菜,能不能解釋下你說過的。非常感謝

編譯器就是語言翻譯機
只不過按你寫的翻譯而已,你寫的程序才決定你的意圖
——是用在操作系統(tǒng)層次上?
——是用在裸機上?
作者: duanlin    時間: 2013-06-03 09:49
我覺得打個比方才能說的更清楚。

編譯器就是把線編織成衣服的紡織機。它可以編出來一條內(nèi)褲給光屁屁(裸機)的人穿(運行)。
也可以給穿著內(nèi)褲的人(有操作系統(tǒng))編出來一條長褲套在外面穿。

而這臺紡織機運轉(zhuǎn)起來需要人操作,而這個人既可以光屁屁也可以穿著內(nèi)褲和褲子。

作者: AI0723    時間: 2013-06-03 10:15
cjaizss 發(fā)表于 2013-06-03 08:43
編譯器就是語言翻譯機
只不過按你寫的翻譯而已,你寫的程序才決定你的意圖
——是用在操作系統(tǒng)層次上? ...

我舉得例子是為了闡述那個疑問,編譯出linux系統(tǒng)的GCC和linux出現(xiàn)后綁定在其中的GCC有沒有區(qū)別,如果有的話,最大的區(qū)別在哪?
作者: cjaizss    時間: 2013-06-03 10:46
本帖最后由 cjaizss 于 2013-06-03 10:47 編輯
AI0723 發(fā)表于 2013-06-03 10:15
我舉得例子是為了闡述那個疑問,編譯出linux系統(tǒng)的GCC和linux出現(xiàn)后綁定在其中的GCC有沒有區(qū)別,如果有的 ...

完全沒有區(qū)別
只不過你在寫linux上的程序的時候這里用下庫,那里用下庫,但代碼是你寫的,編譯器按你的意圖干事
作者: tsh185    時間: 2013-06-05 17:44
計算機 開機加電 運行的不是 操作系統(tǒng)哦,  是 bootloader  也就是 bootloader 是在操作系統(tǒng)之前運行的哦 裸機哦 , 二進制格式
作者: li8848li    時間: 2013-06-07 18:23
cjaizss 發(fā)表于 2013-06-03 10:46
完全沒有區(qū)別
只不過你在寫linux上的程序的時候這里用下庫,那里用下庫,但代碼是你寫的,編譯器按你的意 ...


依我理解,就這個回復算是說到樓主想問的點上了。
作者: cjaizss    時間: 2013-06-07 18:27
li8848li 發(fā)表于 2013-06-07 18:23
依我理解,就這個回復算是說到樓主想問的點上了。

我前面所說那些,是指正樓主,因為他極有可能是把問題想歪了。
作者: AI0723    時間: 2013-06-21 08:36
回復 22# cjaizss


版大,最近我看了點編譯方面的東西,看到交叉編譯,說是其是不得以而為之的事情,至今無法生成惠普公司專有的som格式的可執(zhí)行文件,因此我們根本無法做目的平臺為HPPA-HPUX的交叉編譯,這句話跟您解釋的好像有些差異,我又有點糊涂了,麻煩了。
作者: cjaizss    時間: 2013-06-21 16:58
AI0723 發(fā)表于 2013-06-21 08:36
回復 22# cjaizss

哪句差異了?
作者: yslitao    時間: 2013-06-21 20:53
版大     預編譯->編譯->匯編 ->鏈接                假如我不做連接這步 匯編出來代碼可以直接運行在裸機上嗎?    如果可以我該怎么實驗
作者: cjaizss    時間: 2013-06-21 22:06
yslitao 發(fā)表于 2013-06-21 20:53
版大     預編譯->編譯->匯編 ->鏈接                假如我不做連接這步 匯編出來代碼可以直接運行在裸機上 ...

哦,一般來說匯編器出來的結(jié)果會是某種格式的文件,把其中的opcode復制出來,然后再適當修改一下運行.
做這件事情有個前提,就是你要知道你在干什么。
作者: yslitao    時間: 2013-06-22 14:37
呵呵             對編譯過程理解有很多矛盾地方,所以想實驗實驗,找出理解偏差地方。         能不能就那helloword這個小c程序 做例子,我匯編后不連接,想直接在裸機上運行。需要修改哪里為啥要修改 。   我有點鉆牛角尖,如果能說說的話很感謝




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