作者 主題: centos 4 使用 gcc4 編的 kernel 好嗎  (閱讀 2087 次)

0 會員 與 1 訪客 正在閱讀本文。

acty

  • 鑽研的研究生
  • *****
  • 文章數: 694
    • 檢視個人資料
    • UNIX 管理者的學習紀錄
centos 4 使用 gcc4 編的 kernel 好嗎
« 於: 2012-01-14 22:33 »
不好意思  請問有人在 centos 4 使用 gcc4 編的 kernel?

在 centos 4 , gcc 預定是 3, 而且也是用 gcc 3 編的

我不太知道這樣做   在執行某些程式是否會有一些奇怪的問題

所以想問問看:)
~~破窗計畫來囉~~~

學習與挑戰是我的樂趣... HIT!!
我知道的不多  但歡迎大家以起來討論

UNIX 管理者的學習紀錄 - http://actychen.wordpress.com

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5394
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
Re: centos 4 使用 gcc4 編的 kernel 好嗎
« 回覆 #1 於: 2012-01-14 22:51 »
難道 gcc4 在 centos4 中編出來的 object code 會與 centos 6 編出來的不一樣嗎?
同一個程式.... 應該只會編出同樣的碼出來吧.

rainday

  • 鑽研的研究生
  • *****
  • 文章數: 738
  • 性別: 男
  • enhancing and optimizing
    • 檢視個人資料
Re: centos 4 使用 gcc4 編的 kernel 好嗎
« 回覆 #2 於: 2012-01-14 23:52 »
應該要看你搭配gcc compile的kernel是哪個版本的
不同的kernel的kernel headers是有差異的
kernel headers又會影響到你某些服務的compile及功能
如果你其他服務都是安裝rpm等,已是binary的檔案,影響可能就比較少

當然整個前提是你能compile成功你的kernel , 和你的gcc版本
還是你是在發展平台上compile好,再放回centos4的系統內?
做法不同可能也會有所差異
<0  =_=  Don't learn to hack , hack to learn.

acty

  • 鑽研的研究生
  • *****
  • 文章數: 694
    • 檢視個人資料
    • UNIX 管理者的學習紀錄
Re: centos 4 使用 gcc4 編的 kernel 好嗎
« 回覆 #3 於: 2012-01-15 23:11 »
謝謝 rainday , 一下就懂我的想法

centos 4, 用原本的 gcc3.4.6 編 linux kernel 2.6.35.X 會失敗
後來知道這是 know issue , 解法就是換 gcc ,

我只是擔心我們一些 tools 會不會受 kernel 而影響
以我目前的認知應該是不會  但我想多了解其他人實務上的經驗
~~破窗計畫來囉~~~

學習與挑戰是我的樂趣... HIT!!
我知道的不多  但歡迎大家以起來討論

UNIX 管理者的學習紀錄 - http://actychen.wordpress.com

rainday

  • 鑽研的研究生
  • *****
  • 文章數: 738
  • 性別: 男
  • enhancing and optimizing
    • 檢視個人資料
Re: centos 4 使用 gcc4 編的 kernel 好嗎
« 回覆 #4 於: 2012-01-16 00:09 »
如果服務及tools相依於kernel的程度很低,所受到的影響,相對的就不高
所以會有多少的連動性、相依性在,決定了影響性
所以如twu2所說,如果是相同版本的kernel,只是換了gcc4 來compile,在我所知內,即然code不變,功能不變,只是有了一個可能更優化的compile parse所compile出來的kernel,有可能會提升效能及速度,但穩定性又是另外的問題。
就好像linux版本的skype有gcc3 gcc4,速度提升,穩定性就差了許多,這例子只是粗略的打個比方

談到如果gcc要跳版本,又會跟glibc ld連動,拿人體來打比方,就像是換掉全身的血管一樣,你還要看其他器官的接口相不相容
所以已經build-in在kernel的一些服務機制,如file system中NFS ext4 ,Network的 iptables , 系統的udev 等等,跟著kernel在運作的
還有一些tools是讀取kernel mem /proc /sys中的,我想這些才會有直接的影響,因為新版本的kernel都會加入或變成了許多機制及處理,甚至是c header格式或參數數目
實務上,即然要用新的kernel,也只有新版本的服務及tools才能支援及使用新的功能,替換才有實質上的意義,當然也有可能是為了解決某kernel版本的bug或漏洞,像是driver問題
很多服務也都有指定版本的相依性在,當超出了連作者當時都沒用過的版本,就好像是你進入了作者當時的時空,又發現了一個新大陸,我想連作者本人都很難知道會發生什麼事 XD
<0  =_=  Don't learn to hack , hack to learn.