些小伙伴為了體驗各種操作系統大多數情況會首選虛擬機的方式,不過對于一些用戶來說用虛擬機也比較麻煩,還得去下載鏡像,然后各種配置、安裝啥的。
在最近有個粉絲給鋒哥分享了一個能在瀏覽器上運行各種系統的網站「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部委聯合通報表揚
一圖看懂西安市網絡媒體倡議
*請認真填寫需求信息,我們會在24小時內與您取得聯系。