Skip navigation

Monthly Archives: Desember 2008


Melanjutkan postingan kemarin

ltsa-layers

Terdapat 5 layer pada LTSA yang masing-masing menggambarkan sudut pandang yang berbeda-beda dari sebuah proses pembelajaran.

Read More »

Iklan

LTSA atau Learning Technology System Architecture adalah sebuah standar arsitektur yang berdasarkan kepada komponen-komponen abstrak. LTSA ini dirancang sebagai sebuah standar yang memberikan spesifikasi bagi sistem pembelajaran atau pelatihan berbasis teknologi informasi. Standar ini hanya menyediakan sebuah framework untuk memberikan gambaran bagaimana sistem yang sudah ada sekarang dan juga di masa yang akan datang. Standar ini didesain sebagai panduan yang bebas dari aspek teknologi, kultur, konten, dan juga pedagogi.

Standard ini bisa didapatkan di sini


Salah satu hal yang bisa dilakukan pada modul kernel adalah membuat sebuah sistem yang sifatnya real time. Salah satu contohnya adalah pada tugas terakhir kuliah IF4097 Jaringan Komputer Lanjut. Pada tugas ini kita diminta untuk membuat sebuah modul kernel yang secara periodik mengecek availability sebuah node pada jaringan.

Timer ini dapat diimplementasikan dengan menggunakan struktur data timer_list. Struktur data ini dapat di lihat pada include/linux/timer.h

struct timer_list 
{ 
		struct timer_list *next; 
		struct timer_list *prev; 
		unsigned long expires; 
		unsigned long data; 
		void (*function)(unsigned long); 
}; 

Read More »


Modul kernel adalah sebuah file obyek yang berisi fungsi-fungsi yang dapat digunakan oleh kernel sistem operasi. Tujuan dibuat sebuah modul kernel adalah untuk menyediakan fungsi-fungsi yang tidak disediakan secara default oleh kernel. Modul ini biasanya digunakan sebagai device driver.

Contoh sebuah modul kernel sederhana

/* file contoh.c */
#include <linux/module.h>
static void __init hello_init(void)
{
	printk(KERN_INFO "Hello World!");
}

static void __exit hello_exit(void)
{
	printk(KERN_INFO "Hello World!");
}

module_init(hello_init);
module_exit(hello_exit);

Untuk menjalankan modul ini pertama-tama kode harus dikompilasi. Kompilasi dapat dilakukan dengan menggunakan Makefile seperti di bawah ini

obj-m += contoh.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Kompilasi dapat dilakukan dengan menggunakan perintah Make.

Selanjutnya akan terdapat beberapa file termasuk contoh.ko.

Untuk melakukan instalasi cukup jalankan perintah pada shell

#insmod contoh.ko

Untuk membuang modul dari kernel jalankan perintah

#rmmod

Keluaran dapat dilihat dengan menggunakan perintah

#dmesg

Bisa dilihat pada kode di atas, fungsi inisialisasi, yakni fungsi yang dijalankan pertama kali diset dengan menggunakan fungsi module_init, sedangkan fungsi yang dijalankan saat modul dibuang diset dengan menggunakan fungsi module_exit.

Pada dasarnya modul kernel berbeda dengan program biasa. Karena berjalan pada kernel space, modul hanya dapat menggunakan fungsi-fungsi yang disediakan oleh kernel. Modul kernel tidak dapat menggunakan fungsi-fungsi yang disediakan library. Oleh karena itu header file seperti stdio.h, stdlib.h, tidak dapat dipakai dalam modul. Dapat dilihat di atas, untuk melakukan pencetakan ke terminal tidak digunakan fungsi printf melainkan fungsi printk yang pada dasarnya memiliki fungsi dan fitur yang sama.

File yang berisi modul sederhana dan makefilenya dapat diunduh di sini.
NB : Direname dulu ke file zip.

%d blogger menyukai ini: