|
发表于 2004-7-26 18:31:28
|
显示全部楼层
果如此,岂不早说。
但要知道,testsuite是针对特定的软件的,也就是说,每个软件自身的Makefile带的test段都只能适应自身而已,非通用,这样,不具备通用性的测试软件是无意义的。
执行一个软件,不是直接运行它的可执行文件这么简单,还要有环境以及共享库。你说的通用测试功能最好能用虚拟机来实现。其实内核2.6.x提供了虚拟Linux的特色功能,可以参详。
---摘自ibm的文章
Linux 2.6一个很有趣的特点是自包含了一个"用户态(user-mode)"的体系结构。它本质上是一种移植--将Linux移植到它自身(正如移植到不同的硬件体系那样),从而允许一个完全虚拟的Linux-on-Linux运行环境。新的Linux实例像普通应用程序一样运行。在这个新的Linux内部,你可以配置伪网络、文件系统或者其他一些设备,整个过程通过专用的驱动程序与宿主Linux进行安全交互。这被证明不仅是在开发方面(进行分析、统计等),而且在安全分析和密罐(honeypots)技术中都是非常有用的。当然大多数用户还不需要这样的支持,它只是被当作了一个可以运行在你的机器上的很酷的特性而已。(给你的朋友留下深刻的印象!)
如果要简单地来做,仿效普通软件在testsuite上的做法(没多大实际意义,它们不是通用的),可以创建一个新shell来执行生成命令,改变该shell的环境变量如PATH,把该路径动态加入ld.conf文件并update共享库缓冲,另外一个办法就是仿效lfs,创建一个最小的根文件系统,chroot来运行软件。但要注意,即使这两类方法,前提也要你熟悉这个被测试的软件才行。
在bash领域,进程间数据的传递很容易就可以实现(管道),但你所说的不在于技术问题,而在于你的定位点是否合适的问题。 |
|