种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

μClinux

(2019-10-04 15:12:45) 百科综合
μClinux

μClinux

μClinux是一个完全符合GNU/GPL公约的作业系统,完全开放原始码,现由Line公司支持维护。μClinux的发音是,它的名字来自于希腊字母μ和英文大写字母C结合。μ代表“微小”之意,字母C代表“控制器”,所以从字面上就可以看出它的含义,即“微控制领域中的Linux系统”。

基本介绍

  • 中文名:μClinux
  • 性质:公约的作业系统
  • 功能:开放原始码
  • 发音:you-see-linux

发展及特点

1991年,芬兰大学生Linus Torvalds开发了一个自由的作业系统Linux,并通过Internet进行了发布。随后,一大批编程人员加入到基于Linux作业系统开发过程中来,Linux要求所有的原始码必须公开,后来技术的发展转向GPL( GNUG eneral Public Licence),只要遵守GPL的规定,就可以免费获得複製,因此Linux依然可以看做是一个免费软体。随着嵌入式套用的日益普及,人们迫切需要更加小巧的、无需庞大记忆体运行环境的迷你型的作业系统,于是,GPL组织开发了针对微型控制领域的Linux作业系统,这就是μClinux作业系统。μ表示Micro,即微小的,C表示Control,即控制,整个μClinux的含义可以理解为"适用于微型控制领域的Linux作业系统"。
μClinux的具体特点包括:
(1)适合嵌入式环境开发。一般而言,嵌入式系统自身所具有的简约性,导致对于所选用的作业系统的多任务、大记忆体管理等方面的功能都没有明确需求。因此,μClinux不支持MMU等记忆体管理功能。小巧玲珑的特点使得该系统在嵌入式开发领域具有得天独厚的优势。
(2)传承了Linux的优点。Linux 作业系统最突出优点是强大的网路管理功能,基本上所有的网路协定和网路接口都可以在Linux上找到,Linux的核心比标準的UNIX处理网路协定更加高效,系统的网路吞吐性能更好,这也是Linux网路伺服器市场上占据较大的市场分额的重要原因。对于小型的SOHO路由器,Linux的网路技术无疑是其开发运行的最佳选择,Linux完全能对给其提供全方位的网路技术支持。μClinux是基于Linux开发的,继承了Linux的强大网路管理功能,许多资料可以在Internet上方便下载。
(3)支持功能扩展。虽然与Linux相比,μClinux经过了大幅度的瘦身,但是这并没有妨碍μClinux提供丰富的功能扩展接口。比如,虽然μClinux多任务支持模式较为简单,但是在必须需要複杂多任务环境的时候,可以进行方便的扩展。
(4)提供强大的系统管理能力。虽然嵌入式系统的应用程式,一般可以在裸板上运行,但为了使系统具有任务管理、存储器管理、设备管理、事件管理、讯息管理、伫列管理和中断处理等全方位的能力,更好地分配系统资源,用户就需要针对自己的硬体平台和实际套用选择适当的嵌入式作业系统。μClinux就是一种不错的选择。
(5)可以根据不同的套用需求量身定做作业系统。这就是定製μClinux的剪裁技术。要让uClinux支持一个新硬体体系,首先需要收集构建代码的工具,然后开始剪裁和编译核心,使构建的作业系统适合具体的硬体需求。一旦核心支持设计的处理器功能,作业系统就可以正常运行了。在此基础上,还要增加必要的驱动程式的支持,以便各种硬体设备能够高效能地发挥作用。典型的驱动程式集合中包括了诸如控制台终端、基本串、并行设备、包含了根档案系统的块设备的存储设备驱动以及其他特殊设备的驱动程式等。

技术环节剖析

