Rabu, 11 April 2018

MATERI PERTEMUAN 8 (Kernel & Kernel Linux)


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 :
  1. Melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
  2. 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.
  3. Membantu eksekusi aplikasi dan mendukungnya dengan fitur abstraksi hardware.
Kategori Kernel
Di bawah ini penjelasan mengenai 4 kategori kernel:
  1. 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.
  2. 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.
  3. 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.
  4. 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