Kamis, 13 Juni 2013

JURNAL KERNEL LINUX

TENTANG KERNEL LINUX
CHANDRA WAHYU, RAFAELIUS SOGO, M.HASBI, YOSEP WIRA N
Mahasiswa Sistem Informasi kelas 3KA07
Fakultas Ilmu Teknologi Informasi
Universitas Gunadarma



ABSTRAK
Linux adalah sistem operasi open source yang popular dan banyak digunakan oleh masyarakat karena fungsinya yang sama dengan sistem operasi lain tapi mempunyai kelebihan tahan terhadap virus dan gratis. Pada tulisan ini penulis akan membahas tentang sejarah linux,pengertian kernel linuxdan modul kernel linux. Linux adalah sistem operasi turunan dari UNIX yang di ciptakan oleh Linus Torvalds  pada tahun 1991. 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.





1.      PENDAHULUAN
Sistem operasi dahulu sangatlah mahal karena masih jarang pengembang membuat sistem operasi gratis. Namun saat itu UNIX menjadi salah satu sistem operasi yang digunakan karena UNIX adalah open source. Setelah itu karena terinspirasi oleh UNIX seorang mahasiswa bernama Linus Torvalds menciptakan sistem operasi yang gratis. 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 di gunakan sebagai Sistem Operasi baru. Linux kernel telah menerima kontribusi dari ribuan programmer.Linux telah dirilis berdasarkan kernel linux.
Linux 0.11 dirilis pada Desember 1991,, versi ini adalah versi pertama yang di ciptakan oleh Linus Torvalds sendiri.  Saat ia merilis versi 0.12 di bulan Februari 1992, Torvalds mengadopsi GNU General Public License (GPL), dan berhenti menggunakan lisensi yang ia buat sendiri, yang tidak boleh di distribusikan secara komersial.





2.      ISI
PENGERTIAN KERNEL DAN PENGENALAN LINUX
Dalam ilmu komputer, 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.
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.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah program dapat saja langsung diload dan dijalankan di atas mesin 'telanjang' komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras atau bantuan sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut. Kernel Linux memudahkan pihak lain untuk meningkatkan fungsionalitas kernel tanpa harus membuat sebuah kernel monolitik dan menambahkan fungsi yang mereka butuhkan langsung ke dalam image dari kernel. Selain hal tersebut akan membuat ukuran kernel menjadi lebih besar, kekurangan lainnya adalah mereka harus membangun dan me-reboot kernel setiap saat hendak menambah fungsi baru. Dengan adanya modul maka setiap pihak dapat dengan mudah menulis fungsi-fungsi baru dan bahkan mendistribusikannya sendiri, di luar GPL.
Terdapat tiga komponen untuk menunjang modul kernel Linux.Ketigakomponen tersebut adalah managemen modul, registrasi driver, dan mekanisme penyelesaian konflik.
SEJARAH LINUX
Pada tahun 1969, Ken Thompson dan Dennis Ritchie (juga adalah developer bahasa C), para peneliti di AT&T Bell Laboratorium Amerika, membuat sistem operasi UNIX, cikal bakal dari Linux. UNIX mendapatkan perhatian besar karena merupakan sistem operasi pertama yang dibuat bukan oleh hardware maker. Selain itu juga karena seluruh source code-nya dibuat dengan bahasa C, sehingga mempermudah pemindahannya ke berbagai platform. Salah satu diantaranya adalah MINIX yang dibuat oleh A. S. Tanenbaum untuk tujuan pendidikan. Source code MINIX inilah yang oleh Linus Torvalds, seorang mahasiswa Universitas Helsinki pada waktu itu, kemudian dijadikan sebagai referensi untuk membuat sistem operasi baru yang gratis dan yang source codenya bisa diakses oleh umum. Sistem operasi ini kemudian diberi nama Linux. Dalam membangun Linux, Linus menggunakan tool-tool dari Free Foundation Software yang berlisensi GNU. Nama Linux sendiri diturunkan dari pencipta awalnya, LINUS TORVALDS, di Universitas Helsinki, Finlandia yang sebetulnya mengacu pada kernel dari suatu sistem operasi. Linux dulunya adalah proyek hobi yang dikerjakan oleh Linus Torvalds yang memperoleh inspirasi dari Minix. Minix adalah sistem UNIX kecil yang dikembangkan oleh Andy Tanenbaum pada tahun 1987. Minix pada saat itu merupakan suatu proyek pelajaran di kelasnya waktu itu yang menyerupai sistem UNIX.
Modul Kernel Linux
Pengertian Modul Kernel Linux
Modul kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus secara terpisah dari bagian kernel lainnya saat dibutuhkan. Modul kernel dapat menambah fungsionalitas kernel tanpa perlu me-reboot sistem. Secara teori tidak ada yang dapat membatasi apa yang dapat dilakukan oleh modul kernel. Kernel modul dapat mengimplementasikan antara lain device driver, sistem berkas, protokol jaringan.
Modul kernel Linux memudahkan pihak lain untuk meningkatkan fungsionalitas kernel tanpa harus membuat sebuah kernel monolitik dan menambahkan fungsi yang mereka butuhkan langsung ke dalam image dari kernel. Selain hal tersebut akan membuat ukuran kernel menjadi lebih besar, kekurangan lainnya adalah mereka harus membangun dan me-reboot kernel setiap saat hendak menambah fungsi baru. Dengan adanya modul maka setiap pihak dapat dengan mudah menulis fungsi-fungsi baru dan bahkan mendistribusikannya sendiri, di luar GPL.
Kernel modul juga memberikan keuntungan lain yaitu membuat sistem Linux dapat dinyalakan dengan kernel standar yang minimal, tanpa tambahan device driver yang ikut dipanggil. Device driver yang dibutuhkan dapat dipanggil kemudian secara eksplisit mau pun secara otomatis saat dibutuhkan. Terdapat tiga komponen untuk menunjang modul kernel Linux. Ketiga komponen tersebut adalah managemen modul, registrasi driver, dan mekanisme penyelesaian konflik. Berikut akan dibahas ketiga komponen pendukung tersebut.
Managemen Modul Kernel Linux
Managemen modul akan mengatur pemanggilan modul ke dalam memori dan berkomunikasi dengan bagian lainnya dari kernel. Memanggil sebuah modul tidak hanya memasukkan isi binarinya ke     dalam memori kernel, namun juga harus dipastikan bahwa setiap rujukan yang dibuat oleh modul ke simbol kernel atau pun titik masukan diperbaharui untuk menunjuk ke lokasi yang benar di alamat kernel. Linux membuat tabel simbol internal di kernel. Tabel ini tidak memuat semua simbol yang didefinisikan di kernel saat kompilasi, namun simbol-simbol tersebut harus diekspor secara  eksplisit oleh kernel. Semua hal ini diperlukan untuk penanganan rujukan yang dilakukan oleh modul terhadap simbol-simbol.
Pemanggilan modul dilakukan dalam dua tahap. Pertama, utilitas pemanggil modul akan meminta kernel untuk mereservasi tempat di memori virtual kernel untuk modul tersebut. Kernel akan memberikan alamat memori yang dialokasikan dan utilitas tersebut dapat menggunakannya untuk memasukkan kode mesin dari modul tersebut ke alamat pemanggilan yang tepat. Berikutnya system calls akan membawa modul, berikut setiap tabel simbol yang hendak diekspor, ke kernel. Dengan demikian modul tersebut akan berada di alamat yang telah dialokasikan dan tabel simbol milik kernel akan diperbaharui.
 Komponen managemen modul yang lain adalah peminta modul. Kernel mendefinisikan antarmuka komunikasi yang dapat dihubungi oleh program managemen modul. Saat hubungan tercipta, kernel akan menginformasikan proses managemen kapan pun sebuah proses meminta device driver, sistem berkas, atau layanan jaringan yang belum terpanggil dan memberikan manajer kesempatan untuk memanggil layanan tersebut. Permintaan layanan akan selesai saat modul telah terpanggil. Manajer proses akan memeriksa secara berkala apakah modul tersebut masih digunakan, dan akan menghapusnya saat tidak diperlukan lagi.
