首先,程序员要了解在linux下的几个之最:
最有用开发语言: C/C++
最流行的工具集: gtk/gdk,qt/e
最好的可视化开发工具:
glade,designer,kdeveloper
最cool的代码阅读工具: source navigator
最普及的调试工具: gdb, ddd , anjuta
最高级(主要指价格高级)的程序跟踪工具: BDM,ICE
最强大的开发平台: Redhat linux 6~8,
Turbolinux 6~7,Hard Hat linux(HHL), Blue cat linux
最快但最年青(年青就是不成熟,吃不得)的图形:nano-X,microwindows,minigui
部分名词的意思:
gtk/gdk: 做 GIMP(linux很有名的图象处理软件的工具集
qt: trollteck公司的产品,有qt/x11跟qt/embedd
glade: 开发gtk/gdk程序的图形工具,能完成界面的编辑(这比用VI做界面好10^n 倍,本人曾经用vi 以每天2000行程序的速度写过gtk的应用,整整写了一个月,后来用glade用重来,一周就完成了)
anjut: 非常方便,功能强大的调试工具,程序出错不用再一行行试了,用它一目了然。
designer: 开发qt/x11程序的图形工具,能完成界面的编辑,也可以开发qt/embedded的程序
kdeveloper: 类似VC一样,功能强大
source navigator: redhat公司出的代码阅读器,supper cool.
microwindows: win32接口GUI,又小又快,用于PDA
nano-X: 多任务的microwindows
miniGUI: 类似上面两种图形,国产的,虽然我没用过,但基于支持国产软件的原则,我想绝对比nano-X及microwindows好。
知道了如上的一些东西,我们就可以决定开发的方向了:
1. 对于C程序员 C + gtk/gdk + glade
+anjuta+ 中文turbolinux
2. 对于C++程序员 C++ + qt/x11 + designer
+ kdeveloper + anjuta+中文turbolinux
3. embedded程序员 c/c++ + qt/embedded +
gtk+ HHL
4. embedded爱好者 c/c++ + microwindows +
HHL
我们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文档""
。
对于非X86平台的开发,经常会需对硬件进行分析,还需要使用硬件辅助除错,比如在ARM的开发中,ARM Debugger支持连接ICE(In-Circuit Emulator)到Remote进行调试,还可通过JTAG接个ICD调试,在PPC开发中则使用BDM去调。 这些设备都比较贵,如果公司里面有现成的,那么一定要积极去使用它,即使有时有其它的代替方法,因为这样才可以表现出你是一个高手高手高高手。如果没有就要看情况是否购买它了,不是必要的就尽量为公司节省费用才是好员工。
当你成为一个优秀的嵌入式Linux开发人员时,不要因此而满足,那怕你是技术最最强的一个,但在一个公司里不表示你是值钱的。只有那些有长远目光,有想法有创意的,能为公司赚到钱的才是最棒的,所以要多了解市场信息,多了解Linux的发展动向,争取写出killer application 为公司赚钱。这也是我一向在努力的,只是至今还没能力实现,希望大家一起努力,一个是为了赚到银子,更重要的为中国的Linux发展及至软件事业作出贡献。
|