Anda di halaman 1dari 6

Mikrokernel

Stuktur sistem operasi berbasis mikrokernel monolitik

Dalam pengetahuan Ilmu Komputer, mikrokernel merupakan seperangkat perangkat lunak dalam


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

Mikrokernel paling akrab terkait dengan exokernel[1] , serta memiliki banyak kesamaan dengan
hypervisor.[2] namun implementasinya lebih bersifat minimalis, dan secara spesifik untuk
mendukung pengimplementasian mesin virtual. Mikrokernel L4 sering juga dikata sbg hypervisor,
yang mengindikasikan probabilitas pengimplementasian sebuah mikrokernel sbg hypervisor. Istilah
nanokernel dalam sejarahnya digunakan untuk membedakan mikrokernel masa 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 faedah yang kurang lebih sama.

Daftar isi
 1 Pendahuluan
 2 Komunikasi antarproses
 3 Peladen
 4 Device driver
 5 Komponen-komponen mendasar dan minimalitas
 6 Unjuk kerja
 7 Keamanan
 8 Nanokernel
 9 Referensi
 10 Bacaan lanjutan

Pendahuluan
Pada mulanya, kernel sistem operasi umumnya mempunyai ukuran kecil, penyebabnya merupakan
akbarnya ingatan komputer yang terbatas. Dengan makin berkembangnya kapabilitas komputer,
jumlah perangkat yang mesti dikendalikan oleh suatu kernel dijadikan meningkat pula. Namun
pada masa-masa awal sejarah sistem operasi unix, kernel pada umumnya mempunyai ukuran kecil,
meskipun kernel-kernel tersebut menyediakan device driver dan pengatur sistem berkas. Masa
pengalamatan ruang meningkat dari 16 dijadikan 32 bit, disain kernel diubahsuai dijadikan tidak
lagi bergantung pada arsitektur perangkat keras yang berada, dan ukuran kernel pun mulai
tumbuh membesar.

Berkeley UNIX (BSD) tercatat sbg yang memulai era kernel mempunyai ukuran akbar. Sbg
tambahan dari pengoperasian sistem yang paling mendasar seperti CPU, media penyimpanan,
dan pencetak, BSD mulai menambahkan sistem berkas, sistem jaringan TCP/IP yang lengkap, dan
sejumlah perangkat "virtual" yang mengijinkan program yang berada untuk bekerja secara
tersembunyi pada jaringan. Pertumbuhan ini berlanjut selama beberapa dekade dan menyebabkan
kernel yang berada masa ini terdiri hingga jutaan baris kode. Sbg dampak dari pertumbuhan ini
pun, kernel yang berada masa ini lebih rentan terhadap bug dan dijadikan lebih sulit untuk
dikelola.

Mikrokernel dirancang untuk mengatasi permasalahan yang disebabkan karena pertumbuhan


kernel yang membesar dan kesukaran mengelolanya. Secara teori, desain mikrokernel mengijinkan
pengelolaan kode yang lebih gampang karena arsitekturnya yang mendistribusikan layanan pada
area ruang pengguna. Pengimplementasian seperti ini berdampak positif pula pada peningkatan
keamanan dan stabilitas sistem disebabkan karena menurunnya jumlah kode yang berjalan pada
modus kernel. Sbg contoh, bila layanan jaringan tidak bekerja karena serangan buffer overflow,
sistem yang lain masih bisa berfungsi secara normal.

Komunikasi antarproses
Komunikasi antarproses (IPC) merupakan suatu mekanisme yang memungkinkan beberapa bagian
yang terpisah untuk saling mengadakan komunikasi satu dengan yang lain, umumnya hal ini
diterapkan dengan memanfaatkan mekanisme pengiriman pesan. Selain itu ingatan berbagi ( shared
memory) secara spesifik juga sering pula digunakan sbg keliru satu mekanisme komunikasi
antarproses, namun demikian, umumnya makna IPC lebih mengarah pada komunikasi
memanfaatkan mekanisme pengiriman pesan, dan lebih lanjut dijadikan relevan terhadap
mekanisme yang digunakan pada mikrokernel. IPC mengijinkan sistem operasi dibuat dari sejumlah
program kecil yang dikata orang bawahan, yang digunakan oleh program yang lain dalam sistem,
melewati IPC sbg mediator. Hampir dari semua dukungan atas periferal perangkat keras ditangani
melewati cara ini, dengan peladen atas device driver, protokol jaringan, sistem berkas, grafis, dan
lain-lainnya.

IPC bisa pula berjalan secara sinkronis, dan asinkronis. Analogi IPC asinkronis pada komunikasi
jaringan contohnya: pesan dikirim oleh program pengirim dan melanjutkan bagian tanpa
menunggu pesan belakangnya. Program penerima menampung/mengecek keberadaan pesan yang
mesti diproses baik secara inisialisasi mandiri, atau diingatkan oleh suatu mekanisme notifikasi. IPC
asinkronis mensyaratkan kernel mengelola penampung dan mengimplementasikan antrian atas
pesan-pesan tersebut, dan berkompromi terhadap probabilitas terjadinya buffer overflow; Kernel
juga mesti menerapkan duplikasi pesan (pengirim-ke-kernel dan kernel-ke-penerima). Sementara
pada IPC sinkronis, pihak pertama (baik pengirim atau penerima) yang menerapkan blokade hingga
pihak yang dituju siap untuk menerapkan bagian IPC. Modus IPC sinkronis tidak membutuhkan
pengelolaan penampung di bidang kernel, ataupun duplikasi pesan, namun komunikasi yang
bersifat sinkronis seperti ini akan menyebabkan pemrograman dijadikan lebih sulit. Kebanyakan
programer lebih memilih memakai modus asinkronis untuk pengiriman dan modus sinkronis untuk
penerimaan.

Peladen
Peladen mikrokernel pada dasarnya merupakan program jurik biasa seperti umumnya, dengan
pengecualian kernel memberikan sejumlah kewenangan untuk berinteraksi dengan beberapa dari
ingatan fisik yang biasanya dibatasi untuk program pada umumnya. Dengan cara demikian, hal ini
memungkinkan para peladen, khususnya device driver, bisa berinteraksi secara langsung dengan
perangkat keras.

Seperangkat peladen pada mikrokernel untuk kebutuhan umum melingkupi peladen sistem berkas,
peladen device driver, peladen jaringan, pelanden tampilan, dan peladen antar muka pengguna.
Seperangkat peladen tersebut secara kasar merupakan menyediakan sejumlah layanan yang sama
yang diberikan pada kernel monolitik UNIX. Peladen yang dibutuhkan akan dijalankan pada masa
sistem mulai berjalan dan secara aktif menyediakan layanan, seperti berkas, jaringan, dan akses
terhadap perangkat, pada program-program aplikasi. Dengan sejumlah peladen yang berjalan pada
lingkungan aplikasi pengguna seperti ini, pengembangan sebuah peladen sama seperti halnya
halnya pengembangan aplikasi umum biasa.

Device driver
Device driver secara frekuentif menerapkan akses pengingat langsung (DMA), dengan demikian
device driver bisa menerapkan pennulisan dan relokasi atas ingatan fisik, termasuk pula struktur
data kernel, oleh karena itu terhadap driver tersebut perlu diberikan kewenangan khusus ( trusted).
Kesalahan konsepsi yang terjadi mengasumsikan bahwa untuk device driver seperti itu haruslah
merupakan bidang dari kernel. Padahal faktanya, driver tidak selalu dijadikan bidang yang tidak
terpisahkan dari kernel.

Komponen-komponen mendasar dan minimalitas


Karena sebuah mikrokernal mesti bisa meletakkan layanan-layanan sistem operasi pada level
teratas, fungsionalitas yang mesti dimiliki oleh mikrokernel setidaknya melingkupi:

 Mekanisme pengaturan pengalamatan ruang, — dibutuhkan untuk mengatur proteksi


ingatan.
 Mekanisme eksekusi secara niskala untuk mengatur alokasi CPU — biasanya
merupakan thread atau pengaktifan penjadual; dan
 Komunikasi antarproses — dibutuhkan untuk menyediakan mekanisme pemanggilan
peladen yang berjalan pada alamat ruang spesifik.

Hal terpenting yang mesti dimiliki oleh sebuah mikrokernel merupakan keberadaan
mekanisme Komunikasi antarproses yang handal, dan disain pengatur ingatan virtual yang
memungkinkan manajemen ingatan dan menerapkan pertukaran alamat (swapping) secara dengan
terjamin. Selanjutnya, karena pada yang belakang sekalinya semua layanan sistem operasi dipanggil
oleh program yang berjalan pada modus user menciptakan tingkat efisiensi mekanisme komunikasi
antar program yang terdapat pada sebuah mikrokernel dijadikan paling penting.

Unjuk kerja
Pada sistem berbasis mikrokernel, permintaan atas suatu layanan melalaui IPC sebenarnya
membutuhkan sumber daya yang lebih akbar dibandingkan pada sistem dengan kernel berbasis
monolitik yang hanya memakai pemanggilan tunggal secara internal sistem. Dengan demikian
unjuk kerja sistem berbasis mikrokernel mungkin menimbulkan potensi masalah, sbg contoh, unjuk
kerja mikrokernel generasi pertama, Mach dan Chorus, menunjukkan hasil yang mengecewakan.
[3]
 Namun, Jochen Liedtke menunjukkan bahwa masalah unjuk kerja Mach lebih terkait pada
kesalahan disain dan implementasi. Melewati demonstrasi yang ditunjukkannya pada mikrokernel
L4, ia berhasil menujukkan bahwa dengan memakai disain dan implementasi yang dirancang
dengan baik serta konsisten dalam menerapkan prinsip-prinsip minimalitas, permasalahan yang
terkait dengan IPC bisa diminimalisir.[4][5][6]

