Neptune OS: seL4 mikro çekirdeğinin WinNT özelleştirmesi

Neptune OS projesinin projesinden farklı olan ilk deneysel versiyonunun yayınlanması. Debian tabanlı Linux dağıtımı aynı isimle.

Bugün bahsedeceğimiz bu sistem seL4 mikro çekirdeği için bir eklenti geliştirmekle karakterize edilir sağlamak amacıyla, Windows NT çekirdek bileşenlerinin uygulanmasıyla Windows uygulamalarını çalıştırmak için destek. 

Neptune OS hakkında

proje ben"NT Executive" i uygular, Windows NT çekirdeğinin (NTOSKRNL.EXE) katmanlarından biri olup, sürücülerin çalışması için NT Yerel sistem çağrı API'sini ve arabirimini sağlamaktan sorumludur.

Neptune OS'de bileşen NT Executive ve tüm sürücüler çekirdek düzeyinde çalışmaz, Çin seL4 mikro çekirdeğine dayalı bir ortamda kullanıcı işlemleri olarak. NT Executive bileşeninin sürücülerle etkileşimi seL4 IPC standardı aracılığıyla gerçekleştirilir. Sağlanan sistem çağrıları, NTDLL.DLL kitaplığının uygulamalarda kullanılan Win32 API'sinin bir uygulamasıyla çalışmasını mümkün kılar.

 NT Executive ayrıca aşağıdaki özellikleri içeren Windows çekirdek sürücü arabiriminden (Windows sürücü modeli olarak bilinir) sorumludur. IoConnectInterruptIoCallDriver

Windows'ta bunlar çekirdek modunda yüklenir veNTOSKRNL.EXEgörüntü. Neptune işletim sisteminde, tüm Windows çekirdek sürücülerini kullanıcı modunda çalıştırıyoruz ve bunlar, standart seL4 IPC temel öğeleri aracılığıyla NT Yürütme süreci ile iletişim kuruyor.

Son hedef Neptune OS projesinden yeterli NT semantiğini uygulamaktır böylece ReactOS kullanıcı ortamı, çoğu ReactOS çekirdek sürücüsünün yanı sıra Neptune OS altında taşınabilir.

Teoride, geliştiriciler ikili uyumluluk elde edebilmeleri gerektiğinden bahseder yerel NT API'sinin sunulan uygulaması yeterince sadık olduğu sürece yerel Windows yürütülebilir dosyalarıyla.

Ayrıca Windows çekirdek sürücüleriyle yüksek derecede kaynak kodu uyumluluğu elde edebilmeliyiz. Çekirdek sürücülerinin ikili uyumluluğunu sağlamanın önündeki en büyük engel, birçok Windows çekirdek sürücüsünün standart Windows sürücü iletişim protokolünü izlememesi (yani, başka bir sürücüyü çağırmaları gerektiğinde IRP'leri geçmeleri) ve bunun yerine, yalnızca işaretçileri geçirmeleri ve diğer denetleyicileri doğrudan çağırmalarıdır. . Neptune OS'de, bir sürücü-mini sürücü çifti olmadığı sürece, her zaman "çekirdek" çalıştırırız.

Neptün OS 0.1.0001 Hakkında

Şu ana kadar, kbdclass.sys klavye sınıfı sürücüsü ve bağlantı noktası sürücüsünü içeren temel bir klavye sürücüsü yığınını yüklemek için yeterli NT temel öğelerini uygulayabildiğimizden, projenin şu anki durumu bir ön sürümdür. 2 i8042prt.sys ve ayrıca ReactOS projesinden alınan temel bir komut istemi ntcmd.exe.

Kabuk komutlarının neredeyse hiçbiri gerçekten çalışmıyor, ancak klavye yığını kararlı. Çok fazla hata ayıklama günlüğü oluşturulduğundan hata ayıklama derlemeleri biraz yavaş olabilir.

Ancak bunların kodda devre dışı bırakılabileceğinden bahsedilmiştir (private/ntos/inc'ye işaret etmelisiniz). Ayrıca, PC hoparlöründe rahatsız edici bir ses çıkaran ve duymak için sesini açmanız gereken bir "beep.sys" sürücüsünün dahil edildiğinden (bu mantıklı değil, ancak nedenini yalnızca geliştirici bilecektir) bahsedilmiştir. (özellikle pulseaudio kullanıyorsanız).

Tüm kontrolörler kullanıcı alanında çalışır! Tüm sistem tek bir diskete sığar ve v0.1.0001 sürümünden indirilebilir. Prosedürü bir sonraki bölümde açıklanan kendiniz de oluşturabilirsiniz.

Son olarak, proje hakkında biraz daha fazla bilgi edinmek isteyenler için ayrıntılara bakabilirsiniz. Aşağıdaki bağlantıda.

Önyükleme görüntüsünün boyutu 1,4 MB'dir ve kod GPLv3 lisansı altında yayınlanır.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.