Kamis, 28 April 2011

Microcernels, kategori kernel, keuntungan kernel

Dalam pengetahuan ilmu komputer, mikrokernel merupakan seperangkat perangkat lunak dalam jumlah minimum yang meyediakan beragam mekanisme dasar yang dibutuhkan untuk bekerja sebagai sebuah sistem operasi, seperti halnya manajemen pengalamatan ruang tingkat rendah, manajemen thread, dan komunikasi antar proses. Dalam implementasinya mikrokernel merupakan satu-satunya perangkat lunak yang berjalan dengan tingkat kewenangan tertinggi (umumnya disebut sebagai modus supervisor atau modus kernel) dari serangkaian level kewenangan yang tersedia pada perangkat kerasnya. Layanan yang disediakan oleh sebuah sistem operasi beberapa diantaranya adalah device driver, protokol jaringan,sistem berkas, dan kode antarmuka pengguna yang berada dalam ruang pengguna.

Stuktur sistem operasi berbasis mikrokernel monolitik

                        Mikrokernel sangat erat terkait dengan exokernel , serta memiliki banyak kesamaan dengan hypervisor, namun implementasinya lebih bersifat minimalis, dan secara spesifik untuk mendukung pengimplementasianmesin virtual. Mikrokernel L4 sering juga disebut sebagaihypervisor, yang mengindikasikan kemungkinan pengimplementasian sebuah mikrokernel sebagai hypervisor. Istilah nanokernel dalam sejarahnya digunakan untuk membedakan mikrokernel saat ini dengan istilah mikrokernel sebelumnya yang menyediakan layanan sistem aktual, namun secara prinsip minimalitas menurut Jochen Liedtke dalam disain mikrokernel L4 menyebutkan bahwa istilah-istilah tersebut memiliki arti yang kurang lebih sama.
                        Karena sebuah mikrokernal harus dapat meletakkan layanan-layanan sistem operasi pada level teratas, fungsionalitas yang harus dimiliki oleh mikrokernel setidaknya melingkupi:
·       Mekanisme pengaturan pengalamatan ruang, dibutuhkan untuk mengatur proteksi ingatan.
·       Mekanisme eksekusi secara abstrak untuk mengatur alokasiCPU biasanya adalah thread atau pengaktifan penjadual; dan
·       Komunikasi antarproses dibutuhkan untuk menyediakan mekanisme pemanggilan peladen yang berjalan pada alamat ruang spesifik.
                        Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan untuk fasilitas komunikasi. Fungsi utama mikrokernel adalah mendukung fasilitas komunikasi antara program klien dan bermacam-macam layanan yang juga berjalan di user space. Komunikasi yang dilakukan secara tidak langsung, didukung oleh sistem message passing, dengan bertukar pesan melalui mikrokernel.
                        Salah satu keuntungan mikrokernel adalah ketika layanan baru akan ditambahkan ke user space, kernel tidak perlu dimodifikasi. Kalau pun harus, perubahan akan lebih sedikit. Hasil sistem operasinya lebih mudah untuk ditempatkan pada suatu desain perangkat keras ke desain lainnya. Mikrokernel juga mendukung keamanan reliabilitas lebih, karena kebanyakan layanan berjalan sebagai pengguna proses. Jika layanan gagal, sistem operasi lainnya tetap terjaga.
