我们知道,Windows是小端机器,那么有没有办法在windows上创建一个大端机器呢?
方法是有的,借助虚拟机技术,可以在windows上运行大端机
总体思路:1.在windows上使用VMware安装ubuntu虚拟机,2.在ubuntu内使用QEMU安装mips版的debian
有人说,这不是虚拟机上安虚拟机吗?能嵌套吗?
一般来说,相同架构的虚拟机一般嵌套不了,不同架构的虚拟机嵌套是有可能成功的,下面是教程。
1.安装VMware
VMware14下载地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.1-7528167.exe
VMware14安装密钥:
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD
2.安装ubuntu
不想出问题的老老实实安装LTS版本
ubuntu 16.04版本下载:http://mirrors.shu.edu.cn/ubuntu-releases/16.04.3/ubuntu-16.04.3-desktop-amd64.iso
3.在ubuntu中安装QEMU
执行命令
sudo apt-get install qemu
4.安装mips版的debian
下载地址:https://people.debian.org/~aurel32/qemu/
注意下载mips目录的这个是大端,mipsel目录里面是小端
下载镜像+内核两个文件
不建议下载squeeze版,squeeze版本已经没有官方源了
建议下载wheezy版,目前这个有官方源支持
debian_wheezy_mips_standard.qcow2(镜像)
vmlinux-3.2.0-4-4kc-malta(内核)
启动虚拟机:
qemu-system-mips -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=tty0" -nographic
用户名user密码user, root的密码是root。
更换清华源
配置生成器
Debian选wheezy
把配置内容贴到/etc/apt/sources.list最前面
默认没有安装gcc
apt-get install gcc
然后试试前面文章的的大端小端检测代码
#include <stdio.h>
void checkdxd3(){
static union
{
char a[4];
unsigned long ul;
} endian = {{'L', '?', '?', 'B'}};
#define ENDIAN ((char)endian.ul)
printf("%c\n", ENDIAN);//L是小端,B是大端
}
int main()
{
checkdxd3();
return 0;
}
linux下编译
gcc -o test test.c
运行
./test