当前位置: 首页 > news >正文

搜索网站怎么做的建筑设计案例网站

搜索网站怎么做的,建筑设计案例网站,分局网站建设,英文seo兼职QEMU的两种模式 QEMU#xff08;快速模拟器#xff09;是一个开源的机器模拟器和虚拟化器#xff0c;它能够模拟多种处理器架构#xff0c;并且可以在不同平台上运行。QEMU 支持两种模式#xff1a;用户模式和系统模式。 用户模式#xff08;User Mode#xff09;快速模拟器是一个开源的机器模拟器和虚拟化器它能够模拟多种处理器架构并且可以在不同平台上运行。QEMU 支持两种模式用户模式和系统模式。 用户模式User Mode 用户模式下的 QEMU 仅模拟用户空间的二进制执行环境不模拟底层硬件。这种模式下QEMU 可以运行不同架构编译的二进制程序而不需要这些程序与宿主机的架构相匹配。用户模式通常用于测试和运行不同架构的应用程序或者在不支持特定硬件架构的系统上运行程序。用户模式不需要硬件虚拟化支持因为它不模拟硬件。系统模式System Mode 系统模式下的 QEMU 模拟整个计算机系统包括 CPU、内存、硬盘、网络接口等硬件设备。这种模式下QEMU 可以运行完整的操作系统镜像允许用户安装和运行完整的操作系统。系统模式需要更多的资源并且可能需要硬件虚拟化支持以提高性能和安全性。系统模式允许用户进行更全面的测试包括操作系统级别的测试和硬件兼容性测试。在系统模式下QEMU 还可以使用不同的后端来提高性能例如使用 KVMKernel-based Virtual Machine在 Linux 系统上进行硬件辅助虚拟化。KVM 可以将 QEMU 转换为一个全功能的虚拟机监控器提供接近原生硬件的性能。 要启动 QEMU 并使用用户模式或系统模式你需要使用不同的命令行参数。例如 用户模式qemu-arch -cpu cpu-type -L path-to-libraries program-to-run 系统模式qemu-system-arch -m memory-size -hda disk-image 其中 arch 是你想要模拟的架构比如aarch64cpu-type 是特定的 CPU 类型path-to-libraries 是库文件的路径program-to-run 是你想要运行的程序memory-size 是分配给虚拟机的内存大小disk-image 是虚拟硬盘镜像的路径。 QEMU 是一个非常灵活的工具可以根据需要进行配置和扩展以满足不同的模拟和虚拟化需求。 用户模式的安装 简单的执行如下命令就可以安装用户模式 sudo apt-get update sudo apt-get install qemu-user qemu-user-static gdb-multiarch build-essential gcc-aarch64-linux-gnu 用户模式C程序的测试 编写一个简单的C程序 #include stdio.hint main(void) { return printf(Hello AARCH64!\n); } 使用aarch64的编译器进行静态的交叉编译 aarch64-linux-gnu-gcc -static -o hello64 hello.c 编译后使用file命令确认一下编译产生的事aarch64架构文件。  developerecs-cloud-host-ubuntu-img-make:~$ file hello64 hello64: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]c6209c6d4f0f2ec56fc1e9fe2443c34009ad60d5, for GNU/Linux 3.7.0, not stripped如果没有安装QEMU用户模式程序直接运行该程序会报告错误 bash: ./hello64: cannot execute binary file: Exec format error 安装了QEMU用户模式之后直接运行程序就可以得到正确的输出了。这是因为系统内有qemu-user-static它支持了其他架构程序的直接运行。 developerecs-cloud-host-ubuntu-img-make:~$ ./hello64 Hello AARCH64!也可以不使用static编译比如 aarch64-linux-gnu-gcc -o hello64dyn hello.c不过不能直接运行hello64dyn这个程序会报告错误 developerecs-cloud-host-ubuntu-img-make:~$ ./hello64dyn aarch64-binfmt-P: Could not open /lib/ld-linux-aarch64.so.1: No such file or directory这是需要使用qemu-user了 developerecs-cloud-host-ubuntu-img-make:~$ qemu-aarch64 -L /usr/aarch64-linux-gnu ./hello64dyn Hello AARCH64!用户模式汇编程序的测试调用C库 准备一个简单的汇编程序hello.S .section .text.global mainmain: // Call puts and return stp fp, lr, [sp, #0x10]!mov fp, spadr x0, msgbl putsmov w0, wzrldp fp, lr, [sp], #0x10retmsg:.asciz Hello Again!.align 2 这个程序里面调用了C语言的puts函数。 前两条指令是所谓的序言SP 寄存器被调整以便在可能的中断情况下保存数据以便使用 puts 函数。 adr 指令将 x0 设置为字符串所在位置的内存地址。 bl puts 调用 puts 函数。它是一个 C 库函数它将文本输出到控制台/终端。或者可以使用 printf 代替。之所以使用 puts是因为它对 CPU 来说更快因为它不能接受所谓的字符串中的格式描述符。此外puts 函数在控制台上自动加入换行。注意我们没有在 Hello Again 字符串中包含 \n。 mov w0, wzr 指令是给 CPU 一个零值它将在退出程序时使用。稍后CPU 将调用 C/C 退出函数来退出程序。每当你编写任何 .Smain:类型的源文件时最终的 ret 指令将使 CPU 结束程序并调用 C/C 退出函数。在 ret 指令之前w0 应该总是设置为 0。 最后两条指令是所谓的尾声。基本上是序言的相反。 直接使用下面的语句去编译C语言的编译器会自动处理汇编代码并进行库链接。 aarch64-linux-gnu-gcc -o hello hello.S运行程序的方法和前面类似 developerecs-cloud-host-ubuntu-img-make:~$ qemu-aarch64 -L /usr/aarch64-linux-gnu ./hello Hello Again!用户模式汇编程序的测试调用系统调用 我们也可以不使用C语言函数直接使用QEMU模拟的系统调用。这和系统模式所模拟的裸机编程有所不同系统模式是不提供任何系统调用的你必须自己写串口输出代码或者使用编译好的BIOS文件。 下面是汇编代码 .section .text.global _start_start: // syscall write(int fd, const void *buf, size_t count)mov x0, #1 adr x1, msgmov x2, lenmov w8, #64 /*Syscall number for write for ARM64*/svc #0// syscall exit(int status)mov x0, #0mov w8, #93 /*Syscall number for exit for ARM64*/svc #0msg:.asciz Hello World!\nlen . - msg QEMU 模拟所谓的系统调用。这些系统调用旨在模拟具有内置基本任务功能的计算机 BIOS。可以在程序中使用 svc 指令调用。在真正的硬件中svc 指令将进入一个异常处理程序。在这个程序中有代码已经由程序早期编写来处理 svc 的使用。 在 QEMU 中这是完全不同的。你的程序在异常处理程序中写了什么并不重要。QEMU 将执行 svc 来模拟一个已经编写了某些指令的计算机 BIOS。简而言之那里的例程在计算机 BIOS 中是通用的。因此该例程接受某些参数以产生结果。你可以看出这是情况因为在上述文件中我们没有编写任何指令到任何异常处理程序。模拟系统调用的不好之处在于我们不能实际看到和调试 svc 异常。好的是我们可以使用这些模拟器系统调用来执行基本任务。比如打印文本到控制台终端修改文件等。 系统调用 Write 会在控制台终端上打印消息。系统调用 Exit 退出程序。 有许多系统调用每个系统调用都需要参数。在系统调用被“调用”通过 svc 指令之前必须将正确的值放在正确的寄存器中。这种将正确的参数放在正确的寄存器中的概念被称为 ARM64 的调用约定。 代码中一些变量的解释 adr 设置 msg 标签所在位置的内存地址。msg: 是源文件中 Hello World 字符串所在的标签。字符串中的 \n 部分是你在控制台/终端输入新行时需要输入的。len . - msg 这是用于计算字符串大小的汇编器指令。点.在这里代表这里。所以 这里 减去 msg 将设置字符串的字节量。 要运行程序需要将其汇编成一个目标文件。然后使用链接器制作一个可执行文件。这可以通过以下两个终端命令完成.. aarch64-linux-gnu-as hello_world.s -o hello_world.o aarch64-linux-gnu-ld hello_world.o -o hello_world 所以我们现在有一个可执行文件。我们可以用 QEMU 启动它 qemu-aarch64 ./hello_world 得到如下输出 developerecs-cloud-host-ubuntu-img-make:~$ qemu-aarch64 ./hello_world Hello World!因为安装了qemu-user-static直接运行程序也是可以的。  参考文献 Assembler, QEMU, GDBRunning Arm Binaries on x86 with QEMU-User | Azeria Labs
文章转载自:
http://www.morning.lztrt.cn.gov.cn.lztrt.cn
http://www.morning.mqfkd.cn.gov.cn.mqfkd.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.qynnw.cn.gov.cn.qynnw.cn
http://www.morning.jbctp.cn.gov.cn.jbctp.cn
http://www.morning.zryf.cn.gov.cn.zryf.cn
http://www.morning.bfysg.cn.gov.cn.bfysg.cn
http://www.morning.wwgpy.cn.gov.cn.wwgpy.cn
http://www.morning.dpbdq.cn.gov.cn.dpbdq.cn
http://www.morning.snccl.cn.gov.cn.snccl.cn
http://www.morning.nicetj.com.gov.cn.nicetj.com
http://www.morning.lnbcg.cn.gov.cn.lnbcg.cn
http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn
http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn
http://www.morning.lsjtq.cn.gov.cn.lsjtq.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.bswxt.cn.gov.cn.bswxt.cn
http://www.morning.bxqry.cn.gov.cn.bxqry.cn
http://www.morning.kxymr.cn.gov.cn.kxymr.cn
http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn
http://www.morning.hcqpc.cn.gov.cn.hcqpc.cn
http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn
http://www.morning.rldph.cn.gov.cn.rldph.cn
http://www.morning.wjpsn.cn.gov.cn.wjpsn.cn
http://www.morning.bxsgl.cn.gov.cn.bxsgl.cn
http://www.morning.nxpqw.cn.gov.cn.nxpqw.cn
http://www.morning.pzss.cn.gov.cn.pzss.cn
http://www.morning.ghyfm.cn.gov.cn.ghyfm.cn
http://www.morning.tfei69.cn.gov.cn.tfei69.cn
http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn
http://www.morning.nccyc.cn.gov.cn.nccyc.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.kgphc.cn.gov.cn.kgphc.cn
http://www.morning.tlbhq.cn.gov.cn.tlbhq.cn
http://www.morning.jwgmx.cn.gov.cn.jwgmx.cn
http://www.morning.cldgh.cn.gov.cn.cldgh.cn
http://www.morning.rcww.cn.gov.cn.rcww.cn
http://www.morning.zmyhn.cn.gov.cn.zmyhn.cn
http://www.morning.qlsbz.cn.gov.cn.qlsbz.cn
http://www.morning.htbsk.cn.gov.cn.htbsk.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn
http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn
http://www.morning.ypbp.cn.gov.cn.ypbp.cn
http://www.morning.cnqff.cn.gov.cn.cnqff.cn
http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn
http://www.morning.snmth.cn.gov.cn.snmth.cn
http://www.morning.lkthj.cn.gov.cn.lkthj.cn
http://www.morning.zplzj.cn.gov.cn.zplzj.cn
http://www.morning.qtzwh.cn.gov.cn.qtzwh.cn
http://www.morning.qnbgk.cn.gov.cn.qnbgk.cn
http://www.morning.fykqh.cn.gov.cn.fykqh.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn
http://www.morning.drywd.cn.gov.cn.drywd.cn
http://www.morning.mmtbn.cn.gov.cn.mmtbn.cn
http://www.morning.ngcsh.cn.gov.cn.ngcsh.cn
http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn
http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn
http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn
http://www.morning.xdfkrd.cn.gov.cn.xdfkrd.cn
http://www.morning.hxpff.cn.gov.cn.hxpff.cn
http://www.morning.ltqtp.cn.gov.cn.ltqtp.cn
http://www.morning.dshkp.cn.gov.cn.dshkp.cn
http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn
http://www.morning.nzwp.cn.gov.cn.nzwp.cn
http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn
http://www.morning.cplym.cn.gov.cn.cplym.cn
http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn
http://www.morning.jkbqs.cn.gov.cn.jkbqs.cn
http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn
http://www.morning.zkdmk.cn.gov.cn.zkdmk.cn
http://www.morning.gthc.cn.gov.cn.gthc.cn
http://www.morning.dlmqn.cn.gov.cn.dlmqn.cn
http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn
http://www.morning.kxryg.cn.gov.cn.kxryg.cn
http://www.morning.rnpt.cn.gov.cn.rnpt.cn
http://www.tj-hxxt.cn/news/255692.html

