Linux kernel
Assalamu'alaikum Warahmatullahi Wabarakatuh...
file:///D:/Matakuliah/Sistem operasi/ch09s06.html
Linux kernel
Kernel linux menggunakan desain kernel yaitu Microkernel. Microkernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya yang disebut dengan server untuk melakukan beberapa fungsionalitas lainnya. Pengaturan linux kernel yaitu hardware, kernel, shell, dan user space.
Hardware adalah perangkat keras computer yg dapat dilihat langsung atau dapat disentuh dan membantu dalam proses komputerisasi.
kernel merupakan inti dari sistem pengoperasian yang mengatur penggunaan ingatan/memori, peranti masukan dan keluaran, proses-proses, penggunaan fail pada sistem fail dan lain-lain.
Shell merupakan penghubung antara kernel dan user space .
User space adalah menyediakan menyediakan layanan kepada pengguna agar terhubung langsung dengan computer.
Cara kerja dari linux kernel
Hardware berupa mesin komputer yang terhubung dengan berbagai devices seperti micro controller, monitor, atau keyboard. Semua komponen-komponen hardware menerima perintah dari program atau aplikasi melalui kernel. User space digunakan untuk aplikasi yang kemudian memberi perintah kepada kernel melalui input dari keyboard atau tampilan monitor. Perintah yang diberikan pada kernel kemudian disampaikan kepada hardware. Di dalam kernel terdapat process schedulers, pengaturan memori, dan input dan output schedulers. Process schedulers berfungsi mengatur proses antara aplikasi dan hardware. Pengaturan memori berfungsi membagi memori dan mengatur proses penggunaan memori oleh aplikasi. Input dan output scheduler berfungsi menjembatani penggunaan hardware seperti keyboard dalam menerima input dan menghasilkan output. Dalam kernel juga terdapat IPC, yaitu metode komunikasi dan sinkronisasi antar proses. Kernel juga memiliki kemampuan interface dengan network service untuk mendapatkan akses internet. Selain itu, disamping linux file system, kernel memiliki virtual file system yang berfungsi untuk berkomunikasi dengan file system tertentu selain linux dengan cara yang sama dengan linux file system. Dengan kata lain, virtual file system memiliki level abstraksi yang memungkinkan Kernel bias mengatasi komplexitas file system selain Linux. System file juga dapat berkomunikasi dengan device driver langsung kepada hardware.
User space dan shell yang berkomunikasi dengan kernel melalui perintah. Kernel dijalankan dengan model khusus yang membuatnya memiliki akses terhadap semua memori dan hardware yang terhubung dengan komputer. Sedangkan user space memiliki keterbatasan akses terhadap source tersebut. Jadi, semua perintah harus melalui Kernel. Mode khusus ini membuat Kernel bias berkomunikasi dengan hardware melalui perintah baik dari user maupun aplikasi. Yang tidak biasa dilakukan adalah membuat perintah langsung dari user space ke hardware. Perintah yang dilakukan melalui Kernel disebut System Call, dan tugas Kernel adalah menerjemahkan system Call ini kepada hardware melalui Interrupt.
Kernel juga menyediakan sekumpulan layanan yang digunakan untuk mengakses kernel yang disebut system call. System call ini digunakan untuk mengimplementasikan berbagai layanan yang diberikan oleh sistem pengoperasian. Program sistem dan semua program-program lainnya yang dijalankan di atas kernel disebut user mode.Kernel Linux terdiri dari beberapa bagian penting, seperti: pengurusan proses, pengurusan ingatan, pemacu perkakasan, pemacu sistem fail, pengurusan jaringan dan lain-lain. Namun bahagian yang terpenting ialah pengurusan proses dan pengurusan ingatan. Pengurusan ingatan meliputi penggunaan ingatan, kawasan pertukaran, bahagian-bahagian kernel dan untuk cache penimbal (buffer cache). Pengurusan proses menangani penggunaan proses-proses dan penjadualan proses. Pada bahagian dasar kernel terdapat pemacu perkakasan untuk setiap jenis perkakasan komputer yang disokong.
Modul linux
Modul linux adalah Kode biner yang dimasukkan/disisipi ke dalam dan mengosongkan ke luar dari gambaran inti yang statis pada waktu [lari/dijalankan. Manfaat 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.
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 maupun secara otomatis saat dibutuhkan.
Terdapat tiga komponen untuk menunjang modul kernel Linux. Ketiga komponen tersebut adalah manajemen modul, registrasi driver, dan mekanisme penyelesaian konflik. Berikut akan dibahas ketiga komponen pendukung tersebut.
Manajemen Modul Kernel Linux
Manajemen 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 manajemen modul yang lain adalah peminta modul. Kernel mendefinisikan antarmuka komunikasi yang dapat dihubungi oleh program manajemen modul. Saat hubungan tercipta, kernel akan menginformasikan proses manajemen 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 bertanggung-jawab untuk mendaftarkan fungsi modul baru tersebut.
Hal-hal yang masuk dalam tabel registrasi adalah:
device driversistem berkasprotokol jaringanformat 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 M/K 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.
Demikian penjelasan dari saya, semoga bermanfaat bagi kalian...
wassalam....
Kategori
- Masih Kosong
Blogroll
- Masih Kosong