Linux操作系统直接建立在内核基础上
创始人
2024-06-23 18:00:43
0

Linux操作系统对于电脑使用的玩家的常用软件,然后我就学习及深入的研究Linux操作系统,在这里和大家一起探讨Linux操作系统的使用方法,希望对大家有用。平台选择 首先,从事GNU/Linux(以下简你Linux)系统下的应用开发,应该有一个合适的操作平台和开发环境,所以选择和安装Linux操作系统成为Linux开发者的第一课。目前可供选择的Linux操作系统种类很多.

如Red Hat(最新版名为Fedora)、SuSE、Mandrake和中科红旗(Red Flag),还有开源组织中有名的Debian等。虽然版本很多,但它们在底层系统组成上的差别是微乎其微的。我们以Red Hat 9.0为开发平台,以后的操作和开发都在这一系统平台上进行。

开发系统的组成 图1简要说明了Linux系统开发工具的组成。 Linux操作系统内核底层的开发工具和辅助工具,有的是直接建立在内核基础上,如Shell、GCC和Make等;有的是建立在脚本语言的基础之上的,如Automake、Autoconf和Libtool等。

它们是Linux操作系统外层的图形界面开发工具(GTK+、QT等)和网络应用开发工具(Perl、PHP和Python等)的基础和过渡。掌握了底层开发工具,对外层应用开发是有好处的,这样可以加快和优化外层应用开发,从而达到开发速度和开发质量的和谐统一。

慎选IDE 本文讲述的程序编辑工作多数是用Linux系统中常用的Emacs和vi来做,在终端窗口中进行命令编译调试。熟悉Windows下编程的朋友们会质疑为什么不用IDE(集成开发环境),是Linux操作系统没有吗?答案当然是否定的。

Linux操作系统下有很多IDE,事实上Emacs就是一个非常好的IDE,其它的还有CodeForge、ANJUTA和Kdeveloper等。对编程人员来说,IDE在编译控制的底层隐藏了很多东西,如果软件开发者真正了解和掌握了这些东西,对开发出更好的应用程序是大有帮助的。

对于IDE可以这么比喻,它好象是飞机上的自动驾驶仪,有了它飞行员会轻松许多,但如果飞行员没有真正掌握飞机的驾驶技术,在飞行中如果自动驾驶仪失灵的话,坠机是必然的,这样的飞行员是不能让他驾机的。

编程人员也如此,只用IDE开发软件是不够的。 开始动手 坐谈论道不如起而躬行。下面就从一个简单的C语言源文件的编译开始,研究这些内容。 首先是安排好目录。在自己的用户目录下,创建一个总的目录learn-gnu,然后在此目录下创建第一个学习目录learn-1.

在此目录下用Emacs编辑hello.c文件,输入如下内容: //hello.c #include int main(int argc, char *argv[]) { int i; if(argc<=1) { printf("The program name is :%s\n", argv[0]); } else { printf("The program name is :%s\n", argv[0]); for(i=1; i printf("The argument %d is : %s\n", i, argv[i]); } }

这段代码试验了命令行参数及其简单的用法,正常情况下在终端中输入下面的命令即可编译: # gcc hello.c -o hello 编译后输出可执行文件hello,执行./hello即可输出下面的语句: The program name is :./hello 这是C语言初学者学到的最简单、最原始、最直接、也是最有效的编译方法,测试方法也是最简单的。

因为所给用例的代码也比较简单,不用太复杂的方法。 这里没有用很经典的“Hello world”程序,其原因是笔者在辅导一些学生们学习C语言课程时,发现他们对这个程序还不太理解。 有没有更好的办法来编译这个源程序呢?可以编写一个简单的Makefile文件,使之自动编译源程序,生成可执行文件,表1为Makefile文件的内容。

 CC = gcc 其中执行make或make all即执行all: all: hello.c 后面的命令,即编译; $(CC) hello.c -o hello make clean 就执行clean:后面的命令, clean: 即清除编译结果。 rm hello -f 用Emacs编辑它并和上面的hello.c保存到同一文件目录,注意文件名为Makefile.

然后,在终端中输入make命令,此时会出现下面的情况: # make # gcc hello.c -o hello 再执行列目录命令,会发现已生成可执行文件hello: # ls hello hello.c Makefile 下面是多个参数的输出结果,相信会对命令行参数有初步的了解。

 # ./hello abc def 123 The program name is :./hello The argument 1 is : abc The argument 2 is : def The argument 3 is : 123 Makefile是Make工具默认的配置文件,执行make命令时,Make自动查找Makefile文件。

Linux操作系统用多个C语言源文件来编译时,使用Make会让编译过程更加快捷有效。因为Make是按源文件的更新时间判断是否进行编译的,即改动了哪个文件就编译哪个文件,未改动的就不做处理。 这里以一个稍复杂的例子来说明。

一个项目由三个C语言源文件a.c、b.c和hello.h构成,其中a.c和b.c中都包含hello.h,最终输出的可执行文件为hello。表2为这个Makefile文件的内容。 想进一步学习Make的使用和Makefile文件的编写,可以看一下它的参考文档,网址是http://www.gnu.org/manual/make-3.79.1/html_chapter/make_toc.html。

如果源程序再复杂一些,例如多一些源文件和附加一定数量的资源(如图像和文档等),或者涉及到系统中的其它支持(如需要系统安装有文档处理工具,语法检测工具,某些开发工具的开发库等)时,再编写Makefile文件就会变得非常麻烦,也非常容易出错。

这种情况可以使用Autoconf 、Automake和Libtool等工具来完成这一工作,这让Makefile有更多的功能,Linux操作系统编译更加完备,检测更加全面,而且还多出了安装、打包发布等更多新功能。

【编辑推荐】

  1. Linux操作系统统实验场景简介
  2. Linux操作系统硬盘分区的基本概念
  3. Linux操作系统环境建立编译执行
  4. Linux操作系统的兴起在各领域发展的现状和趋势
  5. CentOS VM主机支持RedHat AS3/AS4/AS5Linux操作系统

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...