轉(zhuǎn)自:http://www.oschina.net/question/587367_156024
要真正了解Linux的分區(qū)機(jī)制,對(duì)LVM使用相當(dāng)熟練, 沒(méi)有20次以上的Linux裝機(jī)經(jīng)驗(yàn)是積累不起來(lái)的,所以一定不要怕折騰。
1. UBUNTU 適合純菜鳥(niǎo),追求穩(wěn)定的官方支持,對(duì)系統(tǒng)穩(wěn)定性要求較弱,喜歡最新應(yīng)用,相對(duì)來(lái)說(shuō)不太喜歡折騰的開(kāi)發(fā)者。
2. Debian,相對(duì)UBUNTU難很多的發(fā)行版,突出特點(diǎn)是穩(wěn)定與容易使用的包管理系統(tǒng),缺點(diǎn)是企業(yè)支持不足,為社區(qū)開(kāi)發(fā)驅(qū)動(dòng)。
3. Arch,追逐時(shí)尚的開(kāi)發(fā)者的首選,優(yōu)點(diǎn)是包更新相當(dāng)快,無(wú)縫升級(jí),一次安裝基本可以一直運(yùn)作下去,沒(méi)有如UBUNTU那樣的版本概念,說(shuō)的專(zhuān)業(yè)點(diǎn)叫滾動(dòng)升級(jí),保持你的系統(tǒng)一定是最新的。缺點(diǎn)顯然易見(jiàn),不穩(wěn)定。同時(shí)安裝配置相對(duì)Debian再麻煩點(diǎn)。
4. Gentoo,相對(duì)Arch再難點(diǎn),考驗(yàn)使用者的綜合水平,從系統(tǒng)安裝到微調(diào),內(nèi)核編譯都親歷親為,是高手及黑客顯示自己技術(shù)手段,按需配置符合自己要求的系統(tǒng)的首選。
5. Slackware與Gentoo類(lèi)似。
6. CentOS,社區(qū)維護(hù)的RedHat的復(fù)刻版本,完全使用RedHat的源碼重新編譯生成,與RedHat的兼容性在理論上來(lái)說(shuō)是最好的。如果你專(zhuān)注于Linux服務(wù)器,如網(wǎng)絡(luò)管理,架站,那么CentOS是你的選擇。
7. LFS,終極黑客顯擺工具,完全從源代碼安裝,編譯系統(tǒng)。安裝前你得到的只有一份文檔,你要做的就是照文檔你的說(shuō)明,一步步,一條條命令,一個(gè)個(gè)軟件包的去構(gòu)建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,證明你的Linux功底已經(jīng)相當(dāng)不錯(cuò),如果你能拿LFS文檔活學(xué)活用,再將Linux從源代碼開(kāi)始移植到嵌入式系統(tǒng),我敢說(shuō)中國(guó)的企業(yè)你可以混的很好。
一、Linux基礎(chǔ)
二、Linux平臺(tái)的C/C++開(kāi)發(fā),同時(shí)還有Bash腳本編程
工具方面推薦VIM的官方手冊(cè),GCC中文文檔,GDB中文文檔,GNU開(kāi)源軟件開(kāi)發(fā)指導(dǎo)(電子書(shū)), 匯編語(yǔ)言程序設(shè)計(jì)(讓你對(duì)庫(kù),鏈接,內(nèi)嵌匯編,編譯器優(yōu)化選項(xiàng)有初步了解,不必深度)。然后是GCC,Make,Eclipse(Java,C++或者)。
三、UNIX環(huán)境高級(jí)編程
UNIX程序設(shè)計(jì)藝術(shù), 世界頂級(jí)黑客將同你分享他的看法。
四、選擇方向:網(wǎng)絡(luò),圖形,嵌入式,設(shè)備驅(qū)動(dòng)
網(wǎng)絡(luò)方向:服務(wù)器軟件編寫(xiě)及高性能的并發(fā)程序編寫(xiě)
現(xiàn)在是時(shí)候做分流了。 大體上我分為四個(gè)方向:網(wǎng)絡(luò),圖形,嵌入式,設(shè)備驅(qū)動(dòng)。
如果選擇網(wǎng)絡(luò),再細(xì)分,我對(duì)其他的不是他熟悉,只說(shuō)服務(wù)器軟件編寫(xiě)及高性能的并發(fā)程序編寫(xiě)吧。 相對(duì)來(lái)說(shuō)這是網(wǎng)絡(luò)編程中技術(shù)含量最高的,也是底層的。 需要很多的經(jīng)驗(yàn),看很多的書(shū),做很多的項(xiàng)目。
我的看法是以下面的順序來(lái)看書(shū):
APUE再深讀 – 尤其是進(jìn)程,線程,IPC,套接字
多核程序設(shè)計(jì) - Pthread一定得吃透了,你很NB
UNIX網(wǎng)絡(luò)編程 – 卷一,卷二
TCP/IP網(wǎng)絡(luò)詳解 – 卷一 再看上面兩本書(shū)時(shí)就該看了
5.TCP/IP 網(wǎng)絡(luò)詳解 – 卷二 我覺(jué)得看到卷二就差不多了,當(dāng)然卷三看了更好,努力,爭(zhēng)取看了
6.Lighttpd源代碼 - 這個(gè)服務(wù)器也很有名了
7.Nginx源代碼 – 相較于Apache,Nginx的源碼較少,如果能看個(gè)大致,很NB。看源代碼主要是要學(xué)習(xí)里面的套接字編程及并發(fā)控制,想想都激動(dòng)。如果你有這些本事,可以試著往暴雪投簡(jiǎn)歷,為他們寫(xiě)服務(wù)器后臺(tái),想一想全球的魔獸都運(yùn)行在你的服務(wù)器軟件上。
Linux內(nèi)核 TCP/IP協(xié)議棧 – 深入了解TCP/IP的實(shí)現(xiàn)
如果你還喜歡驅(qū)動(dòng)程序設(shè)計(jì),可以看看更底層的協(xié)議,如鏈路層的,寫(xiě)什么路由器,網(wǎng)卡, 網(wǎng)絡(luò)設(shè)備的驅(qū)動(dòng)及嵌入式系統(tǒng)軟件應(yīng)該也不成問(wèn)題了。
當(dāng)然一般的網(wǎng)絡(luò)公司,就算百度級(jí)別的也該毫不猶豫的雇用你。 只是看后面這些書(shū)需要時(shí)間與經(jīng)驗(yàn),所以35歲以前辦到吧!跳槽到給你未來(lái)的地方!
圖形方向,我覺(jué)得圖形方向也是很有前途的,以下幾個(gè)方面。
Opengl的工業(yè)及游戲開(kāi)發(fā),國(guó)外較成熟。
影視動(dòng)畫(huà)特效,如皮克斯,也是國(guó)外較成熟。
GPU計(jì)算技術(shù),可以應(yīng)用在瀏覽器網(wǎng)頁(yè)渲染上,GPU計(jì)算資源利用上,由于開(kāi)源的原因,有很多的文檔程序可以參考。如果能進(jìn)火狐開(kāi)發(fā),或google做瀏覽器開(kāi)發(fā),應(yīng)該會(huì)很好 。
嵌入式方向:嵌入式方向沒(méi)說(shuō)的,Linux很重要。
掌握多個(gè)架構(gòu),不僅X86的,ARM的,單片機(jī)什么的也必須得懂。 硬件不懂我預(yù)見(jiàn)你會(huì)死在半路上,我也想走嵌入式方向,但我覺(jué)得就學(xué)校教授嵌入式的方法, 我連學(xué)電子的那幫學(xué)生都競(jìng)爭(zhēng)不過(guò)。 奉勸大家,一定得懂硬件再去做,如果走到嵌入式應(yīng)用開(kāi)發(fā),只能祝你好運(yùn), 不要碰上像Nokia,Hp這樣的公司,否則你會(huì)很慘的。
驅(qū)動(dòng)程序設(shè)計(jì):軟件開(kāi)發(fā)周期是很長(zhǎng)的,硬件不同,很快。 每個(gè)月誕生那么多的新硬件,如何讓他們?cè)贚inux上工作起來(lái),這是你的工作。 由于Linux的兼容性很好,如果不是太低層的驅(qū)動(dòng),基本C語(yǔ)言就可以搞定,系統(tǒng)架構(gòu)的影響不大, 因?yàn)橛邢到y(tǒng)支持,你可能做些許更改就可以在ARM上使用PC的硬件了, 所以做硬件驅(qū)動(dòng)開(kāi)發(fā)不像嵌入式,對(duì)硬件知識(shí)的要求很高。
可以從事的方向也很多,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。