網路相關 command
簡介
最早 net-tools 起源於 BSD(在 1980 年代,BSD 開發了現代網際網路的雛形——BSD TCP/IP 堆疊。為了管理這個堆疊,開發者編寫了一系列工具),他提供了自己的一些 command 包含:
最早 net-tools 起源於 BSD(在 1980 年代,BSD 開發了現代網際網路的雛形——BSD TCP/IP 堆疊。為了管理這個堆疊,開發者編寫了一系列工具),他提供了自己的一些 command 包含:
根據維基百科,他是一個跨平台工具,可以為任何網路產生標準化的效能測量結果。
最早來自 ttcp,他是最古老的網路效能測試工具之一,起源於 1980 年代的 BRL(美國陸軍彈道研究實驗室),並在 BSD 系統中發揚光大。
可以看程式碼,大概可以看出 Executor 在初始化會做什麼事情。
Expect<std::unique_ptr<Runtime::Instance::ModuleInstance>> Executor::instantiate(Runtime::StoreManager &StoreMgr, const AST::Module &Mod, std::optional<std::string_view> Name)參數原型如上,可以看到有參數
Runtime::StoreManager &StoreMgr: 提供導入(Import)時所需的外部實例尋找,並在實例化成功後負責「註冊」該模組。它維護了整個運行時的狀態空間const AST::Module &Mod: 靜態藍圖,這是由載入器(Loader)解析並驗證後的抽象語法樹(AST)。包含了 WebAssembly 檔案的所有原始資訊(如指令、段數據、類型定義)。它是唯讀的(const)std::optional<std::string_view> Name: 定此模組是否為「具名模組」。若有值,該實例會以該名稱註冊進 StoreMgr,供其他模組後續引用;若無值(std::nullopt),則視為匿名模組回傳值則是使用 Expect 處理錯誤,並且使用 unique_ptr 保證只有一個獨占此指標,最後回傳一個 Runtime::Instance::ModuleInstance 要,這是最終產物。它包含了所有運行時需要的數據結構:跳轉表、動態分配的記憶體快、初始化的全域變數值,以及指向具體執行代碼的指針。
第一種類型,Line Pay,主要屬於第三方支付,他只能代收代付,LINE Pay 本身其實是「付款工具」而不是存錢的地方,它負責的是付款動作,後面則由你綁的信用卡、簽帳卡或 LINE Pay Money 當金流來源,只能算是「行動支付」。
檔案格式:
.wat (WebAssembly Text Format): 人眼可讀的純文字格式。類似於組合語言,開發者可以用它來進行底層除錯或理解 Wasm 的運行邏輯.wasm (WebAssembly Binary Format): 二進制格式。這是 Wasm 的標準執行檔,體積小且跨平台,是交給瀏覽器或 WasmEdge 等運行環境執行的正式檔案.aot.wasm (Ahead-of-Time Compiled): 預先編譯後的格式,這是 WasmEdge 特有的優化檔案,將 .wasm 事先轉譯成機器碼。執行時不需要再經過「直譯」,速度會比純 .wasm 快非常多常見工具:
簡單介紹 WasmEdge 裡面具名跟匿名模組的差別。
假設我們有兩個簡單的 Wasm 檔案:
provider.wat: 提供一個 add 函式consumer.wat: 導入 (Import) provider 的 add 函式並有一個 run 函式執行// provider.wat
(module
(func $add (param i32 i32) (result i32)
local.get 0
local.get 1
i32.add)
(export "add" (func $add))
)
// consumer.wat
(module
(import "provider" "add" (func $add (param i32 i32) (result i32)))
(func (export "run") (param i32 i32) (result i32)
local.get 0
local.get 1
call $add)
)我們可以使用 wat2wasm 工具將它們編譯成 .wasm 檔案,使用 wat2wasm provider.wat -o provider.wasm。