Neptune OS: การปรับแต่ง WinNT ของ seL4 microkernel

การเผยแพร่โครงการ Neptune OS รุ่นทดลองรุ่นแรก ซึ่งแตกต่างจากโครงการของ การกระจาย Linux บนเดเบียน ที่มีชื่อเดียวกัน

ระบบที่เราจะพูดถึงในวันนี้ โดดเด่นด้วยการพัฒนาปลั๊กอินสำหรับไมโครเคอร์เนล seL4 ด้วยการใช้งานคอมโพเนนต์เคอร์เนล Windows NT โดยมีเป้าหมายในการให้ รองรับการใช้งานแอพพลิเคชั่น Windows 

เกี่ยวกับ Neptune OS

โครงการ iดำเนินการ "ผู้บริหาร NT"ซึ่งเป็นหนึ่งในเลเยอร์ของเคอร์เนล Windows NT (NTOSKRNL.EXE) ที่รับผิดชอบในการจัดหา API การเรียกระบบ NT Native และอินเทอร์เฟซสำหรับไดรเวอร์ในการทำงาน

บน Neptune OS ส่วนประกอบ NT Executive และไดรเวอร์ทั้งหมดไม่ทำงานที่ระดับเคอร์เนล แต่ เมื่อผู้ใช้ประมวลผลในสภาพแวดล้อมตาม seL4 microkernel. การทำงานร่วมกันของส่วนประกอบ NT Executive กับไดรเวอร์นั้นดำเนินการผ่านมาตรฐาน seL4 IPC การเรียกระบบที่ให้มาทำให้ไลบรารี NTDLL.DLL ทำงานกับการใช้งาน Win32 API ที่ใช้ในแอปพลิเคชันได้

 NT Executive ยังรับผิดชอบส่วนต่อประสานไดรเวอร์เคอร์เนลของ Windows (เรียกว่ารุ่นไดรเวอร์ Windows) ซึ่งรวมถึงคุณสมบัติเช่น IoConnectInterruptIoCallDriver

บน Windows สิ่งเหล่านี้จะถูกโหลดในโหมดเคอร์เนลและเชื่อมโยงกับNTOSKRNL.EXEภาพ. ใน Neptune OS เรารันไดรเวอร์เคอร์เนลของ Windows ทั้งหมดในโหมดผู้ใช้ และพวกมันจะสื่อสารกับกระบวนการ NT Executive ผ่าน seL4 IPC primitives มาตรฐาน

เป้าหมายสุดท้าย จากโครงการ Neptune OS คือการใช้ NT semantics ให้เพียงพอ เพื่อให้สภาพแวดล้อมของผู้ใช้ ReactOS สามารถพอร์ตภายใต้ Neptune OS เช่นเดียวกับไดรเวอร์เคอร์เนล ReactOS ส่วนใหญ่

ตามทฤษฎีแล้ว นักพัฒนา กล่าวว่าพวกเขาควรจะสามารถบรรลุความเข้ากันได้ของไบนารี ด้วยโปรแกรมปฏิบัติการ Windows ดั้งเดิม ตราบใดที่การใช้งาน NT API ดั้งเดิมที่เสนอให้ใช้งานได้จริงเพียงพอ

นอกจากนี้เรายังควรจะสามารถบรรลุความเข้ากันได้ของซอร์สโค้ดในระดับสูงกับไดรเวอร์เคอร์เนลของ Windows อุปสรรคหลักในการบรรลุความเข้ากันได้แบบไบนารีของไดรเวอร์เคอร์เนลคือไดรเวอร์เคอร์เนลของ Windows จำนวนมากไม่เป็นไปตามโปรโตคอลการสื่อสารไดรเวอร์ Windows มาตรฐาน (กล่าวคือผ่าน IRP เมื่อต้องการเรียกใช้ไดรเวอร์อื่น) และแทนที่จะส่งพอยน์เตอร์และเรียกคอนโทรลเลอร์อื่นโดยตรง . บน Neptune OS เว้นแต่จะเป็นคู่ระหว่างไดรเวอร์กับไดรเวอร์ขนาดเล็ก เราจะเรียกใช้ "เคอร์เนล" เสมอ

เกี่ยวกับ Neptune OS 0.1.0001

สถานะของโปรเจ็กต์ในขณะนี้เป็นเวอร์ชันเบื้องต้น เนื่องจากเราสามารถใช้ NT primitives ได้มากพอที่จะโหลดสแต็กพื้นฐานของไดรเวอร์คีย์บอร์ด ซึ่งรวมถึงไดรเวอร์คลาสคีย์บอร์ด kbdclass.sys และไดรเวอร์พอร์ต PS/ 2 i8042prt.sys เช่นเดียวกับพรอมต์คำสั่งพื้นฐาน ntcmd.exe ที่นำมาจากโครงการ ReactOS

แทบไม่มีคำสั่งเชลล์ใดๆ ที่ใช้งานได้จริง แต่สแต็กคีย์บอร์ดนั้นเสถียร บิลด์การดีบักอาจช้าเล็กน้อยเนื่องจากมีการสร้างบันทึกการดีบักมากเกินไป

แต่มีการกล่าวถึงว่าสิ่งเหล่านี้สามารถปิดใช้งานได้ในรหัส (คุณควรชี้ไปที่ส่วนตัว/ntos/inc) นอกจากนี้ยังกล่าวถึงว่ามีการรวมไดรเวอร์ "beep.sys" (ซึ่งไม่สมเหตุสมผล แต่มีเพียงผู้พัฒนาเท่านั้นที่จะรู้ว่าทำไม) ซึ่งทำให้เสียงที่น่ารำคาญในลำโพง PC และต้องเปิดเสียงเพื่อให้ได้ยิน (โดยเฉพาะถ้าคุณใช้ pulseaudio)

ตัวควบคุมทั้งหมดทำงานในพื้นที่ผู้ใช้! ระบบทั้งหมดพอดีกับฟลอปปีดิสก์เดียวและสามารถดาวน์โหลดได้จากเวอร์ชัน v0.1.0001 คุณยังสามารถสร้างมันขึ้นมาเองได้ด้วย ซึ่งเป็นขั้นตอนที่อธิบายไว้ในหัวข้อถัดไป

สุดท้ายนี้ สำหรับผู้ที่สนใจอยากทราบรายละเอียดเพิ่มเติมเกี่ยวกับโครงการ สามารถเข้าไปดูรายละเอียดได้ที่ ในลิงค์ต่อไปนี้.

ขนาดของบูตอิมเมจคือ 1,4 MB และรหัสถูกเผยแพร่ภายใต้ลิขสิทธิ์ GPLv3


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา