免费论文网 首页

linux论文3000字

时间:2016-11-11 09:19:10 来源:免费论文网

篇一:Linux论文

课程:Linux开发环境

班级:Linux开发环境1班

题目:嵌入式Linux系统

教师:赵君喆

姓名:陶剑锋

学号:20133921015

时间:2014.5.18

湖北科技学院

嵌入式Linux系统

【论文摘要】Linux系统是一种应用越来越广泛的网络操作系统,在众多的嵌入式操作系统中,Linux的快速发展和开源的优势,使其赢得了众多的用户和商业的支持。嵌入式和Linux的有机结合,成为后PC时代计算机最普遍的应用形式。本文主要介绍Linux系统特点;分析嵌入式Linux的开发过程及在开发过程中所面临的挑战;阐述嵌入式Linux的发展和应用前景。

【关键词】嵌入式、Linux、操作系统

1 Linux成为嵌入式系统的原因

现在Linux广泛用于各类计算机应用,不仅包括微型Linux腕表、手持设备(PDA和蜂窝电话)、因特网装置、瘦客户机、防火墙、工业机器人和电话基础设施设备,甚至还包括了基于集群的超级计算机。Linux在嵌入式领域的优势和他的功能是分不开的。下面从几个方面来谈谈Linux成为嵌入式系统的原因: 第一,微内核。可以把编译好的内核大小限制到只有几百kb,所以完全可以把Linux内核和简单的文件系统放在一张软盘上,启动同一台电脑。也可以利用Linux实现从网络启动,实现网络无盘图形工作站,这些特点使得Linux非常适合做嵌入式开发的操作系统。

第二,Linux系统是层次结构切内核完全开放。Linux源代码开放的特性,使得Linux用户大大降低了开发成本,提高了生产效率,也大大提高了不少中小型企业和初学者的开发积极性。Linux是由很多体积小且性能高的微小内核系统组成,在内核代码完全开放的前提下,不同领域的用户可以根据自己的需要对内核进行改造,低成本设计和开发出满足自己需求的嵌入式系统。

第三,强大的网络支持功能。Linux诞生于英特网时代且保留了Uinux的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP IP网络协议栈。此外,Linux还支持ext2、fatl6、fat32、romfs等文件系统,位开发嵌入式系统应用打下了良好的基础。

第四,多任务、多使用者。与Window系统不同,Linux主机上可以允许多人同时上线工作,并且资源的分配较为公平,比起Window的单人假多任务系统要稳定得多。你可以在一部Linux主机上面规划出不同等级的使用者,而且每个使用者登入系统时的工作环境都可以不相同,此外,还可以允许不同的使用者在同一时间登入主机,同时使用主机的资源。

第五,Linux具有广泛的硬件支持特性。无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux通常使用的微处理器是Intel X86芯片家族,但它同样能运行于Motor啦公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Inter公司的StrongARM CPU等处理器。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式Linux将具有更广泛的应用前景。

表1 专用的嵌入式操作系统与嵌入式Linux的比较

2 Linux嵌入式系统开发平台

2.1 系统软件操作平台

操作系统是一种在计算机上运行的软件。它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口。它存在的目的是为了管理所有硬件资源,并且提供应用软件一个合适的操作环境。嵌入式系统由于硬件的限制,通常只具有极其稀少的硬件资源,如主频较低的CPU、较小的内存,小容量的固态电子盘芯片DoC(Disk on Chip)或DoM(Disk on Module)替代磁盘等。在使用电池的系统中,它还要实现低功耗、延长电池使用寿命的功能。

Linux座位嵌入式操作系统是完全可行的。因为Linux提供了完成嵌入式功能的基本内核和所需要的所有用户界面,能处理嵌入式任务和用户界面。将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其它分拆的微内核到完整的服务器,支持所有的文件系统和网络服务。Linux座位嵌入式系统,手机一个带有很多优势的新成员。它对很多CPU和硬件平台都是易移植、稳定、功能强大、易于开发的。

