MAKALAH
SISTEM OPERASI
Judul: Kernel
Dosen
Pengampu : Keukeu Rohendi, S.Kom, M.Kom.
Disusun Oleh : Kelompok II
RAHMADINO
PUTRA
151100039
YAYASAN AMAL BAKTI MUKMIN PADANG
SEKOLAH TINGGI MANAJEMEN INFORMATIKA KOMPUTER
STMIK INDONESIA
PADANG
TAHUN AJARAN
2016/2017
KATA PENGANTAR
Segala puji
bagi Allah SWT. yang telah memberikan kami kemudahan sehingga dapat
menyelesaikan makalah ini. Tanpa pertolongan-Nya mungkin penyusun tidak akan
sanggup menyelesaikannya dengan baik. Shalawat dan salam semoga terlimpah
curahkan kepada baginda tercinta kita yakni Nabi Muhammad SAW.
Makalah ini disusun dan dibuat
berdasarkan materi-materi yang ada dan kami sajikan berdasarkan pengamatan dari
berbagai sumber. Makalah yang berjudul “Kernel” ini pun bertujuan agar dapat
menambah pengetahuan dan wawasan Mahasiswa/i, serta agar dapat memahami secara
menyeluruh pentingnya memahami Kernel dan dapat diaplikasikan dengan baik.
Walaupun makalah ini tidak sempurna dan memerlukan perbaikan tapi juga memiliki
detail yang cukup jelas bagi pembaca.
Penyusun juga mengucapkan terima
kasih kepada Dosen Sistem Operasi yakni Bapak Keukeu Rohendi, S.Kom, M.Kom.
yang telah
membimbing penyusun agar dapat mengerti tentang bagaimana cara menyusun makalah
yang baik dan sesuai kaidah.
Semoga makalah ini dapat memberikan
pengetahuan yang lebih luas kepada pembaca. Walaupun makalah ini memiliki
kelebihan dan kekurangan. Penyusun membutuhkan kritik dan saran dari pembaca
yang membangun. Atas perhatian dan partisipasi dari Bapak dan Ibu dosen serta
teman-teman sekalian, penyusun mengucapkan terima kasih.
Padang, 19
Oktober 2016
Penyusun,
Kelompok II
KATA PENGANTAR..............................................................................................
i
DAFTAR ISI.........................................................................................................
ii
PEMBAHASAN..............................................................................................
.....1
A. Definisi Kernel.....................................................................................
1
B. Fungsi Kernel.......................................................................................
3
C.
Kategori Kernel....................................................................................
5
D.
Sejarah Kernel......................................................................................
10
E. Konsep Kernel......................................................................................
12
F.
Struktur Kernel......................................................................................13
G.
Kedudukan Kernel
dalam Sistem Operasi............................................
13
PENUTUP..............................................................................................................
14
A. Kesimpulan............................................................................................
14
B. Kritik dan Saran.....................................................................................
14
DAFTAR
PUSTAKA
PEMBAHASAN
A. Definisi Kernel
Kernel merupakan jantung dari sistem
operasi. Semua proses input dan output yang berlangsung selama komputer
berjalan diatur oleh kernel, seperti pembacaan dan penulisan terhadap disk,
manajemen memory, dan penjadwalan program aplikasi.[1]
Kernel merupakan program komputer yang
mengatur permintaan akan input/output dari perangkat lunak, dan menerjemahkannya
ke dalam instruksi-instruksi pada CPU, ataupun komponen elektronik lainnya
dalam sebuah komputer. Kernel merupakan bagian yang sangat mendasar pada sistem
operasi komputer masa kini.Karena akses terhadap perangkat keras terbatas,
sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang
bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu
program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut
dinamakan sebagai multiplexing.
Akses kepada
perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena
itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut
merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses
kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada
akhirnya memudahkan pekerjaan programer.
Pada
dasarnya, untuk menjalankan sebuah komputer tidak harus menggunakan kernel
sistem operasi. Sebuah program dapat saja langsung dijalankan oleh komputer,
yaitu saat sebuah program komputer akan digunakan tanpa bantuan abstraksi
perangkat keras atau bantuan sistem operasi. Teknik ini umumnya digunakan oleh
komputer-komputer generasi awal, sehingga bila ingin berpindah dari satu
program ke program lain, pengguna harus mereset dan menjalankan kembali
program-program tersebut.[2]
Adapun
definisi dari lain Kernel :
Ø Kernel
merupakan Sebuah perangkat yang berfungsi sebagai mediator atau sebuah
perangkat yang membuat komunikasi antara perangkat lunak dan perangkat keras
komputer.
Ø Kernel
adalah sebuah perangkat yang menyediakan pelayanan terhadap sistem seperti
pengaturan memori untuk proses yang sedang berjalan, pengaturan file dan
pengaturan inpu dan output pada komputer.[3]
[1] Santoso, Budi
Halus. Buku Perancangan Sistem Operasi.
Yogyakarta : ANDI Yogyakarta. 2005. Hlm 2.
[2]https://id.wikipedia.org/wiki/Kernel_(ilmu_komputer)
Sebuah kernel sistem operasi tidak
bisa dicontoh dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat
langsung dijalankan secara langsung di dalam sebuah mesin (contohnya
adalah CMOS Setup) sehingga
para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem
operasi atau hardware abstraction. Cara kerja seperti ini, adalah
cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada
sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna
harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya
untuk berpindah program, dari satu program ke program lainnya.
Selanjutnya, para pembuat program
tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam
komputer, seperti halnya loader atau debugger, atau
dimuat dari dalam ROM (Read-Only Memory). Seiring
dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan,
metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.[1]
A. Fungsi Kernel
Fungsi utama kernel adalah untuk mengelola sumber daya komputer dan
memungkinkan program lain untuk menjalankan dan menggunakan sumber daya koputer
tersebut. Untuk menjalankan aplikasi suatu kernel pertama kali harus
menyediakan space address untuk aplikasi lalu men-load file yang berisi kode
aplikasi ke dalam memory, mempersiapkan stack untuk program dan percabangan ke
lokasi lain untuk program, dan kemudian baru memulai eksekusi program.
Berikut beberapa
fungsi kernel:
1.
Pengurusan proses
Tugas utama sebuah system
pengoperasian kernel ialah membenarkan aplikasi yang lain untuk berjalan dan
menyokong mereka dengan ciri-ciri tambahan, seperti pengabstrakan perkakasan,
untuk menjalan proses, kernel mesti memuat turun failnya kepada ingatan,
menyediakan stack untuk program dan
pergi ke lokasi yang diberikan di dalam program, ini memulakan perjalanan
sesebuah program, cara ini dipanggil scheduling. Dalam sistem berbilang kerja, kernel secara
asasnya akan memberikan setiap program sedikit masa dan menukarkan dari proses
ke proses dengan cepat dengan itu ia akan muncul kepada pengguna jika proses
ini dijalankan secara terus menerus. Kernel mesti juga menyediakan proses ini
untuk berkomunikasi, ini dikenali sebagai inter-process
communication. Ini kemungkinan ada
multipemprosesan yang menyokong kernel tersebut.[2]
2.
Pengurusan ingatan
Kernel mempunyai akses penuh dalam ingatan
sistem dan menyediakan cara-cara untuk
membenarkan userland program untuk mengakses memori ini dengan selamat. Cara
pertama untuk mengurus ingatan ialah virtual addressing, biasanya arkib dengan mukasurat atau segmentation. Virtual addressing membenarkan kernel untuk memberikan alamat fizikal
yang muncul sebagai alamat yang lain iaitu virtual address, ini membenarkan setiap program mempercayai ia
hanya satu program (sebahagian daripada kernel) yang berjalan, dan ini
mengelakkan aplikasi daripada berlanggar antara satu sama lain.
3.
Pengurusan peranti
Dalam arahan untuk melakukan
sesuatu tugas, kernel perlu untuk mengakses perbagai peranti yang bersambungan
di dalam komputer, sebagai contoh, dalam arahan untuk memaparkan pengguna
apa-apa sahaja, pemacu monitor perlu untuk muncul, peranti ini boleh dikawal
melalui pemacu, di mana ia mesti dibuat oleh pembangun dan/atau disediakan oleh
pengilang sesuatu peranti tersebut.
Pengurus peranti pertamanya akan melakukan semakan
keatas bas perkakasan yang berbeza (seperti USB, PCI), dalam arahan unruk
mengesan semua peranti yang telah dipasang dan kemudiannya mencari pemacu yang
bersesuaian, selepas ini, semuanya bergantung kepada jenis kernel dan rekaan
kernel.
4.
Sistem panggilan
Dalam arahan untuk menyediakan kerja yang berguna,
program userland mesti mempunyai akses kepada semua perkhidmatan yang
disediakan oleh kernel. Ini dilaksanakan secaar berbeza-beza oleh kernel yang
berlainan, tetapi mesti disediakan oleh C library, dimana ia menukarkan
kelemahan kesemua system panggilan, sama ada diberikan atau melalui memori yang
dikongsi.[3]
5.
Shell
Shell adalah
perisian atau aplikasi yang menjadi alat untuk perhubungan antara pangguna
untuk berhubung dengan sistem operasi, shella akan membaca apa sahaja yang
dimasukkan oleh pengguna dan memahaminya sebagai arahan untuk menjalankan
perisian lain, memanipulasi fail, dan memberikan output. Shell juga turut
dikenali sebagai command line interface. Terdapat pelbagai shell
untuk Unix/Linux. Korn shell
atau POSIX shell adalah shell yang biasa di kebanyakkan jenis unix atau linux.[4]
B. Kategori Kernel
v Kernel monolitik
Kernel monolitik mengintegrasikan
banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap
perangkat keras yang berada di bawah sistem operasi.Pendekatan kernel monolitik
didefinisikan sebagai sebuah antarmuka virtual yang berada pada tingkat tinggi
di atas perangkat keras, dengan sekumpulan primitif atau system call untuk
mengimplementasikan layanan-layanan sistem operasi, seperti halnya manajemen
proses, konkurensi (concurrency), dan manajemen memori pada modul-modul
kernel yang berjalan di dalam mode supervisor.
Meskipun jika setiap modul memiliki
layanan operasi-operasi tersebut terpisah dari modul utama, integrasi kode yang
terjadi di dalam monolithic kernel sangatlah kuat, dan karena semua modul
berjalan di dalam address space yang sama, sebuah bug dalam
salah satu modul dapat merusak keseluruhan sistem. Akan tetapi, ketika
implementasi dilakukan dengan benar, integrasi komponen internal yang sangat
kuat tersebut justru akan mengizinkan fitur-fitur yang dimiliki oleh sistem
yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat sistem
operasi dengan monolithic kernel sangatlah efisien—meskipun
sangat sulit dalam pembuatannya.[5]
Pada sistem operasi modern yang
menggunakan monolithic kernel, seperti halnya Linux, FreeBSD,
Solaris, dan Microsoft Windows, dapat memuat modul-modul yang dapat dieksekusi
pada saat kernel tersebut dijalankan sehingga mengizinkan
ekstensi terhadap kemampuan kernel sesuai kebutuhan, dan tentu saja dapat
membantu menjaga agar kode yang berjalan di dalam ruangan kernel (kernel-space)
seminim mungkin.
Di bawah ini ada beberapa sistem
operasi yang menggunakan Monolithic kernel:
§ Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari
sistem operasi UNIX keluarga BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
§ Kernel sistem operasi GNU/Linux, Linux.
§ Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).
v Mikrokernel
Mikrokernel menyediakan sedikit saja
dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di
atasnya yang disebut dengan server untuk melakukan beberapa fungsionalitas
lainnya.Pendekatan mikrokernel berisi sebuah abstraksi yang sederhana terhadap
hardware, dengan sekumpulan primitif atau system call yang dapat digunakan untuk
membuat sebuah sistem operasi agar dapat berjalan, dengan layanan-layanan
seperti manajemen thread, komunikasi antar address space, dan
komunikasi antar proses. Layanan-layanan lainnya, yang biasanya disediakan oleh
kernel, seperti halnya dukungan jaringan, pada pendekatan microkernel justru
diimplementasikan di dalam ruangan pengguna (user-space), dan disebut
dengan server.Server atau disebut sebagai peladen adalah sebuah program,
seperti halnya program lainnya. Server dapat mengizinkan sistem operasi agar
dapat dimodifikasi hanya dengan menjalankan program atau menghentikannya.[6]
Sebagai contoh, untuk sebuah mesin
yang kecil tanpa dukungan jaringan, server jaringan (istilah server di
sini tidak dimaksudkan sebagai komputer pusat pengatur jaringan) tidak perlu
dijalankan. Pada sistem operasi tradisional yang menggunakan monolithic
kernel, hal ini dapat mengakibatkan pengguna harus melakukan rekompilasi
terhadap kernel, yang tentu saja sulit untuk dilakukan oleh pengguna biasa yang
awam.
Dalam teorinya, sistem operasi yang
menggunakan microkernel disebut jauh lebih stabil dibandingkan
dengan monolithic kernel, karena sebuah server yang
gagal bekerja, tidak akan menyebabkan kernel menjadi tidak dapat
berjalan, dan server tersebut akan dihentikan oleh kernel
utama. Akan tetapi, dalam prakteknya, bagian dari system state dapat
hilang oleh server yang gagal bekerja tersebut, dan biasanya untuk melakukan
proses eksekusi aplikasi pun menjadi sulit, atau bahkan untuk menjalankan
server-server lainnya.
Sistem operasi yang menggunakan microkernel umumnya
secara dramatis memiliki kinerja di bawah kinerja sistem operasi yang
menggunakan monolithic kernel. Hal ini disebabkan oleh adanya overhead yang
terjadi akibat proses input/output dalam kernel yang ditujukan
untuk mengganti konteks (context switch) untuk memindahkan data antara
aplikasi dan server.
Beberapa sistem operasi yang menggunakan mikrokernel:
§ IBM AIX, sebuah versi UNIX dari IBM
§ Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
§ Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP,
OPENSTEP, dan Mac OS/X
§ Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
§ Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone,
handheld device, embedded device, dan PDA Phone.[7]
v Kernel hibrida
Kernel hibrida adalah pendekatan
desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat
beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan
performanya.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).[8]
v Exokernel
Exokernel menyediakan hardware
abstraction secara minimal, sehingga program dapat mengakses hardware secara
langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem
operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan
dalam desain monolithic kernel. 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 dibalik 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.[9]
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, dan Windows dapat berjalan di atas sistem operasi tersebut.[10]
C. Sejarah Kernel
Dari keempat kategori
kernel yang disebutkan diatas, kernel Linux termasuk kategori monolithic
kernel. Kernel Linux berbeda dengan sistem Linux. Kernel Linux merupakan sebuah
perangkat lunak orisinil yang dibuat oleh komunitas Linux, sedangkan sistem Linux,
yang dikenal saat ini, mengandung banyak komponen yang dibuat sendiri atau
dipinjam dari proyek pengembangan lain.
Kernel Linux pertama
yang dipublikasikan adalah versi 0.01, pada tanggal 14 Maret 1991. Sistem
berkas yang didukung hanya sistem berkas Minix. Kernel pertama dibuat
berdasarkan kerangka Minix (sistem UNIX kecil yang dikembangkan oleh Andy
Tanenbaum). Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara
tepat.
Pada tanggal 14 Maret
1994 dirilis versi 1.0, yang merupakan tonggak sejarah Linux. Versi ini adalah
kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux. Fitur baru
terbesar yang disediakan adalah jaringan. Versi 1.0 mampu mendukung protokol
standar jaringan TCP/IP. Kernel 1.0 juga memiliki sistem berkas yang lebih baik
tanpa batasan-batasan sistem berkas Minix. Sejumlah dukungan perangkat keras
ekstra juga dimasukkan ke dalam rilis ini. Dukungan perangkat keras telah
berkembang termasuk diantaranya floppy-disk, CD-ROM, sound card, berbagai mouse,
dan keyboard internasional.[11]
Dukungan juga diberikan
terhadap modul kernel yang loadable dan unloadable secara dinamis. Satu tahun
kemudian dirilis kernel versi 1.2. Kernel ini mendukung variasi perangkat keras
yang lebih luas. Pengembang telah memperbaharui networking stack untuk
menyediakan support bagi protokol IPX, dan membuat implementasi IP lebih
lengkap dengan memberikan fungsi accounting dan firewalling. Kernel 1.2 ini
merupakan kernel Linux terakhir yang PC-only. Konsentrasi lebih diberikan pada
dukungan perangkat keras dan memperbanyak implementasi lengkap pada
fungsi-fungsi yang ada.
Pada bulan Juni 1996,
kernel Linux 2.0 dirilis. Versi ini memiliki dua kemampuan baru yang penting,
yaitu dukungan terhadap multiple architecture dan multiprocessor architectures.
Kode untuk manajemen memori telah diperbaiki sehingga kinerja sistem berkas dan
memori virtual meningkat. Untuk pertama kalinya, file system caching
dikembangkan ke networked file systems, juga sudah didukung writable memory
mapped regions. Kernel 2.0 sudah memberikan kinerja TCP/IP yang lebih baik,
ditambah dengan sejumlah protokol jaringan baru. Kemampuan untuk memakai remote
netware dan SMB (Microsoft LanManager) network volumes juga telah ditambahkan
pada versi terbaru ini. Tambahan lain adalah dukungan internal kernel threads,
penanganan dependencies antara modul-modul loadable, dan loading otomatis modul
berdasarkan permintaan (on demand). Konfigurasi dinamis dari kernel pada run
time telah diperbaiki melalui konfigurasi interface yang baru dan standar.
Semenjak Desember 2003,
telah diluncurkan Kernel versi 2.6, yang dewasa ini (2008) telah mencapai patch
versi 2.6.26.1 (http://kambing.ui.edu/kernel-linux/v2.6/). Hal-hal yang berubah
dari versi 2.6 ini ialah:
Ø Subitem
M/K yang dipercanggih.
Ø Kernel
yang pre-emptif.
Ø Penjadwalan
Proses yang dipercanggih.
Ø Threading
yang dipercanggih.
Ø Implementasi
ALSA (Advanced Linux Sound Architecture) dalam kernel.[12]
Ø Dukungan
sistem berkas seperti: ext2, ext3, reiserfs, adfs, amiga ffs, apple macintosh
hfs, cramfs, jfs, iso9660, minix, msdos, bfs, free vxfs, os/2 hpfs, qnx4fs,
romfs, sysvfs, udf, ufs, vfat, xfs, BeOS befs (ro), ntfs (ro), efs (ro).[13]
D. Konsep Kernel
Kernel adalah jembatan antara hardware dan
aplikasi-aplikasi yang menerjemahkan bahasa software sehingga mampu dimengerti
oleh hardware dan hardware akan segera memprosesnya sesuai dengan permintaan.
Akibatnya hal tersebut memungkinkan pengguna untuk menggunakan atau bekerja
dengan komputernya melalui software. Hal-hal yang dilakukan oleh Kernel :
§ Interrupt handler, yang mampu menangani I/O
request
§ Memory management untuk melakukan hal-hal tersebut,
beberapa orang/kelompok mempunyai pertimbangan dan arahan pengembangan yang
berbeda. Hal ini yang menyebabkan Operating System muncul dalam berbagai jenis,
seperti :
·
Windows 3.11
dengan metoda non pre-emptive multitasking yang kemudian dikembangkan dalam
Windows 9x menjadi Pre-Emptive MultiTasking.
·
Windows yang
menggunakan Driver untuk mengakses hardware, berbeda dengan Unix lainnya yang
memasukkannya ke dalam kernel. Linux, MacOS dan BeOS adalah hibrid dari dua konsep ini, sebagian
(yang esensial) dimasukkan ke dalam kernel dan sisanya dijadikan module-module
(karena tidak semua komputer perlu/sama).
Sedangkan shell adalah jembatan antara User Input dengan Kernel, berfungsi
memberikan fasilitas pada Pengguna agar bisa berinteraksi dengan Komputer (baik
Software maupun Hardware). Ilustrasi Shell: Shell dalam Windows95 dikenal
sebagai Windows Explorer, sedangkan untuk Windows 98 telah diubah menjadi Internet
Explorer (4.0 dan 5.0). Alternatif lain shell untuk Windows adalah LiteStep,
yang memberikan tampilan Windows menyerupai XWindow Afterstepnya Unix. Shell
lebih dikenal oleh para pengguna Unix, antara lain : csh, tcsh, bash, pdksh,
sh, dan lain-lain.[14]
E. Struktur
Kernel
Pada sistem operasi Linux juga memiliki struktur kernel yang bisa dikelompokkan
menjadi beberapa kernel. Adapun strukturnya adalah sebagai berikut :
1.
Penjadwal Proses
(Process Scheduler), bertanggung jawab mengatur proses dalam mengakses CPU,
memastikan bahwa masing-masing proses memperoleh sumber daya yang layak, dan
memastikan bahwa hardware akan bereaksi berdasarkan perintah kernel tepat pada
waktunya.
2.
Manajer Memori
(Memory Manager), mengatur beberapa proses saling berbagi memori secara aman,
dan bahkan mendukung penggunaan memori lebih besar dari pada memori fisik. Hal
ini dilakukan dengan swapping memori yang tidak dipergunakan ke dalam media
simpan yang permanen, dan dikembalikan lagi ke memori fisik saat akan
dimanfaatkan.
3.
File Sistem Virtual
(Virtual File Systems), mengabstrasikan semua device ke dalam file sistem yang
dikenal. Bahkan sebagai tambahan, VFS juga mendukung file sistem dari sistem
operasi lain.
4.
Interface
Jaringan (Network Interface), memberikan akses kepada beberapa standar jaringan
dan berbagai macam hardware jaringan.
5.
Komunikasi Antar
Proses (Inter Process Communication), mengatur mekanisme komunikasi proses satu
dengan lainnya.[15]
F. Kedudukan
Kernel dalam Sistem Operasi
Kernel sistem operasi adalah di luar proses. Ketika proses running
diinterupsi atau memanggil system call,
maka konteks pemroses proses ini disimpan dan kendali dilewatkan ke kernel.
Sistem operasi mempunyai daerah memori dan stack sendiri untuk pemanggilan
prosedur. Sistem operasi melakukan fungsi yang diinginkan dan mengembalikan
konteks proses yang diinterupsi. Eksekusi proses pemakai yang diinterupsi
dilanjutkan.[16]
Alternatif lain, sistem operasi menyimpan lingkungan proses, melakukan
penjadwalan dan menjadwalkan proses lain. Konsep proses hanya diterapkan untuk
program-program pemakai. Kode sistem operasi dieksekusi sebagai entitas
terpisah, beroperasi pada mode kernel. Proses adalah non-kernel, sedangkan
sistem oeprasi adalah kernel yang bukan proses.[17]
PENUTUP
A. Kesimpulan
Kernel merupakan jantung dari sistem
operasi. Semua proses input dan output yang berlangsung selama komputer
berjalan diatur oleh kernel, seperti pembacaan dan penulisan terhadap disk,
manajemen memory, dan penjadwalan program aplikasi.Kernel merupakan program komputer yang
mengatur permintaan akan input/output dari perangkat lunak, dan
menerjemahkannya ke dalam instruksi-instruksi pada CPU, ataupun komponen
elektronik lainnya dalam sebuah komputer.Fungsi
utama kernel adalah untuk mengelola sumber daya komputer dan memungkinkan
program lain untuk menjalankan dan menggunakan sumber daya koputer tersebut.
Kernel terbagi dalam empat kategori : kernel monolitik, mikrokernel, kernel
hibrida dan exokernel.
Dari keempat kategori
kernel yang disebutkan diatas, kernel Linux termasuk kategori monolithic
kernel. Kernel Linux berbeda dengan sistem Linux. Kernel Linux merupakan sebuah
perangkat lunak orisinil yang dibuat oleh komunitas Linux, sedangkan sistem
Linux, yang dikenal saat ini, mengandung banyak komponen yang dibuat sendiri
atau dipinjam dari proyek pengembangan lain. Pada sistem operasi Linux juga memiliki struktur kernel yang bisa dikelompokkan
menjadi lima : penjadwalan proses, Manajer memori, File sistem virtual,
interface jaringan dan komunikasi antar proses.
B. Kritik dan Saran
Dalam
penyusunan makalah yang berjudul “Kernel” masih banyak terdapat kekurangan.
Terutama dalam hal sumber, materi dan penyajian. Semoga makalah ini bermanfaat
bagi kita semua dan dapat menjadi bahan rujukan dalam kegitan proses
perkuliahan.
Penulis berharap banyak
pada para pembaca yang budiman agar dapat memberikan kritik dan saran yang
membangun kepada penulis demi sempurnanya makalah ini dan penulisan makalah
dikesempatan selanjutnya.
DAFTAR
PUSTAKA
Hariyanto, Bambang. 2000. Sistem Operasi (Edisi Kedua). Bandung : INFORMATIKA Bandung.
Santoso, Budi Halus2005. Perancangan Sistem Operasi. Yogyakarta :
ANDI Yogyakarta.
http://www.teorikomputer.com/2016/01/pengertian-dan-fungsi-kernel-pada.html
https://rhieyouedogawa.wordpress.com/2010/03/04/struktur-kernel/
[1]https://id.wikipedia.org/wiki/Kernel_(ilmu_komputer)
[2]http://ichsantcb.blogspot.co.id/2013/03/pengertian-dan-fungsi-kernel.html
[3]Ibid
[4]Ibid
[5]http://os-assignment.blogspot.co.id/2013/07/kernel-dan-konsep-dasar-sistem-operasi.html
[6]Ibid
[7]Ibid
[8]Ibid
[9]Ibid
[10]Ibid
[11]http://beckellroom.blogspot.co.id/2009/01/pengertian-tentang-kernel-kernel-adalah.html
[12]Ibid
[13]Ibid
[14]http://irvan999.blogspot.co.id/2009/03/konsep-kernel-dan-shell.html
[15]https://rhieyouedogawa.wordpress.com/2010/03/04/struktur-kernel/
[16]Hariyanto,
Bambang. Buku Sistem Operasi (Edisi
Kedua). Bandung : INFORMATIKA Bandung. 2000. Hlm 80 – 81.
[17]Ibid
Tidak ada komentar:
Posting Komentar