Mungkin ada yang bertanya
apa perbedaananatara Windows dan Linux? Atau ada juga yang bertanya perbedaan
antar Linux dan Unix ? Atau juga yang bertanya kenpa Apple menuduh Google,
bahwa Os android menjiplak I’OS dari iPhone. Padahal kalau dilihat sekilas sama
saja. Iya kesemuaanya itu adalah system Operasi, tetapi apa yang membedakanya .
Google menolak tuduhan dari Apple personal penjiplakan dari Android, karena
Google mengatkan Android menggunkan siste Kern; yang mereka tulis sendiri dan
tidak menjiplak atau menggunakan Kernel dari OS dari Apple.
Dan persoalan dari system kernel
inilah yang membedakan secara dasar dari semua system Operasi. Lalu apa Kernel
itu? Seberapa penting fungsi kernel itu?
Kernel itu apa? Kernel
adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sietem
operasi. Tugasnya melayani berbagai macam program aplikasi untuk
mengaksesperangkat keras computer secara aman.
Selain itu, fungsi Kernel
juaga untuk me-manage atau mangatur kapan dan berapa lama sebiah program dapat
menggunakan satu bagian perangkat keras.
Kernel dibagi ke dalam 4
bagian yang secara desain berbeda
- Kernel Monolitik, Kerenel monolotik mengintegrasikan banyak fungsi didalam kernel menyediakan lapisan abstrkasi Hardware secara penuh terhadap perangkat keras yang berada di bawah system operasi.
- Mikronel, Mikronel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan si atasnya untuk melakukan beberapa fungsionalitas lainya.
- Kernel Hybrida, kernel hybrida terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.
- Exokernel, Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat megakses hardware secara langsung. Dalan pendekatnya desain exornel, library yang dimiliki oleh system operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.
Di dalam Kernel
- Proses Management, bagian ini kernel mengatur dari proses antara aplikasi dan hardware. Kapan mereka akan keluar masuk untuk melakukan proses.
- Memory Management, kernel akan mengatur proses penggunaan memori oleh aplikasi. Jadi kernel akan mengatur kapan aplikasi akan menggunakan memori, dan akan menggunakan addressing mana yang akan dipakai.
- Device Management, Kernel juaga akan berfungsi untuk menjadi jembatan penggunaan dari hardware yang berada dalam system. Dengan begini hardware bias dikenali dan digunakan oleh aplikasi dan system operasi.
- Sytems call, pada bagian ini kernel mengatur antara hubungan dari aplikasi dan system operasi.
Pembagian kernel ini menjadi perdebatab panjang antara tanenbaum dan
torvald, yangkeduanya merupakan arsitek dari system operasi. Jika linus
torvald, menjadi arsitek dari kelahiran dari linux dan Tanenbaum menjadi
arsitek dari system operasi MINIX.
Monolitik
Di dalam system monolitikdiartikan sebagai sebuah antarmuka vistual yang
berada pada tingkat tinggi di atas perangkat keras. Monolitik ini dilengkapi
dengan sekumpulan primitive atau system call untuk mengimplementasikan layanan –
layanan system operasi, seperti halnya manajemen proses,konsekuensi, dan
manajemen memori pada modul – modul kernel yang berjalan didalam mode
supervisor.
Mikrokernel
Mikrokernel menggunakan pendekatan berbeda dalam desainnya, karena itu
mikokernel berisi sebuah abstraksi yang sederhana terhadap hardware, dengan
sekumpulan primitive, atau system call yang dapat digunakan untuk membuat
sebuah system operasi agar dapat berjalan, dengan layanan – layanan seperti
manajemen thread, komuniskai antar address space, dan komunikasi antar proses.
Lyanan yang biasanya disediakan oleh kernel, seperti halnya dukungan jaringan,
pada pendekatan microkernel justru di implementasikan diruangan pengguna atau
server. Contohnya Minix buatan Andrew taneunbaum, dan QNX yang menjadi fondasi
dari BlackBerry 10.
Perbedaan keduanya inilah yang menjadi perdebatan panjang anatara Linus
torvald dan Andrew tanenbaum. Keduanya memiliki pendapat yang berbeda mengenai
sebuah system anatara MINIX dan LINUX. Meskipun perdebatab ini sudah
dibicarakan 20 tahun lalu, dan sudah mulai dilupakan, tetapi esensi mengenai
pembicaraan keduanya masih menjadi sebuah pelajaran. Karena didalam perdebatan
keduanya kita mengenal system Monolitik yang digunakan oleh Linux dan system Mikrokernel
yang digunakan MINIX, dan mengenai perbedaan keduanya.
Kernel Hibrida
Kernel hibrida aslinya adalah mikrokernel yang
memiliki kode yang tidak menunjukkan bahwa kernel tersebut adalah mikrokernel
di dalam ruangan kernel-nya.
Kode-kode tersebut ditaruh di dalam ruangan kernel agar dapat dieksekusi lebih cepat
dibandingkan jika ditaruh di dalam ruangan user.
Hal ini dilakukan oleh para arsitek sistem operasi sebagai solusi awal terhadap
masalah yang terjadi di dalam mikrokernel: kinerja.
Beberapa
orang banyak yang bingung dalam membedakan antara kernel hibrida dan kernel
monolitik yang dapat memuat modul kernel setelah proses booting,
dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas
berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari
konsep desain kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki
secara spesifik memiliki teknologi pertukaran pesan (message passing)
yang digunakan dalam mikrokernel, dan juga dapat memindahkan beberapa kode yang
seharusnya bukan kode kernel ke dalam ruangan kode kernel karena alasan
kinerja.
Di
bawah ini adalah beberapa sistem operasi yang menggunakan kernel hibrida:
·
BeOS, sebuah sistem operasi yang memiliki
kinerja tinggi untuk aplikasi multimedia.
·
Novell NetWare,
sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan berbasis IBM PC dan kompatibelnya.
·
Microsoft Windows NT (dan semua keturunannya).
Exokernel
Sebenarnya, Exokernel bukanlah
pendekatan kernel sistem operasi yang umum—seperti halnya microkernel atau
monolithic kernel yang populer, melainkan sebuah struktur sistem operasi yang
disusun secara vertikal.
Ide di
balik exokernel adalah untuk memaksa abstraksi yang dilakukan oleh developer
sesedikit mungkin, sehingga membuat mereka dapat memiliki banyak keputusan
tentang abstraksi hardware. Exokernel biasanya berbentuk sangat kecil, karena
fungsionalitas yang dimilikinya hanya terbatas pada proteksi dan penggandaan
sumber daya.
Kernel-kernel
klasik yang populer seperti halnya monolithic dan microkernel melakukan
abstraksi terhadap hardware dengan menyembunyikan semua sumber daya yang berada
di bawah hardware abstraction layer atau di balik driver untuk hardware.
Sebagai contoh, jika sistem operasi klasik yang berbasis kedua kernel telah
mengalokasikan sebuah lokasi memori untuk sebuah hardware tertentu, maka
hardware lainnya tidak akan dapat menggunakan lokasi memori tersebut kembali.
Exokernel
mengizinkan akses terhadap hardware secara langsung pada tingkat yang rendah:
aplikasi dan abstraksi dapat melakukan request sebuah alamat memori spesifik
baik itu berupa lokasi alamat physical memory dan blok di dalam hard disk.
Tugas kernel hanya memastikan bahwa sumber daya yang diminta itu sedang berada
dalam keadaan kosong—belum digunakan oleh yang lainnya—dan tentu saja
mengizinkan aplikasi untuk mengakses sumber daya tersebut. Akses hardware pada
tingkat rendah ini mengizinkan para programmer untuk mengimplementasikan sebuah
abstraksi yang dikhususkan untuk sebuah aplikasi tertentu, dan tentu saja
mengeluarkan sesuatu yang tidak perlu dari kernel agar membuat kernel lebih
kecil, dan tentu saja meningkatkan performa.
Exokernel
biasanya menggunakan library yang disebut dengan libOS untuk melakukan
abstraksi. libOS memungkinkan para pembuat aplikasi untuk menulis abstraksi
yang berada pada level yang lebih tinggi, seperti halnya abstraksi yang
dilakukan pada sistem operasi tradisional, dengan menggunakan cara-cara yang
lebih fleksibel, karena aplikasi mungkin memiliki abstraksinya masing-masing.
Secara teori, sebuah sistem operasi berbasis Exokernel dapat membuat sistem
operasi yang berbeda seperti halnya Linux, UNIX, danWindows dapat berjalan di atas sistem operasi
tersebut.
oke ini in, mantap
BalasHapussolder uap