Linux下搭建UML环境

2025-06-02 16:15:01

1、这里要开始搭建UML环境了,但请注意这里的UML并非“统一建模语言”,而是User-Mode-Linux,用户模式Linux,使用它有什么好处呢?如我们前面说到的《【LinuxKernel】添加系统调用》,使用UML后不需要重启机器就可以进行测试难,还有GDB调试等,即很多需要重启或真机调试下的问题都可以在UML下模拟学习。那么这一只能在Linux下使用的神奇环境要如何搭建它呢?首先得有一个安装了Linux发行版系统的机器,然后我们再在上面搭建UML环境。

2、我们使用的主机环境为安装了64位的Ubuntu13.10(3.11.0-12-generic)系统机器,下面是整个UML环境的搭建步骤:

3、1.下载Linux Kernel源码访问https://www.kernel.org/网站,看到现在(2014-3-10)最新的版本为3.13.6,那么就下载它了:cd ~/uml/wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.6.tar.xz

4、2.编译UM配置的Kernel解压下载的内核源码:tar xvf linux-3.13.6.tar.xz配置及编译内核源码:cd linux-3.13.6make ARCH=um defconfig生成UM默认的配置文件,运行后有如下信息:xinu@slam:~/uml/linux-3.13.6$ make ARCH=um defconfigHOSTCC scripts/basic/fixdepHOSTCC scripts/kconfig/conf.oSHIPPED scripts/kconfig/zconf.tab.cSHIPPED scripts/kconfig/zconf.lex.cSHIPPED scripts/kconfig/zconf.hash.cHOSTCC scripts/kconfig/zconf.tab.oHOSTLD scripts/kconfig/conf*** Default configuration is based on 'x86_64_defconfig'## configuration written to .config#配置文件生成后,就是编译了,执行如下命令:make ARCH=um编译完成后会在当前目录下生成linux可执行文件。

5、3.准备根文件系统编译完成后,需要一个根文件系统,此时可以从http://fs.devloop.org.uk/下载一个现成的资源,由于看到Ubuntu Saucy对UML的兼容不好(没有命令行界面,即运行后输入无响应),故而下载与Ubuntu同系的Debian Wheezy,下载及解压命令如下:cd ..wget http://fs.devloop.org.uk/filesystems/Debian-Wheezy/Debian-Wheezy-AMD64-root_fs.bz2bunzip2 Debian-Wheezy-AMD64-root_fs.bz2解压后是名为 Debian-Wheezy-AMD64-root_fs 文件。

6、4.运行U怡觎现喾MLcd linux-3.13.6/./linux ubda=../ Debian-Wheezy-AMD64-root_fs mem=256m运行充全煲镆起来后,到最后有如下提示:Serial line 0 assigned device '/dev/pts/4'Debian GNU/Linux 7 changeme tty0changeme login:此时我们输入root,回车后有如下提示:Last login: Mon Mar 10 09:14:54 UTC 2014 on tty0Linux changeme 3.13.6 #3 Mon Mar 10 16:46:54 CST 2014 x86_64The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.root@changeme:~#这就表示UML启动成功了。

7、当然从上面提供的网站下载的文件系统有些未激默芡食必匹配使用,我这边测试了还能使用的有busybox的,该包跟我们嵌入式平台平时移植的Busybox一致,不过版本会旧些,我们还是继续囗寝嗵若先使用Debian的。先到这,我们把UML关机先,输入halt命令,提示如下:root@changeme:~# haltBroadcast message from root@changeme (tty0) (Mon Mar 10 09:23:30 2014):The system is going down for system halt NOW!INIT: Switching to runlevel: 0INIT: Sending processes the TERM signal[info] Using makefile-style concurrent boot in runlevel 0.[ ok ] Asking all remaining processes to terminate...done.[ ok ] All processes ended within 1 seconds...done.[ ok ] Stopping enhanced syslogd: rsyslogd.[info] Saving the system clock.hwclock: Cannot access the Hardware Clock via any known method.hwclock: Use the --debug option to see the details of our search for an access method.[ ok ] Deconfiguring network interfaces...done.[ ok ] Unmounting temporary filesystems...done.[ ok ] Deactivating swap...done.EXT4-fs (ubda): re-mounted. Opts: (null)[info] Will now halt.reboot: System haltedxinu@slam:~/uml/linux-3.13.6$至此,UML环境搭建并测试成功了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