校花之贴身高手txt笔下:Linux开发终极指南[新版]

来源:百度文库 编辑:中财网 时间:2024/04/29 14:22:19


[作者:Tomsoftware骨干之一 Linux天字一号 ]
[关于版权的声明: 本着Linux自由开放的精神,Tomlinux所公开的Tomlinux文档,充许任意转载或出版,但作为对文章作者努力工作的回报,必须保留文章出处(http://www.tomlinux.com)及作者,Tomlinux转发文章时也将遵守这一个原则。]


本文于2001年始发于中国Linux论坛,后在LinuxAID论坛稍作了升级,因为只是上网时偶然兴致所发,故内容比较简单,现作更详细的论述,希望对广大的Linux爱好者特别是嵌入式Linux开发人员有所帮助。2004-01-18

我们Step by Step,只要肯下苦功钻研Linux,按照这条路走一定可以成为优秀的Linux开发人员。这个开发途径不一定是最好的,但肯定是一条正道,也是目前Linux的潮流所在,是我多年开发Linux及做Linux项目的经验总结,出于对中国Linux事业的极大热情,愿意奉献出来与大家共享。

Step 1: 掌握Linux的安装运行方法,包括:

a. 从CDROM直接安装Linux
b. 用fdisk或pqmagic的协助手工分区安装Linux
c. 硬盘上本身有Linux,但不能启动,要懂得使用软盘或CDROM恢复Linux系统
d. 使用vpc或vmware等工具安装启动Linux
e. 在dos/windows下安装Linux,使用loadlin来启动系统
f. 通过网络无盘来启动Linux,其实这个原理很简单,只要懂上面所说的loadlin使用,无盘启动Linux系统和无盘启动dos做法一模一样。

Step 2: 掌握Linux的运行原理,Linux系统启动的标准流程:
Bios->Lilo/Grub->Kernel->/sbin/init(init等于是一个批处理,它将从/etc/inittab读取将要运行的指令,因此我们可以自己写这个批处理,往后要运行什么都可以自己控制)->login->/usr/X11R6/bin/startx

Step 3: 掌握Linux的常用命令,命令列表请查阅Tomlinux文档"Linux开发常用命令"

Step 4: 了解Linux专业名词及开发资源,请查阅Tomlinux文档"嵌入式Linux名词及资源"

Step 5: 如果从step1到step4你都掌握或比较熟悉,那么进行嵌入式Linux开发的基础就算扎实了,接下来考虑的是开发的方向,一般是从X86的开发开始,进行X86开发的最佳组合为:
a . Kernel 使用最终稳定版而非最新版进行裁减,如果功能可达到,甚至可以退回到更旧的稳定版,旧版kernel可以做得更小更快。
b. bash和常用命令集要使用busybox而不是使用标准的
c. 如果存储空间足够,lib可使用标准libc,对于存储空间紧张的使用uClibc
d. 图形系统使用Tinyx
e. 窗口系统使用icewm
f. 开发选用语言,个人认为使用C/C++是主力,其它只能作为辅助
g .图形应用选用免费而又非常优秀的GTK工具集,可以在其图形开发环境galde和anjuta、SNavigator的配合下进行,这个组合简直是黄金搭档,我自己觉得这加起来比vb/vc还好用。当然另一个不错的选择是使用QT工具集,可配置Designer、Kdeveloper来使用。
h. 开发字符应用可使用ncurses辅助,开发无图形服务器的系统可使用直接写屏framebuffer方式或SDL、QT/E方式
i. 发行时选用的存储器一般是DOC或者DOM而不使用HD

根据上面的组合开发出来的系统,装到8M的DOC/DOM上完全没有问题,如果是以没有图形服务器方式h.进行的,最小1M的DOC就够了。

Step 6: 掌握X86的开发方法后,在其它平台上进行开发也是大同小异,所需更换的主要是引导方式,kernel、基本库及编译器等。这些东西在安装相应的开发包后即可解决,不要自己耗大量时间去进行,开发精力应放到产品级的开发上去,必竟中国目前的水平还没有到编译器这一类的级别。不同的平台及相关的Linux支援主查阅 Tomlinux文档"嵌入式CPU" 。

对于非X86平台的开发,经常会需对硬件进行分析,还需要使用硬件辅助除错,比如在ARM的开发中,ARM Debugger支持连接ICE(In-Circuit Emulator)到Remote进行调试,还可通过JTAG接个ICD调试,在PPC开发中则使用BDM去调。 这些设备都比较贵,如果公司里面有现成的,那么一定要积极去使用它,即使有时有其它的代替方法,因为这样才可以表现出你是一个高手高手高高手。如果没有就要看情况是否购买它了,不是必要的就尽量为公司节省费用才是好员工。

当你成为一个优秀的嵌入式Linux开发人员时,不要因此而满足,那怕你是技术最最强的一个,但在一个公司里不表示你是值钱的。只有那些有长远目光,有想法有创意的,能为公司赚到钱的才是最棒的,所以要多了解市场信息,多了解Linux的发展动向,争取写出killer application 为公司赚钱。这也是我一向在努力的,只是至今还没能力实现,希望大家一起努力,一个是为了赚到银子,更重要的为中国的Linux发展及至软件事业作出贡献。