资源推荐:web js linux windows vm 虚拟机

web js vm list

https://bellard.org/jslinux/index.html
可以在在浏览器中运行 X Window 或 Windows 2000、linux
以下为示例:
在这里插入图片描述
在这里插入图片描述

JSLinux - News

从2018-08-18开发更新到2021-01-09
… https://bellard.org/jslinux/news.html

faq 常见问题解答

https://bellard.org/jslinux/faq.html

如何上传文件到虚拟机?

点击终端下方的上箭头。文件将被复制到您的主目录。
注意:文件上传仅在Linux虚拟机中有效。

如何从虚拟机导出文件?

使用 export_file filename shell 命令。
注意:文件导出仅在Linux虚拟机中有效。

如何复制和粘贴数据到 Web 终端?

要复制数据,只需用鼠标选择它,然后使用“复制”上下文菜单(右键单击)。要粘贴数据,请右键单击终端光标以显示上下文菜单,然后选择“粘贴”。或者,您可以在导航器全局菜单中使用“粘贴”命令。
注意:不支持文件的复制/粘贴。复制/粘贴仅在控制台 Linux 虚拟机中支持。

如何在移动设备上使用 Web 终端?

触摸终端窗口以显示虚拟键盘。为了使用控制键,您可能需要安装特定的虚拟键盘(如 Android 上的 Hacker’s Keyboard)。

我能从虚拟机访问网络吗?

是的,这是可能的。它使用由 Benjamin Burns 提供的 websocket VPN(请参见他的博客)。带宽被限制为 40 kB/s,并且每个公共 IP 地址最多允许两个连接。请不要滥用该服务。

我能用 TinyEMU 运行虚拟机吗?

是的。使用虚拟机列表中提供的 VM Config URL。然后将其用作独立模拟器的配置文件,例如:

temu https://bellard.org/jslinux/buildroot-x86-xwin.cfg
temu https://bellard.org/jslinux/buildroot-riscv64-xwin.cfg
我能更改 Web 虚拟机的内存量吗?我能更改终端的大小吗?

是的,有许多可以通过向 URL 添加参数来选择的选项。例如:

https://bellard.org/jslinux/vm.html?cpu=x86&url=buildroot-x86.cfg&mem=128&cmdline=TEST%3d1
  • url 设置虚拟机文件系统的 URL
  • mem 设置内存大小(以 MB 为单位)
  • cpu 选择 CPU 类型:x86、riscv64 或 riscv32(默认 = x86)
  • cols 终端的列数(默认 = 80)
  • rows 终端的行数(默认 = 30)
  • font_size 字体大小(以像素为单位,默认 = 15)
  • graphic 0=终端 GUI,1=帧缓冲 GUI(默认 = 0)
  • w 帧缓冲的宽度(仅在 graphic=1 时有意义)
  • h 帧缓冲的高度(仅在 graphic=1 时有意义)
  • cmdline 添加到内核命令行的参数(如果内核不使用它们,则可以将它们作为环境变量获取)。使用 URL 转义 %3d 代表 “=” 字符。VM init 脚本可识别以下变量:
    • KBMAP 设置 X 窗口或 Linux 帧缓冲控制台的默认键盘映射(例如 fr、us、de 等)。
    • net_url 设置 websocket VPN 的 URL。如果该选项不存在,则设置默认 VPN URL。
如何在 X11 GUI 中设置键盘映射?

使用鼠标右键单击可用的菜单。如果您的国家未列出,可以尝试键入以下命令:setxkbmap -layout x,其中 x 是您的键盘映射的国家代码。
如果您的键盘仍然无法正常工作,则表示您的浏览器未返回用于模拟 PC 键盘所需的 PC 硬件键码。您仍然可以使用虚拟键盘(在右键菜单中可用)。

如何在 Windows 2000 演示中设置键盘映射?

右键单击位于时钟旁边的 EN 图标(屏幕右下角),选择属性,添加所需的键盘并选择它。
如果您的键盘仍然无法正常工作,则表示您的浏览器未返回用于模拟 PC

键盘所需的 PC 硬件键码。

或者,您可以使用屏幕键盘(其图标位于桌面上)。

为什么在 Firefox 中 [Alt] 键的工作方式不如预期?

在较旧的 Firefox 版本中,[Alt] 键总是被浏览器拦截以显示菜单。升级到更高版本的 Firefox 版本以解决此问题。

JSLinux - Technical Notes 技术说明

https://bellard.org/jslinux/tech.html

历史

该模拟器有着悠久的历史。当前版本基于 TinyEMU,并使用 emscripten 编译成 Javascript 或 WASM。
在2011年,我编写了JSLinux的初始版本,这是第一个在Javascript中运行Linux的PC/x86模拟器。我重用了我的另一个模拟器(QEMU)的x86助手和设备部分。

一段时间后(2015年),我对其进行了修改,以使用 asm.js Javascript 子集,以便在支持该子集的浏览器中运行得更快。

