Linux編程入門

來源:互聯網
上載者:User
Linux下開發學習步驟

  1、先熟悉linux系統的常用命令。

  2、深入學習emacs或者vim。值得你花半年時間系統學習!以後我們就是用這個編輯器來寫程式的了,經過配置,emacs完完全全就是一個IDE了,像代碼跳轉,自動補齊(智能感應)以及其他的一些好用功能。

  3、學習makefile的編寫。因為我們是用makefile來組織我們的程式的就像vc6裡頭又dsp/dsw檔案一樣(當然也vc自己makefile)。有些好的工具能協助我們編寫可以移植的makefile,如autoconf等。

  4、學慣用GUN的開發工具鏈,如gcc,gdb,ldd,ld,……

  5、學習linux的系統調用以及一些開源庫。看看那些高手寫的代碼,長見識。學習cvs,因為大多數開原始碼都是cvs管理的,用cvs 把代碼搞下來。

  6、編寫自己的代碼,完成工作

 
 大家遇到問題最多的估計就是如何搭建一個類似VC這樣好用的IDE了,呵呵,多花點時間學習emacs,會受益無窮的。還有就是gdb調試時感覺不是很
方便,其實gdb配合emacs用比vc6都好用呢!當然makefile編寫也會讓很多人畏懼,堅持一下就好了,特別是學會了atuoconf等工具,
寫個makefile還是非常容易的。

  推薦讀物:
  linux系統使用:《鳥哥的LINUX私房菜:基礎學習篇 》
  emacs學習:《學習GNU EMACS(第二版)》
  linux開發工具學習:《LINUX & UNIX程式開發基礎教程 》
  linux系統調用學習:《UNIX/LINUX編程實踐教程 》,《UNIX環境進階編程(第2版) 》

  makefile學習呢,就在網上搜一下吧,參考一下別人的,犯不著買書,如果實在想買呢,《GNU MAKE專案管理(第三版完全修訂版)(中文版) 》也不錯!cvs,在網上搜搜,教程很多的。

 

原文地址:http://www.linuxdiyf.com/viewarticle.php?id=53499

 

 

 

 

學習C/C++編程,Linux平台的優勢與劣勢

 

劣勢:

1. 熟悉Linux的人不多,熟悉它需要較長時間。
2. 中文資源不夠多,往往不全或者不夠新。
3. 過去學的很多windows的東西,到Linux下行不通。
4. 充滿Linux風味的vim/emacs上手難,需大量使用才能熟練。
5. 門檻高,初學時學習難度曲線陡峭。

優勢:

1. 物以稀為貴,掌握Linux的人,比windows的少很多,而Linux平台需求不小,為您簡曆增色不少。
2. 逼迫你掌握更多詞彙,提高英文能力,閱讀原版書籍能力與日俱增。
3. 接受跟不同的設計哲學,掌握新的開發方式和實現方法。
4. 一旦掌握vim/emacs,威力無窮,一個是編輯器之神,一個是神之編輯器。
5. 幾乎全部軟體是開放源碼的,想知道怎麼實現,可以看源碼。
6. 原汁原味的gcc,對標準支援很不錯,automake cmake等自動化工具,讓您如虎添翼。
7. 有疑問,翻源碼,即使深入核心和驅動,也有源碼可看,任何細節和底層,都能一一追尋,看個究竟。
8. 知識更保值,倚天屠龍,APUE和UNP風行N年,所載知識,至今有用,不那麼快淘汰。
9. 大量的優秀開源軟體,給你暢遊源碼之海的愉悅,學習體會各種設計實現技巧。
10. 門檻雖高卻難學易精,學習難度曲線越來越平坦,跟windows的易學難精不同。

推薦書籍:

0. UNIX環境進階編程第二版(基礎的基礎)
1. UNIX網路編程第三版卷一(網路的基礎)
2. Unix Shell Programming(指令碼的基礎)
3. Begin Linux Programming第四版(補充0中未講解的一些東西)
4. 深入理解Linux核心第三版(系統運作原理)
5. Building Embedded Linux Systems(核心定製與編譯)
6. Linux Kernel Primer(核心開發)
7. Linux Kernel Development(核心開發)
8. Linux Device Drivers(驅動開發)
9. Essential Linux Device Drivers(驅動開發)

0到5我看過,是非常好的書,特別是0,1,4。
6到10我沒看過,據道友們推薦,這幾本也都很好。

備忘:
讀核心源碼,最好用vim或者emacs,因為核心內建的makefile,內含自動產生cscope,tags索引的功能。
cscope跟vim/emacs是無縫整合的,閱讀代碼非常好用,配合其它plugins,比source insight更強大。

如果有體力,有時間,有不錯的機器,做一遍lfs也會獲得很多體驗。

原文地址:http://topic.csdn.net/u/20091023/09/6faa79ed-d07f-42a0-b83a-b1b2e13ab7d2.html?13274

 

 

 

 

如何學習linux編程

