對于許多Linux小白來說,他們根本就不知道要學Linux方向是什么?有的人甚至不知道Linux是什么?其實在網上不難知道Linux是什么。Linux只是一個簡單的操作系統。而對于Linux的發展方向,其實也就是運維、開發和底層三方面。在學習Linux時知道了方向,一定要比盲目的學習要透徹些,下面我就對這三個方向進行展開。
方向一:運維
這應該是很多 Linux 從業者給大家的形象吧,很多人也把我當作運維工程師,問我一堆運維方向的問題,可是我不是這個方向的,我真不會啊!
那運維方向主要做一些什么工作?
首先,是服務器維護。
保證服務器正常運行不宕機,這是最最基本的要求。服務器一旦宕機,公司找的第一個一般是運維工程師,所以,很多運維工程師都自嘲是「背鍋俠」。
然后,需要給開發人員提供一個可靠的服務器運作環境和技術支持
我所知道的很多公司的開發環境是由開發人員自己搭建好的,但是,也有些公司將這部分工作內容交給運維工程師,而開發人員就專注于寫代碼。
當然,還包括對各種服務的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。
除此之外,還要對服務器狀態進行監控,如CPU內存占用,進程僵死崩潰,磁盤空間,異常登陸等。當然,還要負責系統進行升級,備份等等工作。
那些之前問我問題的小伙伴,你們看看,是不是包含在這里?沒關系,其實我的內心還是很(xiang)淡(ma)定(ren)的。
那么,運維工程師需要學一些什么?
運維工程師需要懂很多的命令,然后就是上面提到的開發環境的搭建,各種服務的配置,以及日常的維護之類,都需要會。很多的操作其實通過腳本就能很方便完成,所以運維工程師很多還需要懂 Shell 及 Python。推薦的入門書籍:鳥哥 Linux 私房菜。
方向二:應用開發
這就是我的老本行啦~啊,不對,我的老本行是機械……
應用開發及底層開發方向就要寫比較多的代碼了,相對而言運維工程師就不需要寫很多代碼。
Linux 應用開發工程師主要做一些什么工作?
簡單而言,Linux 應用開發工程師主要在Linux 環境下開發各種應用程序,就如同你們在 Windows 下開發的應用程序一樣(比如QQ,PC微信等)。這些應用程序有些帶有界面,也有很多是不帶界面的。帶界面的很多是由 QT 開發,當然也有其他的開發工具。
Linux 應用開發工程師需求量相對比較多,行業分布也比較廣。方向主要有兩個,一個是服務器方向,另一個是嵌入式方向。
幾乎所有的科技公司都有服務器,所以在很多行業都有 Linux 應用工程師的身影。而嵌入式方向,也就是我現在的方向,就是在嵌入式平臺上開發應用程序,其實道理都是一樣的。
那么 Linux 應用開發工程師需要掌握什么技能?
首先肯定要熟悉 Linux 平臺的 API ,包括 IO 操作,進程間通訊, Linux 環境,網絡通訊,等等,推薦看 APUE 這本神書。當然還需要懂腳本語言,包括 Shell, Python ,都需要懂。還有數據庫的操作,比如 MySQL,Sqlite,至少要懂一個。
對于編程語言的話,大多數情況下是使用 C/C++ 。如果你需要做界面開發,可能還需要懂 QT 。
除此之外,你還需要懂一些行業規范,這個是應用工程師的必備技能。
方向三:底層開發
底層開發工程師相對而言需求就會少一些,一個公司通常會養一堆的應用開發工程師,但底層開發工程師可能就配備了一兩個。為什么?因為現在很多底層移植、適配的工作都由芯片廠商都幫你做好了,你們很多情況下只需做維護就好了。
所以,底層開發工程師的一個很好去處就是芯片廠商,如果對這塊有興趣的朋友,芯片廠商是一個很好的去處。
當然底層開發工程師不僅僅做維護了,也是會根據公司的業務需求做一些定制。除此之外,還會做驅動開發的工作。
那底層開發工程師需要掌握什么技能?
雖然說移植之類的工作現在很多都由芯片廠商完成,但uboot,文件系統,內核這類的移植技能肯定要掌握。然后,驅動開發也肯定要會,因為這部分工作的份量還是不少的。
而在做底層開發工作時,還有一個重要的技能,就是芯片手冊的查看。如果你不會查看芯片手冊,那后面的移植啊,驅動開發之類的工作都無從談起。
有些公司可能還會對內核進行裁剪定制,那么,就需要對內核源碼比較了解了,這部分要求就相對比較高了。
以上即是關于學習Linux方向是什么的全部內容介紹,想了解更多關于Linux的信息,請繼續關注中培偉業。