2016年,在编写了TinyEMU(最初是RISC-V模拟器)之后,我决定通过使用emscripten从其C代码创建Javascript版本。我添加了一个受Sebastian Macke的jor1k启发的VirtIO 9P文件系统,以便更容易地使用远程文件系统并导入/导出文件。

然后,我发现可以为x86 JS模拟器重用VirtIO设备,因此我将JSLinux asm.js代码转换为C,再用emscripten将其转换回Javascript!通过仔细调整,新版本现在比手工编码的asm.js版本更快。

下一步是运行与Linux不同的操作系统,例如Windows NT。该模拟器的首个版本通过在模拟的Linux系统内部运行QEMU,运行了带有Windows NT的。它仍然可用,因为x86模拟器支持QEMU使用的x86虚拟化扩展(AMD SVM)。

JSLinux的当前版本通过模拟少量缺失的PC设备(PS/2键盘和鼠标、IDE磁盘、虚拟VGA)来运行Windows NT。

x86 CPU 模拟

模拟具有以下功能的x86 CPU:

  • 五代Pentium CPU
  • 具有精确的80位浮点数的x87
  • PAE支持
  • CMOV指令
  • MMX和SSE2支持
  • AMD虚拟机扩展(SVM)具有嵌套页表支持
  • RDPMC支持读取指令计数
    已知限制:
  • 访问内存时没有段限制和权限检查
  • 没有调试支持(DRx寄存器)
模拟设备
  • 8259可编程中断控制器
  • 8254可编程中断定时器
  • 16450 UART(仅用于调试)
  • 实时时钟
  • PCI总线
  • VirtIO控制台
  • VirtIO 9P文件系统
  • VirtIO网络
  • VirtIO块设备
  • VirtIO输入
  • 简单帧缓冲区
  • IDE控制器(可选)
  • PS/2键盘和鼠标(可选)
  • 虚拟VGA显示(可选)
RISC-V CPU 模拟

模拟了具有64位FPU和压缩指令的32位或64位RISC-V CPU。
目前仅提供RISC-V 64位Buildroot和Fedora发行版。 RISC-V 32位镜像仍可用,但不再积极维护:

  • 具有控制台的buildroot-riscv32。
  • 具有X Window的buildroot-riscv32。
性能

在一台典型的桌面PC上(2017年)使用Firefox浏览器,x86模拟器运行约100 MIPS。可以使用集成的vmtime实用程序进行详细的基准测试。

Javascript 终端

这是原始 JSLinux 终端的改进版本。它具有滚动条并支持URL高亮显示。

Linux 发行版

它使用Alpine Linux和Buildroot发行版。为 vfsync、qemacs 和 tcc 添加了自定义软件包。可选的X Window支持可与Fluxbox窗口管理器一起使用。

网络

在模拟器内可以访问互联网。它使用由Benjamin Burns提供的 websocket VPN(请参见他的博客)。带宽被限制为40 kB/s,并且每个公共IP地址最多允许两个连接。请不要滥用该服务。

有什么用途?

我纯粹是为了好玩,只是因为Javascript引擎足够快,可以完成复杂的任务。真正的用途可能包括:

  • 对Javascript引擎进行基准测试(您的Javascript引擎启动Linux需要多长时间?)

以及使用新的浏览器技术(asm.js、WASM)。

  • 在不离开浏览器的情况下学习使用命令行Unix工具。
  • 在浏览器中进行安全文件访问(vfsync)。
  • 运行旧的PC软件。
源代码

RISC-V版本的源代码在 TinyEMU 项目中可用。还提供了一个易于安装的预编译演示版本。

类似项目

还有其他几个PC或Linux模拟器可用,特别是:

  • jor1k: OpenRISC OR1K CPU 模拟器。
  • v86: PC 模拟器。
  • angel: RISC-V CPU 模拟器。

https://bellard.org/

这个父网站也是个神奇的资源网站。
Fabrice Bellard 是一位法国计算机科学家和程序员,以其在计算机领域的卓越贡献而闻名。
这个网站似乎是他个人做的产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/366994.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用 需求(实现的效果)功能实现htmlcssjs 需求(实现的效果) 批量显示视频,后端若返回有imgUrl,则直接显示图1, 若无&#xf…

如何使用VSCode上运行Jupyter,详细案例过程出可视化图

Python作为最受AI喜欢的语言之一,我们与大家共同学习下如何在VS Code上运行Jupyter,并且用简单案例实现出图。 环境 VS Code version: 1.80.1 Python: 3.12.0 小白安装过程: 在准备好基础环境,小白心想,AI可是霸占科…

爬虫(二)使用urllib爬取百度贴吧的数据

下一期我就不用urllib来抓取数据了,因为urllib现在已经很少人用,大部分人用得是requests,requests也是基于底层urllib的一个模块。 首先我先来讲一下关于如何使用动态的UA! 动态UA就是指在自己创建的一个列表里随机选择一个UA当做…

07 SB3之@HttpExchange(TBD)

