tinyemu-2019-12-21.tar.gz

  • B7_647511
    了解作者
  • 1.1MB
    文件大小
  • gz
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-05 01:18
    上传日期
介紹 TinyEMU 是用於RISC-V和 x86 架構的系統仿真器 。它的目的是在完成的同時又小又簡單。 主要特點: RISC-V 系統仿真器支持 RV128IMAFDQC 基礎 ISA(用戶級 ISA 2.2 版,特權架構 1.10 版),包括: 32/64/128 位整數寄存器 32/64/128 位浮點指令(使用SoftFP 庫) 壓縮指令 動態 XLEN 變化 基於KVM的x86系統模擬器 VirtIO 控制台、網絡、塊設備、輸入和 9P 文件系統 帶有 SDL 的圖形顯示 JSON 配置文件 遠程 HTTP 塊設備和文件系統 代碼量小,易於修改,外部依賴少 運行 Linux 和 Windows 2000 的Javascript 版本。
tinyemu-2019-12-21.tar.gz
  • tinyemu-2019-12-21
  • machine.h
    6.5KB
  • pckbd.c
    10KB
  • splitimg.c
    3.1KB
  • list.h
    3KB
  • ps2.c
    14.3KB
  • riscv_machine.c
    28.5KB
  • virtio.c
    78.1KB
  • MIT-LICENSE.txt
    1KB
  • riscv_cpu_priv.h
    8.3KB
  • fs_wget.h
    3.3KB
  • cutils.c
    2.9KB
  • riscv_cpu_fp_template.h
    12.1KB
  • Changelog
    1009B
  • riscv_cpu.c
    36.9KB
  • build_filelist.c
    7.9KB
  • VERSION
    11B
  • softfp.c
    2KB
  • Makefile.js
    2.9KB
  • sha256.h
    1.5KB
  • fbuf.h
    608B
  • iomem.c
    8.1KB
  • x86_machine.c
    70.5KB
  • vga.c
    25.3KB
  • riscv_cpu_template.h
    61.3KB
  • netinit.sh
    1.7KB
  • ide.c
    22.1KB
  • softfp_template.h
    30.1KB
  • js
  • lib.js
    8.8KB
  • iomem.h
    5.3KB
  • fs_utils.c
    8.4KB
  • x86_cpu.c
    2.5KB
  • pci.h
    3.3KB
  • json.h
    3.3KB
  • fs_net.c
    77.8KB
  • sdl.c
    7.6KB
  • pci.c
    15.6KB
  • ide.h
    1.4KB
  • aes.h
    1.8KB
  • fs_wget.c
    17.1KB
  • Makefile
    3.6KB
  • virtio.h
    4.6KB
  • block_net.c
    16.4KB
  • temu.c
    21.4KB
  • vmmouse.c
    4.2KB
  • cutils.h
    4.4KB
  • machine.c
    16.9KB
  • ps2.h
    1.2KB
  • sha256.c
    11.6KB
  • simplefb.c
    4.1KB
  • slirp
  • if.c
    5.5KB
  • ip_input.c
    17.2KB
  • udp.c
    9.5KB
  • mbuf.c
    4.4KB
  • tftp.h
    701B
  • if.h
    636B
  • tcp.h
    5.8KB
  • tcp_input.c
    41KB
  • bootp.c
    8.9KB
  • tcp_subr.c
    26.1KB
  • udp.h
    3.2KB
  • ip.h
    7.4KB
  • tcpip.h
    2.9KB
  • tcp_timer.h
    5.3KB
  • libslirp.h
    2KB
  • tcp_output.c
    14.1KB
  • socket.c
    17.4KB
  • misc.c
    9.6KB
  • tcp_var.h
    6.5KB
  • misc.h
    1.6KB
  • tcp_timer.c
    8.5KB
  • ip_icmp.c
    9.9KB
  • slirp.h
    6.1KB
  • ip_output.c
    4.8KB
  • main.h
    1.1KB
  • sbuf.h
    812B
  • slirp_config.h
    4.2KB
  • mbuf.h
    4.3KB
  • debug.h
    865B
  • sbuf.c
    3.8KB
  • slirp.c
    22.5KB
  • socket.h
    3.4KB
  • cksum.c
    3.8KB
  • bootp.h
    3.1KB
  • ip_icmp.h
    6.1KB
  • x86_cpu.h
    2.7KB
  • softfp_template_icvt.h
    5.7KB
  • fs.h
    7.2KB
  • softfp.h
    8.5KB
  • readme.txt
    6.1KB
  • aes.c
    59.8KB
  • json.c
    11.5KB
  • fs_disk.c
    16.5KB
  • fs.c
    2.8KB
  • riscv_cpu.h
    4.2KB
  • fs_utils.h
    3.3KB
  • jsemu.c
    9.5KB
