成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Go 將會支持裸機(jī)環(huán)境運行?

開發(fā) 前端
從本文分析的結(jié)果來看,如果 Go 支持裸機(jī)環(huán)境,將會進(jìn)一步提高其在新領(lǐng)域的優(yōu)勢和實踐的機(jī)會。

眾所周知,我們平時在寫 Go 應(yīng)用程序時會先在本地環(huán)境開發(fā),更大規(guī)模的企業(yè)會配發(fā)云環(huán)境。以此確保開發(fā)環(huán)境的效率,以及與部署環(huán)境的對齊。

部署環(huán)境需要特定的系統(tǒng)(Windows、Linux 等)似乎也成為了常見的共識。但其實在其他業(yè)務(wù)場景下也有不需要系統(tǒng)的訴求。

今天分享給大家的是 Go 針對裸機(jī)環(huán)境的新支持場景考慮。

新提案:增加裸機(jī)環(huán)境支持

提案背景

該提案《proposal: all: add bare metal support[1]》由 @Andrea Barisani 提出:

圖片圖片

核心提議的內(nèi)容是:引入一個新的 GOOS 目標(biāo)值,例如 GOOS=none(或現(xiàn)有的 GOOS=tamago),允許 Go 應(yīng)用程序在沒有底層操作系統(tǒng)支持的環(huán)境中運行,即所謂 “裸機(jī)” 運行模式。

這相當(dāng)于做到了以下事項:

  • 在沒有 Linux、Windows、macOS 等 OS 系統(tǒng)下,Go 應(yīng)用程序也可以運行;
  • Go 程序通過定義一組與底層硬件相關(guān)的函數(shù),由 Go runtime 與外部驅(qū)動(也是 Go 實現(xiàn))共同支持運行;
  • 不依賴操作系統(tǒng) syscall,完全在 runtime 和硬件之間運行。

摘 TamaGo 項目果子

可能有了解的同學(xué)一看,這表示是個大需求。畢竟以前 Go 一直都是支持帶環(huán)境的,沒有支持過裸機(jī)運行環(huán)境。開發(fā)工作量和涉及的影響面也未免太多了。

實際上這個提案是個摘果子的活,開源項目 TamaGo[2] 已經(jīng)面向該需求已經(jīng)經(jīng)歷了多年開發(fā)。

圖片

目前具備一定的成果和成熟度:

  • Go 標(biāo)準(zhǔn)庫兼容性良好,通過了大部分分發(fā)測試;
  • 跨平臺支持完善:支持 amd64、arm、riscv64;
  • 網(wǎng)絡(luò)棧通過注入 SocketFunc,可自定義虛擬網(wǎng)絡(luò),甚至用于 js/wasip1;
  • 支持用戶態(tài)執(zhí)行(以 Go app 形式運行在沙箱環(huán)境中);
  • 不再局限于 ARM,擴(kuò)展到了 KVM 環(huán)境的 microVM,如 Firecracker、Cloud Hypervisor;
  • 變更對 Go 官方發(fā)行版幾乎無侵入性(硬件驅(qū)動與構(gòu)建系統(tǒng)保持外部化)。

可能存在的問題

社區(qū)反饋中,Google 內(nèi) Go 團(tuán)隊成員 @Michael Pratt 對 Go 裸機(jī)運行(bare metal Go)感到很興奮。

也指出了以下幾點主要的兼容性挑戰(zhàn):

  • 問題 1:為 runtime 提供穩(wěn)定的 API
  • 問題 2:可用于實現(xiàn) runtime API 的語言子集

問題 1:為 runtime 提供穩(wěn)定的 API

  • Go 的 兼容性承諾(Go 1 Compatibility Promise) 要求 runtime 依賴的 API 是長期穩(wěn)定的;
  • 當(dāng)前提案中定義的 tamago runtime API 大致可行,但 go:linkname 機(jī)制需要更好的替代;
  • 社區(qū)中也有人希望類似 API 能用于在最小化 WASM 運行時上運行 Go(如不支持 WASI 的環(huán)境),因此該 API 也應(yīng)適用于 GOOS=none GOARCH=wasm。