HttpExchange是SpringBoot3的新特性. Spring Boot3 提供了新的 HTTP 的访问能力,封装了Http底层细节. 通过接口简化 HTTP远程访问,类似 Feign 功能。 SpringBoot 中定义接口提供 HTTP 服务 --> 框架生成的代理对象实现此接口 --> 框架生成的代理…

RabbitMQ下载与安装

一、Docker安装 1.单机部署 我们在Centos7虚拟机中使用Docker来安装。 1.1.下载镜像 方式一:在线拉取 docker pull rabbitmq:3-management方式二:从本地加载 上传到虚拟机中后,使用命令加载镜像即可: docker load -i mq.ta…

全面认识DOS系统

目录 一、DOS系统的功能 1.执行命令和程序(处理器管理) 2.内存管理 3.设备管理 4.文件管理 5.作业管理 二、文件与目录 三、文件类型与属性 1.系统属性(S) 2.隐含属性(H) 3.只读属性&#xff08…

Window命令行 如何查看以及关闭进程

目录 前言1. 基本知识2. Demo 前言 用习惯了Linux操作系统,突然想用Window,发现很陌生! 补充一波Linux的基本命令: 查看进程和端口信息: 通过 netstat -tanp 命令查看系统上的所有网络连接,然后通过 grep…

Docker 集群配置

1、配置 MySQL MySQL 简单安装 docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据 docker run -d -p 2222:3306 --privilegedtrue -e MYSQL_ROOT_PASSWORD123456 \ -v /opt/mysql/log:/var/log/mysql \ -v /opt/mysql/data:/va…

day36 无重叠区间 划分字母区间 合并区间

题目1:435 无重叠区间 题目链接:435 无重叠区间 题意 intervals[i][starti,endi] 移除区间,使得区间互不重叠,返回移除区间的最小数量 相邻区间挨在一起,尽量移除重叠区间 代码 class Solution { publ…

【C语言】异常处理 | assert函数 | errno错误码

文章目录 C语言传统的处理错误的方式1. 终止程序(例如使用 assert)2. 返回/设置错误码手动实现C语言库函数内置的错误码Linux系统调用内置的错误码 C语言传统的处理错误的方式 C语言传统的处理错误的方式主要包括assert终止程序和返回或设置错误码两种方…

面试经典150题 -- 区间(总结)

总的链接 : 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台最经典 150 题,掌握面试所有知识点https://leetcode.cn/studyplan/top-interview-150/ 228 汇总区间 直接用双指针模拟即可 ; class Solution { public…

数据结构——实验01-线性表的链式存储和操作

一、实验内容 二、算法思想与算法实现 1、解题思想 (1)逆序创建链表La就是使用头插法创建一个链表,所谓头插法就是在创建链表时始终将新元素插入到头结点之后,而正序创建链表Lb就是使用尾插法创建一个链表,所谓尾插法…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--强化学习、模仿学习

专属领域论文订阅 关注{晓理紫|小李子},每日更新论文,如感兴趣,请转发给有需要的同学,谢谢支持 如果你感觉对你有所帮助,请关注我,每日准时为你推送最新论文。 为了答谢各位网友的支持,从今日起…

Latex学习记录

目录 1.Latex各种箭头符号总结 2.[Latex]公式编辑,编号、对齐 3.Latex公式编号: 多行公式多编号,多行公式单编号 4.LaTex中输入空格以及换行 1.Latex各种箭头符号总结 箭头符号 - ➚ (piliapp.com)https://cn.piliapp.com/symbol/arrow/Latex各种箭头…

【LeetCode: 462. 最小操作次数使数组元素相等 II + 贪心】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

根据路由动态注册组件失败

动态注册组件 方式1 import 这种跟webpack的版本有关系 import低版本不支持传入动态参数 <template><components :is"componentName" v-show"isShow" :key"componentName"></components> </template>const _import fi…

网络基础【Linux网络编程】

目录 一、网络发展 二、协议和协议分层 OSI七层网络模型 TCP/IP协议栈 三、网络和OS的关系 四、网络传输基本流程 五、数据包封装和分用 六、IP地址和MAC地址 MAC地址 局域网通信原理 IP地址 一、网络发展 详细参考此篇博文&#xff1a;网络发展史 独立模式 计算机…

第三百零三回

文章目录 1. 概念介绍2. 实现方法2.1 文字信息2.2 红色边框 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现密码输入框"相关的内容&#xff0c;本章回中将介绍如何在在输入框中提示错误.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们…

Qt加载网页崩溃 ASSERT:“m_adapterClient“ in file ...

1、软件启动后加载网页无异常&#xff0c;点击按钮&#xff0c;加载新网页时崩溃 崩溃代码&#xff1a; QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type); return this; } 2、原因 Qt只是调用谷歌的浏览器引擎&#xff…

构建用于预警大型语言模型辅助生物威胁创建的系统

深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领域的领跑者。点击订阅&#xff0c;与未来同行&#xff01; 订阅&#xff1a;https://rengongzhineng.io/ 。 Op…