在Linux系统的程序设计中,有一些重要特性要特别注意:
1.Linux是多任务的。可以同时创建多个进程或者线程。绝不能认为自己的程序是系统{wy}运实例;同一个用户或者不同的用户可以运行该程序的其他实例。因此,在某些情况下必须小心对待同步的问题。
2.Linux是个真正的多用户系统。这就意味着存在某种安全机制,以确保把不同用户的文件隔开。用户的程序不能像在其他操作系统中那样,可以修改或者移动任何文件,除非他是root。
3.Linux有分时机制。分时的意思是允许多个用户同时登录,或者一个用户登录多次。用户可以使用诸如telnet或者X技术远程登录。因些必须知道你的程序可能同时被许多用户使用。
Linux系统中提供了许许多多的编程工具,包括:
1.编辑工具:在Linux下编程,你不再拥有集成化环境,你可以使用类似于EDIT的工具---经典的vi来编辑源程序。当然,还有更xx一些的,如joe、emacs等。总之,编辑程序与编译工作是分开的。
2.编译工具:在Linux下支持大量的语言,有C、C++、Java、Pascal、Fortran、COBOL等等。在本讲义中以C/C++语言为主。在使用这些编译工具时,是使用命令行方式的,也就是说,你先用编辑工具输入源程序,然后再执行一长串的命令(参数比较复杂)进行编译。例如:gcc –o hello hello.c 就是将hello.c编译为hello,然后你还需要为其赋予可执行的权限,这样你才完成了整个工作。
3.软件工具:一个大型软件总是由多个源程序组成的,为了能够将大量的编译命令作一次完成,Linux中提供了make各autoconf工具,分别用于大型软件的编译,和编译前根据机器当前状态作相应配置。
4.开发工具包:在Linux下提供了优秀的GNU C库函数、Motif函数库、GTK函数库、QT函数库等为你的编程提供大量的支持。
5.项目管理工具:在Linux下还有CVS这样优秀的用于版本控制、管理的软件配置管理工具。
而且,Linux作为一个自由软件,同时来提供了大量的自由软件,这些自由软件不仅可执行文件自由,而且源程序也自由。你可以通过研习这些优秀的源码来提高自己的编程技艺。
三、Linux下的编程
1. Shell编程:Shell是Linux操作系统的最外层,直接与用户交互,负责解释命令。就像DOS中的COMMAND.COM程序。Shell编程与编写.BAT文件类似。但其提供了一整套机制,使其具有很强大的功能,所以不可小看,善于使用Shell编程可以更好地使用和管理Linux操作系统。
2. WEB编程:在Linux系统下,拥有{zh0}、最普及的WEB服务器Apache,还有优秀的PHP脚本语言,所以在Linux系统下的WEB编程也是很有“钱途”的技能呀。其包括PHP、JSP、Perl的开发。
3. 普通程序开发:在Linux系统中,你可以使用C/C++语言开发出高效的、高可移植性的应用程序来。
4. 用户交互式程序:在Linux系统中,你可以使用ncursor库来实现字符界面下的用户交互式程序。
5. X-Win编程:在Linux系统下,有一个从UNIX系统过继来的图形界面系统X-Window,你可以在这里另辟天地。这方面的开发,MOTIF函数库、QT函数库、KDE函数库可以助你一臂之力。
------------------------------------------------------------------------------------------------------------------------
首先,程序员要了解在linux下的几个之最:
最有用开发语言: C/C++,Perl,Pascal.
{zlx}的工具集: gtk/gdk,qt,xforms
{zh0}的可视化开发工具: glade,designer,kdeveloper
最cool的代码阅读工具: source navigator
最普及的调试工具: gdb, ddd
{zgj}(主要指价格高级)的程序跟踪工具: BDM,ICE
最强大的开发平台: Redhat linux 7.1, Turbolinux 6.1,Hard Hat linux(HHL), Blue cat linux
最快但最年青(年青就是不成熟,吃不得)的图形:nano-X,microwindows,minigui
部分名词的意思:
gtk/gdk: 做 GIMP(linux很有名的图象处理软件的工具集
qt: trollteck公司的产品,用qt/x11跟qt/embedd
xforms: 我也不知道怎么写这类程序,反正是经常用到,很成熟,可以吃了
glade: 开发gtk/gdk程序的图形工具,能完成界面的编辑(这比用VI做界面好10^n 倍,本人曾经用vi 以每天2000行程序的速度写过gtk的应用,整整写了一个月,后来用glade用重来,一周就完成了)
designer: 开发qt/x11程序的图形工具,能完成界面的编辑,也可以开发qt/embedded的程序
kdeveloper: 类似VC一样,功能强大
source navigator: redhat公司出的代码阅读器,supper cool.
microwindows: win32接口GUI,又小又快,用于PDA
nano-X: 多任务的microwindows
miniGUI: 类似上面两种图形,国产的,虽然我没用过,但基于支持国产软件的原则,我想{jd1}比nano-X及microwindows好。
知道了如上的一些东西,我们就可以决定开发的方向了:
1.对于C程序员 C + gtk/gdk + glade + 中文turbolinux
2.对于C++程序员 C++ + qt/x11 + designer + kdeveloper + 中文turbolinux
3.embedded程序员 c/c++ + qt/embedded + HHL
4.embedded爱好者 c/c++ + microwindows + HHL
5.像我这样什么都会的天字号 c/c++ + qt/X11/embedded + designer + gtk/gdk +glade + source navigator + gdb + ddd + bdm + turbolinux + HHL
--------------------------------------linux驱动开发------------------------------------------------------------------------
linux 设备驱动程序
挑几样简单的驱动先读读~LDD3,ULK3
如从网卡驱动开始。。。。
碰到问题了,google下试试