您的位置:首页 > 运维架构 > Linux

Linux 应用程序开发到内核开发的简明指南和推荐书籍

2011-12-23 15:17 302 查看
[献给想深入学习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。

书籍推荐:

Linux基础

1、《Linux与Unix Shell 编程指南》

C语言基础

1、《C Primer Plus,5th Edition》【美】Stephen Prata著

2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著

3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)

4、《嵌入式Linux应用程序开发详解》

Linux内核

1、《深入理解Linux内核》(第三版)

2、《Linux内核源代码情景分析》毛德操 胡希明著

研发方向

1、《UNIX Network Programming》(UNP)

2、《TCP/IP详解》

3、《Linux内核编程》

4、《Linux设备驱动开发》(LDD)

硬件基础

1、《ARM体系结构与编程》杜春雷著

2、S3C2410 Datasheet

英语基础

1、《计算机与通信专业英语》

系统教程

1、《嵌入式系统――体系结构、编程与设计》

2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明著

3、《Building Embedded Linux Systems》

理论基础

1、《算法导论》

2、《数据结构(C语言版)》

3、《计算机组织与体系结构?性能分析》

4、《深入理解计算机系统》【美】Randal E. Bryant David O'Hallaron著

5、《操作系统:精髓与设计原理》

6、《编译原理》

7、《数据通信与计算机网络》

8、《数据压缩原理与应用》

转于:

http://topic.csdn.net/u/20091228/21/9d77de1e-7100-4033-bd67-2f15063ff24e.html?10541
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: