Neptune OS: התאמה אישית של WinNT של המיקרו-קרנל seL4

פרסום הגרסה הניסיונית הראשונה של פרויקט Neptune OS, השונה מהפרויקט של הפצת לינוקס מבוססת דביאן עם אותו שם.

המערכת הזו שנדבר עליה היום מאופיין בפיתוח תוסף עבור המיקרו-קרנל seL4 עם הטמעת רכיבי ליבת Windows NT, במטרה לספק תמיכה בהפעלת יישומי Windows. 

אודות מערכת ההפעלה של נפטון

הפרויקט Iמיישם את "הנהלת NT", אחת מהשכבות של ליבת Windows NT (NTOSKRNL.EXE), האחראית על אספקת ממשק ה-API של מערכת קריאת מערכת NT וממשק למנהלי התקנים לעבודה.

ב-Neptune OS, הרכיב NT Executive וכל הדרייברים אינם פועלים ברמת ליבה, אבל כתהליכי משתמש בסביבה המבוססת על מיקרו-קרנל seL4. האינטראקציה של רכיב NT Executive עם הדרייברים מתבצעת באמצעות תקן seL4 IPC. קריאות המערכת המסופקות מאפשרות לספריית NTDLL.DLL לעבוד עם יישום של ה-API של Win32 המשמש ביישומים.

 NT Executive אחראית גם על ממשק מנהל ההתקן של ליבת Windows (המכונה מודל מנהל ההתקן של Windows), הכולל תכונות כגון IoConnectInterruptIoCallDriver

ב-Windows, אלה נטענים במצב ליבה ומקושרים ל-NTOSKRNL.EXEתמונה. במערכת ההפעלה Neptune, אנו מריצים את כל מנהלי ההתקן של ליבת Windows במצב משתמש והם מתקשרים עם תהליך NT Executive באמצעות הפרימיטיבים הסטנדרטיים של seL4 IPC.

המטרה הסופית מפרויקט Neptune OS זה ליישם מספיק סמנטיקה של NT כך שניתן להעביר את סביבת המשתמש של ReactOS תחת מערכת ההפעלה Neptune, כמו גם רוב מנהלי ההתקן של ליבת ReactOS.

בתיאוריה, המפתחים מזכיר שהם צריכים להיות מסוגלים להשיג תאימות בינארית עם קובצי הפעלה מקוריים של Windows כל עוד היישום המוצע של ה-API המקורי של NT נאמן מספיק.

אנחנו אמורים גם להיות מסוגלים להשיג רמה גבוהה של תאימות קוד מקור עם מנהלי התקנים של ליבת Windows. המכשול העיקרי להשגת תאימות בינארית של מנהלי התקנים של ליבה הוא שמנהלי התקנים רבים של ליבת Windows אינם פועלים לפי פרוטוקול התקשורת הסטנדרטי של מנהל ההתקן של Windows (כלומר, הם עוברים IRPs כאשר הם צריכים להתקשר למנהל התקן אחר) ובמקום זאת, הם פשוט מעבירים מצביעים ומתקשרים ישירות לבקרים אחרים . ב-Neptune OS, אלא אם כן מדובר בזוג מנהלי התקנים ומיני-נהגים, אנו תמיד מפעילים "קרנל".

אודות Neptune OS 0.1.0001

מצב הפרויקט בשלב זה הוא גרסה ראשונית, מכיוון שעד כה הצלחנו ליישם מספיק פרימיטיבים של NT כדי לטעון ערימה בסיסית של מנהלי התקנים למקלדת, הכוללת את מנהל ההתקן של מחלקת המקלדת kbdclass.sys ואת מנהל ההתקן של הפורטים. 2 i8042prt.sys, כמו גם שורת פקודה בסיסית ntcmd.exe, שנלקחה מפרויקט ReactOS.

כמעט אף אחת מפקודות המעטפת לא עובדת, אבל ערימת המקלדת יציבה. בניית ניפוי באגים יכולה להיות מעט אטית מכיוון שנוצרים יותר מדי יומני ניפוי באגים.

אבל מוזכר שניתן לבטל את אלה בקוד (יש להצביע על private/ntos/inc). כמו כן, מוזכר שצורף דרייבר "beep.sys" (וזה לא הגיוני, אבל רק המפתח יידע למה) שמשמיע צליל מעצבן ברמקול המחשב ושבכדי לשמוע אותו יש לבטל השתקה (במיוחד אם אתה משתמש ב-pulsaudio).

כל הבקרים פועלים בחלל משתמש! המערכת כולה מתאימה לתקליטון אחד וניתנת להורדה מגרסה v0.1.0001. אתה יכול גם לבנות אותו בעצמך, שההליך עבורו מתואר בסעיף הבא.

לסיום, למי שמעוניין לדעת קצת יותר על הפרויקט, ניתן לעיין בפרטים בקישור הבא.

גודל תמונת האתחול הוא 1,4 מגה-בייט והקוד משוחרר תחת רישיון GPLv3.


תוכן המאמר עומד בעקרונותינו של אתיקה עריכתית. כדי לדווח על שגיאה לחץ כאן.

היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם.

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.