Laman

Minggu, 23 Januari 2011

Konfigurasi Kernel

Ada 3 command yang dapat digunakan untuk mengkonfigurasi kernel
1. config (text-based)
2. menuconfig (text-based menu)
3. xconfig (under X )
Diantara ketiga cara tersebut, yang biasa dipakai adalah “menuconfig“. karena memiliki tampilan yang lebih menarik dan lebih fleksibel dalam konfigurasi daripada cara pertama (config). Untuk memilih modul dalam menuconfig di tunjukan dengan tanda (dengan menekan tombol m pada keyboard), jika <> menandakan modul ini tidak digunakan. tanda < *> atau [*] (dengan menekan tombol y) digunakan untuk menyertakannya secara langsung kedalam kernel. Selama melakukan konfigurasi perubahan dapat dilakukan dengan ditandakan atau diberi tanda [*]. Apabila ada hal-hal tertentu yang memang benar-benar tidak dibutuhkan oleh konfigurasi komputer yang akan dipakai, tanda bintangnya di hapus (biar tidak terbawa disaat kompilasi berlangsung). Atau dapat melakukan penambahan penandaan sesuai kebutuhan, misal [*] untuk menggunakan modul, penandaan untuk kebutuhan networking dengan < *>.


Gambar1. Skema representatif antara “user space‿ dan “kernel space‿
Dalam gambar 1 garis yang menghubungkan berbagai komponen dengan kernel ( dengan peralatan perangkat keras ) mengindikasikan bahwa setiap komponen secara lansung berinteraksi. Seperti contoh TCP/IP stack mengirim paket jaringan melalui code path TCP atau UDP , tetapi kedua tipe paket ini ini pada akhirnya di handel oleh IP layer. Dalam gambar, “VFS” berada pada Virtual Filesystem layer, yang secara ringkas serta detail ada pada tipe filesystem (seperti sebagai ext2fs dan ISO-9660, seperti yang di tampilkan) dari aplikasi user. Ini maksudnya adalah bahwa aplikasi ini butuh tidak mengetahui apa tipe filesystem yang di akses bila sebuah file dibuka, dibaca, ditulis dan seterusnya. Sedangkan “IPC” merupakan Interprocess Communication dan termasuk bermacam-macam mekanisme proses untuk “berkomunikasi‿ satu sama lainnya dalam aktivitasnya. Komponen yang berlabel “SMP” adalah shared-memory multiprocessing yang mendukung Linux-kernel,yang digunakan sistem dengan multiple CPUs.
3.2 Utilitas Modul
Berikut ini adalah utilititas yang dapat gunakan pada system operasi linux dalam menangani modul
1. lsmod digunakan untuk melihat modul yang telah di load. contoh: # lsmod
2. depmod digunakan untuk membuat dependency list modul-modul yang ada kepada sistem. contoh: # depmod -a
Bila anda tidak menjalankan perintah ini anda tidak dapat me-load modul. perintah “depmod -a” menghasilkan file /lib/modules/2.0.xx/modules.dep yang berisi daftar keterkaitan modul terhadap modul yang lainnya.
3. modprobe digunakan untuk load/unload modul ;contoh: # modprobe -r msdos.o –>untuk unload modul (menghapus) ;contoh: # modprobe msdos.o –> untuk load modul command “modprobe msdos.o” bila dilihat dengan “lsmod” akan nampak seperti:
Module Pages Used by
msdos 2 0
fat 6 [msdos] 0
Perhatikan modul fat juga di-load, padahal perintah modprobe hanya diperintahkan untuk me-load modul msdos. hal ini terjadi karena adanya ketergantungan modul, modul msdos memerlukan modul fat.
File-file (modul) seperti msdos.o bisa dilihat di /lib/modules/2.0.xx/
4. kerneld merupakan daemon yang secara otomatis me-load dan unload modul. dengan menggunakan kerneld kita tidak perlu lagi menggunakan modprobe (untuk load/unload modul) secara manual karena daemon ini telah menanganinya secara otomatis. kita dapat mengecek apakah “kerneld” telah bekerja dengan baik.
4. Kernel Waktu Nyata
Banyak sistem embedded yang memiliki kebutuhan untuk berperilaku sebagai sebuah sistem waktu-nyata (real-time system). Pada sistem waktu nyata, waktu memegang peranan yang penting. Ketepatan kalkulasi atau kecermatan aksi tidak akan berarti apa-apa jika dilakukan pada saat yang keliru, atau “a late answer is a wrong answer‿. Sistem waktu nyata lazim dijumpai di dunia industri. Sebagai contoh, pengatur arah peluru kendali mesti dapat mengoreksi laju dan arah terbangnya sehingga tetap menuju target. Keterlambatan sepersekian detik bisa mengakibatkan peluru tersebut nyasar ke ruang kosong. Dalam hal ini antisipasi secepat-cepatnya menjadi kunci akurasinya. Sebuah mesin otomatis untuk mengemas botol minuman harus dapat memasangkan tutup botol tepat kepada botolnya. Dalam sebuah sistem berjalan, ketepatan ini diatur dengan waktu. Dengan kata lain, jika waktu pemasangan tutup botol tidak tepat, hasilnya akan percuma karena botolnya tidak akan berada pada lokasi yang tepat. Salah satu hal penting yang diperhatikan pada saat merancang sistem waktu-nyata adalah deadline atau tenggat operasi yang diijinkan. Selama pemrosesan atau kalkulasi yang dilakukan dapat dipaksa untuk diselesaikan sebelum deadline tersebut lewat, maka sifat waktu-nyata sistem tersebut bisa dijamin. Sebagai ilustrasi, sebuah player MP3 harus dapat melakukan encoding musik format MP3 tersebut menjadi sinyal audio yang dinikmati melalui earphone atau speaker. Tentu saja, proses encoding tersebut harus lebih cepat dari alunan musiknya sendiri. Untuk kualitas HiFi, ini berarti encoding mesti mensuplai data audio sebanyak 44100 kali per detik. Bila memproses sepotong data audio menyita waktu lebih dari 1/44100 detik, musik tidak bisa didengar secara real-time. Bayangkan, bagaimana caranya menikmati sebuah lagu - yang durasi aslinya 4 menit – jika diputar selama 10 menit ? .Meskipun mulanya tidak dirancang sebagai sistem waktu nyata, Linux dapat ‘diakali’ sehingga dapat bekerja pada lingkungan yang mengharuskan persyaratan sistem waktu-nyata. Setidaknya, ada beberapa pendekatan yang bisa digunakan


