最近學習linux遇到些困難,問了一個朋友,他說要總全域性來看linux,大概道理能懂,但是要具體如何從全域性看待linux還是不懂,希望有大神來指點指點
回覆列表
-
1 # FungLeo
-
2 # Machilus
(2)學習linux: 目的:深入掌握linux系統。 方法:使用linux—〉linxu系統程式設計開發—〉驅動開發和分析linux核心。先看深,那主講原理。看幾遍後,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最後深入程式碼。 主攻書籍:linux核心完全剖析、unix環境高階程式設計、深入理解linux核心、情景分析和源代。
(3)學習嵌入式linux: 目的:掌握嵌入式培訓(www。embtarena。com)處理器其及系統。方法:1、嵌入式微處理器結構與應用:直接arm原理及彙編即可,不要重複x86。2、嵌入式作業系統類:ucOS/II簡單,開源,可供入門。而後深入研究uClinux。3、必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)。 主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm彙編指令等。
(4)深入學習: A、數字影象壓縮技術:主要是應掌握MPEG、mp3等編解碼演算法和技術。B、通訊協議及程式設計技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDMA等。 C、網路與資訊保安技術:如加密技術,數字證書CA等。 D、DSP技術:Digital Signal Process,DSP處理器透過硬體實現數字訊號處理演算法。
說明:太多細節未說明,可根據實際情況調整。重點在於1、3,不必完全按照順序作。對於學習c++,理由是c++不只是一種語言,一種工具,她還是一 種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。對於linux核心,學習程式設計,讀一些優秀程式碼也是有必要的。
你的朋友說的是完全正確的。但是這個話顯得過於抽象了一些,導致你不能很好的理解,所以會在這裡提出這個問題。這裡,我想簡單的通過幾個比喻,我相信你就可以很好的理解你的朋友的勸告了。
就好比我們學習中文,請問我們中文的語法結構是什麼呢?我相信,很多人都不是很清楚,雖然我們每天都在使用中文進行交流。也就是說,很多人都是知其然,不知其所以然。
我們中文的語法結構是主謂賓的語法結構,比如“我愛你”這三個字,“我”就是“主語”,“愛”就是“謂語”,而“你”就是“賓語”。正因為絕大多數人都沒有中文的全域性觀,所以,能用文字把事情描述清楚的人就不多了。
如果你仔細觀察的話,你就會發現身邊其實有很多人,說話都是詞不達意的。就是這個原因,對於漢語沒有一個全域性觀,導致哪怕每天都在使用,也不能很好的掌握。
那麼如何學習全域性觀呢?我再給你舉個例子,谷歌地球。我相信我們很多人都知道地球是圓的。而谷歌地球就是一個很好的模擬地球的一個軟體,透過谷歌地球,我們可以非常輕鬆的觀察地球上的任何一個地區。
我們首先要有一個全域性觀,那就是地球是圓的。然後在我們需要觀察的地方進行放大,最終深入到了細節部分,看得那是真真的。
所以,有另外的回答中說道了linux的核心已經有2000萬行程式碼了,所以想要學習非常困難。這個話是扯淡的,難道因為地球那麼大,我們就不能總結出來地球是圓的這個整體全域性概念了嗎?
我們不可能把地球的每一寸土地都觀察過一遍之後,再得出地球是圓的結論。同樣,我們不需要分析每一行linux的程式碼,才能獲知linux的全域性觀念。
人類之所以是人類,是因為人類擁有強大的抽象能力。我們在學習任何一個內容的時候,都需要去抽象它,獲得一個全域性觀念,然後在自己所需要的部分不斷深入,從而成為某一個領域的專家。
Linux系統脫胎於Unix系統,他們的哲學是幾乎一致的。這裡我就提幾點:
1. 任何內容,在Unix思想中都是一個檔案。
2. 一個工具只幹一件事情。
3. 沒有訊息就是最好的訊息。
當然,僅僅擁有全域性概念也是沒有用的。我們必須在某些領域去深挖,才能在這些領域成為一個專家。但是,先有全域性觀念是沒有錯的。
比如,地球是圓的。然後我們知道,地球上70%是大海。然後我們知道,地球上的大陸分為歐亞大陸,非洲大陸,美洲大陸,大洋洲大陸,南極大陸等等,然後我們再細化,中國在亞歐大陸的東方,中國有34個省級行政區,再到南京是江蘇的省會,玄武區是南京市的城中間,最終,我們知道,某個過橋米線的商家門店在玄武區的某條街道的某個位置。
這就是全域性觀念的深入。我相信透過這個思想去學習linux系統,你會很快就瞭解到其中的奧妙了。祝你學習愉快!
以上。