深度學習工程師第一步:linux!這兩大核心點,讓你事半功倍

linux其實並不討人喜歡,因為它大部分操作是通過命令行完成的,這對於沒有計算機基礎的人來說簡直是噩夢般的存在,但對於程序員,這實在是用來充門面最好的工具了,只需要打開一個終端頁面,隨便安裝一個一個軟件,在黑與白的酷炫交織中,我們的臉上寫滿了傲嬌。

深度學習工程師第一步:linux!這兩大核心點,讓你事半功倍

但是,我們程序員是一個有內涵有文化的群體,我們選擇使用linux不僅是因為酷炫,也是出於工作需求。因為在工作過程中,企業一般都會選擇使用linux操作系統。原因有三點。

第一,linux是一個開源產品。企業要盈利,就要節省成本,使用linux系統做服務器不會帶來任何版權問題。

第二,linux足夠穩定。你有沒有試過把自己的windows電腦打開一個月不關機?你肯定沒試過,因為開機最多兩百個小時的時候,windows就已經宕機了(幾萬元的神機免談),windows系統運行時間越長,系統就越卡頓,直到最後,不得不通過宕機來解決問題。但是,這種現象不會出現在linux系統的身上,這就是linux的穩定性。正常來說,一臺linux服務器半年不關機是沒有問題的,所以企業一般都是過上幾個月才會重啟一次。

下面是linux操作系統穩定原理分析:

操作系統一般都由幾個比較重要的模塊組成,下面對他們進行一一對比,首先是系統初始化,這個方面linux與windows很相似,對比性不強。兩個系統的主要區別在於進程管理和文件系統,在文件系統中,windows幾乎所有安裝包都是二進制文件,這樣主要是為了保密。而在linux中,一般是源代碼安裝,下載好源代碼後,通過configure進行配置,再通過make、make all,等進行編譯安裝,這是很多大牛用linux的重要原因之一,一個開放的世界,我們可以對源代碼進行自己需要的更改。

同時,與windows操作系統不同,在linux操作系統中,進程就是一個可以直接執行的基本單位,那怎樣執行這一個進程呢?fork函數會直接調用父進程,然後將整個進程複製下來,複製出來的產品,我們稱之為子進程,這樣的一個子進程就可以直接被執行了,這樣執行進程有什麼好處呢?當一個進程需要被執行時就直接被複制就可以了,這樣當多個進程併發時,就不會出現對這個進程的爭搶,可以提高系統在多用戶併發下的運行效率。

深度學習工程師第一步:linux!這兩大核心點,讓你事半功倍

打個比方,本來大家來買飯都是要排隊的,然後攤主做一個賣一個,這就是windows的做法。而在linux中,每份飯已經做好了,大家直接過來拿就可以帶走了。想對比下,即便同時來的人再多,系統也能承受住。

所以說,linux為這樣的複製操作,建立了一個分區,叫做交換分區,英文名字是swap,這樣再去理解為什麼設立交換分區就容易多了。這裡要做一個小筆記,就是安裝linux操作系統時,都是要設立交換分區的,交換分區的大小一般設置為你實際內存的大小,假如你的運行內存是4G/8G,那對應的交換分區也應該設置為4G/8G。

現在既然已經理解了swap交換分區是幹什麼的了,那麼剩下的幾個分區又有什麼功能呢?

第一個最重要的分區,就是系統的起點,引導分區,一般有以下兩種,/boot和/efi,這兩個是不同的系統啟動方式,如果你的電腦是bios啟動方式,就建立boot分區,如果你的電腦是uefi啟動方式的,就建立一個efi分區。這個分區存儲的是linux系統的內核,是整個系統開始的地方,所以也叫做引導分區,開機命令啟動後,便會這個分區第一時間響應,完成對整個系統的初始化。

第二個重要的分區,就是存儲系統程序的分區,大部分linux操作系統都是在linux內核基礎上改造出來的,也就是說內核+系統=linux操作系統,而這些系統程序就被存儲在這個分區中,這個分區的盤符是”/“,就是表示根的意思,整個系統的根。在內核啟動後,便會啟動這個分區裡的對應程序,喚醒整個系統。這個分區,在安裝系統時一般設置為10G。

第三個重要分區就是上文已經提到的交換分區了。

第四個重要的分區的功能是,存儲用戶安裝的程序,這個分區的盤符是”/usr“,跟它的名字所表達的信息一樣,這個分區就是為用戶提供服務的,用戶通過yum、apt-get工具安裝的程序都會被裝到這裡。這個分區的大小設置就得看情況了,如果你只是臨時進行學習,10-30個G就夠了,如果你可能會安裝大量的軟件,建議最好選大一點。

第五個分區,”/home“,這個分區其實大家都是很熟悉的,因為使用的頻率很高,一旦新建了一個用戶,這個用戶的全部數據就被存儲在這個文件下,主要是用戶的下載,和桌面文檔、視頻等,例如用戶zcj,對應的用戶zcj的存儲路徑就是/home/zcj。這個分區的大小同上,用的多,就多選一點。

當然啦,如果你實在沒有選好,後期變化大的話,也是可以通過分區工具進行更改的。

所以說,而這些優點恰好是深度學習所需要的,因為深度學習所運行的數據量大,所以對服務器要求較高,除了提高自己的配置,選擇適合的系統也是很重要的一部分。

深度學習工程師第一步:linux!這兩大核心點,讓你事半功倍

最後真的非常抱歉,linux原理部分,我描述的並不全面,因為這一知識涉及的範圍實在太廣。但是作為深度學習方向,小編認為了解到這個程度就可以了,系統只是我們使用的工具,最重要的還是對於算法和代碼的實踐。我會陸續更新更多深度學習技術文章。


分享到:


相關文章: