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

用Rust for Windows構建更安全的軟件

譯文
系統 Windows
微軟已發布了用于Windows開發的Rust工具的早期版本,值得一探究竟。

[[396644]]

【51CTO.com快譯】微軟對Rust感興趣有一段時日了,研究其在系統編程任務中作為一種替代C和C ++的類型安全和內存安全語言。隨著越來越多的微軟業務依賴云服務,Rust等工具對于構建那些服務、提高可靠性和安全性將至關重要。

系統編程工具根源于操作系統開發,您需要在代碼和硬件之間有很少的東西,而與運行時環境和垃圾回收有關的開銷增加了不必要的延遲。這些特性不僅適用于操作系統,對于構建任何可靠的應用程序都很重要:您希望代碼安全運行,不會導致內存泄漏,而且攻擊者很難脫離代碼在系統內存中的自有部分。

通過用Rust來構建,您可以使代碼更安全。這是第一道防線,內置在用于構建代碼的語言和工具中。也許您正在構建驅動程序或者銀行軟件,重要的是您的代碼要值得信賴,您還需要管理風險。因此,在您可能使用JavaScript的地方,可以使用在WebAssembly中運行的Rust,在您使用C或C ++的地方,可以使用Windows或Linux版本。

微軟、Rust和Windows

微軟對Rust的承諾體現在它是Rust基金會的創始成員,以及近幾個月眾多語言和工具開發人員加入了微軟。微軟現在宣布了自己的一套工具,用于使用Rust構建和開發Windows代碼,這些工具基于讓它得以交付C ++ / WinRT API投射的同樣的Windows功能。

Rust for Windows的核心是支持Windows API元數據動態生成API代碼的Rust crate。您將需要開發環境中的C ++構建工具,或使用Visual Studio Code中的獨立工具,或使用完整安裝的Visual Studio。這確實意味著它不是免費軟件:您需要Visual Studio許可證才能使用C ++工具。(如果您在構建開源項目或者是個人開發者,可以使用免費的社區版。)

可以從Rust網站下載32位和64位版本的Rust for Windows編譯器。rustup工具為您的開發系統下載所有適當的組件,一個簡單的命令行工具幫助定制安裝。如果您使用Code,還要安裝另外幾個擴展程序:添加Rust語言服務器以用于IntelliSense代碼高亮顯示和提示的rust-analyzer,以及用于調試的CodeLLDB或微軟的C/C ++擴展。一旦安裝到位,您可以開始使用Rust for Windows了。

走近Rust for Windows crate

對Windows開發人員而言最重要的工具之一是它支持語言投射。這項技術讓開發工具可以從Windows為其SDK提供的元數據來生成針對特定語言的API。有了語言投射支持,微軟無需為每種受支持的語言編寫API,增添了越來越多的Windows SDK的復雜性,并使每種受支持的語言更難與Windows保持同步。

該技術確保Rust要獲得Windows支持,只需要適當的語言投射,然后根據需要自動生成API。微軟無需為受支持的語言提供SDK,任何新語言只需要自己的語言投射,即可獲得Windows的支持。這種開發任務的復雜性低得多;隨著新的Windows API發布(比如在Project Reunion中),API團隊只需要元數據定義。

您可以使用Visual Studio和Visual Studio Code中的Rust工具,編寫可在任何地方運行的Rust模塊,但是如果您打算將其用于Windows開發,需要安裝Rust for Windows工具才能訪問Windows API。微軟的Rust服務是GitHub上的一個開源項目。當前版本以Rust crate的形式出現,可以從Rust crate代碼庫來安裝。

使用Rust for Windows

Windows Rust crate使用標準Rust功能,從Rust的Cargo作為一個軟件包來安裝。安裝后,您可以使用Rust的構建工具為要在項目中使用的Windows API創建適當的綁定。這種方法僅為您要使用的API提供代碼。你可以在添加API時添加新的綁定,刪除不需要支持的任何綁定。僅在需要時提供API支持為您的代碼增添了額外的安全性。它無法調用不受支持的API,盡量減小了任何攻擊面。

