อ่าน 4 นาที
ซิงกูลาริตี้ (ระบบปฏิบัติการ)
Singularity เป็น ระบบปฏิบัติการ ทดลอง ที่พัฒนาโดย Microsoft Research ระหว่างวันที่ 9 กรกฎาคม พ.ศ. 2546 [ 3 ] และ 7 กุมภาพันธ์ พ.ศ.
ซิงกูลาริตี้ (ระบบปฏิบัติการ)
| โครงการเอกภาวะ | |
|---|---|
ภาวะเอกฐานหลังจากบูตเครื่อง | |
| นักพัฒนา | ฝ่ายวิจัยของไมโครซอฟต์ ( บริษัท ไมโครซอฟต์ ) |
| เขียนเป็น | ภาษาแอสเซมบลี , C , C++ , C# , Sing# |
| ตระกูลระบบปฏิบัติการ | ระบบที่ใช้ภาษาเป็นพื้นฐาน |
| สถานะการทำงาน | เลิกผลิตแล้ว |
| แบบจำลองแหล่งที่มา | สามารถเข้าถึงซอร์สโค้ดได้ (ผ่านโครงการ Shared Source Initiative ) |
| การเผยแพร่ครั้งแรก | 4 มีนาคม พ.ศ. 2551 [ 1 ] |
| เวอร์ชันสุดท้าย | 2.0 / 14 พฤศจิกายน 2551 |
| มีจำหน่ายใน | ภาษาอังกฤษ |
| แพลตฟอร์มที่รองรับ | x86 , x86-64 [ 2 ] |
| ประเภทเคอร์เนล | ภาษาไมโครเคอร์เนล |
| ส่วนติดต่อผู้ใช้เริ่มต้น | อินเทอร์เฟซบรรทัดคำสั่ง |
| ใบอนุญาต | ใบอนุญาตการวิจัยของ Microsoft |
| เว็บไซต์อย่างเป็นทางการ | research.microsoft.com/en-us/projects/singularity |
Singularityเป็นระบบปฏิบัติการ ทดลอง ที่พัฒนาโดยMicrosoft Researchระหว่างวันที่ 9 กรกฎาคม พ.ศ. 2546 [ 3 ]และ 7 กุมภาพันธ์ พ.ศ. 2558 [ 4 ]ได้รับการออกแบบให้เป็น ระบบปฏิบัติการ ที่มีความน่าเชื่อถือ สูง โดยที่เคอร์เนลไดรเวอร์อุปกรณ์และซอฟต์แวร์แอปพลิเคชันทั้งหมดเขียนด้วยโค้ดแบบจัดการความปลอดภัยภายในใช้ความปลอดภัยของประเภทแทนการ ป้องกันหน่วยความจำฮาร์ดแวร์
การดำเนินการ
โค้ดการจัดการ การขัดจังหวะระดับต่ำสุดของ x86 เขียนด้วยภาษาแอสเซมบลีและภาษา Cเมื่อโค้ดนี้ทำงานเสร็จแล้ว จะเรียกใช้เคอร์เนล ซึ่งระบบรันไทม์และตัวเก็บขยะเขียนด้วยภาษา Sing Sharp (Sing#) (เวอร์ชันขยายของ Spec Sharp (Spec#) ซึ่งเป็นส่วนขยายของC# ) และทำงานในโหมดไม่ได้รับการป้องกัน[ 5 ] : 14 [ 6 ] : 4 เลเยอร์นามธรรมของฮาร์ดแวร์เขียนด้วยภาษาC++และทำงานในโหมดได้รับการป้องกัน นอกจากนี้ยังมีโค้ด C บางส่วนสำหรับจัดการการดีบัก ระบบอินพุต/เอาต์พุตพื้นฐานของคอมพิวเตอร์ ( BIOS ) จะถูกเรียกใช้ในระหว่างขั้นตอนการบูต โหมดเรียล 16 บิตเมื่ออยู่ใน โหมด 32 บิต Singularity จะไม่เรียกใช้ BIOS อีก แต่จะเรียกใช้ไดรเวอร์อุปกรณ์ที่เขียนด้วย Sing# ในระหว่างการติดตั้งโอเปรโค้ดCommon Intermediate Language (CIL) จะถูกคอมไพล์เป็นโอเปรโค้ด x86 โดยใช้ คอมไพเลอ ร์Bartok [ 6 ] : 11
การออกแบบระบบรักษาความปลอดภัย
Singularity เป็น ระบบปฏิบัติการ ไมโครเคอร์เนลซึ่งแตกต่างจากไมโครเคอร์เนลในอดีตส่วนใหญ่ตรงที่ส่วนประกอบต่างๆ จะทำงานในพื้นที่แอดเดรส เดียวกัน ( กระบวนการ ) ซึ่งประกอบด้วยกระบวนการที่แยกด้วยซอฟต์แวร์ (SIPs) แต่ละ SIP มีโครงสร้างข้อมูลและโค้ดของตัวเอง และเป็นอิสระจาก SIP อื่นๆ SIP เหล่านี้ทำงานเหมือนกระบวนการปกติ แต่หลีกเลี่ยงค่าใช้จ่ายในการสลับงาน[ 5 ] : 4,11,35
การป้องกันในระบบนี้มาจากชุดของกฎที่เรียกว่าค่าคงที่ (invariants ) ซึ่งได้รับการตรวจสอบโดยการวิเคราะห์โปรแกรมแบบคงที่ตัวอย่างเช่น ในสถานะที่ไม่เปลี่ยนแปลงของหน่วยความจำ จะต้องไม่มีการอ้างอิงข้าม (หรือตัวชี้หน่วยความจำ) ระหว่าง SIP สองตัว การสื่อสารระหว่าง SIP เกิดขึ้นผ่านช่องทางการสื่อสารลำดับสูงกว่าที่จัดการโดยระบบปฏิบัติการ ค่าคงที่เหล่านี้จะถูกตรวจสอบในระหว่างการติดตั้งแอปพลิเคชัน (ใน Singularity การติดตั้งจะถูกจัดการโดยระบบปฏิบัติการ)
เงื่อนไขส่วนใหญ่ขึ้นอยู่กับการใช้ ภาษา ที่มีการจัดการหน่วยความจำ ที่ปลอดภัยกว่า เช่น Sing# ซึ่งมีตัวเก็บขยะ (garbage collector ) ไม่อนุญาตให้ใช้ตัวชี้แบบสุ่ม และอนุญาตให้ตรวจสอบโค้ดเพื่อให้เป็นไปตามนโยบายความปลอดภัยของคอมพิวเตอร์ที่ กำหนด
สถานะโครงการ
ชุดพัฒนาวิจัยเอกภาวะ (RDK) รุ่นแรก RDK 1.1 เปิดตัวครั้งแรกเมื่อวันที่ 4 มีนาคม พ.ศ. 2551 [ 1 ]โดยเผยแพร่ภายใต้ ใบอนุญาต ซอร์สโค้ดแบบแบ่งปัน ที่อนุญาตให้ใช้ในเชิงวิชาการที่ไม่ใช่เชิงพาณิชย์และสามารถ ดาวน์โหลดได้จากCodePlex [ 7 ]ต่อมา RDK 2.0 เปิดตัวเมื่อวันที่ 14 พฤศจิกายน พ.ศ. 2551 [ 2 ]
โครงการที่คล้ายกัน
- Infernoถูกสร้างขึ้นครั้งแรกในปี 1995 โดยอิงจากPlan 9 ของ Bell Labsโปรแกรมทำงานในเครื่องเสมือนและเขียนด้วยLimboแทนที่จะเป็น C# โดยใช้ CIL เป็นซอฟต์แวร์โอเพนซอร์ส
- JNode เป็นระบบปฏิบัติการที่มีแนวคิดคล้ายกับ Singularity แต่ใช้Javaแทน C# โดยใช้ CIL
- Phantom OSเป็นระบบปฏิบัติการ Ring 0 อีกระบบหนึ่งที่คล้ายกัน ซึ่งใช้ Java สำหรับโค้ดแบบจัดการ (managed code)
- MOSA คือ คอมไพเลอร์และระบบปฏิบัติการ ของ .NET Frameworkที่ใช้ภาษา C#
- TempleOS ระบบปฏิบัติการ ring -0ที่มีคอมไพเลอร์ JIT และเป็นซอฟต์แวร์โอเพนซอร์ส
ลิงก์ภายนอก
- เว็บไซต์อย่างเป็นทางการ
- แรงจูงใจในการออกแบบ Singularityและภาพรวมของโครงการ Singularity
- ซอร์สโค้ดของ SingularityบนCodePlex
- Singularity: ระบบปฏิบัติการวิจัยที่เขียนด้วยภาษา C#บทสัมภาษณ์ทีมงาน Channel 9 กับ Jim Larus และ Galen Hunt (วิดีโอและกระทู้)
- Singularity III: Revenge of the SIPบทสัมภาษณ์ของทีมงานช่อง 9 กับนักวิจัย 3 คนจากทีม Singularity Project (วิดีโอและกระทู้)
- Singularity IV: การกลับมาของ UIตัวอย่างการใช้งาน Singularity จริง (วิดีโอและกระทู้)
- Singularity Revisited : บทสัมภาษณ์ของทีมงานช่อง 9 กับนักวิจัย 4 คนจากทีม Singularity Project (วิดีโอและกระทู้)
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ซิงกูลาริตี้ (ระบบปฏิบัติการ)
Singularity เป็น ระบบปฏิบัติการ ทดลอง ที่พัฒนาโดย Microsoft Research ระหว่างวันที่ 9 กรกฎาคม พ.ศ. 2546 [ 3 ] และ 7 กุมภาพันธ์ พ.ศ.
การดำเนินการ
โค้ดการจัดการ การขัดจังหวะ ระดับต่ำสุด ของ x86 เขียนด้วย ภาษาแอสเซมบลี และ ภาษา C เมื่อโค้ดนี้ทำงานเสร็จแล้ว จะเรียกใช้เคอร์เนล ซึ่ง ระบบรันไทม์ และ ตัวเก็บขยะ เขียนด้วยภาษา Sing Sharp (Sing#) (เวอร์ชันขยายของ Spec Sharp (Spec#) ซึ่งเป็นส่วนขยายของ C# )...
การออกแบบระบบรักษาความปลอดภัย
Singularity เป็น ระบบปฏิบัติการ ไมโครเคอร์เนล ซึ่งแตกต่างจากไมโครเคอร์เนลในอดีตส่วนใหญ่ตรงที่ส่วนประกอบต่างๆ จะทำงานใน พื้นที่แอดเดรส เดียวกัน ( กระบวนการ ) ซึ่งประกอบด้วย กระบวนการที่แยกด้วยซอฟต์แวร์ (SIPs) แต่ละ SIP มีโครงสร้างข้อมูลและโค้ดของตัวเอง...
สถานะโครงการ
ชุดพัฒนาวิจัยเอกภาวะ (RDK) รุ่นแรก RDK 1.1 เปิดตัวครั้งแรกเมื่อวันที่ 4 มีนาคม พ.ศ. 2551 [ 1 ] โดยเผยแพร่ภายใต้ ใบอนุญาต ซอร์สโค้ดแบบแบ่งปัน ที่อนุญาตให้ใช้ในเชิงวิชาการที่ไม่ใช่เชิงพาณิชย์และสามารถ ดาวน์โหลดได้จาก CodePlex [ 7 ] ต่อมา RDK 2.