Singularity adalah sebuah proyek riset yang dilakukan oleh Microsoft Corporation yang dimulai pada tahun 2003 untuk membangun sebuah sistem operasi yang sangat andal, di mana kernel sistem operasi, device driver, dan semua aplikasi yang berjalan di atasnya ditulis dalam managed code.

Singularity Project
Singularity after boot-up.
Perusahaan / pengembangMicrosoft Corporation
Diprogram dalamAssembly language, C, C++, C#, Sing#
KeluargaLanguage-based operating systems
Model sumberShared source
Rilis final2.0 / 14 November 2008; 15 tahun lalu (2008-11-14)
Dukungan platformx86
Kernel typeMicrokernel Language based
Antarmuka bawaanCommand line interface
LisensiMicrosoft Research License
Situs web resmihttp://research.microsoft.com/en-us/projects/singularity/

Kode interrupt dispatch code milik Singularity dibangun dengan menggunakan bahasa rakitan dan bahasa pemrograman C. Setelah kode tersebut melakukan tugasnya, maka ia akan memanggil kernel, yang runtime dan garbage collector-nya dibangun dengan menggunakan bahasa C# dan berjalan di dalam modus tidak aman. Lapisan abstraksi perangkat kerasnya dibangun dengan menggunakan bahasa pemrograman C++ dan berjalan di dalam modus aman. Memang ada beberapa kode yang ditulis dalam bahasa C yang digunakan untuk menangani proses debugging. BIOS komputer hanya akan dipanggil pada saat proses booting memasuki tahap modus real 16-bit. Setelah masuk ke dalam modus terproteksi 32-bit, Singularity tidak akan memanggil BIOS lagi, tapi ia akan memanggil semua device driver yang ditulis di dalam bahasa pemrograman C#. Selama instalasi, opcode Common Intermediate Language (CIL) dari kernel C# akan diubah ke dalam opcode x86 dengan menggunakan kompiler Bartok.

Singularity versi 1.0 telah diselesaikan pada tahun 2007. Beberapa universitas menerima salinan Singularity 1.0 Research Development Kit (RDK) untuk tujuan riset. Sayangnya tidak disebutkan apakah Microsoft hendak merilis kode sumber atau binernya kepada publik. Versi saat ini yang sedang dikembangkan adalah Singularity versi 2.0.[1]

Desain sunting

Singularity merupakan sebuah sistem operasi yang berbasis kepada microkernel. Akan tetapi, tidak seperti sistem-sistem operasi yang berbasis microkernel sebelumnya, komponen-komponen berbeda tidak berjalan di dalam ruangan alamat (proses) yang berbeda. Akan tetapi, hanya ada satu buah ruang alamat di mana Software-Isolated Processes (SIP) berada. Setiap SIP memiliki data dan kodenya masing-masing, dan bersifat mandiri terhadap SIP-SIP lainnya. SIP-SIP tersebut memiliki kelakukan seperti halnya proses yang normal, tapi tidak membutuhkan task-switching yang memboroskan kinerja. Proteksi di dalam sistem inipun disedaiakan oleh sekumpulan invariant, seperti memory-invariant yang menyatakan bahwa tidak ada referensi silang antara dua SIP yang berbeda. Komunikasi antar SIP dilakukan dengan menggunakan saluran komunikasi yang memiliki ordo tinggi yang diatur oleh sistem operasi. Peraturan tersebut akan dicek ketika fase instalasi aplikasi dan harus dipenuhi agar instalasi aplikasi diizinkan oleh sistem operasi, karena memang dalam Singularity, instalasi akan diatur oleh sistem operasi.

Sebagian besar invariant mengandalkan penggunaan bahasa pemrograman yang lebih aman, seperti C# di mana bahasa tersebut memiliki garbage collector serta tidak memiliki pointer yang dideklarasikan sewenang-wenang, dan kode pun dapat diverfikasi untuk memenuhi sekumpulan kebijakan keamanan komputer.

Lihat pula sunting

  • Spec#, programming language, Eiffel-like design by contracts added to C#.
  • Sing#, programming language, channels and low level constructs added to Spec#, used for building singularity.
  • Inferno, an operating system from Bell Labs, some concepts of which Singularity uses.
  • GNU Hurd, Userspace drivers, GNU Operating System kernel.
  • Mach (kernel) Original Micro-kernel, with userspace drivers.

Catatan kaki sunting

Pranala luar sunting