MATERI PERTEMUAN 8
(Kernel dan Kernel Linux)
Nama
: Afani
Agung Nugroho
Nim
: 1605551005
Mata Kuliah :
Network Operating System
Dosen
: I Putu Agus Eka Pratama ST.,MT.
Kampus
: Program Studi Teknologi Informasi, Fakultas Teknik, Universitas Udayana
Kali ini akan dibahas pemahaman teori
mengenai : Kernel-kernel yang ada pada Linux yang mencakup pengertian kernel,
fungsi kernel, kernel linux.
Kernel
Kernel adalah sebuah perangkat
lunak yang membuat komunikasi / mediator antara aplikasi komputer dan perangkat
keras, yang menyediakan pelayanan sistem seperti pengaturan memori untuk
proses-proses yang sedang berjalan, pengaturan file-file, input-output terhadap
dan dari suatu device dan masih banyak lagi fungsi tambahan yang lainnya.
Intinya adalah kernel merupakan suatu penghubung (antara software dan
hardware).
Fungsi kernel :
- Melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
- 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.
- Membantu eksekusi aplikasi dan mendukungnya dengan fitur abstraksi hardware.
Kategori Kernel
Di bawah ini penjelasan mengenai 4 kategori kernel:
- Kernel monolitik yaitu kernel yang mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.
- Kernel Microkernel adalah kernel yang menyediakan hanya sekumpulan kecil dari abstraksi perangkat keras sederhana, dan menggunakan aplikasi-aplikasi yang disebut dengan server untuk menyediakan fungsi-fungsi lainnya.
- Kernel Hybrid (modifikasi dari microkernel) adalah kernel yang persis atau mirip dengan microkernel, akan tetapi ia juga memasukkan beberapa kode atau tambahan kode di dalam ruangan kernel suapaya ia menjadi lebih cepat atau untuk meningkatkan performanya.
- Kernel Exokernel adalah kernel yang tidak menyediakan sama sekali abstraksi perangkat keras, akan tetapi ia menyediakan sekumpulan library yang menyediakan fungsi akses ke perangkat keras (hardware) secara langsung atau hampir-hampir langsung.
Kernel Linux
Kernel Linux adalah kernel yang
digunakan dalam sistem operasi GNU/Linux. Kernel ini merupakan turunan dari
keluarga sistem operasi UNIX, dirilis dengan menggunakan lisensi GNU General
Public License (GPL), dan dikembangkan oleh pemrogram di seluruh dunia. Linux
merupakan contoh utama dari perangkat lunak bebas dan sumber terbuka.
Kernel Linux pada awalnya
dibayangkan dan kemudian dibuat oleh murid Ilmu Komputer berkebangsaan
Finlandia, Linus Torvalds pada tahun 1991.Pengembang dan Pengguna Linux
bertambah dengan cepat, lalu mereka mengadaptasi kode dari proyek-proyek
software gratis untuk digunakan sebagai Sistem Operasi baru. Linux kernel telah
menerima kontribusi dari ribuan programmer. Banyak Distribusi Linux telah
dirilis berdasarkan Kernel Linux.
Apa yang di lakukan
Kernel ?
Fungsinya seperti layaknya sistem
operasi, menangani task switching dalam multitasking, menangani permintaan
membaca atau menulis peralatan disk, melakukan tugas-tugas network serta
mengatur penggunaan memori.
Kernel membuat layanan yang ada
didalamnya, tersedia untuk Software yang sedang berjalan, melalui sekumpulan
besar entry point yang secara teknis, Kernel menggunakan system call read and
writer unutk memberikan abstraksi Hardware pada Komputer anda.
Praktek Membedah Kernel Linux
Saya mencoba membuka source code kernel linux versi awal.
Berikut ini merupakan beberapa direktori yang akan coba saya jelaskan.
1. Direktori boot
File yang terdapat pada direktori ini ada 2 yaitu boot.s dan
head.s. boot.s merupakan file yang berfungsi untuk menjalankan startup BIOS.
head.s merupakan file yang berfungsi sebagai kode startup 32-bit pada
linux.
2. Direktori lib
File yang terdapat pada direktori ini ada 11 yaitu _exit.c,
close.c, ctype.c, dup.c, errno.c, execve.c, open.c, setsid.c, string.c, wait.c,
dan write.c.
- File _exit.c ini menjalan fungsi _exit(int
exit_code)
- File close.c ini menjalankan fungsi syscall1(int,close,int,fd)
- File dup.c ini menjalankan fungsi yang sama dengan file
close.c namun parameternya berbeda yaitu syscall1(int,dup,int,fd)
- File ctype.c ini menggunakan library ctype.h yang
berfungsi untuk menguji dan mengkonversi karakter.
- File execve.c ini menjalankan fungsi
_syscall3(int,execve,const char*, file, char **, argv, char **, envp)
- File open.c ini menggunakan library stdarg. yang berfungsi
mengakses berbagai jumlah argumen dilewatkan ke fungsi. File ini menjalankan
fungsi open.
- File setsid.c ini menjalankan fungsi
_syscall0(pid_t,setsid)
- File string.c ini menggunakan library string.h dan
mendeklarasikan fungsi extern, inline, dan __LIBRARY__
- File wait.c ini menggunakan library sys/wait.h dan
menjalankan fungsi wait.
- File write.c ini menjalankan fungsi
_syscall3(int,write,intfd,const char*, buf, off_t, count)
Referensi
[1] I Putu Agus Eka Pratama. "PPT Network Operating
System Pertemuan 8". 2018.
0 komentar:
Posting Komentar