整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

在浏览器上运行各种系统 (Windows/Linux)

些小伙伴为了体验各种操作系统大多数情况会首选虚拟机的方式,不过对于一些用户来说用虚拟机也比较麻烦,还得去下载镜像,然后各种配置、安装啥的。


在最近有个粉丝给锋哥分享了一个能在浏览器上运行各种系统的网站「Copy.sh」基于 javascript 语言编写的开源项目,能够模拟 32 位的环境让你直接在网页上运行一些系统,例如经典的 Windows、Linux 版本。


Copy.sh介绍

因为「Copy.sh」是开源项目,你也可以部署到自己的服务器上运行,不过项目作者也提供了在线体验地址,因为服务器在国外的原因,加载速度有点慢,有条件的最好是自己部署到国内服务器上使用。


打开「Copy.sh」后可以看到虽然提供都是老旧系统了,不过用来体验下、或者学习 Linux 命令啥的问题不大,具体系统如下:


Arch Linux、Damn Small Linux、Buildroot Linux、ReactOS、Windows 2000、Windows 98、Windows 95、Windows 3.1、Windows 1.01、MS-DOS 6.22、FreeDOS、FreeBSD、OpenBSD、9front、Haiku、SerenityOS、Oberon、KolibriOS、QNX、Snowdrop、Solar OS、Bootchess、SectorLISP



正常情况下选择你需要运行的系统版本,等待下载镜像后就会自动运行了。当然你也可以在下面手动选择你本地下载好的镜像,然后设置相关参数,包括内存大小、显存大小、网络设置、开启 ACPI、启动项设置等等。



运行 Windows 98 系统,似乎一切功能都能正常运行,不过打开软件的响应就有点缓慢了,并且可能是 javascript 性能原因,图形渲染的速度也有点延迟。不过相信现在也不会有人用 Windows 98 系统了吧,所以用来重温体验下还行吧。



下面测试的是 Windows 2000 系统,在当年可是质的飞跃。因为 Windows 98 经常蓝屏崩溃,实际上就是基于 DOS 套壳 UI 界面,所以非常不稳定。


到了 Windows 2000 才开始使用 NT 核心,系统架构也带来了重大变化,同时还支持了 NTFS 文件系统,这让稳定性大大的提升了。



下面是 MS-DOS 6.22,不知道你们还记得多少命令呢?锋哥刚学的 DOS 命令就是 Format 格式化,当年系统挂了,暑假为了玩游戏,自己摸索学习重装了系统。



Windows 1.0 是微软第一次对个人电脑用户图形界面的尝试,1.01也就是改进版本,可以看到大多数操作都可以通过鼠标来点击完成了,另外还支持显示 256 种颜色。



Windows 3.1 比尔·盖茨在产品的视频说到:“你将会看到未来:Windows”。Windows 3.1 支持了多窗口、添加对声音输入输出、也有了扫雷游戏、控制面板、内置一些应用软件等。另外还是第一个支持中文的 Windows 系统。



下面是 Linux 的一个发行版 Damn Small Linux 体积很小,但是包括了很多功能,例如浏览器、播放器、FTP客户端、文档编辑器、XPDF阅读器、SSH客户端、Web 服务器等。对于很多用户来说 Linux 太难上手,所以现在你也可以通过在线的方式先体验试用。


总结

因为「Copy.sh」是使用 javascript 编写模拟的项目,运行起来的性能当然不如虚拟机流程,不过作为体验、学习 Linux 命令还是不错的选择,毕竟项目还提供了不少 Linux 发行版本,感兴趣的可以试试看。


最后还有个「PCjs Machines」网站,同样也是在线运行各种古董系统、项目。之前给大家介绍过了,这里就不多说了,同样感兴趣的可以体验看。

过在浏览器上面跑 Python 吗?想过 Python 能放在 script 元素里运行吗?想过 Python 能直接操控 DOM 和浏览器吗?Brython 告诉你,一切皆有可能。

Python

简介