如果想學習UNIX/LINUX的編程,《APUE》絕對經典的教材,加深一下功底,學習《UNP》的第二卷。這樣基本上系統方面的就可以掌握了。

後再看Douglus
E.Comer的《用TCP/IP進行網際互連》第一卷,學習一下網路的知識,再看《UNP》的第一卷,不僅學習網路編程,而且對系統編程的一些常用的技
巧就很熟悉了,如果繼續網路編程,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的編程。 
建議學習路徑:
    首先先學學編輯器,vim, emacs什麼的都行。

 

然後學make file檔案,只要知道一點就行,這樣就可以準備編程式了。
  
  然後看看《C程式設計語言》K&R,這樣呢,基本上就可以進行一般的編程了,順便找本資料結構的書來看。  
  
  如果想學習UNIX/LINUX的編程,《APUE》絕對經典的教材,加深一下功底,學習《UNP》的第二卷。這樣基本上系統方面的就可以掌握了。  
 然
後再看Douglus
E.Comer的《用TCP/IP進行網際互連》第一卷,學習一下網路的知識,再看《UNP》的第一卷,不僅學習網路編程,而且對系統編程的一些常用的技
巧就很熟悉了,如果繼續網路編程,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的編程。
    如果想寫裝置驅動程式,首先您的系統編程的介面比如檔案、IPC等必須要熟知了,再學習《LDD》2。
      
對於幾本經典教材的評價:
     《The
C Programing Language》K&R
經典的C語言程式設計教材,作者是C語言的發明者,教材內容深入淺出。雖然有點老,但是必備的一本手冊,現在有時候我還常翻翻。篇幅比較小,但是每看一
遍,就有一遍的收穫。另外也可用譚浩強的《C語言程式設計》代替。
      
  《Advanced
Programing in Unix Envirement》
W.RichardStevens:也是非常經典的書(廢話,Stevens的書哪有不經典的!),雖然初學者就可以看,但是事實上它是《Unix
NetworkPrograming》的一本輔助資料。國內的翻譯的《UNIX環境進階編程》的水平不怎麼樣,現在有影印版,直接讀英文比讀中文來得容
易。

 

《Unix Network
Programing》W.Richard Stevens:第一卷講BSD
Socket網路編程介面和另外一種網路編程介面的,不過現在一般都用BSD
Socket,所以這本書只要看大約一半多就可以了。第二卷沒有設計到網路的東西,主要講進程間通訊和Posix線程。所以看了《APUE》以後,就可以
看它了,基本上系統的東西就由

    《APUE》和《UNP》vol2概括了。看過《UNP》以後,您就會知道系統編程的絕大部分編程技巧,即使卷一是講網路編程的。國內是清華翻譯得《Unix網路編程》,翻譯者得功底也比較高,翻譯地比較好。所以建議還是看中文版。
      
     《TCP/IP祥解》一共三卷,卷一講協議,卷二講實現,卷三講編程應用。我沒有怎麼看過。,但是據說也很經典的,因為我沒有時間看卷二,所以不便評價。
      
  《用
TCP/IP進行網際互連》Douglus.E.Comer一共三卷,卷一講原理,卷二講實現,卷三講進階協議。感覺上這一套要比Stevens的那一套
要好,就連Stevens也不得不承認它的第一卷非常經典。事實上,第一卷即使你沒有一點網路的知識,看完以後也會對網路的來龍去脈了如指掌。第一卷中還
有很多習題也設計得經典和實用,因為作者本身就是一位教師,並且卷一是國外研究生的教材。習題並沒有答案,留給讀者思考,因為問題得答案可以讓你成為一個
中級的Hacker,這些問題的答案可以象Douglus索取,不過只有他只給教師卷二我沒有怎麼看,卷三可以作為參考手冊,其中地例子也很經典。如果您
看過Qterm的原始碼,就會知道Qterm的telnet實現部分大多數就是從這本書的原始碼過來的。對於網路原理的書,我推薦它,而不是
Stevens的《TCP/IP祥解》。
      
《Operating
System - Design and
Implement》這個是講作業系統的書,用Minix做的例子。作者母語不是英文,所以英文看起來比較晦澀。國內翻譯的是《作業系統
設計與實現》,我沒看過中文版,因為翻譯者是尤晉元,他翻譯的《APUE》已經讓我失望頭頂了。讀了這本書,對作業系統的底層怎麼工作的就會有一個清晰的
認識。
      
  《Linux Device

Driver》2e,為數不多的關於Linux裝置驅動程式的好書。不過內容有些雜亂,如果您沒有一些寫驅動的經驗,初次看會有些摸不著南北。國內翻譯的
是《Linux裝置驅動程式》第二版,第一版,第二版的譯者我都有很深的接觸,不過總體上來說,雖然第二版翻譯的有些不盡人意,但是相比第一版來說已經超
出了一大截。要讀這一本書,至少應該先找一些《電腦原理》《電腦體繫結構》的書來馬馬虎虎讀讀,至少應該對硬體和電腦的工作過程有一些瞭解。

原文地址:http://www.ithao123.com/networkprog/0003.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.