嵌入式Linux系统需要下面三个基本元素:系统引导工具(用于机器加电后的系统定位指导)、Linux微内核(内存管理、程序管理)、初始化进程。但如果要它成为完整的操作系统并且继续保持小型化,还必须加上硬件驱动程序、硬件接口程序和应用程序组。

Linux是基于GNU的C编译器,作为GNU工具链的一部分,与gbd源调试器一起工作的。它提供了开发嵌入式Linux系统的所有软件工具。

2.2 系统硬件平台

在选择硬件时常由于缺乏完整或精确的信息而使硬件选择成为复杂且困难的工作。硬件开发成本常事我们很关心的的。当考虑硬件成本时,须考虑产品的整个成本而不仅是CPU的成本。因为合适的CPU,一旦加上总线逻辑和延时电路使之与外设备一起工作,硬件系统就可能变得肥城昂贵。如果要寻找嵌入式软件系统,那么应首先确定硬件平台,即确定微处理器CPU的型号。

现在比较流行的硬件平台有Intel公司的StrongARM 系列,Motorola公司的DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3SH4系列等等。选定硬件平台前,首先要确定系统的应用功能和所需要的速度,并制定好外接设备和接口标准。这样才能准确地定位所需要的硬件方案,得到性价比最高的系统。 3 嵌入式Linux系统开发模式

嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。一般流程见图2。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载到目标平台上的特定位置上运行,具体步骤如下:

第一步,建立嵌入式Linux交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C++等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。例如,在基于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器。通常情况下,并不是每一种体系结构的嵌入式微处理器都只对应于一种交叉编译器和交叉链接器。如对于M68K体系结构的gcc交叉开发环境而言,就对应于多种不同的编译器和链接器。如果使用的是COFF格式的可执行文件,那么在编译Linux内核时,需要使用m68k-coff-gcc和m68k-coff-ld,而在编译应用程序时则需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。编写好的嵌入式软件经过交叉编译和交叉链接后,通常会生成两种类型的可执行文件:用于调试的可执行文件和用于固化的可执行文件。

第三步,交叉调试。

①硬件调试。如果不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。

②软件调试。在嵌入式Linux系统中,Linux系统内核调试,可以先在Linux内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。

嵌入式上层应用软件的调试可以使用本地调试和远程调试两种方法。如果采用的是本地调试,首先要将所需的调试器移植到目标系统中,然后就可以直接在目标机上运行调试器来调试应用程序了;如果采用的是远程调试,则需要移植一个调试服务器到目标系统中,并通过它与宿主机上的调试器共同完成应用程序的调试。在嵌入式Linux系统的开发中,远程调试时目标机上使用的调试服务器通常是gdbserver,而宿主机上使用的调试器则是gdb。两者相互配合共同完成调试过程。

第四步,系统测试。整个软件系统编译过程,嵌入式系统的硬件一般采用专门的测试仪器进行测试,而软件则需要有相关的测试技术和测试工具的支持,并要采用特定的测试策略。测试技术指的是软件测试的专门途径,以及能够更加有效地运用这些途径的特定方法。在嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试需要消耗较多的时间和经费,而基于宿主机的测试虽然代价较小,但毕竟是在仿真环境中进行的,因此难以完全反映软件运行时的实际情况。这两种环境下的测试可以发现不同的软件缺陷,关键是要对目标机环境和宿主机环境下的测试内容进行合理取舍。嵌入式软件测试中经常用到的测试工具主要有:内存分析工具、性能分析工具、覆盖分析工具、缺陷跟踪工具等。

以下即为一个典型开发工具的使用流程:

① 写入或植入引导码;

② 向串口打印字符串的编码;

③ 将gdb目标码移植工作串口,可与另一台运行gdb程序的Linux主机系统对话;

④ 利用gdb让硬件和软件初始化码在Linux内核启动时工作;

⑤ Linux内核启动,串口成为Linux控制口并可用于后续开发;

