Nama : Ni
Kade Mega Handayani.
Nim :
1605551030.
Dosen :
I Putu Agus Eka Pratama ST., MT.
Matakuliah : Network Operating System (
Pertemuan 8).
Universitas : Udayana, Fakultas
Teknik, Program Studi Teknologi Informasi.
Artikel
yang akan dibahas kali ini mengenai “Kernel dan Kernel Linux “, ditambah dengan
praktik uji coba tertait mengenal lebih jauh tentang kernel pada sistem operasi
Linux. Sebelum kita mulai kita kan mengulas kembali apa itu Kernel dalam sistem
operasi?Sistem
Operasi merupakan suatu bagian program yang berjalan setiap saat yang dikenal
dengan istilah kernel. Kernel adalah
suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi.
Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras
komputer secara aman.
FUNGSI DARI KERNEL
Adapun
beberapa fungsi dari kernel sebagai inti dari sistem operasi adalah sebagai
berikut :
Manajemen Proses
Proses
adalah sebuah program yang sedang dieksekusi. Sebuah proses membutuhkan
beberapa sumber daya untuk menyelesaikan tugasnya. Alokasi sumber daya tersebut
dikelola oleh Sistem Operasi. Umpamanya, walku CPU, memori, berkas-berkas, dan
perangkat-perangkat M/K. Ketika proses tersebut berhenti dijalankan, sistem
operasi akan mendapatkan kembali semua sumber daya yang bisa digunakan kembali.
Tugas
utama sebuah sistem pengoperasian kernel ialah membenarkan aplikasi yang lain
agar bisa berjalan dan mampu 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.
Pengurusan Ingatan (Proccesor)
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
muka surat atau segmentation. Virtual addressing membenarkan kernel untuk
memberikan alamat fizikal yang muncul sebagai alamat yang lain yaitu 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.
Pengurusan Peranti (Modul I/O)
Dalam
arahan untuk melakukan sesuatu tugas, kernel perlu untuk mengakses berbagai
peranti yang bersambungan di dalam komputer, sebagai contoh, dalam arahan untuk
memaparkan pengguna apa-apa saja, pemacu monitor perlu untuk muncul, peranti ini
boleh dikawal melalui pemacu, di mana piranti mesti dibuat oleh pembangun
dan/atau disediakan oleh pengilang sesuatu peranti tersebut.
Shell
Shell
adalah aplikasi yang menjadi alat untuk menghubungkan antara pangguna dengan sistem operasi, shell akan membaca apa
saja yang dimasukkan oleh pengguna dan memahaminya sebagai arahan untuk
menjalankan aplikasi lain, memanipulasi file, dan memberikan output. Shell juga
biasa dikenal sebagai command line interface.
KERNEL LINUX
Sejarah
Kernel Linux
Linux
adalah sebuah sistem operasi yang sangat mirip dengan sistem-sistem UNIX,
karena memang tujuan utama rancangan dari proyek Linux adalah UNIX compatible.
Sejarah Linux dimulai pada tahun 1991, ketika mahasiswa Universitas Helsinki,
Finlandia bernama Linus Benedict Torvalds menulis Linux, sebuah kernel untuk
prosesor 80386, prosesor 32-bit pertama dalam kumpulan CPU intel yang cocok
untuk PC.
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. 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. Sistem Linux terdiri dari tiga
bagian kode penting diantaranya sebagai berikut
Kernel
Bertanggung-jawab
memelihara semua abstraksi penting dari sistem operasi, termasuk hal-hal
seperti memori virtual dan proses-proses. Kernel Linux membentuk inti dari
sistem operasi Linux. Dia menyediakan semua fungsi yang diperlukan untuk
menjalankan proses, dan menyediakan layanan sistem untuk memberikan pengaturan
dan proteksi akses ke sumber daya perangkat keras. Kernel mengimplementasi
semua fitur yang diperlukan supaya dapat bekerja sebagai sistem operasi. Namun,
jika sendiri, sistem operasi yang disediakan oleh kernel Linux sama sekali
tidak mirip dengan sistem UNIX. Dia tidak memiliki banyak fitur ekstra UNIX,
dan fitur yang disediakan tidak selalu dalam format yang diharapkan oleh
aplikasi UNIX. Interface dari sistem operasi yang terlihat oleh aplikasi yang
sedang berjalan tidak ditangani langsung oleh kernel, akan tetapi aplikasi
membuat panggilan (calls) ke perpustakaan sistem, yang kemudian memanggil
layanan sistem operasi yang dibutuhkan.
Pustaka
sistem
Menentukan
kumpulan fungsi standar dimana aplikasi dapat berinteraksi dengan kernel, dan
mengimplementasi hampir semua fungsi sistem operasi yang tidak memerlukan hak
penuh atas kernel. Pustaka sistem menyediakan berbagai tipe fungsi. Pada level
yang paling sederhana, mereka membolehkan aplikasi melakukan permintaan pada
layanan sistem kernel. Membuat suatu system call melibatkan transfer kontrol
dari mode pengguna yang tidak penting ke mode kernel yang penting; rincian dari
transfer ini berbeda pada masing-masing arsitektur. Pustaka bertugas untuk
mengumpulkan argumen system-call dan, jika perlu, mengatur argumen tersebut
dalam bentuk khusus yang diperlukan untuk melakukan system call.
Pustaka
juga dapat menyediakan versi lebih kompleks dari system call dasar. Contohnya,
fungsi buffered file-handling dari bahasa C semuanya diimplementasikan dalam
pustaka sistem, yang memberikan kontrol lebih baik terhadap berkas M/K daripada
system call kernel dasar. pustaka juga menyediakan rutin yang tidak ada
hubungan dengan system call, seperti algoritma penyusunan (sorting), fungsi
matematika, dan rutin manipulasi string (string manipulation). Semua fungsi
yang diperlukan untuk mendukung jalannya aplikasi.
Utilitas
sistem
Program
yang melakukan pekerjaan manajemen secara individual. Utilitas Sistem Linux
mengandung banyak program-program pengguna-mode: utilitas sistem dan utilitas
pengguna. Utilitas sistem termasuk semua program yang diperlukan untuk
menginisialisasi sistem, seperti program untuk konfigurasi alat jaringan
(network device) atau untuk load modul kernel. Program server yang berjalan
secara kontinu juga termasuk sebagai utilitas sistem; program semacam ini
mengatur permintaan pengguna login, koneksi jaringan yang masuk, dan antrian
printer.
Tidak
semua utilitas standar melakukan fungsi administrasi sistem yang penting.
Lingkungan pengguna UNIX mengandung utilitas standar dalam jumlah besar untuk
melakukan pekerjaan sehari-hari, seperti membuat daftar direktori, memindahkan dan
menghapus file, atau menunjukkan isi dari sebuah file. Utilitas yang lebih
kompleks dapat melakukan fungsi text-processing, seperti menyusun data tekstual
atau melakukan pattern searches pada input teks. Jika digabung,
utilitas-utilitas tersebut membentuk kumpulan alat standar yang diharapkan oleh
pengguna pada sistem UNIX mana saja; walaupun tidak melakukan fungsi sistem
operasi apa pun, utilitas tetap merupakan bagian penting dari sistem Linux
dasar. Berikut ini adalah gambaran pemetaan fungsi-fungsi yang ada pada Linux.
Gambar 1 Map Kernel Linux |
Gambar 1 merupakan Map dari struktur Kernel
Linux yang membentuk suatu kernel
PRAKTEK KERNEL LINUX
Praktek
yang dilakukan untuk mempelajari kernel lebih dalam adalah dengan membongkar dan
mencari tau fungsi dari file yang ada didalam kernel, kernel yang akan
dibongkar adalah kernel Linux. Sebelum memulai download kernel versi awal di alamat
https://mirrors.edge.kernel.org/pub/linux/kernel/Hist
oric/linux-0.01.tar.gz.
File
yang diunduh akan berupa file dalam ekstensi tar, ekstaks file tersebut samapi
berupa folder lalu buka dan mari kita periksa bersama.
Gambar 2 Direktori Kernel Linux |
Gambar
2 merupakan Direktori-direktori yang terdapat dalam kernel linux yang dibongkar
seperti pada gambar diatas, selanjutnya buka direktori kernel maka akan muncul
file dengan ekstensi .c file ini merupakan kode-kode program yang membangun kernel,
dalam kode program ini terkandung fungsi utama kernel.
Gambar 3 Sumber Kode File sched.c |
Gambar
3 merupakan sumber kode yang digunakan kernel untuk melakukan fungsi penjadwalan.
Adapun sumber kode lain sebagai berikut.
Gambar 4 Sumber Kode File mktime.c |
Gambar
4 merupakan sumber kode yang digunakan sebagai pengaturan waktu, hari dan
tanggal yang ada pada sistem operasi. Adapun sumber kode lain sebagai berikut.
Gambar 5 Sumber Kode File keyboard.c |
Gambar
5 merupakan sumber kode yang digunakan untuk sistem keyboard atau alat input
pada sistem operasi linux.
Daftar
Pustaka
[1] Jejen , Zaelani. “Apa Itu Kernel “. Di akses
pada https://sites.google.com/a/student.unsika.ac.id/bongkar-os-linux/pengenalan-os/apa-itu-kernel.
10 April 2018.
[2] Jejen , Zaelani. “Fungsi Dari Kernel “. Di akses pada https://sites.google.com/a/student.unsika.ac.id/bongkar-os-linux/pengenalan-os/fungsi-kernel.
10 April 2018.
[3] Masyarakat Digital Gotong Royong (MDGR). 2006. “Pengantar Sistem Operasi Komputer
Plus
Ilustrasi Kernel Linux”. Masyarakat Digital Gotong Royong
(MDGR).
[4] I Putu Agus Eka
Pratama. "PPT Network Operating System Pertemuan 8". 2018.