Singularity

Singularity Project
Singularity after boot-up.
PengembangMicrosoft Corporation
Ditulis dalamAssembly language, C, C++, C#, Sing#
Keluarga perangkat lunakLanguage-based operating systems
Model sumberShared source
Rilis final2.0 / November 14, 2008; 17 tahun lalu (2008-11-14)
Dukungan platformx86
Tipe kernelMicrokernel Language based
Antarmuka bawaanCommand line interface
LisensiMicrosoft Research License
Situs web resmihttp://research.microsoft.com/en-us/projects/singularity/

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.

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

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

  • 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

Pranala luar

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.