Jump to...
redirecting...

Log for Ubuntu 台灣社群

[sticker](media:AAMCBQADHQI9GfldAAECVYxqVRqim-6b6iH3PH670CgZsCz2UwACIwADPddSEwI61UmkltcpAQAHbQADPAQ@telegram)
[photo](media:AgACAgUAAx0CPRn5XQABAlWNalWBDRESJim89W-Sjr4BPCipARUAAlcPaxtJ_rFWFI1nb5r9pmYBAAMCAANzAAM8BA@telegram)
Ubuntu 的 openssh-server , cifs 有安全性更新
維運做到有點厭世
[photo](media:AgACAgUAAx0CPRn5XQABAlWPalXUzpRQ4i46y8Af8GHv6v5aXWwAAtcQaxt-o7FWpCPOnpsyS0gBAAMCAANzAAM9BA@telegram)
Linux 0.11 以符合 Rust 慣例的寫法重寫,可在 QEMU 中開機 (★ 102 分)

這個 GitHub 專案以現代 Rust 從頭重寫 1991 年的 Linux 0.11 核心,保留原系統的行為語意,改以較強的型別、清楚的模組邊界與符合 Rust 慣例的抽象化來實作。核心可在 i386(Intel 80386 架構)的 QEMU(開放原始碼硬體虛擬機器)中開機,啟動 init、shell(命令列介面)與 Unix 風格的使用者空間,並讓使用者進入 root(最高權限)提示列。功能涵蓋行程管理、虛擬記憶體需求分頁、CoW(Copy-on-Write,寫入時複製)fork(建立子行程)、Minix v1 檔案系統、ATA 磁碟驅動程式、VGA 與 PS/2 主控台、8250 序列主控台、TTY(終端機介面)層、訊號及完整的系統呼叫表。

使用者空間部分提供接近 Rust 標準函式庫 std 的 user_lib 介面,涵蓋檔案、輸入輸出、路徑、環境、程序與時間等功能,讓應用程式不必直接處理系統呼叫。專案還附有 80 多個 Unix 核心工具,以及具備管線、條件控制、迴圈、函式、萬用字元、命令與算術替換、Tab 補全和歷史紀錄的 POSIX(可攜式作業系統介面標準)子集 shell。建置工具能一次編譯所有使用者程式、整理檔案系統並製作可開機磁碟映像;mbrkit 與 miniximg 則可獨立處理 MBR(主開機記錄)和 Minix v1 映像。專案也提供開發容器與在 QEMU 中執行的端對端測試,核心目前已大致涵蓋 Linux 0.11 的功能,軟碟支援則刻意排除,教學內容仍在撰寫中。

留言對專案規模提出了不少討論。有人比較原始 C 版本約 8,000 至 12,000 行原始碼與 Rust 版本約 50,000 行,質疑重寫後是否過度複雜;但另一份行數拆分指出,核心本身約 15,000 行,其餘主要是使用者函式庫、核心工具、測試程式與映像工具。針對 fork 系統呼叫的實作比較也顯示,Rust 版本反而略短,兩者整體結構並沒有想像中懸殊。留言者認為,較多的型別、列舉、錯誤處理、註解與抽象化都可能增加行數;也有人指出 Rust 並不必然比其他語言冗長,自己將 Python 程式改寫成 Rust 時,行數只增加約一成。對「符合 Rust 慣例」的理解,則較接近盡量採用安全程式碼,而非逐行翻譯 C。

另一個爭議是專案是否由大型語言模型(LLM,Large Language Model)大量協助產出。部分留言從說明文件中標題大量使用 emoji、措辭風格和程式碼規模,猜測這是 AI 產生的「粗製濫造作品」,並認為若目標是學習作業系統,完全交由 LLM 撰寫會削弱教育價值;也有人質疑效能與二進位檔大小尚未有充分比較。相對地,其他人認為這是低風險的趣味實驗,沒有實際用途也不妨礙其價值,甚至可將 AI 輔助的整體轉換與原版並行測試,以找出回歸問題。Rust 擁護者則強調借用檢查器能排除部分記憶體錯誤、降低長期技術負擔,但批評者認為 Rust 本身的複雜度可能成為新的負擔。留言也提醒,主線 Linux 目前僅在部分驅動程式採用可選的 Rust 支援,平台支援仍是全面重寫的重大工程問題;這個專案因此更適合作為可開機的教學與實驗平台,而非正式 Linux 的替代品。