Registrasi Driver
Untuk membuat modul kernel yang baru dipanggil berfungsi, bagian dari kernel yang lain harus mengetahui keberadaan dan fungsi baru tersebut. Kernel membuat tabel dinamis yang berisi semua driver yang telah diketahuinya dan menyediakan serangkaian routines untuk menambah dan menghapus driver dari tabel tersebut. Routines ini yang bertanggungjawab untuk mendaftarkan fungsi modul baru tersebut.
Hal-hal yang masuk dalam tabel registrasi adalah:
·         device driver
·         sistem berkas
·         protokol jaringan
·         format binari
Resolusi Konflik
Keanekaragaman konfigurasi perangkat keras komputer serta driver yang mungkin terdapat pada sebuah komputer pribadi telah menjadi suatu masalah tersendiri. Masalah pengaturan konfigurasi      perangkat keras tersebut menjadi semakin kompleks akibat dukungan terhadap device driver yang modular, karena device yang aktif pada suatu saat bervariasi.
Linux menyediakan sebuah mekanisme penyelesaian masalah untuk membantu arbitrasi akses terhadap perangkat keras tertentu. Tujuan mekanisme tersebut adalah untuk mencegah modul berebut  akses terhadap suatu perangkat keras, mencegah autoprobes mengusik keberadaan driver yang telah ada, menyelesaikan konflik di antara sejumlah driver yang berusaha mengakses perangkat keras yang sama.
Kernel membuat daftar alokasi sumber daya perangkat keras. Ketika suatu driver hendak mengakses sumber daya melalui I/O port, jalur interrupt, atau pun kanal DMA, maka driver tersebut diharapkan mereservasi sumber daya tersebut pada basis data kernel terlebih dahulu. Jika reservasinya ditolak akibat ketidaktersediaan sumber daya yang diminta, maka modul harus memutuskan apa yang hendak dilakukan selanjutnya. Jika tidak dapat melanjutkan, maka modul tersebut dapat dihapus.






1 komentar: