...增強對蘋果M1晶片等64位ARM支持|蘋果m1晶片|arm|linux|curl|...

2021-01-07 騰訊網

Rust官網於昨天2020年最後一天發布了新版本1.49以告別跌宕起伏的2020年,值得注意的是,這個廣受歡迎的程式語言的最新版本正在提升對64位的ARM Linux的支持狀態。

Rust 1.49已將其對64位ARM Linux的支持提升為Tier-1目標,這是最高級別的支持保證,與Rust的x86_64支持類似。

Rust長期以來在64位ARM Linux上運行良好,但現在被認為在ARM Linux上運行極佳,並被置於最高級別支持處理,這也使64位ARM Linux成為第一個達到一級標準支持的非x86項目。

Rust 1.49還將其64位ARM macOS和64位ARM Windows的支持從第3級升級到第2級。在第2級中,存在預構建的二進位文件,可以保障代碼的構建,但是存在更大的bug風險。這對於蘋果最近高歌猛進推出的自研M1晶片產品及其自建Apple Silicon體系設備的普及來說,不啻是個好消息。

Rust是一種程式語言,它使每個人都可以構建可靠且高效的軟體。Rust使用rustup工具安裝和管理。Rust具有為期六周的快速發布過程,並且支持Windows、MacOS、Linux或其他類Unix的作業系統等各平臺。rustup在Rust支持的每個平臺上以一致的方式管理這些構建,支持從Beta到release各分支安裝Rust,並支持交叉編譯。

如果您通過rustup安裝了Rust的早期版本,則升級Rust 1.49.0的過程非常簡單,僅需要執行下面命令:

rustup update stable

如果您未安裝過Rust,在Linux等非Windows平臺也可以使用下面命令快速安裝:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Rust 1.49還增強了其測試框架捕獲線程中的輸出。Rust的內置測試框架沒有包含太多功能,但這並不意味著它無法得到改進!我們來看一下像這樣的測試:

#[test]

fn thready_pass() {

println!("fee");

std::thread::spawn(|| {

println!("fie");

println!("foe");

})

.join()

.unwrap();

println!("fum");

}

在Rust 1.49.0之前版本,運行此測試後,將輸出:

cargo +1.48.0 test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.38s

Running target\debug\deps\threadtest-02f42ffd9836cae5.exe

running 1 test

fie

foe

test thready_pass ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

Doc-tests threadtest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

從上面結果中,您可以看到其列印了線程的輸出,該輸出混合顯示了測試框架本身的輸出。

也許您會問,每個println的輸出難道不能實現得更好麼?比如像上面測試代碼中println!("fum")那樣輸出列印「fum」這樣清晰明了?

沒錯,Rust 1.49.0實現了您的這個預期,在這版本中它將打出輸出:

cargo test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.52s

Running target\debug\deps\threadtest-40aabfaa345584be.exe

running 1 test

test thready_pass ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

Doc-tests threadtest

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

您也許會說,這不是逗我麼?這有啥區別?看起來沒兩樣啊!

請不要擔心,如果測試失敗,您將會看到所有輸出。您只需要在上面測試代碼末尾添加「panic!」,您將看到詳細的錯誤信息:

cargo test

Compiling threadtest v0.1.0 (C:\threadtest)

Finished test [unoptimized + debuginfo] target(s) in 0.52s

Running target\debug\deps\threadtest-40aabfaa345584be.exe

running 1 test

test thready_pass ... FAILED

failures:

---- thready_pass stdout ----

fee

fie

foe

fum

thread 'thready_pass' panicked at 'explicit panic', src\lib.rs:11:5

具體來說,在新版本中,測試運行程序將確保捕獲所有輸出,並在測試報錯時保存提供這些輸出信息。

最後順便提一下,微內核作業系統RedoxOS就是幾乎完全用Rust語言編寫的,該系統於聖誕節前夕發布了最新0.6版本,具體可以查看我之前發布的文章:

相關焦點

  • 一次搞定 Arm Linux 交叉編譯
    arch:晶片架構,比如 32 位的 Arm 架構對應的 arch 為 arm,64 位的 Arm 架構對應的 arch 為 aarch64。vendor :工具鏈提供商,大部分工具鏈名字裡面都沒有包含這部分。os :編譯出來的可執行文件(目標文件)針對的作業系統,比如 Linux。
  • 蘋果自研Apple M1晶片對機器學習意味著什麼?
    蘋果聲稱這是「世界上最快的個人電腦集成顯卡(最快的集成在PC上的圖像處理器)」,具有每秒2.6萬億次浮點數計算(32位的浮點數)的吞吐量。當然,這對於一個集成的GPU來說是令人印象深刻的,但作為數據科學家,我們更感興趣的是其整體性能。 讓我們來看看和其他GPU的比較。
  • Linux 對 ARM 的支持一團糟
    當硬體製造商正在談論基於ARM晶片的伺服器時, 支持ARM的軟體還要繼續努力開發以跟上發展步伐。
  • 蘋果M1晶片玩遊戲怎麼樣 M1晶片MacbookAir可以玩遊戲嗎
    首頁 > 問答 > 關鍵詞 > 蘋果最新資訊 > 正文 蘋果M1晶片玩遊戲怎麼樣 M1晶片MacbookAir可以玩遊戲嗎
  • 蘋果M1晶片——賈伯斯最後的遺產
    蘋果M1晶片 賈伯斯最後的遺產  「蘋果應該進軍一切領域」——M1晶片產品的面市,終於讓賈伯斯的想法,終於取得了進展。ARM架構不僅得以出現,還在大公司的支持下不斷完善。於是M1晶片應運而生,這一晶片,把顯卡、內存與CPU整合,帶來了性能的飆升,和成本的大幅下降。  據說蘋果用了三年時間開發這一晶片,三年,也許就會成為以後蘋果產品的開發的新周期。但是也有消息認為M2晶片也許只需一年即可面世。根據蘋果產品的一貫屬性,最初的產品也許是行業最好的,但是絕不是蘋果未來最好的,某些消費者可以等。
  • 傳說中的蘋果效應?Adobe Lightroom 已適配蘋果 M1 晶片
    隨著蘋果 M1 晶片的推出,大量 macOS 系統軟體都相繼更新了適配 ARM 架構處理器的版本。畢竟 macOS Big Sur 提供的 Rosetta 2 雖然能夠運行 x86-64 代碼,但是其效率還是要比原生要差一些。
  • Arm晶片Cortex-M處理器地位無可爭議
    ,在剛過去的2019年Q4(Arm FY Q319),全球Arm晶片的出貨量達到64億顆,其中Cortex-M處理器的出貨量達到驚人的43億顆,這主要是因為嵌入式終端智能需求的爆發性增長導致的。 Arm的數據進一步指出,過去三年裡基於Arm IP推出的晶片出貨量有了爆發性的增長。如下圖所示,從1991年到2017年,公司實現了1000億晶片的出貨量,但過去三年的出貨量就高達600億顆,年均出貨量200億。
  • 蘋果M1晶片刷屏!歷史最強晶片竟和賈伯斯有關?
    他們設計M1晶片的時間大概是在3-4年前。此外,Johny Srouji強調目前只有蘋果是軟硬體一起進行開發,而Intel和AMD或其他任何公司都沒有這麼做。蘋果M1晶片厲害的原因前面我們講到M1晶片的研發是從3-4年前開始的,蘋果真的可以在這麼短的時間內研發出如此強悍的晶片嗎?答案是肯定的。其實,蘋果紮根於晶片領域已經有好幾十年的歷史了。
  • 蘋果M1處理器相當於什麼水平 m1晶片Geekbench5單核性能跑分多少
    蘋果M1處理器相當於什麼水平 m1晶片Geekbench5單核性能跑分多少 蘋果M1處理器相當於什麼水平
  • Win10要運行安卓App,ARM版要支持64位
    但讓人沒有想到的是,隨著蘋果推出M1晶片,再以M1晶片為基礎,統一了手機、平板、電腦的晶片架構,然後打通了iOS、iPadOS、MacOS之間的生態壁壘之後,微軟終於感覺到了絲絲涼意了。一方面是蘋果帶火了ARM架構,讓ARM架構迎來了新機會,大有從移動領域跨界到PC領域的趨勢,這對intel形成了大危機,同時蘋果打通手機、平板、電腦的生態做法,給微軟形成了大危機。
  • 蘋果M1晶片和i7比怎麼樣 M1晶片比英特爾i7性能強嗎
    蘋果M1晶片和i7比怎麼樣 M1晶片比英特爾i7性能強嗎 蘋果M1晶片是首款基於ARM架構的自研晶片,在性能
  • 蘋果M1晶片電腦值不值得買
    那這款M1晶片性能到底怎麼樣呢,蘋果 M1製作工藝蘋果 M1晶片所採用的製作工藝是5nm 製程工藝,有購買了蘋果12系列手機的小夥伴,一定都為同樣採用5nm 製程工藝的A14處理器所折服了吧?相信同樣採用了5nm 製程工藝的蘋果 M1晶片的性能也是非常優異的。
  • Linux Lab 發布 v0.4 rc3,新增 ARM64 Uboot 支持
    版本更新Linux Lab 於 5 月 1 日發布了 v0.4 rc2,本次發布 v0.4 的第 3 個候選版本:v0.4-rc3,一同發布的還有 Cloud Lab 的 v0.2。/docker/run linux-lab已經下載過的,請更新到最新版本並重啟 Linux Lab:$ cd cloud-lab && git pull$ tools/docker/update linux-lab$ tools/docker/rerun linux-lab進去以後,打開控制臺
  • Adobe發布全新Photoshop Beta:支持蘋果M1晶片Mac
    此前不久,蘋果發布了搭載自研ARM晶片M1的MAC產品,隨後不少軟體廠商紛紛宣布將適配M1晶片。現在全球知名辦公軟體廠商Adobe也宣布推出全新Photoshop Beta版本,適用於搭載M1晶片與蘋果最新作業系統的Apple Silicon硬體。
  • arm為何與華為斷交?能掀起多大浪花?
    1979年公司更名為Acorn Computer,並設計出了一塊名為Acorn RISC Machine的晶片,這是arm三個字母的最初形態。日資英企聽美國的?1990年,Acorn為了和蘋果合作,特地成立了一家名叫arm的公司,不過公司的全稱為Advanced RISC Machines。
  • 為什麼蘋果 M1 晶片如此之快?
    本文將詳細解答:為什麼蘋果的 M1 運行速度會如此之快?英文名稱:Why is Apple’s M1 Chip So Fast?然而後來,他難以置信地看著自己花斥資購買的 iMac 被新型的 M1 Mac Mini 打敗,而這臺設備僅花了約 700 美元。在現實世界一次又一次的測試中,M1 Macs 不僅超越了頂配的英特爾 Mac,而且還徹底擊垮了這些電腦。很多人都覺得不可思議,他們開始探究這到底是怎麼回事。如果你也持有這樣的疑問,那麼你來對地方了。在本文中,我將深度剖析蘋果的 M1 晶片。
  • ARM7、ARM9、ARM11、ARM-Cortex系列的關係
    此外,Cortex-M系列還細分為M0、M3、M4和超低功耗的M0+,用戶依據成本、性能、功耗等因素來選擇晶片。 ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的區別arm系列從arm11開始,以後的就命名為cortex,並且性能上大幅度提升。從cortex開始,分為三個系列,a系列,r系列,m系列。
  • 蘋果的M1晶片是否如所說的那麼快?
    蘋果欺騙了我們,但沒關係看來,虛擬演示「別的東西」的視頻更改不是故意的,帶有Zen3微體系結構的AMD Ryzen 5000於10月8日發布,蘋果公司甚至還沒有聽說過這些晶片是什麼。但是我們對蘋果公司的管理層不會太苛刻:他們認為不必要的技術細節和其他廢話對公眾來說不是很有趣-它們也沒有錯。
  • 蘋果M1晶片性能炸裂?先別急著吹
    在今年6月份蘋果WWDC2020上,發布了one more thing:自研ARM晶片M1。這標誌著蘋果MAC系列筆記本從Intel的X86架構,開始轉向ARM架構的懷抱。而上一次的轉型,則是蘋果在2006年的時候放棄PowerPC架構,全面支持X86。
  • gcc、arm-linux-gcc和arm-elf-gcc的關係?
    uC -libc是最早為uClinux開發的庫,是Jeff Dionne和Kenneth Albanowski為在EKLs項目中支持m68000在Linux-8086 C庫源碼上移植的。uC-libc是一個完全的libc實現,但其中有一些api是非標準的,有些libc的標準也沒有實現。uC-libc穩定地支持 m68000,ColdFire和沒有MMU的ARM。