就linux学习的一点感受,谈谈前天面试后的感受吧,关于学习Linux
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
建議LZ認(rèn)真地學(xué)習(xí)一下unix的啟動(dòng)過(guò)程中的 init 進(jìn)程
多年來(lái)常常有人問(wèn)我應(yīng)該如何去學(xué)習(xí)并掌握 unix 系統(tǒng)。他們?cè)趯?shí)際學(xué)習(xí)的過(guò)程中,或多或少都碰到了一些困難。典型的感覺是unix雖然簡(jiǎn)潔優(yōu)雅,但組合起來(lái)卻千變?nèi)f化,經(jīng)常會(huì)覺得無(wú)從下手。
對(duì)這個(gè)問(wèn)題,我給他們的回答幾乎都一樣:在初步掌握了操作系統(tǒng)理論的基礎(chǔ)上,系統(tǒng)地學(xué)習(xí)并掌握 unix 系統(tǒng)的啟動(dòng)中的 init 進(jìn)程。
1、掌握初步的操作系統(tǒng)理論
因?yàn)椴僮飨到y(tǒng)在計(jì)算機(jī)系統(tǒng)中兼管著人與計(jì)算機(jī)的交互接口,是計(jì)算機(jī)系統(tǒng)中最容易被人接觸和感知的部分,因此很多人認(rèn)為只要掌握了操作系統(tǒng),更具體地說(shuō)只要掌握了操作系統(tǒng)中關(guān)于人機(jī)交互接口部分就等于掌握了計(jì)算機(jī)技術(shù)。之所以會(huì)出現(xiàn)這樣的誤解,是因?yàn)樗麄冎泻芏嗳硕紱]有系統(tǒng)學(xué)習(xí)過(guò)操作系統(tǒng)理論,自然也就不清楚一個(gè)完整的操作系統(tǒng)到底需要包含哪些內(nèi)容。
所以,試圖去掌握一種具體的操作系統(tǒng),首先需要擁有初步的操作系統(tǒng)理論知識(shí),知道一個(gè)操作系統(tǒng)需要包含哪些方面的內(nèi)容,如何確定操作系統(tǒng)的設(shè)計(jì)目標(biāo)等等。
比方說(shuō),吧有很多人都參與過(guò)關(guān)于 MacOS 和 linux 之間的優(yōu)劣之爭(zhēng),挺 MacOS 者認(rèn)為其用戶響應(yīng)快,圖形界面流暢。挺 linux 者認(rèn)為其網(wǎng)絡(luò)性能優(yōu)越,后臺(tái)運(yùn)行效率高。最終爭(zhēng)來(lái)爭(zhēng)去也沒爭(zhēng)出的所以然來(lái)。這種爭(zhēng)論的本質(zhì)就是對(duì)操作系統(tǒng)的設(shè)計(jì)目標(biāo)沒有全局上的認(rèn)識(shí)造成的。
實(shí)際上 MacOS 和 linux 的設(shè)計(jì)目標(biāo)完全不同。
MacOS 主要考慮的是用戶體驗(yàn),主要指標(biāo)是圖形界面響應(yīng)速度,說(shuō)白了就是通過(guò)調(diào)度策略盡量為前臺(tái)程序優(yōu)先分配CPU時(shí)間,盡量保證前臺(tái)程序在總體上消費(fèi)更多的CPU時(shí)間。同時(shí)通過(guò)中斷響應(yīng)策略,盡量?jī)?yōu)先處理輸入設(shè)備如鍵盤,鼠標(biāo),觸摸屏的中斷。這樣一來(lái),用戶體驗(yàn)自然就好,但代價(jià)是運(yùn)行在后臺(tái)的程序非常緩慢,所以在 MacOS 上運(yùn)行后臺(tái)服務(wù)的效率是很低的,也是有一部分用戶覺得 MacOS 下有些軟件的運(yùn)行效率還沒有 windows 下來(lái)得高的原因。
linux 主要考慮的是計(jì)算效率,主要指標(biāo)是計(jì)算速度和網(wǎng)絡(luò)服務(wù)效率,說(shuō)白了就是盡量公平地分配CPU時(shí)間,讓運(yùn)行在其上的每個(gè)程序都盡量地快速完成。由于 linux 并不刻意為前臺(tái)程序優(yōu)先分配CPU時(shí)間,因此用戶的交互行為不會(huì)過(guò)多地影響系統(tǒng)的運(yùn)行效率。比方說(shuō)用戶用鼠標(biāo)拖著窗口滿屏幕快速移動(dòng),此時(shí) linux 圖形界面響應(yīng)會(huì)可能跟不上,但后臺(tái)程序不受任何影響。這樣設(shè)計(jì)帶來(lái)的好處使得 linux 更適合用來(lái)做計(jì)算和網(wǎng)絡(luò)服務(wù)。如果換了 MacOS 來(lái)做計(jì)算的話,只要用戶在前臺(tái)瞎折騰,后臺(tái)用于計(jì)算的進(jìn)程運(yùn)行就會(huì)時(shí)快時(shí)慢,對(duì)于時(shí)間長(zhǎng)達(dá)數(shù)天乃之?dāng)?shù)周之久的大型運(yùn)算課題,誰(shuí)也不能忍受同樣的計(jì)算,有時(shí)幾天就算完,有時(shí)卻要十幾天才算得完。再加上 X 的特有的網(wǎng)絡(luò)透明性還可以將負(fù)責(zé)圖形界面操作的窗口管理器運(yùn)行在獨(dú)立的主機(jī)上,把它和專門用于計(jì)算的主機(jī)隔離開來(lái),這樣專機(jī)專用,計(jì)算效率就會(huì)更高。所以這也是 unix 類操作系統(tǒng)如 linux 經(jīng)常成為集群計(jì)算的首選操作系統(tǒng)的原因。
正因?yàn)樵O(shè)計(jì)目標(biāo)的不同,即使將這兩種操作系統(tǒng)都安裝在相同硬件配置的計(jì)算機(jī)上,它們的用戶體驗(yàn)和系統(tǒng)性能也是截然不同的。所以它們兩者并沒有什么可比性。關(guān)鍵是如何根據(jù)實(shí)際需要去選擇。至于“果噴”和“果黑”這兩種彼此攻擊的極端偏執(zhí)狂的言論就不用去考慮了。
所以,想掌握操作系統(tǒng),首先需要初步掌握一些操作系統(tǒng)的理論知識(shí),這樣學(xué)習(xí)具體的操作系統(tǒng)時(shí)才會(huì)目標(biāo)明確,脈絡(luò)清楚。
2、學(xué)習(xí)并掌握 unix 系統(tǒng)的啟動(dòng)過(guò)程中的 init 進(jìn)程
不同設(shè)計(jì)目的的操作系統(tǒng),其具體內(nèi)容往往有比較大的差別。因此具體的學(xué)習(xí)方法也是多種多樣。有的人從操作入手,通過(guò)熟悉大量桌面應(yīng)用軟件和初步的腳本編寫,通過(guò)定制應(yīng)用環(huán)境來(lái)熟悉操作系統(tǒng)。有的人從編程入手,試圖通過(guò)熟悉系統(tǒng)調(diào)用和函數(shù)庫(kù)的組成來(lái)摸索。有的人從系統(tǒng)配置入手,試圖通過(guò)搭建一個(gè)可投入實(shí)用的服務(wù)器來(lái)掌握。也有人下載了開源操作系統(tǒng)如 linux 的內(nèi)核源碼,希望通過(guò)自行編譯內(nèi)核來(lái)了解unix系統(tǒng)的組成。還有的人則試圖閱讀 unix 內(nèi)核源碼,力圖從根本上了解unix系統(tǒng)的設(shè)計(jì)。
總結(jié)
以上是生活随笔為你收集整理的就linux学习的一点感受,谈谈前天面试后的感受吧,关于学习Linux的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux支持sshd救援模式,单用户、
- 下一篇: linux 无线 网桥,基于Linux无