自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Rust for Windows構(gòu)建更安全的軟件

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

[[396644]]

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

系統(tǒng)編程工具根源于操作系統(tǒng)開發(fā),您需要在代碼和硬件之間有很少的東西,而與運(yùn)行時(shí)環(huán)境和垃圾回收有關(guān)的開銷增加了不必要的延遲。這些特性不僅適用于操作系統(tǒng),對于構(gòu)建任何可靠的應(yīng)用程序都很重要:您希望代碼安全運(yùn)行,不會(huì)導(dǎo)致內(nèi)存泄漏,而且攻擊者很難脫離代碼在系統(tǒng)內(nèi)存中的自有部分。

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

微軟、Rust和Windows

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

Rust for Windows的核心是支持Windows API元數(shù)據(jù)動(dòng)態(tài)生成API代碼的Rust crate。您將需要開發(fā)環(huán)境中的C ++構(gòu)建工具,或使用Visual Studio Code中的獨(dú)立工具,或使用完整安裝的Visual Studio。這確實(shí)意味著它不是免費(fèi)軟件:您需要Visual Studio許可證才能使用C ++工具。(如果您在構(gòu)建開源項(xiàng)目或者是個(gè)人開發(fā)者,可以使用免費(fèi)的社區(qū)版。)

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

走近Rust for Windows crate

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

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

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

使用Rust for Windows

Windows Rust crate使用標(biāo)準(zhǔn)Rust功能,從Rust的Cargo作為一個(gè)軟件包來安裝。安裝后,您可以使用Rust的構(gòu)建工具為要在項(xiàng)目中使用的Windows API創(chuàng)建適當(dāng)?shù)慕壎?。這種方法僅為您要使用的API提供代碼。你可以在添加API時(shí)添加新的綁定,刪除不需要支持的任何綁定。僅在需要時(shí)提供API支持為您的代碼增添了額外的安全性。它無法調(diào)用不受支持的API,盡量減小了任何攻擊面。

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

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

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

結(jié)果是可以用Rust構(gòu)建完整的Windows應(yīng)用程序,這種方法靈活而強(qiáng)大。通過使用Rust for Windows來處理API調(diào)用,您的代碼將更安全,并為Windows API將來的變化做好了準(zhǔn)備,新的和更新后的API發(fā)布后,只需要重新構(gòu)建和重新編譯。

原文標(biāo)題:Build more secure software with Rust for Windows,作者:Simon Bisson

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

 

責(zé)任編輯:華軒 來源: 51CTO
相關(guān)推薦

2023-06-28 11:11:07

5.5G網(wǎng)絡(luò)

2020-11-10 15:39:10

LinuxWindows安全

2012-12-28 13:42:36

Windows 8存儲(chǔ)

2014-10-16 13:43:31

2021-01-19 15:46:58

SOC/安全運(yùn)營/調(diào)查

2013-06-08 14:57:50

2013-08-08 22:00:18

2009-10-30 11:02:30

Windows數(shù)據(jù)安全

2021-03-19 08:58:19

Rust共享愿景文檔開發(fā)者

2019-06-18 07:34:56

MacOSWindows安全

2021-05-12 09:20:11

Window-rsRustwindows

2023-09-06 12:55:42

2015-11-09 17:29:57

2009-04-16 08:11:34

Windows 7微軟操作系統(tǒng)

2010-01-12 09:26:48

財(cái)付通Windows 7

2009-12-15 18:21:05

2020-05-22 11:29:49

物聯(lián)網(wǎng)

2011-03-29 13:46:56

備份Windows Ser安全

2021-07-29 18:48:55

辦公

2021-03-23 14:50:16

編程語言Rust漏洞
點(diǎn)贊
收藏

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