Beberapa sistem operasi yang menggunakan microkernel:
·       IBM AIX, sebuah versi UNIX dari IBM
·       Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
·       Kernel Mach, yang digunakan di dalam sistem operasiGNU/HurdNexTSTEPOPENSTEP, dan Mac OS/X
·       Minix, kernel yang dikembangkan oleh Andrew Tanenbaumuntuk tujuan edukasi
·       Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phonehandheld deviceembedded device, dan PDAPhone.
Kelebihan Mikrokernel
1.    Ketika layanan baru akan ditambahkan ke user-space,kernel tidak perlu di modif.
2.    Mendukung keamanan reliabilitas lebih, karena sebagianbesar pada level pengguna, SO jadi terjaga.
3.    Interface yang seragam. Proses tidak lagi dibedakan, baik antara kernel-level maupun user-level,karena semuanya berkomunikasi via message passing.
4.    Extensibility. Bisa menambahkan fitur-fitur baru tanpa perlu melakukan kompilasi ulang.
5.    Flexibility. Fitur-fitur yang sudah ada bisa dikurangi, atau dimodifikasi sesuai dengan kebutuhan sehingga menjadi lebih efisien. Misalnya tidak semua pengguna membutuhkan security yang sangat ketat, atau kemampuan untuk melakukan distributed computing.
6.    Portability. Pada mikro kernel, semua atau sebagian besar kode yang prosesor-spesifik berada di dalamnya. Jadi, proses porting ke prosesor lain bisa dilakukan dengan relatif sedikit usaha. Pada kelompok desktop misalnya, tampaknya dominasi Intel makin kuat. Tapi, sampai seberapa lama itu bisa bertahan? Karena itulah, portability adalah salah satu isu yang sangat penting.
7.    Reliability. Semakin besar suatu software, maka tentulah semakin sulit untuk menjamin reliabilitynya. Desain dengan pendekatan berlapis sangatlah membantu, dan dengan pendekatan mikro kernel bisa lebih lagi. Mikro kernel dapat diuji secara ekstensif karena dia menggunakan API yang sedikit,sehingga bisa meningkatkan kualitas code di luar kernel.
8.    Support for object-oriendted OS. Model mikro kernel sangat sesuai untuk mengembangkan sistem operasi yang berbasis object-oriented. Contoh sistem operasi yang menggunakan mikro kernel adalah Mac OS X dan QNX.
Kinerja Mikrokernel
Untuk mengatur kegiatan proses mereka perlu saling berkomunikasi. Linux mendukung berbagai mekanisme komunikasi antar proses (KAP). Sinyal dan pemipaan merupakan dua di antaranya, tapi linux juga mendukung system sistem ke lima mekanisme KAP. Manajemen I/O berguna Untuk mengelola perangkat masukan/keluaran, dimana perangkat tersebut digunakan proses tertenty, sehingga perlu dijaga agar proses lain tidak memakainya. Sistem operasi perlu mengetahui status operasi masukan/keluaran dan lokasi memori utama yang digunakan untuk transfer data. Manajemen Memory Manajemen memory level bawah (low- level): Memetakan setiap page virtual ke frame fisik, - Sebagian besar tugas manajemen memory terjadi dalam user space.
Rancangan Mikrokernel
a.    Manajemen memory level bawah (lowlevel):Memetakan setiap page virtual ke frame fisik. Sebagian besar tugas manajemen memory terjadi dalam user space.
   
b.    Komunikasi antar proses (Interprocess Communication) atau thread dalam suatu SO mikrokernel adalah melalui message.
Suatu message menyertakan:
§ Header yang mengidetifikasi proses pengiriman dan penerimaan, dan
§ Body yang mengandung data langsung, pointer ke suatu block data, atau beberapa informasi kontrol mengenai proses.
c.    Manajemen I/O & Interrupt
Di dalam mikrokernel, adalah mungkin menangani interupsi hardware sebagai message dan menyertakan port I/O dalam ruang alamat. - Proses user-level tertentu dilewatkan ke interrupt & kernel memelihara pemetaan tersebut.

ü  Kategori Cernels
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi.
Ada 4 kategori kernel:
1.      Monolithic kernel. Kernel yang menyediakan abstraksi perangkat keras yang  kaya dan tangguh.
2.      Microkernel. Kernel yang menyediakan hanya sekumpulan kecil abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut sebagai server untuk menyediakan fungsi-fungsi lainnya.
3.      Hybrid (modifikasi dari microkernel). Kernel yang mirip microkernel, tetapi ia juga memasukkan beberapa kode tambahan di kernel agar ia menjadi lebih cepat.
4.      Exokernel. Kernel yang tidak menyediakan sama sekali abstraksi hardware, tapi ia menyediakan sekumpulan pustaka yang menyediakan fungsi-fungsi akses ke perangkat keras secara langsung atau hampir-hampir langsung.

ü  Keuntungan Cernels
Salah satu keuntungan kernel yang bersifat modular, berganti-ganti hardware menjadi lebih mudah, karena anda tinggal menge-probe suatu modul, atau jika belum ada anda tinggal mem-build satu modul saja. Kerugiannya adalah relatif rentan terhadapat masalah security, karena biasanya script kiddiesmemasukkan suatu modul ke dalam kernel (dengan harapan proses yang dimilikinya tidak diketahui oleh admin sistem yang bersangkutan).

1 komentar: