东方亚洲欧a∨人在线观看|欧美亚洲日韩在线播放|日韩欧美精品一区|久久97AV综合

        Linux再學習(一)-學習路線規(guī)劃x

        發(fā)布時間:2020-08-26 來源: 主持詞 點擊:

         Linux 再學習(一)- 學習路線規(guī)劃 1 拋棄舊文化,迎接 Linux 命令新文化 Linux 第一步,從 Windows 思維,切換到 Linux 的“ 命令行+ 文件”模式 模式 在 Linux 中,做什么都有相應命令。一般就在 bin 或者 sbin 目錄下,數(shù)量繁多。如果你事先不知道該用哪個命令,很難通過枚舉的方式找到。因此,在這樣沒有統(tǒng)一入口的情況下,就需要你對最基本的命令有所掌握。

         一旦找到某個命令行,替代輸入框的是各種各樣的啟動參數(shù)。

         這些參數(shù)怎么填, 一般可以通過 -h 查看 help,就能找到相應的配置項 • 還可以通過 man 命令,查看文檔 無論是什么命令行工具,最終的配置一般會落到一個文件上,只要找到了那個文件,文件中會有注釋,也可以挨個兒看下去,基本就知道如何配置了。

         攻克了第一個困難了。這個時候,你能看到一些很美麗的風景,例如一些很有技巧的命令 sed 和 awk、很神奇的正則表達式、靈活的管道和 grep、強大的 bash。你可以自動化地做一些事情了,例如處理一些數(shù)據(jù),會比你使用 Excel 要又快又準,關鍵是不用框框點點,在后臺就能完成一系列操作。在處理數(shù)據(jù)的同時,你還可以干別的事情,半夜處理數(shù)據(jù),第二天早上發(fā)個郵件報告,這都是 Excel 很難做到的事情。

         2 通過系統(tǒng)調(diào)用或者 glibc ,掌握程序設計 命令行工具也是程序,只不過是別人寫的程序。從用別人寫的程序,到自己能夠?qū)懗绦,通過程序來操作 Linux,這是第二個要攻克的困難。

         用代碼操作 Linux,可以直接使用 Linux 系統(tǒng)調(diào)用,也可以使用 glibc 的庫。

         Linux 的系統(tǒng)調(diào)用非常多,而且每個函數(shù)都非常復雜,傳入的參數(shù)、返回值、調(diào)用的方式等等都有多講究。

         這里面需要掌握很多 Linux 操作系統(tǒng)的原理,否則無法理解為什么應該這樣調(diào)用。

         剛開始學 Linux 程序設計的時候,你會發(fā)現(xiàn)它比命令行復雜得多。

         因為你的角色再次變化。

         如果說使用命令行的人是吃饅頭的,那寫代碼操作命令行的人就是做饅頭的?粗喓唵螁蔚囊粋饅頭,可能要經(jīng)過 N 個工序才能蒸出來。同樣,你會發(fā)現(xiàn),你平時用的一個簡單的命令行,卻需要N 個系統(tǒng)調(diào)用組合才能完成。其中每個系統(tǒng)調(diào)用都要進行深入地學習、讀文檔、做實驗。

         經(jīng)過一段時間的學習,你攻克了這些東西。這時候,你已經(jīng)很接近操作系統(tǒng)的原理了,你能看到另一番風景了。

         大學里學的那些理論,你再回去看,現(xiàn)在就會開始有感覺了。

         樹,調(diào)用了 fork 進程同步機制,調(diào)用信號量 • 網(wǎng)絡應用層和傳輸層的分界線,調(diào)用 socket 都明白了!

         3 再三研究 Linux 內(nèi)核 當你已經(jīng)會使用代碼操作 Linux 時,你肯定很希望揭開這層面紗,看看系統(tǒng)調(diào)用背 系統(tǒng)調(diào)用背后到底做了什么 后到底做了什么。

         進一步了解內(nèi)核的原理,有助于你更好地使用命令行和進行程序設計,能讓你的面試及開發(fā)水平更上一層樓,但是不建議直接看源碼,因為 Linux 代碼量太大,很容易迷失。

         最好的辦法是,先下 了解一下 Linux 內(nèi)核機制,知道基本的原理和流程 內(nèi)核機制,知道基本的原理和流程。

         不過,Linux 內(nèi)核機制也非常復雜,而且其中相互關聯(lián)。

         比如說,進程運行要分配內(nèi)存,內(nèi)存映射涉及文件的關聯(lián),文件的讀寫需要經(jīng)過塊設備,從文件中加載代碼才能運行起來進程。這些知識點要反復對照,才能理清。

         但是一旦攻克!你會發(fā)現(xiàn) Linux 這個復雜的系統(tǒng)開始透明起來。

         無論你是運維,還是開發(fā),你都能大概知道后發(fā)生的事情,并在出現(xiàn)異常的情況時,比較準確地定位到問題所在。

         Linux 內(nèi)核機制是我們重點學習部分,基于最新 4.x 的內(nèi)核。

         輔助學習,推薦《深入理解 LINUX 內(nèi)核》。

         這本書言簡意賅地講述了主要的內(nèi)核機制?赐赀@本書,你會對 Linux 內(nèi)核有總體的了解。不過這本書的內(nèi)核版本有點老,不過對于了解原理來講,沒有任何問題。

         4 閱讀 Linux 內(nèi)核代碼,聚焦核心邏輯場景 在看內(nèi)核原理的書的時候經(jīng)常遇到這種問題,有的地方實在是難以理解,或者不同的書說的不一樣,這時候該怎么辦呢?其實很好辦,Linux 是開源的呀,我們可以看代碼呀,代碼是精準的。哪里有問題,找到那段代碼看一看,很多問題就有方法了。

         另外,當你在工作中需要重點研究某方面技術的時候,如果涉及內(nèi)核,這個時候僅僅了解原理已經(jīng)不夠了,你需要看這部分的代碼。

         但是開源軟件代碼紛繁復雜,一開始看肯定暈,找不著北。這里有一個訣竅,就是一開始閱讀代碼不要糾結一城一池的得失,不要每一行都一定要搞清楚它是干嘛的,而要聚焦于核心邏輯和使用場景。

         一旦爬上這個坡,對于操作系統(tǒng)的原理,你應該就掌握得比較清楚了。就像蒸饅頭的人已經(jīng)將面粉加工流程爛熟于心。這個時候,你就可以有針對性地去做課題,把所學和你現(xiàn)在做的東西結合起來重點突破。

         虛擬化的,就重點看 KVM • 研究網(wǎng)絡的,就重點看內(nèi)核協(xié)議棧 推薦《LINUX 內(nèi)核源代碼情景分析》 這本書最大的優(yōu)點是結合場景進行分析,看得見、摸得著,非常直觀,唯一的缺點還是內(nèi)核版本比較老。

         5 實驗定制化 Linux 組件 從只看內(nèi)核代碼,到上手修改內(nèi)核代碼,這又是一個很大的坎。

         因為 Linux 有源代碼,很多地方可以參考現(xiàn)有的實現(xiàn),定制化自己的模塊。

         例如,你可以自己實現(xiàn)一個設備驅(qū)動程序,實現(xiàn)一個自己的系統(tǒng)調(diào)用,或者實現(xiàn)一個自己的文件系統(tǒng)等等。

         6 面向?qū)崙?zhàn)開發(fā) 如果你是運維,僅僅熟悉上面基本的操作是不夠的,生產(chǎn)環(huán)境會有大量的不可控因素,尤其是集群規(guī)模大的更是如此,大量的運維經(jīng)驗是實戰(zhàn)來的,不能光靠讀書。如果你是開發(fā),對內(nèi)核進行少量修改容易,但是一旦面臨真實的場景,需要考慮各種因素,并發(fā)與并行,鎖與保護,擴展性和兼容性,都需要真實項目才能練出來。

         7 總結

         參考 Linux 命令行 趣談 Linux 操作系統(tǒng)

        相關熱詞搜索:學習 路線 規(guī)劃

        版權所有 蒲公英文摘 smilezhuce.com