Go語言能否取代Linux腳本-創(chuàng)新互聯(lián)

Go語言能否取代Linux腳本,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于網(wǎng)站設計、成都網(wǎng)站建設、寶坻網(wǎng)絡推廣、小程序設計、寶坻網(wǎng)絡營銷、寶坻企業(yè)策劃、寶坻品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供寶坻建站搭建服務,24小時服務熱線:18982081108,官方網(wǎng)址:muchs.cn

在Cloudflare的人們都非常喜歡Go語言。我們在許多內部軟件項目以及更大的管道系統(tǒng)中使用它。但是,我們能否進入下一個層次并將其用作我們最喜歡的操作系統(tǒng)Linux的腳本語言呢?.

簡短點的回答:為什么不呢?Go相對容易學習,不冗余并且有一個強大的生態(tài)庫,這些庫可以重復使用避免我們從頭開始編寫所有代碼。它可能帶來的一些其他潛在優(yōu)勢:

咋一看Go腳本貌似很容易實現(xiàn)Unix腳本的shebang(#!...)支持。shebang行)是腳本的第一行,以#!開頭,并指定腳本解釋器用于執(zhí)行腳本(例如,#!/bin/bash或#!/usr/bin/envpython),所以無論使用何種編程語言,系統(tǒng)都確切知道如何執(zhí)行腳本。Go已經(jīng)使用gorun命令支持.go文件的類似于解釋器的調用,所以只需要添加適當?shù)膕hebang行(#!/usr/bin/envgorun)到任何的.go文件中,設置好文件的可執(zhí)行狀態(tài),然后就可以愉快的玩耍了。

是否還有其他方式支持

OK,看起來shebang的方法并沒有為我們提供全面的解決方案。是否還有其他方式是我們可以使用的?讓我們仔細看看Linux內核如何執(zhí)行二進制文件。當你嘗試執(zhí)行一個二進制/腳本(或任何有可執(zhí)行位設置的文件)時,你的shell最后只會使用Linuxexecve系統(tǒng)調用,將它傳遞給二進制文件系統(tǒng)路徑,命令行參數(shù)和當前定義的環(huán)境變量。然后內核負責正確解析文件并用文件中的代碼創(chuàng)建一個新進程。我們中的大多數(shù)人都知道Linux(和許多其他類Unix操作系統(tǒng))為其可執(zhí)行文件使用ELF二進制格式。

Linux內核核心原則

然而,Linux內核開發(fā)的核心原則之一是避免任何子系統(tǒng)的“vendor/formatlock-in”,這是內核的一部分。因此,Linux實現(xiàn)了一個“可插拔”系統(tǒng),它允許內核支持任何二進制格式-所有你需要做的就是編寫一個正確的模塊,它可以解析你選擇的格式。如果仔細研究內核源代碼,你會發(fā)現(xiàn)Linux支持更多的二進制格式。例如,最近的4.14Linux內核,我們可以看到它至少支持7種二進制格式(用于各種二進制格式的樹內模塊通常在其名稱中具有binfmt_前綴)。值得注意的是binfmt_script模塊,它負責解析上面提到的shebang行并在目標系統(tǒng)上執(zhí)行腳本(并不是每個人都知道shebang支持實際上是在內核本身而不是在shell或其他守護進程/進程中實現(xiàn)的)。

但既然我們認為shebang不是Go腳本的很好選擇,似乎我們需要別的東西。令人驚訝的是,Linux內核已經(jīng)有了一個“其他類型的”二進制支持模塊,它有一個貼切的名稱binfmt_misc。該模塊允許管理員通過定義良好的procfs接口直接從用戶空間動態(tài)添加對各種可執(zhí)行格式的支持,并且有詳細記錄。

關于Go語言能否取代Linux腳本問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

網(wǎng)站欄目:Go語言能否取代Linux腳本-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article8/depoip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗虛擬主機、網(wǎng)站維護、移動網(wǎng)站建設、手機網(wǎng)站建設定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名