1 คะแนน โดย GN⁺ 2024-05-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

คอมพิวเตอร์ 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 ความคิดเห็น

 
GN⁺ 2024-05-20
ความเห็นจาก 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 นานเกินไป