Brython(Browser Python),是由 brython-dev 组织在 Github 上开源的可在浏览器上运行的 Python3 实现,项目地址为 https://github.com/brython-dev/brython。仅需在 HTML 引入一个 brython.js 并初始化,就可以在浏览器上运行 Python 代码,包括 Python 的推导式、生成器、元类、模块导入,和许多 CPython 模块,并且可以操作 DOM 元素和事件,以及与 jQuery,Highcharts 等 JS 库进行交互。

Brython

安装

Brython 只需引入其 Javascript 文件即可使用,可以使用 CDN:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>

如果想要使用导入标准库,那还需要引用 stdlib 的 JS:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython_stdlib.js"></script>

此外,还可以使用 pip 在本地安装:

pip install brython
python -m brython --install

示例

我们来看一个简单的例子:

<html>
<head>
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
</head>
<body onload="brython()">

  <script type="text/python">
  from browser import document, alert

  def echo(event):
      alert(document["zone"].value)

  document["mybutton"].bind("click", echo)
  </script>

  <input id="zone"><button id="mybutton">click !</button>

</body>
</html>

可以看到,代码中使用了一个类型为 text/python 的 script 元素,在里面包含了 Python 代码。

在 Python 代码中,从由 Brython 提供的 browser 库中导入了 document 和 alert,分别对应 Javascript 中的 document 对象和 alert 函数。然后,定义了一个 echo 函数,用来弹出对话框来显示 id 为 zone 的输入框的值。最后对 id 为 mybutton 的按钮的 click 事件与 echo 函数进行绑定。

把代码放到浏览器中运行,显示出一个文本输入框和一个按钮。输入 Hello,并点击按钮,此时弹出了显示 Hello 的对话框。

Brython运行例子

我们再来看一个使用了 Python 标准库的例子:

<html>
<head>
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
  <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython_stdlib.js"></script>
</head>
<body onload="brython()" style="background-color: #ddd;">

  <script type="text/python">
  from datetime import datetime
  from browser import document, timer

  def show_time():
      now = datetime.now().strftime("%H:%M:%S")
      document["display"].textContent = now

  timer.set_interval(show_time, 1000)

  </script>

  <div id="display"></div>

</body>
</html>

此时我们需要引入 brython_stdlib.js。在 Python 代码中,使用了 Python 的 datetime 模块来获取当前时间,同时利用 Brython 的 timer 的 set_interval 来实现周期性调用。运行代码,网页上显示了每秒刷新的当前时间:

Brython运行例子2

总结

Brython 所实现的功能极其丰富,把 Python 语言和浏览器 Javascript 有机地结合在了一起,实现了在浏览器中运行 Python 代码,并使用 Python 操作 DOM。

虽然 Brython 与原生 Javascirpt 和 WASM 等技术相比较实用价值仍不高,但为前端的跨语言实现给出了一种可行的方案,值得对相关领域感兴趣的开发者继续研究。

了更好地宣传鄠邑区

美丽的风景和丰富的历史人文底蕴

不断丰富完善报道形式和内容

近日

新华网为鄠邑区量身定制的专题网页

正式上线啦

一起来了解一下吧

长按图片识别二维码打开专题网页


专题网页目前共有四个栏目



南山北水·看鄠邑


东工西旅·游鄠邑


产城融合·品鄠邑


破局量变·在鄠邑


专题网页将全方位多角度

展现鄠邑风貌

借助新华网的影响力

让更多的人更清晰、更直观地了解鄠邑区



如今

“诗画鄠邑 品质新区”的风帆已经扬起

为加快构建“南山北水、东工西旅”发展格局

充分展现鄠邑新风貌、新气象

不断加强与主流媒体合作

凝心聚力

- 左右滑动浏览海报 -

来源:新华网 鄠邑区委网信办

编辑:贾梦寒 张金兰

美编:张艺馨 | 视觉:李木霖

审核:常征 司徒慧明

西安市网信办主任会议召开

西安市委网信办获得10部委联合通报表扬

一图看懂西安市网络媒体倡议