相关文章:

  • 以前自己做的网站怎么样删除.net做网站用什么框架
  • 有做兼职赚钱的网站吗做网站开发甲方一直要求p图
  • 网站架设软件近三年成功的营销案例
  • 手机网站开发入门宁波网站建设优化的公司排名
  • 做图必备素材网站外贸营销网站建设介绍
  • 网站开发培训费多少android游戏开发教程
  • 河南睢县筑宇建设网站盐城高端网站建设
  • 做论坛网站怎么样备案长沙营销推广公司
  • 任县网站建设网络公司小程序找不到怎么办
  • 网站中文域名好吗定州市住房和城乡建设局 网站
  • 北京设计网站的公司哪家好wordpress wp play
  • 网站建设公司走进深圳易百讯自己给网站做logo
  • 网站虚拟主机 会计处理怎样用微信做购物网站
  • 专注WordPress网站建设开发外观设计
  • 北流网站建设中卫网站定制开发设计
  • 西安网站开发工资网页转app工具
  • 如何做网站的充值功能校园网站建设的意义
  • 句容建设网站天津的公司能在北京做网站备案吗
  • 清迈城市建设网站区块链网站开发体app开发
  • 网站建设设计方案书重庆做网站开发的公司有哪些
  • wordpress建站 产品详情页天津seo托管
  • 百度做网站公司建站系统
  • 做视频播放网站wordpress商城建站
  • 怎样做微商网站wordpress安装错误310
  • 高培淇自己做的网站百度推广开户怎么开
  • 英铭网站建设什么是网上商店
  • 网站推广方案书太原seo霸屏
  • 请简述网站建设的方法搭建网站源码
  • 用php做网站用什么软件网站制作公司网站源码
  • 淘宝建设网站的好处网站建设工作室有几个部门