⑥ 如果在目标硬件上已运行了完整的Linux内核,即可调试用户的应用进程。

4 嵌入式Linux的应用

嵌入式系统目前已在国防、国民经济及社会生活各领域普及应用,用于企业、军队、办公室、实验室以及个人家庭等各种场所。

1 军用方面的应用

各种武器控制(火炮控制、导弹控制、智能炸弹制导引爆装置)、坦克、舰艇、轰炸机等陆海空各种军用电子装备,雷达、电子对抗军事通信装备,野战指挥作战用各种专用设备等。

2 消费电子方面的应用

我国各种信息家电产品,如数字电视机、机顶盒、数码相机、VCD、DVD、音响设备、可视电话、家庭网络设备、洗衣机、电冰箱、智能玩具等,广泛采用微处理器/微控制器及嵌入式软件。随着市场的需求和技术的发展,传统手机逐渐发展成为融合了PDA、电子商务和娱乐等特性的智能手机,我国移动通信市场潜力巨大,发展前景看好。

3 工业控制方面的应用

各种智能测量仪表、数控装置、可编程控制器、控制机、分布式控制系统、现场总线仪表及控制系统、工业机器人、机电一体化机械设备、汽车电子设备等,广泛采用微处理器/控制器芯片级、标准总线的模板级及系统嵌入式计算机。

4 网络方面的应用

Internet的发展,产生了大量网络基础设施、接入设备、终端设备的市场需求,这些设备中大量使用嵌入式系统。

5 其他方面的应用

各类收款机、POS系统、电子秤、条形码阅读机、商用终端、银行点钞机、IC卡输入设备、取款机、自动柜员机、自动服务终端、防盗系统、各种银行专业外围设备以及各种医疗电子仪器,无一不用到嵌入式系统。嵌入式系统可以说无处不在,无所不在,有着广阔的发展前景,也充满了机遇和挑战。 5 嵌入式 Linux 市场前景广阔

嵌入式 Linux 是近来国际上 的一个开发热点 韩国三星公 司已经率先推 出了采用嵌入式 Linux 的掌上计算机的概念样机。而台湾网虎公司在大陆发布了其第一个版本的嵌入式 Linux 内核 。中国共创软件联盟在国家”863”计划的支持下,将嵌入式 Linux 作为本年度重点开发的项目,目前已经进入实质开发阶段 。高可用性的嵌入式 Linux 即将问世 。纵观嵌入式 Linux 的市场发展 ,嵌入式 Linux 市场的发展将呈现两个基本特征 :

(1)发展速度将十分惊人。中国是世界上 IT 产业发展最快的市场之一 ,中国的 Linux 产业也紧跟世界.正以迅猛的速度发展。在服务器、桌面和嵌入式操作系统领域.Linux 所占的份额都在增加。尤其在嵌入式领域,在中国有世界上最大的家用电子产品需求、中国的工业正在进行着数字化、智能化改造等因素的刺激下,用户对嵌入式 Linux 系统的需求正在迅速扩大,因此其发展速度将是惊人的。根据美国投资发展公司预测 ,全球嵌入式 Linux 产品和服务的销售 额将从 2000 年 2820万美元增长到2006 的3.06 亿美元.这在一定程度上反映了嵌入式 Linux 系统的快速增长速度。

(2) 发展空间将迅速扩大。据统计,每年只有 l0—20%芯片是为台式或笔记本电脑而设计的,这也意味着每年有数以十亿计的 CPU 是为嵌入式设备而设计制造。在中国市场上,嵌入式 Linux啄统的应用领域将越来越广泛,其中最主要的应用将包括四大领域:信息电器 ,如机顶盒、网络家电等;移动计算设备,如手机、PD A 、掌上电脑;网络设备。如路由器、交换机、网络服务器 、网络接入盒等 ;工控仿真。 6 嵌入式 Linux 发展现状

