Linux中國

當 Rust 遇上 Fedora

Rust 是什麼?

Rust 是一種系統編程語言,它運行速度驚人,並且可以避免幾乎所有的崩潰、內存區塊錯誤 以及數據競爭。你也許會質疑為什麼我們還需要又一種這樣的語言,因為已經有很多同類的語言了。這篇文章將會告訴你為什麼。

安全性 vs. 控制權

你也許見過上面的圖譜。一邊是 C/C++,對運行的硬體擁有更多的控制權,因此它可以讓開發者通過對所生成的機器代碼進行更精細的控制來優化性能。然而這不是很安全,這很容易造成內存區塊錯誤以及像 心血漏洞 這樣的安全漏洞。

另一邊是像 Python、Ruby 和 JavaScript 這種沒有給予開發者多少控制權但是可以創建出更安全的代碼的語言。雖然這些代碼可以生成相當安全並且可控的異常,但是它們不會造成內存區塊錯誤。

在圖譜中間的區域是 Java 和一些其它混合了這些特性的語言。它們提供對運行的硬體部分控制權,並且嘗試盡量減少漏洞的出現。

Rust 有點不太一樣,它並沒有出現在這個圖譜上。它同時提供給開發者安全性和控制權。

Rust 的特性

Rust 是一種像 C/C++ 一樣的系統編程語言,除此之外它還給予開發者對內存分配細粒度的控制。它不需要垃圾回收器。它的 運行環境 runtime 很小,運行速度接近於在裸機上的運行。它為開發者提供了代碼性能更大的保證。此外,任何了解 C/C++ 的人都能讀懂以及編寫 Rust 的代碼。

Rust 的運行速度非常快,因為它是一種編譯語言。它使用 LLVM 作為編譯器的後端,並且還可以利用一大堆優化。在許多領域,它的性能都要高於 C/C++。它像 JavaScript、Ruby 和 Python 一樣,與生俱來就是安全的,這意味著它們不會造成內存區塊錯誤、 野指針 dangling pointers 或者 空指針 null pointers

另外一個很重要的特性就是消除數據競爭。如今,大多數計算機都具有多個核心,許多線程並發運行。然而,開發者很難編寫好的並行代碼,因此這個特性除去了他們的後顧之憂。Rust 使用兩個關鍵概念來消除數據競爭:

  • 所有權 Ownership 。每一個變數都被移動到一個新的位置,並防止通過先前的位置來引用它。每一個數據塊只有一個所有者。
  • 借用 Borrowing 。被擁有的值可以借用,以允許在一段時間內使用。

在 Fedora 24 和 25 上使用 Rust

若要開始使用,只需安裝軟體包:

sudo dnf install rust

示例代碼 helloworld.rs

fn main() {
    println!("Hello, Rust is running on Fedora 25 Alpha!");
}

編譯並執行:

rustc helloworld.rs
./helloworld

在 Fedora 上可以執行以下命令來安裝最新的測試版本:

sudo dnf --enablerepo=updates-testing --refresh --best install rust

via: https://fedoramagazine.org/rust-meets-fedora/

作者:Sumantro Mukherjee 譯者:OneNewLife 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國