Keamanan
Manfaat tingkat keamanan yang lebih baik atas pengimplementasian mikrokernel seringkali
didiskusikan.[7][8] Dalam konteks keamanan, prinsip minimalitas mikrokernel merupakan suatu
konsekuensi manfaat langsung atas prinsip kewenangan minimal (least privilege), terkait dengan
implementasi seluruh kode hanya membutuhkan kewenangan minimal yang dibutuhkan sebatas
untuk menjalankan fungsionalitasnya. Sejauh kernel (kode yang berjalan dengan kewenangan
penuh atas perangkat keras) senantiasa dijadikan bidang dari basis komputasi tepercaya ( trusted
computing base - TCB), meminimalisirnya dijadikan hal yang sewajarnya dalam disain keamanan
terkendali.

Nanokernel
Dalam ilmu komputer, istilah nanokernel atau picokernel lebih mengarah pada:

 Sebuah kernel dengan total jumlah kode, yang berjalan dalam modus kewenangan penuh
atas perangkat keras, paling kecil. Istilah picokernel kadang-kadang digunakan untuk
lebih menekankan pada kecilnya ukuran. Sementara istilah nanokernel pertama kali
dinyatakan oleh Jonathan S. Shapiro dalam makalah The KeyKOS NanoKernel
Architecture yang merupakan respon tajam atas mikrokernel Mach, yang mengklaim
mikrokernal meski kode yang berada bersifat monolitik, tidak terstruktur, dan lebih
lamban dari sistem yang berada sebelumnya.
 Sebuah virtualisasi lapisan yang terdapat pada sistem operasi; lebih tepatnya mengacu pada
sebuah hypervisor
 Sebuah abstraksi lapisan perangkat keras yang bekerja pada bidang tingkat-terbawah dari
kernel.

Referensi
1. ^ Liedtke, Jochen (September 1996). "Towards Real Microkernels". Communications of the
ACM 39 (9): 70–77. 
2. ^ Heiser, Gernot; Uhlig, Volkmar and LeVasseur, Joshua (January 2006). "Are Virtual-
Machine Monitors Microkernels Done Right?" (PDF). ACM SIGOPS Operating Systems
Review (ACM) 40 (1): 95–99. doi:10.1145/1113361.1113363. 
3. ^ Chen, Bradley; Bershad, Brian (December 1993). "The Impact of Operating System
Structure on Memory System Performance". 14th ACM Symposium on Operating System Principles:
120–33. 
4. ^ Liedtke, Jochen; Elphinstone, Kevin; Schönberg, Sebastian; Härtig, Hermann; Heiser,
Gernot; Islam, Nayeem; Jaeger, Trent (May 1997). "Achieved IPC performance (still the foundation
for extensibility)". 6th Workshop on Hot Topics in Operating Systems: 28–31, Cape Cod, MA, USA:
IEEE. 
5. ^ Gray, Charles; Chapman, Matthew; Chubb, Peter; Mosberger-Tang, David; Heiser, Gernot
(April 2005). "Itanium—a system implementor's tale". USENIX Annual Technical Conference: 264–
278. 
6. ^ van Schaik, Carl; Heiser, Gernot (January 2007). "High-performance microkernels and
virtualisation on ARM and segmented architectures". 1st International Workshop on Microkernels
for Embedded Systems: 11–21, Sydney, Australia: NICTA. Diakses pada 2007-04-01. 
7. ^ Tanenbaum, Andrew S., Tanenbaum-Torvalds debate, part II
8. ^ Tanenbaum, A., Herder, J. and Bos, H. (May 2006).

Bacaan lanjutan
 (Inggris) scientific articles about microkernels, termasuk:
 (Inggris) Dan Hildebrand (1992). "An Architectural Overview of QNX". Proceedings
of the Workshop on Micro-kernels and Other Kernel Architectures : 113–126.
ISBN 1-880446-42-1.  - the basic QNX reference.
 (Inggris) Tanenbaum, A., Herder, J. and Bos, H. (May 2006). "Can We Make
Operating Systems Reliable and Secure?". Computer: 44–51.  -the basic reliable
reference.
 (Inggris) Black, D.L., Golub, D.B., Julin, D.P., Rashid, R.F., Draves, R.P., Dean, R.W.,
Forin, A., Barrera, J., Tokuda, H., Malan, G., and Bohman, D. (March 1992).
"Microkernel Operating System Architecture and Mach". J. Of Information
Processing. 14(4).  - the basic Mach reference.
 (Inggris) MicroKernel page from the Portland Pattern Repository
 (Inggris) The Tanenbaum-Torvalds Debate, 1992.01.29
 (Inggris) Tanenbaum, A. S. "Can We Make Operating Systems Reliable and Secure?".
 (Inggris) Torvalds, L. Linus Torvalds about the microkernels again, 2006.05.09
 (Inggris) Shapiro, J. "Debunking Linus's Latest".
 (Inggris) Tanenbaum, A. S. "Tanenbaum-Torvalds Debate: Part II".

Anda mungkin juga menyukai