編輯器:
vi:老牌編輯器,在各個unix和unix-like平台都可以找到
emacs:GNU項目開發的編輯器,功能強大擴充性強,絕對不是一個編輯器那麼簡單
代碼打補丁工具:
diff & patch:一對好搭擋,diff用來產生代碼補丁,而patch則用來給代碼打補丁
項目構建工具:
make(Makefile):常用的項目構建工具,用一個Makefile就可以從整個項目的代碼中構建各個目標
autotool(包括Autoconf, Automake 和 Libtool):方便在你的項目中產生標準的Makefile,為許多自由和開源軟體項目所使用
版本控制工具:
cvs:老牌的版本控制工具,適用於集中式版本控制,為許多專案服務過,現在略顯疲態
subversion:一個為了代替cvs而開發的工具,解決了cvs的一些詬病
GNU Arch:GNU項目開發的版本控制工具,屬於分布式版本控制工具
git:Linus Torvalds為核心版本控制所開發的工具,當然也適用於普通應用程式,也屬於分布式版本控制工具
C庫:
glibc:GNU項目開發的C庫,很龐大和全面,是許多自由和開源軟體的基石,熟悉它對你進入linux開發領域很有好處
uclibc:為嵌入式系統所開發的C庫,比glibc小得多,但是對glibc保持很高的相容,基於glibc的軟體很容易移植到uclibc上
newlib:另一個為嵌入式系統所開發的C庫
diet libc:同樣是為嵌入式系統所開發的C庫
二進位和目標檔案處理工具:
binutils:GNU項目所開發的二進位和目標檔案處理工具包,包括多種開發過程所需的工具:連接器、彙編器、一系列的二進位和目標檔案處理工具還有一個效能分析器。你一般很少直接用到它們,但常常間接用到它們。
編譯器:
gcc:GNU項目所開發的全能編譯器,它支援的語言套件括C、C++、Objective-C、Fortran、Java和Ada,它支援的處理器包括i386、MIPS、ARM、PowerPC、IA64等等,此外你還可以為它添加其他語言前端和其他處理器後端。gcc效能不俗,還支援交叉編譯,為這個星球;)許多軟體項目所採用。
原始碼調試器:
gdb:GNU項目所開發的原始碼調試器,功能強大,是程式員的好助手
記憶體管理檢查器:
valgrind:非常優秀的記憶體檢查器,可以協助你檢測你程式中的記憶體錯誤。另外還可以對cache的使用和堆(也可以包括棧)的使用進行分析,讓你能夠最佳化你的代碼
調用跟蹤器:
strace:系統調用跟蹤器,可以跟蹤你的程式所調用的系統調用
ltrace:動態庫調用跟蹤器,可以跟蹤你的程式所調用的動態庫介面
效能分析器:
gprof:binutils中帶的效能分析器,可以協助你最佳化你的代碼,提高程式速度
qprof:另一個效能分析器,支援動態庫的效能分析和多線程、多進程效能分析
oprofile:一個系統範圍的效能分析器,使用核心模組和一個後台進程進行資料擷取,它不但可以獲得某個進程的效能分析資料還可以獲得核心的效能分析資料