MAKALAH
SISTEM OPERASI
Judul
: Kernel
Dosen
Pengampu : Keukeu Rohendi, S.Kom, M.Kom.

Reoza Gustiadi (141100123)
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
DAFTAR
ISI
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]
![]() |
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.[5]
B. 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.[6]
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.[7]
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.[8]
C. 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.[9]
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.[10]
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.[11]
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.
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.[13]
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.[14]
D. 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.[15]
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.
Ø 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).[17]
E. 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.[18]
F.
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.[19]
G. 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.[20]
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.[21]
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] Santoso, Budi
Halus. Buku Perancangan Sistem Operasi.
Yogyakarta : ANDI Yogyakarta. 2005. Hlm 2.
[2]https://id.wikipedia.org/wiki/Kernel_(ilmu_komputer)
[4]http://ghadinkz23.blogspot.co.id/2011/10/pengertian-kernel.html
[5]https://id.wikipedia.org/wiki/Kernel_(ilmu_komputer)
[6]http://ichsantcb.blogspot.co.id/2013/03/pengertian-dan-fungsi-kernel.html
[7]Ibid
[8]Ibid
[9]http://os-assignment.blogspot.co.id/2013/07/kernel-dan-konsep-dasar-sistem-operasi.html
[10]Ibid
[11]Ibid
[12]Ibid
[13]Ibid
[14]Ibid
[15]http://beckellroom.blogspot.co.id/2009/01/pengertian-tentang-kernel-kernel-adalah.html
[16]Ibid
[17]Ibid
[18]http://irvan999.blogspot.co.id/2009/03/konsep-kernel-dan-shell.html
[19]https://rhieyouedogawa.wordpress.com/2010/03/04/struktur-kernel/
[20]Hariyanto,
Bambang. Buku Sistem Operasi (Edisi
Kedua). Bandung : INFORMATIKA Bandung. 2000. Hlm 80 – 81.
[21]Ibid
Tidak ada komentar:
Posting Komentar