问题 我尝试使用以下配置运行 qcow 映像:
:~$ sudo ~/Downloads/qemu-7.1.0/bin/debug/native/x86_64-softmmu/qemu-system-x86_64
-L -enable-kvm -cpu host -s -kernel bzImage -m 2048
-hda rootfs.qcow2-append "root=/dev/sda rw
nokaslr" -net nic,model=virtio -net user,hostfwd=tcp::5555-:22
Run Code Online (Sandbox Code Playgroud)
错误信息:
qemu-system-x86_64: CPU model 'host' requires KVM or HVF
Run Code Online (Sandbox Code Playgroud)
但 kvm 应该没问题:
:~$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
Run Code Online (Sandbox Code Playgroud)
我做了什么:
我想在 7.1.0 版本中使用 qemu,并使用 tar 存档按照wiki安装它。
# Switch to the QEMU root directory.
cd qemu
# Prepare a native debug build.
mkdir -p bin/debug/native
cd bin/debug/native
# Configure QEMU and start …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法,尽可能简单地向我们的客户提供我们软件的预览或演示版本.
我们目前正在开发的软件是一个非常大的项目.它由客户端环境,应用程序服务器,各种数据库,Web服务主机等组成.项目是逐步开发的,我们希望以一到两个月的间隔发送这些位.第一批交付将不会用于生产.他们有一个演示的目的,鼓励客户提供反馈.
我们不希望给客户带来安装和配置系统的负担.总而言之,我们正在寻找一种方法来减轻部署,安装和配置的痛苦.
我想到的是使用虚拟化技术来预安装和预配置具有所有必要组件的虚拟机.我们的客户只需安装虚拟映像并运行应用程序.
我想听听那些使用这种技术的人.我想也有一些困难.特别是,安装的操作系统的许可问题呢?也许有可能让虚拟机在一段时间后过期.
那里有经验吗?
设置一个Linux机箱以在其串行端口上侦听传入连接的最佳方法是什么?我已经做了很多谷歌搜索,但我找不到合适的命令组合来实际让他们说话!
我的主要目标是为运行kvm/qemu VM的实例提供串行接口.它们目前只有一个VNC接口(它们在无头服务器上,没有X).我可以通过使用-serial file:flag启动它来创建一个串行设备,但是如何与它通信,这是另一个问题.这两个盒子都在运行Ubuntu 8.04.
我今天写了这个小程序,我对结果感到震惊.这是程序
int main(int argc, char **argv)
{
int a;
printf("\n\tMain is located at: %p and the variable a is located at address: %p",main,&a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的机器上,主函数总是加载在地址"0x80483d4"并且变量的地址保持不变这是怎么发生的?我在操作系统中读到,作为虚拟化方案的一部分,操作系统不断重新定位指令地址.那么为什么每次我运行这个程序时主要加载到同一个地址呢?
先谢谢你们.
我试图虚拟化在虚拟机中运行的android中的GPS设备.我想方便在Android中运行的应用程序使用gps设备或获取假gps位置一些如何.我已经开始查看android模拟器源代码,但同时,任何人都有任何好的开始.
[UPDATE]
为了使它更清楚,整个应用程序堆栈将是这样的事情:
Android app (with gps functionality) to be tested ----> (developed by end user)
Android virtual machine ----> (Guest OS)
virtual box ---->
Microsoft Windows ---> Host OS
Run Code Online (Sandbox Code Playgroud)
现在,理想情况下,我希望我的应用程序(如adb或ddms)在Windows中运行,用户可以在其中为gps设备设置一些坐标值(在没有实际GPS的情况下,否则虚拟现有GPS).这些坐标可供Android应用程序使用.基本上,这与通过virtual-box运行android镜像提供现有Android模拟器(使用ddms)的功能相同.
我没有运行Android模拟器,我没有使用eclipse.:( [更新结束]
谢谢,维克拉姆.
假设有这样的代码.
MOV [0x1234], EAX (intel assembly)
Run Code Online (Sandbox Code Playgroud)
假设CPU想要处理此指令.我们假设没有管理程序.我们只是在linux环境中使用普通的x86 CPU(保护模式).
现在,我理解的是,因为0x1234是一个虚拟地址,所以需要将其转换为物理地址.(让我们跳过分段部分)
CPU只是将此地址(0x1234)传递给MMU硬件.MMU遍历页表并使用物理地址访问内存内容.
我对么?
现在让我们假设有一个虚拟机管理程序,这个代码是从客户操作系统运行的.
究竟发生了什么?
我知道虚拟机管理程序提供了另一层页表.但我不明白这究竟是如何运作的.
如果客户代码"MOV [0x1234],EAX"在真实CPU中执行.虚拟地址0x1234将由真实硬件MMU转换.所以我认为必须重写这条指令(0x1234应该在执行代码之前替换为另一个地址),或者被困在管理程序中......
我错了吗?如果我错了,请修正我的理解......
先感谢您.
所以我正在使用vagrant-aws插件进行一些冒险,而我现在仍然处理同步文件夹的问题.这是配置机器所必需的,这是最终目标.但是,vagrant provision在我的机器上运行会产生
[root@vagrant-puppet-minimal vagrant]# vagrant provision
[default] Rsyncing folder: /home/vagrant/ => /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mkdir -p '/vagrant'
Run Code Online (Sandbox Code Playgroud)
我几乎肯定是因为手动ssh-ing并运行该命令导致'权限被拒绝'(显然,非root用户试图在根目录中创建一个目录).我尝试以root身份进行ssh-ing,但这似乎是不好的做法.(而且亚马逊不喜欢它)如何将文件夹更改为与vagrant-aws一起使用?我似乎找不到那个设置.谢谢!
virtualization rsync provisioning amazon-web-services vagrant
我有一些golang代码我在我的Macbook(具有两个物理内核的Intel Core i5处理器)上进行基准测试.
golang runtime.NumCPU()收益4,因为它算"虚拟核心"
在这种情况下,我对虚拟内核了解不多,但我的基准测试似乎表明,当我使用配置代码时,多处理速度只有2倍
runtime.GOMAXPROCS(runtime.NumCPU())
Run Code Online (Sandbox Code Playgroud)
如果我使用2而不是4核,我会得到相同的性能.我会发布代码,但我认为这与我的问题基本无关,它们是:
1)这是正常的吗?
2)为什么,如果是的话,多个虚拟核心能否像我的macbook这样的机器受益?
如果它很重要,在我的代码中,有与您设置runtime.GOMAXPROCS() 的任何内容相同数量的goroutine,任务完全并行,没有相互依赖性或共享状态.它作为本机编译二进制文件运行.
我正在使用从源图像和nginx官方图像编译的php-fprm创建一个集群,但是当我尝试运行一个phpinfo()文件时,nginx会返回以下错误:
*5 connect() failed (111: Connection refused) while connecting to upstream, client: 172.18.0.1, server: localhost, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "127.0.0.1:8000"
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml文件:
version: '2'
services:
php:
restart: always
build: data/php
image: php:7.1
ports:
- "9000:9000"
expose:
- 9000
volumes:
- ./app:/usr/share/nginx/html
web:
restart: always
build: data/nginx
image: nginx:1.10.2
ports:
- "8000:80"
links:
- php
volumes:
- ./data/nginx/vhost.conf:/etc/nginx/conf.d/default.conf
- ./data/nginx/nginx.conf:/etc/nginx/nginx.conf
- ./app:/usr/share/nginx/html
- ./data/log/nginx:/var/log/nginx
Run Code Online (Sandbox Code Playgroud)
我检查了主机中的9000端口,netstat -an | grep :9000命令和端口是活动的:
tcp6 0 0 :::9000 :::* OUÇA
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅此github存储库中的文件(使用该图像的Dockerfile):
我开始尝试NixOS部署。为此,我有一个定义了一些软件包的仓库,以及一个configuration.nix用于服务器的仓库。
看来我以后应该可以在本地测试此配置了(我也正在运行NixOS)。我想将全局 变量更改configuration.nix为指向部署服务器的部署是个坏主意configuration.nix(谁知道会破坏什么);但是是否有一种安全便捷的方法可以在本地“试用”服务器-即构建服务器并引导到服务器中,或者更好地将其作为单独的进程启动?
我当然可以看到docker是一种方式。也许没有别的了。但是我有这种模糊的感觉,尼克斯可能有能力独自做到这一点。
virtualization ×10
linux ×4
deployment ×2
kvm ×2
qemu ×2
android ×1
c ×1
docker ×1
go ×1
gps ×1
memory ×1
nginx ×1
nix ×1
nixos ×1
php ×1
provisioning ×1
relocation ×1
rsync ×1
serial-port ×1
vagrant ×1
vbox ×1