[献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南

Wenxy1 2009-12-28 09:46:29
加精
[献给想深入学习Linux开发的网友] Linux 应用程序开发到内核开发的简明指南。

前言,Linux/Unix 社区的版块不热闹,新手太多,高手太忙,偶把自己这几年的Linux学习的过程讲讲,希望能给大家有点帮助,
引导初学者学习的方向,少走弯路,事半功倍,同时也是抛砖引玉,请过来人热烈发言。

1. 首先熟悉 Linux
建议在 Windows 上安装 VMware Workstation 6.5.0(以下简称VM), 下载种子在 http://www.verycd.com上找。
安装好 VM 后,在VM里安装 Linux Fedora core 4 或者最新的 Linux Fdrora 12, 下载网址:http://fedoraproject.org/get-fedora
在Winodws 上用开源的 putty, 或者 SecureCRT 通过SSH访问VM里的 linux.
Winodws和Linux间copy文件可以通过开源的 Winscp,或者在VM里开启文件共享,或者在linux上开启SMB服务。

建议熟悉文本界面上常用的 shell命令。当然linux的图形界面也比较友好,在文本界面通过 startx 可以进入GUI。
这类书籍太多了,自己去找两本国外作者写的linux入门书。

2. 在Linux上,用C,C++做应用程序开发(服务器程序,即非GUI程序)。

建议看经典的书《Unix环境高级编程》,W.Richard Stevens著。网络编程可以看《TCP/IP详解》三卷书.
学习Makefile的写法。
我习惯在linux上启用 smb 服务,在windows xp上用 source insight 编辑C、C++代码,通过SecureCRT访问linux, 执行make命令,
整个工程自动生成。当然也有高手喜欢用VI, 我一般不用,除非没有可以选择的编辑器。
要是有VC的开发经验,学习起来很快,估计2周就能上手。

3. 进入 Linux 内核开发。
内核开发的学习难度要比 Linux 应用程序开发大 3倍左右。基本上,有一年的linux应用开发经验,就可以主动进入到linux 内核开发。
必看的书籍;《Linux Device Drivers》,《Understanding TheLinux Kernel》,《Linux Kernel Development》(分别简称LDD,ULK, LKD)。LDD,ULK,我从卓越网或者当当网买了纸质版的。当然PDF格式的电子版也有,大家可以google.

学习编译内核,配置内核,用新内核启动系统.
学习写内核模块, 了解内核常用的API。
可以分析TCP/IP协议栈,网卡驱动等等。
例如TCP/IP协议栈,经典的书:
W.Richard Stevens著《TCP/IP详解》三卷书.
RFC文档。
lwIP,一个开源的TCP/IP协议栈,比Linux自己的TCP/IP协议栈要简单。
开源的协议分析工具:wireshark。
学习网络技术,可以参考我在VC版的贴子:http://topic.csdn.net/u/20090923/20/72f47268-f9cd-4daa-a145-4c3ed8af445a.html?25116
...全文
15873 90 打赏 收藏 转发到动态 举报
写回复
用AI写文章
90 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaya_lucky 2012-09-25
  • 打赏
  • 举报
回复
mark一下
mad max 666 2012-09-22
  • 打赏
  • 举报
回复
good
taiheng05 2010-10-25
  • 打赏
  • 举报
回复
能不能再具体一点
astrotycoon 2010-10-25
  • 打赏
  • 举报
回复
受教了!我自己在自学,感觉有点累,也有点迷茫。不过我不会放弃的!呵呵!
believe1314 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 41 楼 zhangheng0624 的回复:]
为什么我在11楼的回复被删掉了??我只是推荐了一些书啊
[/Quote]

什么书呢
OneOnce 2010-03-16
  • 打赏
  • 举报
回复
好贴,LZ你的精神太让人感动了。
skysoshy 2010-03-08
  • 打赏
  • 举报
回复
版主看来是尽心尽力的为论坛发展做贡献啊, 顶一个!
SARA520 2010-03-07
  • 打赏
  • 举报
回复
正在看LKD2,谢谢楼主的分享阿
victorypiter 2010-01-28
  • 打赏
  • 举报
回复
正在看内核源代码……
wbgxx 2010-01-27
  • 打赏
  • 举报
回复
初学者!谢谢搂主的分享!!!
FreshGH 2010-01-11
  • 打赏
  • 举报
回复
开始学习Linux,谢谢LZ的帮助
herman~~ 2010-01-10
  • 打赏
  • 举报
回复
mark 谢了
ling1874 2010-01-07
  • 打赏
  • 举报
回复
来顶一下啊

hefuhua 2010-01-06
  • 打赏
  • 举报
回复
好贴,加油
yangguoyk 2010-01-06
  • 打赏
  • 举报
回复
顶一个先,在转
long_hh 2010-01-06
  • 打赏
  • 举报
回复
帮顶,还在初级阶段。
ZhengboCai 2010-01-04
  • 打赏
  • 举报
回复
弯路可以少走,但不走弯路是万万不能的。。。没有跌爬哪能成长!
warsour 2010-01-04
  • 打赏
  • 举报
回复
装虚拟机挺影响机器性能的,而且用惯了windows,时不时就开小差了,刚装了个ubuntu,还挺方便的,不知道在linux下有什么好的开发环境么,看原来别人用eclipse,也不知道好用不,一个一个c文件的写,自己还真组织不过来呀~
LZ,有空指导指导哈哦
songdm2009 2010-01-03
  • 打赏
  • 举报
回复
收藏了,慢慢看
天乐_那由他 2009-12-31
  • 打赏
  • 举报
回复
这个要收藏了,慢慢学
加载更多回复(67)

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