中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言能否取代Linux腳本

發布時間:2021-10-15 10:09:02 來源:億速云 閱讀:234 作者:柒染 欄目:編程語言

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

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

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

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

是否還有其他方式支持

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

Linux內核核心原則

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

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

關于Go語言能否取代Linux腳本問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙里县| 庄浪县| 黎平县| 长丰县| 手游| 长寿区| 雅安市| 乐昌市| 勃利县| 陇南市| 明水县| 弥勒县| 鸡泽县| 谷城县| 泸水县| 呼玛县| 遂川县| 长沙县| 荔波县| 会泽县| 册亨县| 温宿县| 安宁市| 澄江县| 遂平县| 张家港市| 荆门市| 南平市| 望都县| 阳曲县| 霍城县| 台山市| 当涂县| 白水县| 钟山县| 丰县| 东港市| 丽江市| 清苑县| 清水县| 锡林郭勒盟|