微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > coLinux构建嵌入式开发环境

coLinux构建嵌入式开发环境

时间:05-10 来源:互联网 点击:

1 引言

GNU项目为嵌入式开发提供了优秀的交叉开发工具链,虽然这些工具链也移植到了 Windows系统中,但是为了在 Windows系统中使用,通常还需要另外一个模拟的 Linux环境——Cygwin,效率是一个新的问题。另外, Cygwin环境也不是一个真正的 Linux环境,相比于真正的 Linux环境来说, Cygwin仍显不足。从根本上来讲, GNU工具链是基于 Linux操作系统环境而开发的。

在众多的开源项目中,与嵌入式相关的开发项目大多数仍然需要基于 Linux系统进行编译和链接。虽然在 Cygwin中通过复杂的设置也有可能满足相关开发需要,但是对于开发人员来说,优先的选择仍然是使用 Linux。用惯了 Windows的程序员通常会在系统中安装一个庞大的 Linux虚拟机,或者直接安装两个操作系统。程序员必须忍受虚拟机的运行效率低下的重大缺点,或者为了切换操作系统而反复地重新启动安装了双操作系统的计算机。如果需要在 Linux与 Windows之间进行文件传递,还需要做一些额外的工作。

然而 coLinux的出现,改变了这一切。

2 coLinux简介

coLinux也是一个源代码开放的软件,全名为 Cooperative Linux(协作 Linux)。coLinux是第一个能在 Win32平台上高效地以原生(native)方式运行 Linux的软件, Linux在 coLinux中的运行效率极高,远远超过虚拟机的运行效率(为了模拟一条汇编指令,通常虚拟机要使用一段 C语言代码来完成)。 coLinux目前发展到了 0.73版本,在其官方网站http://www.colinux.net上提供了最新版本的源代码和二进制代码的下载地址。

coLinux有很高的运行效率,并且仅需要很少的系统资源。 coLinux中的 Linux在本质上是直接在 PC机硬件中运行的,而不是在虚拟机上。coLinux不像虚拟机那样一次就从系统中划去一大块内存,而是根据实际需要让宿主机系统动态为其分配内存。

coLinux创建的是一个“真正的” Linux操作系统。相比之下, CygWin提供的是一个模拟的 Linux环境。Linux程序若不重新构建,就无法在 Cygwin中直接运行。

coLinux可以通过 cofs驱动使宿主机( Windows XP)与 Linux进行文件夹共享。通过简单的设置后,就可以把 Windows系统中的一个文件夹与 coLinux中的 Linux系统进行共享。在 Windows操作该文件夹中文件的时候,Linux也可以对其进行操作。

coLinux具有高可移植性的特点。在一个 Windows主机上建立一个 coLinux发行版,并在根文件系统中安装一套定制的应用程序。然后,可以将根文件系统转移到另一个主机上,并重新启动。这样就有了一个可移动的开发平台,压缩后的根文件系统完全可以放在一个标准的 USB盘中。

3 coLinux的工作原理

coLinux在 Windows操作系统中作为一个进程执行。可以认为 coLinux是 Linux操作系统与 Windows操作系统之间的一个接口。两种操作系统通过将处理器(CPU)的控制权转让给彼此从而达到协作(Cooperative)的目的。它们通过使用内核驱动程序共享网络接口、串口等物理资源。

coLinux是一个修改过的 Linux 内核,它可以与另一个操作系统协作运行。宿主机(host)操作系统控制本机的硬件资源,而访客(guest)操作系统只得到本机硬件的虚拟抽象。主机操作系统提供了以特权级别(ring 0)执行驱动程序的方法,并提供了分配内存的方法。

Linux 内核所需的其他特性(比如网络连接、串口或视频访问)通过外部代理来实现,

比如 coLinux 可以通过 TUNTAP驱动程序访问外部网络,通过代理访问显示器( X Window System)等。coLinux的安装及配置

coLinux的安装非常容易,包括几个简单的步骤。安装过程中 coLinux提示可以从网上下载 ArchLinux、Debian 4.0、Fedora 7、Gentoo Deluxe、Ubuntu 7.1等几个 Linux文件系统映像的压缩包。点击相应的“ *Notes”可以打开对应的说明文字与下载的网页。下面笔者以 Fedora9的文件系统映像压缩包为例来介绍 coLinux中 Linux的安装和配置。

从网上下载的 Fedora9文件系统映像压缩包中包含 5个文件,这些文件对于主机操作系统(Windows)来说都是一些普通的文件,但是对于 coLinux来说其中某些文件(Fedora-9.img、 swap.img)却是可读写的 ext3 / swap类型的 Linux文件系统。

Fedora-9.img是一个 4G大小的 Fedora9文件系统映像,内含了 Fedora9系统中必需的所有文件,并预先配置了 slirp的网络,gdm登陆的 Xvnc以及支持声音的 ESD等功能。使用 Fedora9时无需对宿主机的网络功能方面做任何配置,就可以通过宿主机的 API来控制当前的网络适配器(网卡)来收发 TCP/UDP数据包。由于 Slirp不能收发 ICMP信息,p

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top