嵌入式 Linux 一般是按照嵌入式目标系统的要求而设计 .由一个体积很小 的内核及一些可 以根据需要进行随意裁减的系统模块组成。一般来说整个系统所占用的空间不会超过几 M 大小。目前,国外不少大学 、研究机构和知名公司都加入了嵌入式 Linux 的开发工作,较成熟的嵌入式 Linux 产品不断涌现。 由美国新墨西哥理工学院开发的基于标准 Linux的嵌入式操作系统 RTLinux已成功地应用于航天飞机 的空间数据采集 、科学仪器测控、电影特技图像处理等领域。RTLinux 开发者并没有针对实时操作系统的特性重写 Linux 的内核 ,这样做工作量会非常大 ,而且要保证兼容性也非常困难。为此.RTLinux提供了一个精巧的实时内核,并把标准的 Linux 核心作为实时核心的一个进程同用户的实时进程一起调度.这样做 的好处是对 Linux的改动量最小,充分利用了Linux平台下现有的丰富的软件资源。

由嵌入式 Linux行业主要厂商之一Lineo推出的Embedix,是根据嵌入式应用 系统 的特点重新设计的Linux发行版本。Embedix 提供了超过25 种的Linux系统服务,包括 Web 服务器等。系统需要最小8M 内存,3M 只读内存或闪存。Embedix 基于 Linux 2.2 核心 ,并已经成功地移植到了 Intel X86 和 Powe处理器系列上。

由美国网虎公司推出的 XLinux,号称是世界上最小的嵌入式 Linux 系统 ,核心只有 143K 字节 ,而且还在不断减小。

致力于围产嵌入式Linux 操作系统和应用软件开发的广州博利思软件公司推出的嵌入式 Linux 中文操作系统 POCKETIX ,基于标准的 Linux 内核,并包括一些可以根据需要进行定制的系统模块。支持标准 以太网和 TCP,IP 协议 、支持标准的 XWindow,中文支持采用国际化标准 。提供桌面和窗口管理功能 、带 WEB 浏览器和文件管理器,并支持智能拼音和五笔字型输入。可适应个人PDA 、WAP 手机、机顶盒等广泛的智能信息产品。

21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。目

篇二:linux论文

摘要:主要分析嵌入式Linux系统应用开发的特点;概述其开发过程和所面临的挑战;阐述

嵌入式Linux的发展和应用前景。

关键词:嵌入式Linux 操作系统应用前景

引 言

近年来,随着计算技术、通信技术的飞速发展,特别是互联网的迅速普及和3C(计算机、通信、消费电子)合一的加速,微型化和专业化成为发展的新趋势,嵌入式产品成为信息产业的主流。Linux从1991年问世到现在,短短的十几年时间已经发展成为功能强大、设计完善的操作系统之一;可运行在X86、Alpha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多种硬件平台,而且开放源代码,可以定制;可与各种传统的商业操作系统分庭抗争。越来越多的企业和研发机构都转向嵌入式Linux的开发和研究上,在新兴的嵌入式操作系统领域内也获得了飞速发展。

1 嵌入式Linux的特点嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁剪,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统,系统结构见图1。实时性是嵌入式系统的基本要求,其次,还要求代码小,速度快,可靠性高。嵌入式Linux(Embedded Linux)是指对Linux经过裁剪小型化后,可固化在存储器或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究已经成为目前操作系统领域的一个热点。 一、Linux系统是层次结构且内核完全开放

Linux是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。

二、Linux系统强大的网络支持功能

Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈将其开发成为嵌入式的TCP/IP网络协议栈。 此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,为开发嵌入式系统应用打下了很好的基础。 三,Linux具备一整套工具链

容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEE POSIX.1标准,使应用程序具有较好的可移植性。 传统的嵌入式开发的程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序;但一般价格比较昂贵,只适合做非常底层的调试。使用嵌入式Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(tool chain)。它利用GNU的gcc做

编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。

第四,Linux具有广泛的硬件支持特性

无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux通常使用的微处理器是Intel X86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的StrongARM CPU等处理器。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式Linux将具有更广泛的应用前景。

