
提到Linux,你們第一時間想到的是這是一個怎樣的崗位呢?我相信會有很大一部分的朋友會想到兩個字:運維,

聽到大家這樣的回答,我真的是很無奈,但也是非常的理解,因為,曾經我對Linux的了解程度也是僅限在運維的層面上,
但是,有這種概念的朋友實在是太多了,所以我有必要出來給大家科普一下Linux的幾個主要的從業方向,
Linux其實也是一個大的方向,可以細分為很多小方向,所以很多公司的崗位職責上面寫著要求精通Linux,這是非常不現實的,為了能讓大家更直觀了解Linux的從業方向,我畫了下面這張圖,

從這張圖來看,從大的方向來劃分,Linux從業者可以分為兩個方向:運維、開發,
當然除了這兩個方向,還有一些其它方向,但可能比較小眾,就暫時不討論了,但是,單單從這兩個方向來看,又細分出了很多更小的方向,因此我們可以看到Linux從業方向的多樣性,
下面我們來詳細介紹各個方向的作業內容和職責,
Linux運維作業內容和職責
我們首先來看運維,運維又可以根據不同的作業內容細分為很多不同的方向,但是,主流的分法一般就是這張圖的幾個方向,

雖然運維也分很多方向,但很多公司,特別是中小公司,基本是一個人干完上面這些所有作業,所以,從事運維作業的話也是需要掌握不少技術的,
不管是什么方向的運維,作業內容基本都可以概括為兩句話,
第一句話是:保障業務長期穩定運行,
就是說,公司的服務器,你不僅要學會搭建,而且要保證上面的業務要做到長期穩定運行,任何出一點點差錯,運維人員可能就要背這個鍋了,所以,運維人員經常自嘲自己是“背鍋俠”,

第二句話是:保障資料安全可靠,
這句話比較好理解,現在資料泄漏太嚴重了,像之前facebook資料泄漏事件讓facebook吃了不小的罰單,所以如何保證資料的安全也是運維人員一項非常重要的作業,

這幾個方向當中,前3個屬于傳統運維,一般而言工資相對比較低,后兩個是這兩年的熱門作業,工資相對高一些,
其中云計算運維要涉及到容器Docker,K8S之類的,技術要求更高,而運維開發需要學習到JS,Python之類的編程語言,會涉及到一些開發的作業,
Linux開發作業內容和職責
以上這些就是對運維方向的介紹,我們再來看第二大方向:開發方向,
開發方向又分為兩個:應用層開發及底層開發,
首先來看應用開發
一般而言,應用開發又分細分為這三個:桌面應用開發、嵌入式應用開發、服務器運用開發,

不管是什么應用開發,簡單而言,都是在Linux下開發各種各樣的應用程式,那什么又是應用程式呢?我舉個例子你們就明白了,就好比在Windows下,我們有QQ、微信、以及后面要介紹的虛擬機等,這些都統稱為應用程式,這就是應用程式的概念,
同樣的,如果在Linux下也開發一些類似這種的應用程式,就是屬于應用開發,在Windows下,我們看到的那些應用程式大部分是帶圖形界面的,然而,在Linux下的應用程式,有些會帶有界面,而相當一部分是不帶界面的,
Linux下帶界面的應用程式所使用的開發工具之一就是QT,所以有個崗位就叫作QT工程師,做的就是這個活,當然QT程式是可移植的,Linux下同樣一套代碼可以不用作任何修改就可以在Windows下編譯運行,
那嵌入式Linux應用開發又是什么?很多嵌入式設備,比如一些機器人玩具,一些智能家居設備,以及汽車的中控等,很多跑的是Linux系統,
那對應的我們也需要給這些設備開發一些應用程式,就是所謂的嵌入式Linux應用開發,這些應用程式通常是不帶界面的,它們通常會在后臺默默運行,完成相應的業務作業,當然也有一些嵌入式應用程式是帶界面的,但其實很多也是直接跑QT的,

應用開發的第三個方向:服務器后臺開發
這個其實也是后端,很多服務器后端是用Java進行開發,但也有一些是用C++開發然后跑在Linux系統上,比如微信的后臺就是使用C++開發的,
不管是使用什么開發語言,都需要考慮事件處理、高并發之類的需求,同時也要學會使用框架,要站在巨人的肩膀上,才走得更快更遠,
我們再來看看Linux底層開發,其實,只要有接觸到Linux,都會聽說過內核、檔案系統、uboot之類的名詞,這些就是底層開發人員天天打交道的東西,

一般而言,內核、檔案系統、uboot的移植很多芯片廠商都已經給你做好了,你只需學會維護即可,而對于內核裁剪、定制之類的作業,那就需要底層工程師來做了,
除此之外,你還要學會開發驅動,這部分的作業應該是比較多的,什么是驅動開發呢?
大家知道,在Linux下一切皆檔案,設備也是,所以應用工程師需要操作硬體,比如IO口,只需操作對應的設備檔案即可,
那這個設備檔案怎么實作對IO口進行操作?這就是驅動開發的作業了,很多公司對驅動開發的需求比較大,所以誕生出一個專門的崗位叫驅動開發工程師,
而隨著物聯網的發展,現在很多設備,特別是智能家居類的設備,很多跑的是安卓系統,所以在嵌入式設備上移植一個安卓系統,也是底層開發工程師的一個作業內容,
當然不是所有的底層開發工程師需要做這個作業,一切視公司的業務而定,但如果有時間,底層開發相關的作業都應該要學會,
以上就是Linux從業者的主要作業方向,介紹了這么多方向后,很多人開始暈乎了:我到底該從事哪個方向?

對于運維和開發兩個大方向,在薪資方面運維可能會比較低,而且運維的作業可能會比較瑣碎,服務器一旦宕機就要第一個沖到前線,基本是7X24小時待命,而且,運維的天花板相對比較低,可能作業過三五年就到頂了,
而開發方向天花板就比較高一些了,而且薪資會相對比較高,
對于應用和底層,應用方向的需求比較大,通常而言一個公司只需一個底層工程師即可,卻需要養一大群的應用工程師,
所以底層工程師就業面會比較小一些,通常比較好的去處就是那些芯片廠商,但是,相對而言底層工程師的工資會比應用工程師要高一些,
對于這些方向的介紹,只是目前市面上的一些實際狀況,
我沒有建議你別做運維,也沒有建議你去做應用開發,一切都是看個人興趣與意愿,只要自己作業得開心,才是最關鍵的,

不管你是轉行也好,初學也罷,進階也可~
——【值得關注】我的編程學習進階俱樂部 ——
涉及到:C語言、C++、windows編程、網路編程、QT界面開發、Linux編程、游戲編程、黑客等等......

一個活躍、高格調、高層次的程式員編程學習殿堂;編程入門只是順帶,思維提高才有價值!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/230572.html
標籤:Linux