内容介绍
TinyEMU System Emulator by Fabrice Bellard ========================================== 1) Features ----------- - RISC-V system emulator supporting the RV128IMAFDQC base ISA (user level ISA version 2.2, priviledged architecture version 1.10) including: - 32/64/128 bit integer registers - 32/64/128 bit floating point instructions - Compressed instructions - dynamic XLEN change - x86 system emulator based on KVM - VirtIO console, network, block device, input and 9P filesystem - Graphical display with SDL - JSON configuration file - Remote HTTP block device and filesystem - small code, easy to modify, no external dependancies - Javascript demo version 2) Installation --------------- - The libraries libcurl, OpenSSL and SDL should be installed. On a Fedora system you can do it with: sudo dnf install openssl-devel libcurl-devel SDL-devel It is possible to compile the programs without these libraries by commenting CONFIG_FS_NET and/or CONFIG_SDL in the Makefile. - Edit the Makefile to disable the 128 bit target if you compile on a 32 bit host (for the 128 bit RISCV target the compiler must support the __int128 C extension). - Use 'make' to compile the binaries. - You can optionally install the program to '/usr/local/bin' with: make install 3) Usage -------- 3.1 Quick examples ------------------ - Use the VM images available from https://bellard.org/jslinux (no need to download them): Terminal: ./temu https://bellard.org/jslinux/buildroot-riscv64.cfg Graphical (with SDL): ./temu https://bellard.org/jslinux/buildroot-x86-xwin.cfg ./temu https://bellard.org/jslinux/win2k.cfg - Download the example RISC-V Linux image (diskimage-linux-riscv-yyyy-mm-dd.tar.gz) and use it: ./temu root-riscv64.cfg ./temu rv128test/rv128test.cfg - Access to your local hard disk (/tmp directory) in the guest: ./temu root_9p-riscv64.cfg then type: mount -t 9p /dev/root /mnt in the guest. The content of the host '/tmp' directory is visible in '/mnt'. 3.2 Invocation -------------- usage: temu [options] config_file options are: -m ram_size set the RAM size in MB -rw allow write access to the disk image (default=snapshot) -ctrlc the C-c key stops the emulator instead of being sent to the emulated software -append cmdline append cmdline to the kernel command line -no-accel disable VM acceleration (KVM, x86 machine only) Console keys: Press C-a x to exit the emulator, C-a h to get some help. 3.3 Network usage ----------------- The easiest way is to use the "user" mode network driver. No specific configuration is necessary. TinyEMU also supports a "tap" network driver to redirect the network traffic from a VirtIO network adapter. You can look at the netinit.sh script to create the tap network interface and to redirect the virtual traffic to Internet thru a NAT. The exact configuration may depend on the Linux distribution and local firewall configuration. The VM configuration file must include: eth0: { driver: "tap", ifname: "tap0" } and configure the network in the guest system with: ifconfig eth0 192.168.3.2 route add -net 0.0.0.0 gw 192.168.3.1 eth0 3.4 Network filesystem ---------------------- TinyEMU supports the VirtIO 9P filesystem to access local or remote filesystems. For remote filesystems, it does HTTP requests to download the files. The protocol is compatible with the vfsync utility. In the "mount" command, "/dev/rootN" must be used as device name where N is the index of the filesystem. When N=0 it is omitted. The build_filelist tool builds the file list from a root directory. A simple web server is enough to serve the files. The '.preload' file gives a list of files to preload when opening a given file. 3.5 Network block device ------------------------ TinyEMU supports an HTTP block device. The disk image is split into small files. Use the 'splitimg' utility to generate images. The URL of the JSON blk.txt file must be provided as disk image filename. 4) Technical notes ------------------ 4.1) 128 bit support The RISC-V specification does not define all the instruction encodings for the 128 bit integer and floating point operations. The missing ones were interpolated from the 32 and 64 ones. Unfortunately there is no RISC-V 128 bit toolchain nor OS now (volunteers for the Linux port ?), so rv128test.bin may be the first 128 bit code for RISC-V ! 4.2) Floating point emulation The floating point emulation is bit exact and supports all the specified instructions for 32, 64 and 128 bit floating point numbers. It uses the new SoftFP library. 4.3) HTIF console The standard HTIF console uses registers at variable addresses which are deduced by loading specific ELF symbols. TinyEMU does not rely on an ELF loader, so it is much simpler to use registers at fixed addresses (0x40008000). A small modification was made in the "riscv-pk" boot loader to support it. The HTIF console is only used to display boot messages and to power off the virtual system. The OS should use the VirtIO console. 4.4) Javascript version The Javascript version (JSLinux) can be compiled with Makefile.js and emscripten. A complete precompiled and preconfigured demo is available in the jslinux-yyyy-mm-dd.tar.gz archive (read the readme.txt file inside the archive). 4.5) x86 emulator A small x86 emulator is included. It is not really an emulator because it uses the Linux KVM API to run the x86 code at near native performance. The x86 emulator uses the same set of VirtIO devices as the RISCV emulator and is able to run many operating systems. The x86 emulator accepts a Linux kernel image (bzImage). No BIOS image is necessary. The x86 emulator comes from my JS/Linux project (2011) which was one of the first emulator running Linux fully implemented in Javascript. It is provided to allow easy access to the x86 images hosted at https://bellard.org/jslinux . 5) License / Credits -------------------- TinyEMU is released under the MIT license. If there is no explicit license in a file, the license from MIT-LICENSE.txt applies. The SLIRP library has its own license (two clause BSD license).
评论
    相关推荐
    • json jar文件
      json所需要的jar文件 齐全!commons-collections-3.2.1.jar commons-httpclient-3.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar 等...
    • Json-morph
      jso所需要的jar包,包含commons-beanutils.jar、commons-httpclient.jar、commons-lang.jar、ezmorph-1.0.5.jar、json-lib-2.2-jdk15.jar、morph-1.1.1.jar等等
    • 简单json解析
      简单的json解析及httpclient3.1免证书认证
    • ArduinoJson
      常用于Arduino解析Json数据的库文件,HTTP通信协议。123。
    • http测试json
      测试json
    • gojson
      gojson 从示例json创建Json-Interface结构 安装 go install 例子 ... " url " : " http://www.vendor.com " , " added " : " 2019-11-12T14:08:00Z " , " priority " : 12 }, " nullvalue " : null
    • HttpPost请求和JSON解析
      简单的HttpPost请求和JSON解析 【包含完整的注释,适合初学者学习】
    • Http传输与Json解析
      Http传输与Json解析
    • json jar下载
      包含commons-beanutils.jar、commons-beanutils.jar、commons-httpclient.jar、commons-lang.jar、commons-logging.jar、ezmorph-1.0.5.jar、json-lib-2.2-jdk15.jar、morph-1.1.1.jar 包,非常全~
    • json jar包
      包含了json所需的七个jar包,分别为 commons-beanutils.jar commons-collections-3.2.1.jar commons-httpclient-3.1.jar commons-lang-2.4.jar commons-logging-1.1.1.jar ezmorph-1.0.4.jar json-lib-2.2.3-jdk13....