กลับไปหน้าบทความ

อ่าน 4 นาที

โลหะเปล่า

BareMetal เป็น ระบบปฏิบัติการ (OS) ที่ใช้ เอ็กโซเคอร์เนล และ มีพื้นที่แอดเดรสเดียว สร้างโดย Return Infinity

โลหะเปล่า

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )
โลหะเปล่า
นักพัฒนากลับสู่ความไม่มีที่สิ้นสุด
เขียนเป็นการประกอบ
สถานะการทำงานปัจจุบัน
แบบจำลองแหล่งที่มาโอเพนซอร์ส
การเผยแพร่ครั้งแรก2008 ( 2008 )
รุ่นล่าสุด2025.04 / 30 เมษายน 2025 [ 1 ] ( 30 เมษายน 2568 )
กลุ่มเป้าหมายทางการตลาดHPCs , HTC , คลาวด์คอมพิวติ้ง
มีจำหน่ายในภาษาอังกฤษ
แพลตฟอร์มที่รองรับx86-64
ประเภทเคอร์เนลเอ็กโซเคอร์เนล , ซาสโอเอส
ดินแดนผู้ใช้ไม่ทราบ
ส่วนติดต่อผู้ใช้เริ่มต้นบรรทัดคำสั่ง
ใบอนุญาตใบอนุญาต BSD [ 2 ]
เว็บไซต์อย่างเป็นทางการwww.returninfinity.com

BareMetalเป็น ระบบปฏิบัติการ (OS) ที่ใช้เอ็กโซเคอร์เนล และ มีพื้นที่แอดเดรสเดียว สร้างโดย Return Infinity

เขียนด้วยภาษาแอสเซมบลีเพื่อให้ได้การประมวลผลประสิทธิภาพสูงด้วยขนาดไฟล์ที่เล็กที่สุด[ 3 ] [ 4 ]ด้วยแนวทาง "ระบบปฏิบัติการที่เพียงพอ" ( JeOS ) [ 5 ]ระบบปฏิบัติการนี้มุ่งเป้าไปที่ สภาพแวดล้อม เสมือน จริง สำหรับการประมวลผลแบบคลาวด์หรือHPC เป็นหลัก เนื่องจากได้รับการออกแบบให้เป็นเคอร์เนลน้ำหนักเบา (LWK) สามารถใช้เป็นยูนิเคอร์เนลได้

ได้รับแรงบันดาลใจจากระบบปฏิบัติการอื่นที่เขียนด้วยภาษาแอสเซมบลี MikeOS [ 2 ]และเป็นตัวอย่างล่าสุดของระบบปฏิบัติการที่ไม่ได้เขียนด้วยภาษาCหรือC++และไม่ได้อิงตามเคอร์เนลแบบ Unix [ 6 ]

ภาพรวม

ข้อกำหนดด้านฮาร์ดแวร์

แหล่งที่มา: [ 7 ]

  • คอมพิวเตอร์64 บิตที่ใช้ชิปAMD / Intel
  • หน่วยความจำ: 4 MB (บวกเพิ่มอีก 2 MB สำหรับทุกคอร์เพิ่มเติม)
  • ฮาร์ดดิสก์: 32 MB

อุปกรณ์ที่รองรับ

แหล่งที่มา: [ 8 ]

  • บัส - PCIe , PCI , xHCI
  • พื้นที่จัดเก็บข้อมูลแบบไม่ลบเลือน - NVMe , AHCI ( SATA ), ATA , Virtio-Blk
  • อีเธอร์เน็ต - Intel 8259x 10 กิกะบิต, Intel 8254x/8257x กิกะบิต, Realtek 816x/811x กิกะบิต, Virtio-Net

หนึ่งงานต่อแกนหลัก

การทำงานแบบมัลติทาสกิ้งบน BareMetal นั้นผิดปกติสำหรับระบบปฏิบัติการสมัยใหม่ BareMetal ใช้คิว งานภายใน ที่คอร์ CPU ทั้งหมด ตรวจสอบงานที่เพิ่มเข้าไปในคิวงานจะถูกประมวลผลโดยคอร์ CPU ที่ว่างอยู่ใดๆ ในระบบและจะดำเนินการจนกว่าจะเสร็จสมบูรณ์ ซึ่งส่งผลให้ไม่มีค่าใช้จ่ายเพิ่มเติมในการสลับบริบท[ 9 ]

การเขียนโปรแกรม

API ได้รับการจัดทำเอกสาร[ 10 ]แต่ตามหลักปรัชญาแล้ว ระบบปฏิบัติการจะไม่บังคับใช้จุดเข้าสำหรับการเรียกใช้ระบบ (เช่น ไม่มีเกตการเรียกใช้หรือกลไกความปลอดภัยอื่นๆ)

BareMetal OS มีสคริปต์การสร้างเพื่อดึงโค้ดล่าสุด ทำการเปลี่ยนแปลงที่จำเป็น แล้วคอมไพล์โค้ด C โดยใช้ไลบรารี มาตรฐาน Newlib C [ 11 ] [ 12 ]

ไลบรารีมาตรฐาน C++11ที่สมบูรณ์เกือบทั้งหมดได้รับการออกแบบและพัฒนาขึ้นเพื่อใช้งานในring 0 [ 13 ] เป้าหมายหลักของไลบรารี ดังกล่าว คือการจัดหาทางเลือกในการป้องกันหน่วยความจำ ฮาร์ดแวร์ ที่ใช้ในระบบปฏิบัติการแบบคลาสสิกในระดับไลบรารี โดยอาศัยคลาสที่ออกแบบมาอย่างรอบคอบ[ 14 ]

k สำหรับ BareMetal : [ 15 ]พอร์ตของk eduจาก shakti [ 16 ]โดย Jack Andrews ในขั้นตอนนี้ เป็นเพียงการพิสูจน์แนวคิดและไม่ได้รวมระบบไฟล์ BareMetal เข้าไว้ด้วย

มีการเพิ่มการสาธิตโปรแกรม Rust ลงในโปรแกรมในเดือนพฤศจิกายน 2014 ซึ่งแสดงให้เห็นถึงความสามารถในการเขียนโปรแกรม Rust สำหรับ BareMetal OS [ 17 ]

การสร้างเครือข่าย

สแต็ก TCP/IP

ส แต็ก TCP/IPเป็นฟีเจอร์ที่มีการร้องขออันดับ 1 [ 18 ] มีการประกาศ พอร์ตlwIPที่เขียนด้วยภาษา C ในเดือนตุลาคม 2557 [ 19 ]

minIP [ 20 ] ซึ่งเป็น สแต็ก IPขนาดเล็กในANSI Cที่สามารถให้ฟังก์ชันการทำงานเพียงพอสำหรับการให้บริการเว็บเพจแบบคงที่ อย่างง่าย กำลังได้รับการพัฒนาเป็นแนวคิดต้นแบบเพื่อเรียนรู้พื้นฐานในการเตรียม การเขียนแอสเซมบลี x86-64ใหม่ตามแผนในอนาคต

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=BareMetal&oldid=1359226115 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ โลหะเปล่า

BareMetal เป็น ระบบปฏิบัติการ (OS) ที่ใช้ เอ็กโซเคอร์เนล และ มีพื้นที่แอดเดรสเดียว สร้างโดย Return Infinity

หนึ่งงานต่อแกนหลัก

การทำงานแบบมัลติทาสกิ้ง บน BareMetal นั้นผิดปกติสำหรับระบบปฏิบัติการสมัยใหม่ BareMetal ใช้ คิว งานภายใน ที่ คอร์ CPU ทั้งหมด ตรวจสอบ งาน ที่เพิ่มเข้าไปในคิวงานจะถูกประมวลผลโดยคอร์ CPU ที่ว่างอยู่ใดๆ ในระบบและจะดำเนินการจนกว่าจะเสร็จสมบูรณ์ ซึ่งส่งผลให้ไม่มี...

API

API ได้รับการจัดทำเอกสาร [ 10 ] แต่ตามหลักปรัชญาแล้ว ระบบปฏิบัติการจะไม่บังคับใช้จุดเข้าสำหรับ การเรียกใช้ระบบ (เช่น ไม่มี เกตการเรียกใช้ หรือกลไกความปลอดภัยอื่นๆ)

ซี

BareMetal OS มี สคริปต์การสร้าง เพื่อดึงโค้ดล่าสุด ทำการเปลี่ยนแปลงที่จำเป็น แล้วคอมไพล์โค้ด C โดยใช้ไลบรารี มาตรฐาน Newlib C [ 11 ] [ 12 ]