2 Linux嵌入式系统开发平台

2.1 系统软件操作平台

操作系统是一种在计算机上运行的软件。它的主要任务是管理计算机上的系统资源,为用户提供使用计算机及其外部设备的接口。它存在的目的是为了管理所有硬件资源,并且提供应用软件一个合适的操作环境。嵌入式系统由于硬件的限制,通常只具有极稀少的硬件资源,如主频较低的CPU、较小的内存、小容量的固态电子盘芯片DoC(Disk on Chip)或DoM(Disk on Module)替代磁盘等。在使用电池的系统中,它还要实现低功耗,延长电池使用时间的功能。

Linux作为嵌入式操作系统是完全可行的。因为Linux提供了完成嵌入功能的基本内核和所需要的所有用户界面,能处理嵌入式任务和用户界面。将Linux看作是连续的统一体,从一个具有内存管理、任务切换和时间服务及其它分拆的微内核到完整的服务器,支持所有的文件系统和网络服务。Linux作为嵌入式系统,是一个带有很多优势的新成员。它对许多CPU和硬件平台都是易移植、稳定、功能强大、易于开发的。

嵌入式Linux系统需要下面三个基本元素:系统引导工具(用于机器加电后的系统定位引导)、Linux微内核(内存管理、 程序管理)、初始化进程。但如果要它成为完整的操作系统并且继续保持小型化,还必须加上硬件驱动程序、硬件接口程序和应用程序组。 Linux是基于GNU的C编译器,作为GNU工具链的一部分,与gdb源调试器一起工作的。它提供了开发嵌入式Linux系统的所有软件工具。

2.2 系统硬件平台

在选择硬件时,常由于缺乏完整或精确的信息而使硬件选择成为复杂且困难的工作。硬件开发成本常是我们很关心的。当考虑硬件成本时,须要考虑产品的整个成本而不仅是CPU的成本。因为合适的CPU,一旦加上总线逻辑和延时电路使之与外设一起工作,硬件系统就可能变得非常昂贵。如果要寻找嵌入式软件系统,那么,应首先确定硬件平台,即确定微处理器CPU的型号。

现在比较流行的硬件平台有Intel公司的StrongARM 系列,Motorola公司的DragonBall系列,NEC公司的VR系列,Hitachi公司的SH3、SH4系列等等。选定硬件平台前,首先要确定系统的应用功能和所需要的速度,并制定好外接设备和接口标准。这样才能准确地定位所需要的硬件方案,得到性价比最高的系统。

2.3 嵌入式Linux系统开发模式

嵌入式系统通常为一个资源受限的系统。直接在嵌入式系统的硬件平台上编写软件比较困难,有时甚至是不可能的。一般流程见图2。目前,一般采用的办法是,先在通用计算机上编写程序,然后,通过交叉编译,生成目标平台上可运行的二进制代码格式,最后下载

到目标平台上的特定位置上运行。 具体步骤如下:

第一步,建立嵌入式Linux交叉开发环境。目前,常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链,目前已经能够支持x86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境主要有Metrowerks CodeWarrior、ARM Software Development Toolkit、SDS Cross compiler、WindRiver Tornado、Microsoft Embedded Visual C 等。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。

第二步,交叉编译和链接。在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。

例如,在基于ARM体系结构的gcc交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器。通常情况下,并不是每一种体系结构的嵌入式微处理器都只对应于一种交叉编译器和交叉链接器。如对于M68K体系结构的gcc交叉开发环境而言,就对应于多种不同的编译器和链接器。如果使用的是COFF格式的可执行文件,那么在编译Linux内核时,需要使用m68k-coff-gcc和m68k-coff-ld,而在编译应用程序时则需要使用m68k-coff-pic-gcc和m68k-coff-pic-ld。编写好的嵌入式软件经过交叉编译和交叉链接后,通常会生成两种类型的可执行文件:用于调试的可执行文件和用于固化的可执行文件。第三步,交叉调试。

