coLinux构建嵌入式开发环境

coLinux构建嵌入式开发环境,第1张

 

  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构建嵌入式开发环境,第2张

 

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

  

coLinux构建嵌入式开发环境,第3张

 

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

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

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2713163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存