👥 85 則討論、評論 💬
https://news.ycombinator.com/item?id=48898134
npm install -g wrangler
x86 準備好靠 ACE 大展身手了嗎? (★ 100 分)

CPU 指令集必須隨工作負載演進,Intel 的 AMX(Advanced Matrix Extensions,進階矩陣擴充)便是為機器學習矩陣乘法設計的功能。x86 生態系統諮詢小組提出的 ACE(AI Compute Extensions,AI 計算擴充)是 AMX 的第二種加速器架構,改用固定為 16 列、每列 64 位元組的矩陣暫存器配置,並以外積取代 AMX TMUL(Tile Matrix Multiply,矩陣分塊乘法)所使用的內積。ACE 也加入 FP8(8 位元浮點數)支援,但取消複數運算;硬體實作目前尚未問世,因此實際效能仍無法驗證。

文章將 ACE 與 Arm 的 SME(Scalable Matrix Extension,可擴充矩陣擴充)及 SME2 比較。ACE 延續 AMX 的 8 KB 矩陣暫存器,並利用 AVX-512/AVX10 的固定 512 位元向量暫存器處理輸入;SME 則採用可變的串流向量長度,從 128 位元到 2048 位元不等,對應的 ZA 矩陣儲存空間也可從 256 位元組擴充至 64 KB。兩者都以外積作為矩陣運算基礎,適合矩陣乘法及其他線性代數演算法。ACE 還能透過 `VUNPACKB` 搭配向量排列指令,彈性處理 2 至 7 位元的量化資料;SME2 的 ZT0 查找表則主要針對 2 位元與 4 位元格式,指令較簡單、暫存器壓力較低,但可處理的格式較有限。

為了補足 FP8 動態範圍不足,ACE 使用 1024 位元的 BSR0(Block Scale Register,區塊縮放暫存器)保存縮放因子,讓一組資料共用比例值;SME 則把相關欄位放在浮點模式暫存器中。兩種設計都可能因縮放值更新而造成指令序列化,若應用程式頻繁改變縮放因子,硬體處理會更加棘手。文章的矩陣乘法估算顯示,AVX-512、SME、AMX 與 ACE 的快取流量約為 3.4 TB、2.0 TB、1.7 TB 與 1.5 TB;ACE 透過讓輸入直接來自向量暫存器,能使用更大的輸出分塊,降低資料搬移與 L1 資料快取頻寬需求。不過相較 AMX 的改善幅度有限,主要價值可能在於降低功耗、減少資料搬移,或讓處理器在受限於快取頻寬時維持較高時脈。把 8 KB 矩陣暫存器當成一般暫存記憶體雖然理論上可行,但資料搬移延遲、容量偏小,以及作業系統必須在工作切換時保存額外狀態,都使這種用途不太實際。

Hacker News 讀者普遍認為,ACE 的真正表現取決於硬體實作與記憶體頻寬,不能只從指令集規格推測效能;專用 GPU 或外接推論加速器仍會負責大部分高吞吐量 AI 工作,而 CPU 矩陣擴充的優勢在於較低延遲、較容易整合既有程式,以及可能較低的功耗。有人以採用 Arm SME 的高效能運算系統為例,認為配備高頻寬記憶體的多核心 CPU 在 AI 推論或部分訓練工作上可能具競爭力,但 GPU 通常仍有更好的能源效率。

討論也指出,8 KB 的額外暫存器狀態會增加工作切換管理複雜度;x86 的 XSAVE(處理器延伸狀態保存機制)可只保存曾被使用的功能狀態,部分降低負擔,但無法消除成本。部分讀者猜測 ACE 可能要到較後續世代的 AMD 或 Intel 處理器才會出現,這並非已確認的產品時程;另一些人則關注消費級處理器是否會採用,以及缺乏類似 CUDA 的完整軟體生態系統會不會限制普及。整體而言,ACE 被視為讓 x86 CPU 更適合低至中等規模 AI 工作的押注,而不是取代 GPU 的方案。

👥 25 則討論、評論 💬
https://news.ycombinator.com/item?id=48901235