① 硬件调试。如果不采用在线仿真器,可以让CPU直接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。目前,Motorola公司提供的开发板上使用的是DBM调试端口,而ARM公司提供的开发板上使用的则是JTAG调试端口。使用合适的软件工具与这些调试端口进行连接,可以获得与ICE类似的调试效果。

② 软件调试。在嵌入式Linux系统中,Linux系统内核调试,可以先在Linux内核中设置一个调试桩(debug stub),用作调试过程中和宿主机之间的通信服务器。然后,可以在宿主机中通过调试器的串口与调试桩进行通信,并通过调试器控制目标机上Linux内核的运行。

嵌入式上层应用软件的调试可以使用本地调试和远程调试两种方法。如果采用的是本地调试,首先要将所需的调试器移植到目标系统中,然后就可以直接在目标机上运行调试器来调试应用程序了;如果采用的是远程调试,则需要移植一个调试服务器到目标系统中,并通过它与宿主机上的调试器共同完成应用程序的调试。在嵌入式Linux系统的开发中,远程调试时目标机上使用的调试服务器通常是gdbserver,而宿主机上使用的调试器则是gdb。两者相互配合共同完成调试过程。

第四步,系统测试。整个软件系统编译过程,嵌入式系统的硬件一般采用专门的测试仪器进行测试,而软件则需要有相关的测试技术和测试工具的支持,并要采用特定的测试策略。测试技术指的是软件测试的专门途径,以及能够更加有效地运用这些途径的特定方法。在嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。基于目标机的测试需要消耗较多的时间和经费,而基于宿主机的测试虽然代价较小,但毕竟是在仿真环境中进行的,因此难以完全反映软件运行时的实际情况。这两种环境下的测试可以发现不同的软件缺陷,关键是要对目标机环境和宿主机环境下的测试内容进行合理取舍。嵌入式软件测试中经常用到的测试工具主要有:内存分析工具、性能分析工具、覆盖分析工具、缺陷跟踪工具等,在这里不加详述。

以下即为一个典型开发工具的使用流程:

① 写入或植入引导码;

② 向串口打印字符串的编码;

③ 将gdb目标码移植工作串口,可与另一台运行gdb程序的Linux主机系统对话; ④ 利用gdb让硬件和软件初始化码在Linux内核启动时工作;

⑤ Linux内核启动,串口成为Linux控制口并可用于后续开发;

⑥ 如果在目标硬件上已运行了完整的Linux内核,即可调试用户的应用进程。

2.4 嵌入式Linux面临的挑战

目前,对嵌入式Linux系统的开发正在蓬勃兴起,并已形成了很大的市场。除了一些传统的Linux公司,像RedHat、VA Linux等,正在从事嵌入式Linux的研究之外,一批新公司(如Lineo、TimeSys等)和一些传统的大公司(如IBM、SGI、Motorola、Intel等)以及一些开发专用嵌入式操作系统的公司(如Lynx)也都在进行嵌入式Linux的研究和开发。但就目前的技术而言,嵌入式Linux的研究成果与市场的真正需求还有一些距离,因此,嵌入式Linux走向成熟还需要在以下几个方面有所发展。

(1)Linux的实时性扩充

实时性是嵌入式操作系统的基本要求。由于Linux还不是一个真正的实时操作系统,内核不支持事件优先级和抢占实时特性,所以在开发嵌入式Linux的过程中,首要问题是扩展Linux的实时性能。对Linux实时性的扩展可以从两方面进行:向外扩展和向上扩展。向外扩展即从范围上扩展,让实时系统支持的范围更广,支持的设备更多。目前的开发所面向的设备仅限于较简单的有实时要求的串/并口数据采集、浮点数据计算等,而像实时网络这样实时系统的高级应用还需进一步发展。向上扩展是扩充Linux内核,从功能上扩充Linux的实时处理和控制系统。如嵌入式系统RT-Linux,它的基本原理是将Linux本身的任务以及Linux内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务,即在实时任务存在的情况下运行实时任务,否则就运行Linux本身的任务。实时任务不同于Linux普通进程。它是以Linux的可装载的内核模块(Loadable Kernel Module,LKM)的形式存在的,需要运行实时任务的时候,将这个实时任务的内核模块插入到内核中去,实时任务和Linux一般进程之间的通信通过共享内存或者FIFO通道来实现。

