PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   想問個關於linux的問題.. (https://www.pcdvd.com.tw/showthread.php?t=547019)

morphine0821 2005-10-10 01:29 PM

引用:
作者linkin228
唔唔......其實這是我的報告啦...只是其他題目都做好了,就剩下這個問題我
查不到資料..也想不出來Orz||||想麻煩78區懂LINUX的大大告訴我些可以
解開這問題的資料....問題是"Linux 也是一種作業系統,但是它卻可在各種
不同的機器上面運行的, 為什麼?"

呼!當了這麼久的潛水眾!!終於在78區首po了XD第一次就PO這種文....真糟!

偉大的78眾~~~~~~拜託你們啦!!!


因為有人寫呀.....
沒人寫當然就不支援囉...

hodala 2005-10-10 01:43 PM

引用:
作者linkin228
唔唔......其實這是我的報告啦...只是其他題目都做好了,就剩下這個問題我
查不到資料..也想不出來Orz||||想麻煩78區懂LINUX的大大告訴我些可以
解開這問題的資料....問題是"Linux 也是一種作業系統,但是它卻可在各種
不同的機器上面運行的, 為什麼?"

呼!當了這麼久的潛水眾!!終於在78區首po了XD第一次就PO這種文....真糟!

偉大的78眾~~~~~~拜託你們啦!!!


很多人講的都不是很正確........


約在1970年,Bell Lab的Ken Thompson用asm寫了一個unics,之後Dennis Ritchie把unics用C重寫,後來並以Dennis所寫的為基礎來發成正式版本,並稱為Unix.........

因為Dennis用C寫,所以導致Unix具有強大的portability.
注意一下,這邊所指的portability,是以asm跟C的觀點來看的,講白話一點,用asm的話幾乎要全改,用C的話只要改底層的部份,像是在最底層的kernel,compiler方面,還是要做出適合自己機器的修改.
像是Berkeley的Bill Joy把Unix拿來改成符合自己機器的版本,此版本即是頂頂有名的BSD.

我已經點出你的解答了,就是任何OS都算是machine dependent,像是linux,他有x86版本有PPC版本,有Alpha版本,有SPARC版本......有任何的embedded system版本


1987年Richard Stallman完成了GCC,以及其他重大工具,如bash,emacs,gnuclib.......
不講古了

booger 2005-10-10 03:40 PM

題目真奇怪......

nagual 2005-10-10 05:03 PM

引用:
作者linkin228
唔唔......其實這是我的報告啦...只是其他題目都做好了,就剩下這個問題我
查不到資料..也想不出來Orz||||想麻煩78區懂LINUX的大大告訴我些可以
解開這問題的資料....問題是"Linux 也是一種作業系統,但是它卻可在各種
不同的機器上面運行的, 為什麼?"

呼!當了這麼久的潛水眾!!終於在78區首po了XD第一次就PO這種文....真糟!

偉大的78眾~~~~~~拜託你們啦!!!


對於一般應用程式來說, Linux Kernel所提供的System Call是一致的, 不會對
不同的機器而有所不同, 這個部份用一致的interface來達成machine independent.

但是, Linux kernel也有machine dependent的code, 很多是由組合語言寫成,
但這都是低階的部份, 最後還是會用同一種interface把這些不同的地方, 包裝起來,
因此一般的應用程式發展者, 或者甚至驅動程式發展者, 都能用同樣的System
Call和Function Call.

Linux能在很多機器上跑, 就是有人把低階不同的部份, 去實作出一致的
interface/function call. That's all.

Xforce 2005-10-10 05:22 PM

引用:
作者nagual
對於一般應用程式來說, Linux Kernel所提供的System Call是一致的, 不會對
不同的機器而有所不同, 這個部份用一致的interface來達成machine independent.

但是, Linux kernel也有machine dependent的code, 很多是由組合語言寫成,
但這都是低階的部份, 最後還是會用同一種interface把這些不同的地方, 包裝起來,
因此一般的應用程式發展者, 或者甚至驅動程式發展者, 都能用同樣的System
Call和Function Call.

Linux能在很多機器上跑, 就是有人把低階不同的部份, 去實作出一致的
interface/function call. That's all.

沒錯....GOOD同意

shukae 2005-10-10 06:22 PM

引用:
作者capitalm
厄....請問 C 語言不算高階語言那要算什麼
當然它還是有 architecture dependent 的部份 assembly
但是大部分都是用 C 寫成的

所有 architecture 下的 linux 應該都是用 gcc compile 的
只是 gcc 有不同 architecture 的版本而已


我不認為C算是高階語言
因為C的做法只是把一些組合語言指令給包裝起來成一個指令
而且包裝也不會太複雜, 大多翻譯成組合語言也沒幾個指令
比其起他的高階語言來說, C算是非常接近組合語言的說 :ase

LucasY 2005-10-10 07:44 PM

引用:
作者shukae
我不認為C算是高階語言
因為C的做法只是把一些組合語言指令給包裝起來成一個指令
而且包裝也不會太複雜, 大多翻譯成組合語言也沒幾個指令
比其起他的高階語言來說, C算是非常接近組合語言的說 :ase


C語言有高可讀性,易寫,維護容易(跟組語比),不需要深入了解機器特性,使用Compiler,都是高階語言的特徵,定義合了就是了,如果每個人都我認為,那敎程式語言合計概的都會瘋掉啦XD

ElvisTu 2005-10-10 07:53 PM

引用:
作者shukae
我不認為C算是高階語言
因為C的做法只是把一些組合語言指令給包裝起來成一個指令
而且包裝也不會太複雜, 大多翻譯成組合語言也沒幾個指令
比其起他的高階語言來說, C算是非常接近組合語言的說 :ase

C是高階語言沒錯…
高階語言本來就是把機器語言包裝成人易懂的指令…

msnskyline 2005-10-10 08:14 PM

引用:
作者shukae
因為有不同的compile可以轉換kernel指令碼
所以跑起來是ok的 :p


Linux是用GCC寫的
只是把組合語言稍微包裝過而已
其實稱不上是高階語言



哈欠中............



閣下如果涉及這個領域,應該知道網路上這個領域的人都不會亂回答問題

特別對新手或是剛要入門者




最重要的是提供錯誤的觀念比起不回答更糟糕

rakuentw 2005-10-10 08:47 PM

YES ......C 當然是高階語言


所有的時間均為GMT +8。 現在的時間是05:55 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2024。