在GNU通用公共许可证的授权下,μClinux作业系统的用户可以使用几乎所有Linux的API函式,不会因为没有记忆体管理单元MMU而受到影响;而且,μClinux在标準的Linux基础上进行了适当的裁剪和最佳化,形成了一个高度最佳化的、代码紧凑的嵌入式Linux,体积小了,但是仍然保留了Linux的大多数的优点,比如稳定性好、强大的网路功能、良好的可移植性、完备的档案系统支持功能、以及标準丰富的应用程式接口API等,可以支持类似ARM7TDMI等类型多的小巧玲珑的中央处理器。下面对μClinux二此开法过程中涉及到的主要功能部件以及各部分的技术内涵,进行较为深入的分析和讨论,以便网路管理人员在套用μClinux进行系统功能扩展时参考:
(1)系统载入模组,该模组又称BootLoader。它是负责μClinux作业系统核心启动的基本功能模组。具体来说,该功能模组可以完成建立uCLinux核心运行环境和从快闪记忆体Flash中装载初始化核心镜象。
(2)系统核心初始化模组,该模组又称SystemInit。启动μClinux核心时,首先受到调用的功能函式是StartKernel()函式。该函式的主要任务是初始化核心的其他部分。具体包括:捕获终端请求IRQ、进程调度、设备驱动程式载入、标定延迟循环,进而调用fork的"init"进程,以启动任务管理环境。
(3)系统调用模组,该模组又称为SystemCall模组。在μClinux系统执行完"init"程式后,核心对程式流不再有直接的控制权,它此后的作用仅限于处理捕获到的中断请求事件(例如硬体中断),并为系统调用提供服务进程。
(4)设备驱动模组,又称为DeviceDriver模组。在几乎所有的作业系统中,设备驱动都占据大部分的系统空间,μClinux也不例外。同其他各类作业系统一样,μClinux的设备驱动程式,为系统连线和控制的硬体设备与作业系统之间提供通讯接口。同时,各设备发出的中断请求由系统调用模组负责安排回响时间,并提供服务程式的入口地址。
(5)档案系统,又称为FileManagement模组。任何一个作业系统,包括μClinux在内,它们最重要的任务之一就是对多种档案系统进行有效的管理。μClinux在档案管理方面具有很强的兼容性,很容易同其他作业系统共存、共享各类常用档案。特别值得推崇的是,μClinux可以透明地支持许多不同类型的档案系统,将各种安装的档案和档案系统以一个完整的虚拟档案系统的形式呈现给用户。同时,μClinux还带有一个完整的TCP/IP协定,可以支持各种流行的网路协定,方便用户使用系统访问网路资源,是一个功能丰富、简便易用的网路作业系统。

开发环境

了解了μClinux作业系统的基本技术细节,对于网管人员在完成基本管理职能的基础上,使用开发环境进一步完善和提高自身的网路管理技能,具有非常重要的指导意义。在具有嵌入式开发支持功能的路由器等网路产品方面,经常使用的μClinux开发平台是GNU开发套件。
该开发套件包括:
(1)常规C编译器GCC,可以使用标準C进行系统功能的二次开发。
(2)C++编译器GCC++,可以使用面向对象开发模式完成系统功能的二次开发。
(3)彙编器AS和连结LD,可以使用彙编语言进行系统功能的二次开发。
(4)其它工具软体,包括:二进制转换工具(OBJCOPY,OBJDUMP),软体调试工具(GDB.GD BSERVER,KGDB)和基于不同硬体平台的开发库。
上述开发环境的技术特点如下:
(1)代码效率高。在GNU GCC/GCC++语言环境的支持下,用户可以使用流行的C/C++语言开发应用程式。该开发模式下,网路管理人员可以轻鬆介入到开发工作中,并可以生成高效率运行代码。
(2)灵活性强。GNU开发工具都是採用命令行的方式,用户掌握起来相对比较困难,不如基于Windows系统的开发工具好用,但是GNU工具的複杂性是由于它更贴近编译器和作业系统的底层,并提供了更大的灵活性。
(3)丰富的网上免费资源。上述工具都是按GPL着作权声明发布的,任何人都可以从网上免费获取全部的原始码,无需任何费用的投入,对于一般小型单位的网路质量的提升可以起到投入少、见效快的神奇效果。GNU开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。
(4)易学易用。网路管理人员一般都具有计算机以及相关专业的背景,都经历过软体的初步培训过程,这些技术人员一旦学习和掌握了相关工具后,就可以掌握网路系统设计和二次开发的基础知识。运行于Linux作业系统下的自由软体GNU gcc编译器,不仅可以编译Llnux作业系统下运行的应用程式,还可以编译Linux核心本身,甚至可以作交叉编译,编译运行于其它CPU上的程式。

标 签

搜索
随机推荐

Powered By 种豆资源网||