(2)改变Linux内核的体系结构

Linux的内核体系采用的是Monolithic。在这种体系结构中,内核的所有部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高系统的响应速度和CPU的利用率,且实时性好;但在系统比较大时体积也比较大,与嵌入式系统容量小、资源有限的特点不符。而另外一种内核体系结构MicroKernel, 在内核中只包括了一些基本的内核功能,如创建和删除任务、任务调度、内存管理和中断处理等部分,而文件系统、网络协议栈等部分都是在用户内存空间运行。这种结构虽然执行效率不如Monolithic内核,但大大减小了内核的体积,同时也方便了整个系统的升级、维护和移植,更能满足嵌入式系统的特点需要。为此,要使嵌入式Linux的应用更加广泛,若将Linux目前的Monolithic内核结构中的部分结构改造成MicroKernel体系结构,可使得到的Linux既具有很好的实时性,又能满足嵌入式系统体积小的要求。

另外,Linux是一个需要占用存储器的操作系统。虽然这可以通过减少一些不必要的功能来弥补,但可能会浪费很多时间,而且容易带来很大的麻烦。许多Linux的应用程序都要用到虚拟内存,这在许多嵌入式系统中是没有价值的。所以,并不是一个没有磁盘的Linux嵌入式系统就可以运行任何Linux应用程序。

(3)完善Linux的集成开发环境

提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是:编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。在Linux系统中,具有功能强大的gcc编译器工具链,使用了基于GNU的调试器gdb的远程调试功能,一般由一台客户机运行调试程序调试宿主机运行的操作系统内核; 在使用远程开发时还可以使用交叉平台的方式,如在Windows平台下的调试跟踪器对Linux的宿主系统做调试。但是,Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距。因此,要使嵌入式Linux在嵌入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和完善。

(4) 嵌入式Linux的发展及应用前景

综上,由于Linux具有对各种设备的广泛支持性,因此,能方便地应用于机顶盒、IA设备、PDA、掌上电脑、WAP手机、寻呼机、车载盒以及工业控制等智能信息产品中。与PC相比,手持设备、IA设备以及信息家电的市场容量要高得多,而Linux嵌入式系统的强大的生命力和利用价值,使越来越多的企业和高校表现出对它极大的研发热情。蓝点软件公司、博利思公司、共创软件联盟、中科红旗等公司都已将嵌入式系统的开发作为自己的主要发展方向之一。

在嵌入式系统的应用中,Linux嵌入式操作系统所具有的技术优势和独特的开发模式给业界以新异。有理由相信,它能成为Internet时代嵌入式操作系统中的最强音。

篇三:linux结课论文

目 录

前言 ............................................................................................................................... 1

1Linux的简介 .............................................................................................................. 2

1.1什么是Linux ........................................................................................................................ 2

1.2Linux系统的主要特点 ....................................................................................................... 2

1.3LINUX的组成 ......................................................................................................................... 3

2基本的网络命令以及他们的使用方法 .................................................................... 3

2.1ping命令 ................................................................................................................................ 3

2.2ifconfig命令 ....................................................................................................................... 4

2.3netstat命令 ......................................................................................................................... 4

2.4echo命令 ................................................................................................................................ 5

3网络配置文件的配置方法 ........................................................................................ 6

4telnet配置 ................................................................................................................ 7

4.1telnet简介 ............................................................................................................................ 7

4.2telnet建立账户 ................................................................................................................... 7

4.3telnet测试账户 ................................................................................................................... 8

5配置NFS服务器 ........................................................................................................ 9

5.1NFS简介 ................................................................................................................................... 9

5.2NFS的文件远程挂载 .......................................................................................................... 10

