Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
些小伙伴為了體驗(yàn)各種操作系統(tǒng)大多數(shù)情況會(huì)首選虛擬機(jī)的方式,不過(guò)對(duì)于一些用戶來(lái)說(shuō)用虛擬機(jī)也比較麻煩,還得去下載鏡像,然后各種配置、安裝啥的。
在最近有個(gè)粉絲給鋒哥分享了一個(gè)能在瀏覽器上運(yùn)行各種系統(tǒng)的網(wǎng)站「Copy.sh」基于 javascript 語(yǔ)言編寫的開(kāi)源項(xiàng)目,能夠模擬 32 位的環(huán)境讓你直接在網(wǎng)頁(yè)上運(yùn)行一些系統(tǒng),例如經(jīng)典的 Windows、Linux 版本。
Copy.sh介紹
因?yàn)椤窩opy.sh」是開(kāi)源項(xiàng)目,你也可以部署到自己的服務(wù)器上運(yùn)行,不過(guò)項(xiàng)目作者也提供了在線體驗(yàn)地址,因?yàn)榉?wù)器在國(guó)外的原因,加載速度有點(diǎn)慢,有條件的最好是自己部署到國(guó)內(nèi)服務(wù)器上使用。
打開(kāi)「Copy.sh」后可以看到雖然提供都是老舊系統(tǒng)了,不過(guò)用來(lái)體驗(yàn)下、或者學(xué)習(xí) Linux 命令啥的問(wèn)題不大,具體系統(tǒng)如下:
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
正常情況下選擇你需要運(yùn)行的系統(tǒng)版本,等待下載鏡像后就會(huì)自動(dòng)運(yùn)行了。當(dāng)然你也可以在下面手動(dòng)選擇你本地下載好的鏡像,然后設(shè)置相關(guān)參數(shù),包括內(nèi)存大小、顯存大小、網(wǎng)絡(luò)設(shè)置、開(kāi)啟 ACPI、啟動(dòng)項(xiàng)設(shè)置等等。
運(yùn)行 Windows 98 系統(tǒng),似乎一切功能都能正常運(yùn)行,不過(guò)打開(kāi)軟件的響應(yīng)就有點(diǎn)緩慢了,并且可能是 javascript 性能原因,圖形渲染的速度也有點(diǎn)延遲。不過(guò)相信現(xiàn)在也不會(huì)有人用 Windows 98 系統(tǒng)了吧,所以用來(lái)重溫體驗(yàn)下還行吧。
下面測(cè)試的是 Windows 2000 系統(tǒng),在當(dāng)年可是質(zhì)的飛躍。因?yàn)?Windows 98 經(jīng)常藍(lán)屏崩潰,實(shí)際上就是基于 DOS 套殼 UI 界面,所以非常不穩(wěn)定。
到了 Windows 2000 才開(kāi)始使用 NT 核心,系統(tǒng)架構(gòu)也帶來(lái)了重大變化,同時(shí)還支持了 NTFS 文件系統(tǒng),這讓穩(wěn)定性大大的提升了。
下面是 MS-DOS 6.22,不知道你們還記得多少命令呢?鋒哥剛學(xué)的 DOS 命令就是 Format 格式化,當(dāng)年系統(tǒng)掛了,暑假為了玩游戲,自己摸索學(xué)習(xí)重裝了系統(tǒng)。
Windows 1.0 是微軟第一次對(duì)個(gè)人電腦用戶圖形界面的嘗試,1.01也就是改進(jìn)版本,可以看到大多數(shù)操作都可以通過(guò)鼠標(biāo)來(lái)點(diǎn)擊完成了,另外還支持顯示 256 種顏色。
Windows 3.1 比爾·蓋茨在產(chǎn)品的視頻說(shuō)到:“你將會(huì)看到未來(lái):Windows”。Windows 3.1 支持了多窗口、添加對(duì)聲音輸入輸出、也有了掃雷游戲、控制面板、內(nèi)置一些應(yīng)用軟件等。另外還是第一個(gè)支持中文的 Windows 系統(tǒng)。
下面是 Linux 的一個(gè)發(fā)行版 Damn Small Linux 體積很小,但是包括了很多功能,例如瀏覽器、播放器、FTP客戶端、文檔編輯器、XPDF閱讀器、SSH客戶端、Web 服務(wù)器等。對(duì)于很多用戶來(lái)說(shuō) Linux 太難上手,所以現(xiàn)在你也可以通過(guò)在線的方式先體驗(yàn)試用。
總結(jié)
因?yàn)椤窩opy.sh」是使用 javascript 編寫模擬的項(xiàng)目,運(yùn)行起來(lái)的性能當(dāng)然不如虛擬機(jī)流程,不過(guò)作為體驗(yàn)、學(xué)習(xí) Linux 命令還是不錯(cuò)的選擇,畢竟項(xiàng)目還提供了不少 Linux 發(fā)行版本,感興趣的可以試試看。
最后還有個(gè)「PCjs Machines」網(wǎng)站,同樣也是在線運(yùn)行各種古董系統(tǒng)、項(xiàng)目。之前給大家介紹過(guò)了,這里就不多說(shuō)了,同樣感興趣的可以體驗(yàn)看。
過(guò)在瀏覽器上面跑 Python 嗎?想過(guò) Python 能放在 script 元素里運(yùn)行嗎?想過(guò) Python 能直接操控 DOM 和瀏覽器嗎?Brython 告訴你,一切皆有可能。
Python
Brython(Browser Python),是由 brython-dev 組織在 Github 上開(kāi)源的可在瀏覽器上運(yùn)行的 Python3 實(shí)現(xiàn),項(xiàng)目地址為 https://github.com/brython-dev/brython。僅需在 HTML 引入一個(gè) brython.js 并初始化,就可以在瀏覽器上運(yùn)行 Python 代碼,包括 Python 的推導(dǎo)式、生成器、元類、模塊導(dǎo)入,和許多 CPython 模塊,并且可以操作 DOM 元素和事件,以及與 jQuery,Highcharts 等 JS 庫(kù)進(jìn)行交互。
Brython
Brython 只需引入其 Javascript 文件即可使用,可以使用 CDN:
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/brython@3.8.8/brython.min.js"></script>
如果想要使用導(dǎo)入標(biāo)準(zhǔn)庫(kù),那還需要引用 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
我們來(lái)看一個(gè)簡(jiǎn)單的例子:
<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>
可以看到,代碼中使用了一個(gè)類型為 text/python 的 script 元素,在里面包含了 Python 代碼。
在 Python 代碼中,從由 Brython 提供的 browser 庫(kù)中導(dǎo)入了 document 和 alert,分別對(duì)應(yīng) Javascript 中的 document 對(duì)象和 alert 函數(shù)。然后,定義了一個(gè) echo 函數(shù),用來(lái)彈出對(duì)話框來(lái)顯示 id 為 zone 的輸入框的值。最后對(duì) id 為 mybutton 的按鈕的 click 事件與 echo 函數(shù)進(jìn)行綁定。
把代碼放到瀏覽器中運(yùn)行,顯示出一個(gè)文本輸入框和一個(gè)按鈕。輸入 Hello,并點(diǎn)擊按鈕,此時(shí)彈出了顯示 Hello 的對(duì)話框。
Brython運(yùn)行例子
我們?cè)賮?lái)看一個(gè)使用了 Python 標(biāo)準(zhǔn)庫(kù)的例子:
<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>
此時(shí)我們需要引入 brython_stdlib.js。在 Python 代碼中,使用了 Python 的 datetime 模塊來(lái)獲取當(dāng)前時(shí)間,同時(shí)利用 Brython 的 timer 的 set_interval 來(lái)實(shí)現(xiàn)周期性調(diào)用。運(yùn)行代碼,網(wǎng)頁(yè)上顯示了每秒刷新的當(dāng)前時(shí)間:
Brython運(yùn)行例子2
Brython 所實(shí)現(xiàn)的功能極其豐富,把 Python 語(yǔ)言和瀏覽器 Javascript 有機(jī)地結(jié)合在了一起,實(shí)現(xiàn)了在瀏覽器中運(yùn)行 Python 代碼,并使用 Python 操作 DOM。
雖然 Brython 與原生 Javascirpt 和 WASM 等技術(shù)相比較實(shí)用價(jià)值仍不高,但為前端的跨語(yǔ)言實(shí)現(xiàn)給出了一種可行的方案,值得對(duì)相關(guān)領(lǐng)域感興趣的開(kāi)發(fā)者繼續(xù)研究。
了更好地宣傳鄠邑區(qū)
美麗的風(fēng)景和豐富的歷史人文底蘊(yùn)
不斷豐富完善報(bào)道形式和內(nèi)容
近日
新華網(wǎng)為鄠邑區(qū)量身定制的專題網(wǎng)頁(yè)
正式上線啦
一起來(lái)了解一下吧
長(zhǎng)按圖片識(shí)別二維碼打開(kāi)專題網(wǎng)頁(yè)
專題網(wǎng)頁(yè)目前共有四個(gè)欄目
南山北水·看鄠邑
東工西旅·游鄠邑
產(chǎn)城融合·品鄠邑
破局量變·在鄠邑
專題網(wǎng)頁(yè)將全方位多角度
展現(xiàn)鄠邑風(fēng)貌
借助新華網(wǎng)的影響力
讓更多的人更清晰、更直觀地了解鄠邑區(qū)
如今
“詩(shī)畫鄠邑 品質(zhì)新區(qū)”的風(fēng)帆已經(jīng)揚(yáng)起
為加快構(gòu)建“南山北水、東工西旅”發(fā)展格局
充分展現(xiàn)鄠邑新風(fēng)貌、新氣象
不斷加強(qiáng)與主流媒體合作
凝心聚力
- 左右滑動(dòng)瀏覽海報(bào) -
來(lái)源:新華網(wǎng) 鄠邑區(qū)委網(wǎng)信辦
編輯:賈夢(mèng)寒 張金蘭
美編:張藝馨 | 視覺(jué):李木霖
審核:常征 司徒慧明
西安市網(wǎng)信辦主任會(huì)議召開(kāi)
西安市委網(wǎng)信辦獲得10部委聯(lián)合通報(bào)表?yè)P(yáng)
一圖看懂西安市網(wǎng)絡(luò)媒體倡議
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。