Windows上的Rust開發仍在開發中,因此您有時需要跳出平常的開發環境。需要使用命令行從Cargo創建新項目。一旦您創建了項目,創建一個綁定crate以托管Rust for Windows API。這是在您項目的cargo.toml文件中創建的,為Windows crate添加依賴項。這將會安裝適合您代碼的版本。需要手動更新新版本的版本號(當前版本號為0.8.0)。

Rust for Windows如何生成API綁定方面有意思的地方在于,您可以專注于想要使用的API命名空間部分。一旦選擇了命名空間,將其添加到綁定文件夾中的build.rs文件。微軟提供了一個宏來創建API綁定,使用它會自動創建所需的任何依賴項,而許多關鍵的API內置在Windows crate中,無需為Windows.Foundation之類的標準API構建綁定就可以使用。Windows API的說明文檔可幫助您入門。

然后,您可以在代碼中添加指向綁定文件的鏈接,可以隨時開始使用它們。這個過程的真正重要之處在于,您可以混合搭配所使用的API,在同一應用程序中使用用于GPU計算的Direct3D和用于UI的XAML工具。它還為新的API做好了準備,一旦新API發布即可利用它們的元數據。隨著微軟通過將Windows SDK與Windows發布周期相脫離以加快API開發,這種方法會越來越重要。

結果是可以用Rust構建完整的Windows應用程序,這種方法靈活而強大。通過使用Rust for Windows來處理API調用,您的代碼將更安全,并為Windows API將來的變化做好了準備,新的和更新后的API發布后,只需要重新構建和重新編譯。

原文標題:Build more secure software with Rust for Windows,作者:Simon Bisson

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2020-11-10 15:39:10

LinuxWindows安全

2023-06-28 11:11:07

5.5G網絡

2009-10-30 11:02:30

Windows數據安全

2014-10-16 13:43:31

2013-08-08 22:00:18

2012-12-28 13:42:36

Windows 8存儲

2013-06-08 14:57:50

2021-01-19 15:46:58

SOC/安全運營/調查

2009-04-16 08:11:34

Windows 7微軟操作系統

2019-06-18 07:34:56

MacOSWindows安全

2010-01-12 09:26:48

財付通Windows 7

2009-12-15 18:21:05

2023-09-06 12:55:42

2015-11-09 17:29:57

2024-09-11 17:28:39

2021-03-19 08:58:19

Rust共享愿景文檔開發者

2011-03-29 13:46:56

備份Windows Ser安全

2018-06-21 08:50:53

2009-05-14 17:04:09

LinuxWindowsMINIX 3

2019-08-27 17:11:21

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久免费看 | 日本免费视频在线观看 | 午夜视频在线播放 | 欧美三区视频 | 视频在线一区二区 | 色视频一区二区 | 97久久精品午夜一区二区 | 中文字幕一区在线观看视频 | 欧美精品v | 亚洲欧美综合网 | 99re热精品视频国产免费 | 在线观看av免费 | 麻豆精品国产91久久久久久 | 另类视频在线 | 国产精品视频久久久 | 日韩毛片 | 欧美日韩在线观看一区 | 国产精品免费小视频 | 免费黄色av网站 | 一级a性色生活片久久毛片 一级特黄a大片 | 久久av一区二区三区 | www.日日干 | 国内91在线 | 国产精品久久久久久久久久久免费看 | 亚洲精品视频在线观看视频 | 国产精品区二区三区日本 | yiren22 亚洲综合 | 久热久热 | 精品国产一区二区三区av片 | 毛片.com| 国产1区2区| 国产精品国产自产拍高清 | 久久伊人精品 | 亚洲综合久久精品 | 天天躁日日躁狠狠的躁天龙影院 | 天天综合网天天综合 | 视频二区 | 欧美性久久久 | 精品视频在线一区 | 国产精品久久777777 | 这里有精品|