Gambar 2. Hubungan Sub-Kernel dengan linux
Sub-kernels dibuat dengan 3 kategori: 1) patching sebuah kernel linux untuk menyediakan beberapa keterkaitan seperti penambahan fungsionalitas 2) modifikasi untuk menghandel interrupt 3) membuat loadable modules untuk menyediakan bagian API dan fungsionalitas.
Sub-kernels menyediakan sebuah API untuk digunakan oleh tugas real-time. APIs menyediakan urutan yang menyerupai POSIX, fungsi POSIX lainnya dan penambahan fungsi yang unik. Penggunaan sub-kernels dimaksudkan bahwa tugas real-time menggunakan APIs yang lebih familiar bagi para programmer Linux , tetapi mereka menerapkan secara terpisah dan terkadang berbeda.
Interrupt handling dimodifikasi oleh patching bagian utama kernel . patch-nya sendiri merubah fungsi, seperti contoh , patch digunakan biasanya untuk disable interrupts. Apabila kernel dan drivers dalam sub-tree linux di recompiled, mereka tidak secara aktual untuk menghentikan interrupts. Karena drivers di-compile terpisah dari header yang dimodifikasi untuk disable- interrupts dan menghalangi teknik real-time. Sebaiknya gunakan non standard code untuk sebuah interrupt-disabling. Instruksi Bahasa assembly mungkin bisa digunakan untuk menanganinya. Dalam prakteknya hal ini merupakan situasi yang tidak terelakan untuk menangani solusi real-time.
5. Kesimpulan
Kernel merupakan mediator penghubung antara Software dan Hardware. Kernel dapat di-recompile ulang sesuai dengan kebutuhan perangkat keras yang ingin kita pakai, untuk me-recompile ulang kernel dapat di pilih apakah ingin menggunakan kernel Modular atau kernel Mololitik, dalam pemakaiannya kernel bergantung kepada pengguna sendiri modul apa yang akan digunakan. Kernel juga sangat baik digunakan sebagai real-time yang menjembatani aplikasi dan kebutuhan waktu nyata yang interrupt-nya dapat di ubah dengan modifikasi Header-nya menggunakan kernel-source-tree.

Tidak ada komentar:

Posting Komentar