問題 2:可用于實現(xiàn) runtime API 的語言子集

  • Go runtime 本身用的是一套“不完全定義”的 Go 子集,具有一定特殊性;
  • 在標(biāo)準(zhǔn)編譯器下,某些微小的變化(例如啟發(fā)式加了一個內(nèi)存分配)可能會
  • 導(dǎo)致在不可分配位置出錯,但目前因為 runtime 是官方源碼,可以一起調(diào)整;
  • 一旦開啟 GOOS=none,任何 runtime 的變動都不能破壞對已有裸機(jī)實現(xiàn)的兼容,因此:可能需要定義一套“穩(wěn)定、安全”的 Go 語言子集,用于實現(xiàn)裸機(jī)所需的這些底層 API;
  • 這是一個很大的工作量。

對 Go 的發(fā)展意義和價值

  • 使 Go 成為裸機(jī)開發(fā)語言:無需 C 或匯編,完整 Go 開發(fā)體驗;
  • 構(gòu)建最小化系統(tǒng):比如可信執(zhí)行環(huán)境(TEE)、引導(dǎo)加載器(如 go-boot);
  • 沙箱與虛擬化創(chuàng)新:可用于構(gòu)建 Soft Isolation VM、serverless 運行時;
  • Go runtime 的可插拔性增強(qiáng):提升多平臺抽象能力;

總結(jié)

從本文分析的結(jié)果來看,如果 Go 支持裸機(jī)環(huán)境,將會進(jìn)一步提高其在新領(lǐng)域的優(yōu)勢和實踐的機(jī)會。

但是結(jié)合 Go 團(tuán)隊維護(hù)成員的結(jié)論來看,將裸機(jī)支持合入 master 分支前仍然存在的兩個關(guān)鍵工程難題:分別是:

  • 如何為裸機(jī)提供一個長期維護(hù)、穩(wěn)定的運行時接口(API);
  • 如何保障這些接口的實現(xiàn)不會因 Go 語言或編譯器變更而“突然失效”。

這些問題都需要通盤考慮并做出一些基本的解決方案。雖然很希望 Go 可以進(jìn)一步擴(kuò)大輻射范圍,但可能我們還是需要再等等。

參考資料

[1] proposal: all: add bare metal support: https://github.com/golang/go/issues/73608

[2] TamaGo: https://github.com/usbarmory/tamago

責(zé)任編輯:武曉燕 來源: 腦子進(jìn)煎魚了
相關(guān)推薦

2024-10-09 08:54:31

2014-09-02 10:39:53

Go語言C語言

2023-01-30 08:46:20

GoGo1兼容性

2023-01-27 19:11:40

GoGo1兼容性

2019-11-15 14:46:25

祼機(jī)大數(shù)據(jù)分析

2023-11-01 13:40:25

GolangGo

2015-01-29 11:11:44

SoftLayerIaaSIBM裸機(jī)服務(wù)器

2023-03-13 00:10:46

Go語言版本

2021-02-22 09:30:09

go開發(fā)環(huán)境桌面系統(tǒng)

2022-04-06 08:19:13

Go語言切片

2011-02-18 10:11:46

Qt

2010-07-14 16:16:16

Telnet模式

2009-12-15 16:18:41

Firefox

2020-12-07 13:31:43

GoMutex開發(fā)者

2021-02-25 15:51:41

Go語言模糊測試功能

2014-06-23 09:49:32

Go語言Android谷歌

2014-07-14 15:51:08

AndroidGO語言

2013-10-10 13:36:03

Powershell恢復(fù)

2010-05-21 18:34:03

2011-12-21 21:34:50

PhoneGapiOSAndroid
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产一区二区电影 | 久久久久久久久中文字幕 | 成人免费片 | 日日天天| 国产精品久久久久久久免费观看 | 欧美日韩三级 | 久久av一区二区三区 | 中文字幕一区二区三区在线观看 | 黄色毛片在线看 | 亚洲成人精品影院 | 久久精品手机视频 | 久久夜视频 | 女人精96xxx免费网站p | 精品网| 欧美极品少妇xxxxⅹ免费视频 | 国产成人精品一区 | 免费一级片 | 人人玩人人干 | 日韩毛片在线观看 | 亚洲国产精品成人无久久精品 | 国产成人免费视频 | 伊人伊人| 国产成人精品一区二区三区视频 | 国产精品1 | 毛片久久久 | 午夜久久久久久久久久一区二区 | 日韩精品久久久 | 一区二区三区在线免费观看 | 欧美精品在线一区 | 亚洲在线一区二区 | 免费国产精品久久久久久 | 精品国产乱码久久久久久久久 | 成人久久 | 99精品热视频 | 91嫩草精品 | 91精品综合久久久久久五月天 | 欧美国产亚洲一区二区 | 嫩草视频网 | 国产91在线精品 | 久久91av | 涩涩视频在线观看免费 |