6配置samba服务器 .................................................................................................. 11

6.1samba服务器的简介 .......................................................................................................... 12

6.2samba服务器文件共享 ..................................................................................................... 12

7简单shell编程 ...................................................................................................... 13

7.1编写shell脚本 ................................................................................................................. 13

7.2编写弹出式菜单的shell程序 ..................................................................................... 14

7.3编写一个小九九乘法表 ................................................................................................... 16

8gcc的简单使用 ........................................................................................................ 17

8.1递归的方法求N的阶乘 ................................................................................................... 17

8.2求1至n之间的奇数 ........................................................................................................ 18

8.3求1至n的累加和 ............................................................................................................ 19

总结 ............................................................................................................................. 21

前言

Linux系统是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。 Linux凭借其自由、免费、开放源代码的优势,经过来自互联网、遍布全球的程序员的努力,再加上IBM、Sun等计算机巨头的支持,Linux在手机操作系统市场中异军突起,尤其是在众多知名厂商宣布支持Linux手机操作系统之后,Linux的发展将不容忽视。

由于Linux具有源代码开放、软件授权费用低、应用开发人才资源丰富等优点,便于开发个人和行业应用。这一可控认证系统。特点非常重要,因为丰富的应用是智能手机的优越性体现和关键卖点所在。从应用开发的角度看,由于Linux的源代码是开放的,有利于独立软件开发商(ISV)开发出硬件利用效率高、功能更强大的应用软件,也方便行业用户开发自己的安全。

Linux基础与应用大作业

摘要:Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。本论文文阐述了Linux的基本网络命令以及他们的使用方法、网络配置文件的配置方法、配置NFS服务器、配置samba服务器、shell编程、gcc的简单使用等等。为了达到阐述问题的目的,对一些进行了详细的分析以及对一些基本操作进行了截图。在此论文中,系统的开发平台是Redhat Linux 9.0,本文详细介绍了Linux操作系统下的基本操作与应用。 关键字:Linux 网络命令 配置服务器 shell编程gcc 1Linux的简介

1.1什么是Linux

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

Linux以它的高效性和灵活性著称。它能够在个人计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux可在GNU(“不是UNIX”工程的缩写)公共许可权限下免费获得,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

1.2Linux系统的主要特点

开放性:指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。

多用户:是指系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。

多任务:它是指计算机同时执行多个程序,而且各个程序的运行互相独立。 良好的用户界面 :Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。

设备独立性:是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。 Linux是具有设备独立性的操作系统,它的内

核具有高度适应能力 ,提供了丰富的网络功能,完善的内置网络是Linux一大特点。

可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

良好的可移植性:是指将操作系统从一个平台转移到另一个平台使它仍然能按其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。

1.3LINUX的组成

LINUX的内核:内核是系统的核心,是运行程序和管理 像磁盘和打印机等硬件设备的核心程序。

LINUX SHELL: Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。

LINUX文件系统: Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前浒的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。

LINUX应用系统:标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等 2基本的网络命令以及他们的使用方法

Linux的网络命令比较多,其中一些命令像ping、ftp、telnet、route、netstat等在其它操作系统上也能看到,但也有一些 Unix/Linux系统独有的命令,如ifconfig、finger、mail等。Linux网络操作命令的一个特点是,命令参数选项和功能很多,一个命令往往还可以实现其它命令的功能

2.1ping命令

执行ping命令,它会使用ICMP传输协议发出要求回应的信息,若远程主机的网络没有什么问题,就会回应信息,因而得知该主机运作正常。

标准用法:

Ping (-选项) 主机名称或是IP地址。

Ping命令使用如下图1所示:

图1

2.2ifconfig命令

ifconfig是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。也可以把 它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址. ifconfig是一个计算机编辑的命令,ifconfig有两种格式。ifconfig命令使用如下图2所示:

图2

2.3netstat命令

netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

用法:netstat (-选项)。

netstat命令使用如下图3、图4所示:


linux论文3000字
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/show/93880.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题