`
java-mans
  • 浏览: 11631317 次
文章分类
社区版块
存档分类
最新评论

Linux网管笔记(18):对Linux系统下的开发环境梳理

 
阅读更多

尽管Linux开发的相关岗位很多,但长期以来Linux开发没有统一的开发平台,大多数的开发者都直接使用VI、GCC等命令行工具,这样其实不利于大型项目的开发。

1.依然是熟悉的开发流程

在Linux操作系统中,C语言程序的开发和其他环境类似,程序生成主要分成编译、汇编、连接等几个步骤。

编译是指把用高级语言编写的程序转换成相应处理器的汇编语言程序的过程。从本质上讲,编译是一个文本转换的过程。对嵌入式系统而言,一般要把用C语言编写的程序转换成处理器的汇编代码。编译过程包含了C语言的语法解析和汇编语言的生成两个步骤。汇编一般是逐个文件进行的,对于每一个C语言编写的文件,可能还需要进行预处理。

汇编是从汇编语言程序生成目标系统的二进制代码(机器代码)的过程。机器代码的生成和处理器有密切的联系。相对于编译过程的语法解析,汇编的过程相对简单。这是因为对于一款特定的处理器,其汇编语言和二进制的机器代码是一一对应的。汇编过程的输入是汇编代码,这个汇编代码可能来源于编译过程的输出,也可以是直接用汇编语言书写的程序。

连接过程是指将汇编生成的多段机器代码组合成一个可执行程序。一般来说,通过编译和汇编过程,每一个源文件将生成一个目标文件。连接器的作用就是将这些目标文件组合起来,组合的过程包括了代码段、数据段等部分的合并,以及添加相应的文件头。

在Linux的C语言程序生成过程中,源代码经过编译-汇编-连接生成可执行程序。GCC是Linux下主要的程序生成工具,它除了编译器、汇编器、连接器外,还包括一些辅助工具。

在Linux的程序开发环境下,一般不具有集成开发环境(IDE)。因此,当需要大量编译工程文件的时候,就需要使用自己的方法来管理。如果仅仅手动使用gcc的编译命令,将变得烦琐而单调,而且不利于工程管理。而如果使用Makefile进行工程管理,就可以较好地处理这个问题。

make 程序最初设计的目的是为了维护C程序文件,防止不必要的重新编译。例如,在使用命令行进行编译的时候,修改了一个工程中的头文件,如何确保包含这个头文件的所有文件都得到编译呢?这些工作可以让make程序来自动完成。make工具对于维护一些具有相互依赖关系的文件特别有用,它对文件和命令的联系(在文件改变时调用来更新其他文件的程序)提供一套编码方法。make工具的基本概念类似于Proglog语言,在使用的过程中只告诉make需要做什么,即提供一些规则,其他的工作由make自动完成。

make是一个命令工具,具体来说是一个解释Makefile中的指令的命令工具。Makefile的工作原理是调用系统中的make命令解释当前的Makefile,完成其中指定的功能。在很多的IDE中都有这个命令,如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,Makefile已经成为一种在工程方面的编译方法。

2.调试

调试是程序开发一个很重要的环节。在Linux的程序开发中,最主要的调试工具是GDB。GDB是一个命令行调试工具,可以实现在程序中设置断点、单步执行、查看对应源代码等功能。

虽然Linux中基本的开发工具GCC和GDB都是命令行工具,但是它们也可以和IDE(集成开发环境)结合使用。

经过多番比较,下面以Eclipse作为嵌入式Linux开发的集成开发环境。如图所示。

1

3.一点体会

对于Linux操作系统,目标程序是可执行的ELF(Executable and linking Format)格式;对于uCLinux操作系统,目标程序是Flat格式;对于需要在系统直接运行的程序,目标程序应该是纯粹的二进制代码,载入系统后,直接转到代码区地址执行。

<script type="text/javascript"><!-- google_ad_client = "pub-4255855009993786"; /* 300x250, 创建于 09-11-4 */ google_ad_slot = "2489322214"; google_ad_width = 300; google_ad_height = 250; // --></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>

分享到:
评论

相关推荐

    LINUX环境下用C++实现SNMP网管协议

    综上所述,在Linux环境下使用C++实现SNMP网管协议不仅要求对SNMP协议本身有深刻理解,还需要熟悉Linux操作系统、C++编程以及网络管理的相关概念。耶健同学的项目通过实际编程实践,不仅实现了对网络设备的基本管理...

    Linux网管指南4

    《Linux网管指南4》是针对使用Linux操作系统进行网络管理的专业指南,主要关注通过串行硬件设置连接到互联网的方法。本章重点讲述了依赖modem接入网络的用户如何维护和优化他们的链路,同时也介绍了多种通信软件和...

    Linux下安装思科CIC网管软件.pdf

    "Linux下安装思科CIC网管软件.pdf" 本文主要介绍了在Linux系统下安装思科CIC网管软件的方法。思科CIC网管软件提供了高性能的、分布式的、综合的客户一服服务器...标签:Linux操作系统、系统开发、参考文献、专业指导

    基于Linux平台的嵌入式网管软件开发.pdf

    在嵌入式环境下的网络管理软件开发中,通常会选择Intel i7硬件平台和RHEL 6.3 Linux操作系统作为基础。利用NET-SNMP,开发者可以创建网络管控设备与被管理设备之间的接口软件,为上层软件模块提供API接口。这样,...

    Linux网管员手册

    Linux 网管员必备, 包括 网络基础知识,Linux 服务器的搭建, BBS , 网站建设等等

    高校网管环境下linux安装方法.pdf

    【标签】:Linux 操作系统 系统开发 参考文献 专业指导 在当前的高等教育环境中,随着计算机技术和网络的快速发展,计算机专业课程的设置不断更新,高校机房的网络管理环境变得越来越多样化。一台计算机往往需要...

    Unix&Linux网管通鉴[part5]

    Unix&Linux网管通鉴: &lt;br&gt;包含了16本书的大集合.... &lt;br&gt;绝对值得收藏........

    Linux 网管基本命令

    Linux 网管基本命令是 Linux 系统管理员的必备技能之一。本文将介绍 Linux 网管基本命令,包括用户管理、组管理、网络配置等方面的命令。 用户管理 用户管理是 Linux 系统管理员的重要任务之一。Linux 提供了多种...

    U2000网管软件实施手册 网管系统

    U2000网管软件实施手册网管系统 U2000网管系统是监控网络的硬件状态、配置信息、网络结构拓扑,方便整个网络环境的管理。...但是,通过正确地安装和配置U2000网管系统,可以实现对网络环境的有效管理和监控。

    嵌入式Linux下HFC网管前端控制器的设计.pdf

    "嵌入式Linux下HFC网管前端控制器的设计" 本文主要介绍了一个基于嵌入式Linux系统平台的HFC网管前端控制器的设计。该系统能够实时地进行信道的管理,与通信机和管理计算机相连后即可实现整个HFC网管系统的运行。 ...

    网管宝典 Linux服务器架设与管理

    本书系统、全面地介绍了linux系统中服务器的架设和配置方法,全书共分16章,内容包括linux简介和安装、linux基本网络配置、linux防火墙、远程控制、nfs和nis、dhcp服务器、web服务器、ftp服务器、电子邮件服务器、...

    基于IP1829网管型交换机Linux驱动

    本主题聚焦于"基于IP1829网管型交换机Linux驱动",它涉及到一系列关键知识点,包括IP1829、IP1810和IP1819系列网管型交换机,以及它们在Linux环境下的驱动程序开发和应用。 IP1829、IP1810和IP1819是不同型号的网管...

    网管员必读:故障排除(第2版)

    网管员必读:故障排除(第2版)

    EPON网管系统中SNMP Agent在Linux下的研究与实现.pdf

    总的来说,EPON网管系统中SNMP Agent在Linux下的研究与实现是一个涉及网络管理协议、操作系统、嵌入式系统开发和通信技术等多个领域的综合性工程。通过这一过程,不仅可以提升EPON网络的管理效率,也为其他基于Linux...

    EPON网管系统中SNMP Agent在Linux下的研究与实现 (1).pdf

    【EPON网管系统中的SNMP Agent在Linux下的研究与实现】 EPON(以太无源光网络)作为解决接入网“第一英里问题”的首选技术,结合了以太网和PON(光分路器)的优势。在EPON系统中,SNMP(简单网络管理协议)用于外部...

    网管员必读:网络管理(第2版)

    网管员必读:网络管理(第2版)

    传输网络基础培训讲义(WDM、SDH网管系统理论及操作).pptx

    传输网络基础培训讲义(WDM、SDH网管系统理论及操作) 本资源摘要信息主要讲解传输网络基础培训的相关知识点,涉及到WDM和SDH网管系统的理论和操作。下面是本资源摘要信息的详细内容: 一、传输网管结构 * 传输网管...

    网管笔记 一个很适合网管初学者的

    ### 网管基础知识梳理 #### 一、网络管理概览 在《网管笔记》这份文档中,我们可以看到它主要是面向网络管理(以下简称“网管”)的初学者,旨在帮助他们理解基本的网络故障排查流程和技术要点。文档虽然简短,但...

    基于ARM和LINUX的SNMP网管系统的实现

    - **Linux操作系统**:Linux是一款开源的操作系统内核,其稳定性、安全性和可定制性使其成为构建嵌入式系统的理想选择。 ##### SNMP协议简介 SNMP(简单网络管理协议)是一种应用层协议,用于管理和监控网络中的...

    分析:Unix&Linux;网管通鉴.chm

    【Unix&Linux;】较全的文档,文件大小100多mb,入门学习;

Global site tag (gtag.js) - Google Analytics