คอมพิวเตอร์ 64 บิต RISC-V แบบโฮสต์ตัวเองที่น่าเชื่อถือ ฟรี และรองรับ Linux
(contrib.andrew.cmu.edu)คอมพิวเตอร์ 64 บิต RISC-V แบบโฮสต์ตัวเองที่น่าเชื่อถือ เสรี และเข้ากันได้กับ Linux
แรงจูงใจ
-
เป้าหมาย: สร้างคอมพิวเตอร์ Free/OpenSource ที่เชื่อถือได้อย่างสมบูรณ์
- พฤติกรรมทั้งหมดของระบบฮาร์ดแวร์และซอฟต์แวร์ต้องมีที่มาจาก HDL (ฮาร์ดแวร์ดีสคริปชันแลงเกวจ) และซอร์สซอฟต์แวร์ที่เปิดเผยอย่างสมบูรณ์
- คอมไพเลอร์และทูลเชนที่เกี่ยวข้องต้องเป็น Free/OpenSource และต้องสามารถบิลด์และรันได้บนระบบคอมพิวเตอร์นั้นเอง
- กล่าวคือ จำเป็นต้องมีสแตกฮาร์ดแวร์+ซอฟต์แวร์ Free/OpenSource แบบโฮสต์ตัวเอง
-
ข้อจำกัด: ไม่ได้เป็นเจ้าของหรือควบคุมโรงงานผลิตซิลิคอน
- เนื่องจากไม่สามารถสร้าง ASIC ของตนเองได้ จึงจะสร้างองค์ประกอบ "ฮาร์ดแวร์" บน FPGA
- การโปรแกรม FPGA และการสร้างบิตสตรีมจะทำด้วยเครื่องมือ Free/OpenSource
-
ข้อดีในด้านความน่าเชื่อถือ:
- โรงงานผลิตชิปจะไม่สามารถรู้ได้ว่า FPGA ถูกนำไปใช้งานอะไร และไม่สามารถรู้ได้ว่า "บิตสิทธิพิเศษ" ถูกวางไว้ตรงไหนในชิป
- สิ่งนี้ช่วยป้องกันฮาร์ดแวร์แบ็กดอร์สำหรับการยกระดับสิทธิ์ได้
- FPGA ประกอบด้วยกริดขององค์ประกอบชนิดเดียวกันอย่างสม่ำเสมอ จึงตรวจสอบด้วยสายตาได้ง่ายกว่า ASIC เฉพาะทาง (การกัดลอกทางเคมีและการถ่ายภาพ TEM)
-
การจำกัดพื้นผิวการโจมตีในขั้นตอนการผลิต:
- จำกัดซอร์สและ/หรือทูลเชนที่เป็นอันตรายให้อยู่ในรูปซอร์สที่สามารถบิลด์ได้ เพื่อให้ได้ผลิตภัณฑ์ปลายทางที่เชื่อถือได้ (คอมพิวเตอร์ฮาร์ดแวร์+ซอฟต์แวร์ที่แจกจ่าย)
เอกสารเพิ่มเติมและการทดลองเบื้องต้น
-
บทความ CReSCT 2020, สไลด์ และการบรรยาย: การอ้างอิง IEEE S&P 2020
-
ชุดสไลด์และการบรรยายรีวิวงานวิจัย CMU/SEI ปี 2019
-
ชุดสไลด์ก่อนหน้านี้เกี่ยวกับงานด้านการประมวลผลที่เชื่อถือได้ที่ CERT/SEI
-
โครงการ lowRISC:
- ความพยายามในการรีเบสองค์ประกอบไปยังโปรเจกต์อัปสตรีมที่เกี่ยวข้อง
- โครงการนี้เป็นทรัพยากรที่มีประโยชน์มาก และช่วยอย่างมากในการทำความเข้าใจองค์ประกอบต่าง ๆ
- อย่างไรก็ตาม ณ เวลาที่เขียน ยังพึ่งพาทูลเชน HDL แบบปิด และใช้โมดูล IP แบบ proprietary ในรายการองค์ประกอบ (เช่น DRAM controller)
-
yoloRISC:
- SoC เดโม blinky ที่ใช้ RV64IMAC และอิงจาก Rocket-Chip
- สร้างขึ้นโดยใช้ yosys/trellis/nextpnr สำหรับบอร์ดพัฒนา Lattice ECP5 5G Versa
ความเห็นของ GN⁺
- ฮาร์ดแวร์และซอฟต์แวร์เสรี: โครงการนี้เป็นความพยายามในการสร้างฮาร์ดแวร์และซอฟต์แวร์ที่เสรีและโอเพนซอร์สอย่างสมบูรณ์ ซึ่งดึงดูดอย่างมากสำหรับผู้ใช้ที่ให้ความสำคัญกับความน่าเชื่อถือและความโปร่งใส
- ข้อดีของ FPGA: การใช้ FPGA ช่วยป้องกันฮาร์ดแวร์แบ็กดอร์ และเพิ่มความน่าเชื่อถือได้ผ่านการตรวจสอบด้วยสายตา
- ทูลเชนและโมดูล IP: ปัจจุบันหลายโครงการยังพึ่งพาทูลเชนแบบปิดและโมดูล IP แบบ proprietary ทำให้การมุ่งสู่โอเพนซอร์สอย่างสมบูรณ์เป็นเรื่องยาก
- ความท้าทายทางเทคนิค: การสร้างสแตกฮาร์ดแวร์+ซอฟต์แวร์ Free/OpenSource แบบโฮสต์ตัวเองเป็นงานที่ท้าทายอย่างมากในเชิงเทคนิค
- ความเป็นไปได้ในอนาคต: โครงการนี้อาจมีส่วนสำคัญต่อการพัฒนาระบบคอมพิวเตอร์ที่เชื่อถือได้ในอนาคต และอาจส่งผลกระทบอย่างมากต่อชุมชนโอเพนซอร์ส
1 ความคิดเห็น
ความเห็นจาก Hacker News
สรุปรวมคอมเมนต์จาก Hacker News
ความปลอดภัยของ FPGA: สามารถป้องกันการฝังฮาร์ดแวร์แบ็กดอร์ในกระบวนการผลิต FPGA ได้ ระบบอาจหยุดทำงานไปเลยได้ แต่จะไม่แสร้งทำงานปกติขณะทรยศเจ้าของ
ความเสี่ยงแฝงของ FPGA: อาจมี CPU ที่ซ่อนอยู่ภายใน FPGA ซึ่งสามารถมีสิทธิ์เข้าถึงแบบอ่าน/เขียนทั้งหมดต่อโปรแกรมของ FPGA ได้ หากระบบได้รับความนิยม ก็ยิ่งมีโอกาสที่คนจะเจาะข้อมูลจากกระบวนการผลิตมากขึ้นเพื่อค้นหาบิตสิทธิพิเศษ
การใช้โอเพนซอร์สทูลเชน: เป็นเรื่องน่าทึ่งที่สามารถล็อกอินเข้า Linux shell บน OrangeCrab FPGA ที่รัน RISC-V softcore โดยใช้โอเพนซอร์สทูลเชนได้ ซึ่งในอดีตเป็นสิ่งที่ทำไม่ได้
VexRiscv และ SpinalHDL: มีการใช้งานดีไซน์ที่อิงกับ VexRiscv และ SpinalHDL และแม้จะไม่สามารถรัน Linux ได้เพราะ SRAM มีจำกัด (512KB) แต่ก็รองรับ Ethernet และ HDMI มีการเขียนวิดีโออะแดปเตอร์คล้าย CGA เพื่อรองรับทั้งโหมดกราฟิกและโหมดข้อความ
DDC และการโจมตีต่อความเชื่อถือ: รู้สึกยินดีที่มีการกล่าวถึงงานด้าน diverse double-compiling (DDC) เพื่อป้องกันการโจมตีต่อความเชื่อถือ และแนะนำให้ดูลิงก์ที่เกี่ยวข้องหากสนใจ DDC
การสร้างระบบใหม่ทั้งหมด: ควรสร้างระบบขึ้นใหม่ด้วยตัวเองและตรวจสอบว่าบิตไฟล์เหมือนกันหรือไม่ และเป็นเรื่องน่าทึ่งที่สามารถสร้างใหม่ได้ภายใน 4.5 ชั่วโมงด้วย CPU 65MHz และหน่วยความจำ 512MB
การเปรียบเทียบกับ Unix workstation ยุคแรก: 50-65MHz และ 512MB ถือว่าเทียบได้กับ Unix workstation ช่วงต้นทศวรรษ 1990 และในแง่ RAM อาจดีกว่าด้วยซ้ำ
LiteX และ Kintex-7 FPGA: มีคนทำสิ่งคล้ายกันในปี 2022 โดยใช้ LiteX แต่ Kintex-7 FPGA จำเป็นต้องใช้ Vivado สุดท้ายจึงได้แล็ปท็อป open gateware ที่รัน Linux และ Xorg
โครงการ Shakti: มีคำแนะนำให้ดูโครงการ Shakti ซึ่งเป็นระบบนิเวศการพัฒนาโปรเซสเซอร์โอเพนซอร์สที่อิงกับ RISC-V และพัฒนาโดย IIT-Madras ในอินเดีย
งาน OSXKVM: โปรเจกต์นี้ทำโดยคนคนเดียวกับที่เคยทำงานรัน OSX บน QEMU/KVM
ความจำเป็นของเครื่อง RISC-V ที่โฮสต์ตัวเองได้: มีความเห็นว่าจำเป็นต้องมีเครื่อง RISC-V ที่โฮสต์ตัวเองได้อย่างสมบูรณ์ และข้อจำกัดใหญ่ที่สุดตอนนี้คือการหา FPGA board ที่มี RAM มากพอ
ความยากของการโฮสต์ตัวเอง: แนวคิดเรื่องฮาร์ดแวร์และซอฟต์แวร์แบบโฮสต์ตัวเองนั้นดี แต่การ build สิ่งอย่าง GCC บน CPU 60MHz นั้นยากจนแทบจินตนาการไม่ออก มีการแชร์ประสบการณ์ว่าเคยใช้ Gentoo บน RockPro64 แต่เลิกไปเพราะเวลา compile นานเกินไป