Menambahkan System Call pada Linux kernel

dokumen-dokumen yang mirip
Struktur Kernel Linux. Oleh Walid Umar, S.SI

BAB 12 KOMPILASI KERNEL

BAB 2 PROSES BOOTING

Kernel. Sistem Operasi. STMIK Indonesia Padang Yayasan Amal Bakti Mukmin LINATI IFFAH ( )

Instalasi IGOS Nusantara

Menggunakan CodeBlock Dengan Cepat (platform non linux) Oleh:wijanarto

Modul Praktikum Sistem Operasi PERTEMUAN KE-VI

MENYEMBUNYIKAN WINDOWS KETIKA BOOTING PADA SISTEM DUAL BOOTING

Spesifikasi Tugas Besar II IF3055 Sistem Operasi

BAB II. Instalasi Linux

Pengantar. Manajemen Proses

Agus Setiawan. 1. Persiapan Instalasi

Bab 10. Konsep Proses

BAB III INSTALASI VMWARE

Install Ubuntu 8.10 Desktop Edition

9) File-file yang ada di CD ROM akan diload ke dalam memori selama proses instalasi ini. Selanjutnya layar Welcome To Set Up Windows akan tampil.

Praktikum I Pengenalan Sistem Operasi Linux

PERCOBAAN V Komunikasi Data AT COMMAND MODEM

CARA MENGINSTALASI FreeBSD: SEBAGAI SARANA BELAJAR UNIX DI PC. Luthfi Kisbiono Arif Onno W. Purbo Computer Network Research Group ITB

BAB 4 IMPLEMENTASI DAN EVALUASI. Dalam perancangan program Spesifikasi sistem yang digunakan saat

1. Desktop Microsoft Windows

Merupakan software yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Mempunyai karakteristik:

A. Instalasi dasar Linux Debian

BAB 4 IMPLEMENTASI SISTEM. ini sudah menggunakan kernel 2.6. Saat komputer pertama kali dinyalakan tekan delete untuk

Pengantar Open Source dan Aplikasi Instalasi Linux dan Troubleshooting Dasar. Rusmanto at gmail.com Rusmanto at nurulfikri.ac.id

POSTEST SISTEM OPERASI. Disusun Oleh : : Nurul Annisa Putri. Nim : Jurusan/ Kelas : Teknik Informatika/ 4 (Empat) B

LAPORAN PRATIKUM LINUX. Modul I. Sekilas Linux dan Instalasi

KONFIGURASI RTMP SERVER NGINX

MODUL 1 INSTALASI LINUX NUSANTARA

LAPORAN PRAKTIKUM SISTEM OPERASI PROGRAM TEKNOLOGI INFORMASI DAN ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

DHCP SERVER. Pendahuluan

3. Lalu buat user nagios beserta paswordnya m nagios nagios

Petunjuk Instalasi SRAC

PENGENALAN DAN INSTALASI SOFTWARE

1.1. Sejarah Bahasa C

Instalasi Network Simulator II (NS2) pada Windows XP

Bab 2 Turck - MMCache

Operating System. File System. Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan. Dosen : Caca E. Supriana, S.Si

Panduan Instalasi Apache, PHP dan MySQL pada GNU/Linux

Installasi Linux SuSE 9.3 Basis Text

TUTORIAL PEMELIHARAAN HARDWARE DAN SOFTWARE PUSAT KOMPUTER UNIVERSITAS KRISTEN PETRA SURABAYA

KARTU SOAL. Kurikulum Acuan Alokasi Waktu Jumlah Soal Bentuk Soal. Nama Sekolah Bidang Keahlian Program Keahlian. : SMKN I Doko : TIK : TKJ

ls = Melihat isi direktori #ls NamaFolder

Konfigurasi Desktop BAB 2

Cara Membuat Hdd External Menjadi Multiboot (Installer XP, Win7, Hiren 15.6, Anti Virus, PQ Magict dan Master Program)

Panduan Installasi Fedora 16 (Verne)

LAMPIRAN C INSTALASI PERANGKAT LUNAK

LAMPIRAN. : Bagaimana pendapat anda dengan sistem baru ini?

Instalasi Server ipat

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

OpenSuse juga termasuk dalam jajaran 10 besar distro linux di dunia bersama-sama dengan Ubuntu, Fedora, Debian, PCLinuxOS, Slackware, Gentoo dan

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Adduser adalah perintah untuk menambahkan seorang user kedalam system.

DATABASE SQL SERVER. Database SQL Server Halaman 1

MODUL PRAKTIKUM SISTEM OPERASI PRAKTIKUM II (a) PROSES

Otodidak. MySQL untuk Pemula

BAB 4 IMPLEMENTASI DAN EVALUASI. 4.1 Perancangan jaringan cloud computing Implementasi dan pengembangan Cloud Computing di BPPT dimulai dengan

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Lankah langkah install windows 98

I. Tujuan - Agar siswa dapat memahami dan melakukan Instalasi OS Debian dengan benar dan tepat dengan menggunakan mesin VM Virtual Box

PERINTAH DASAR MIKROTIK

Sekilas C DAN C++ DISUSUN OLEH. Sebuah bahasa, yaitu: 1. Bahasaa tingkat tinggi. High. dapat. lunak

KONEKSI NETBEANS DENGAN DATABASE SQLITE

DAN HAK AKSES BAB 8 MANAJEMEN GROUP, USER, 8.1 Pentingnya Membuat Group dan User Account

BAB 3 Mengenali Lingkup Pemrograman Anda

Sejarah dan Rancangan Dasar GNU/Linux

BAB 3 Mengenali Lingkup Pemrograman Anda

Instalasi FreeBSD 6.0

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

REMASTERING MENGGUNAKAN REMASTERSYS

MEMPROGRAM MIKROKONTROLER DENGAN BAHASA C MENGGUNAKAN WIN-AVR

BAB 4 PERANCANGAN DAN IMPLEMENTASI. operasi Linux Fedora Core 4 dengan menggunakan bahasa pemrograman Java.

Instalasi FreeBSD 8 (berlaku juga untuk release sebelumnya)

PENGANTAR TEKNOLOGI INFORMASI 2

Modul 5 Menginstal Linux Mandrake 9.2. I. Tujuan Praktikan dapat menginstal sistem operasi Linux Mandrake 9.2

Program pendek dan simple = mudah dihandle. Program besar, banyak dan kompleks = tidak

JURNAL PRAKTIKUM JARINGAN KOMPUTER

BAB VI MENGGUNAKAN DATABASE DESKTOP

Teknik Install dan Uninstall Program di Mandrake Linux

Instalasi ubuntu. Langkah pertama boot ubuntu installer pada PC anda. pilih start or install ubuntu

LAPORAN PRAKTIKUM INSTALLASI DEBIAN 8.1 MENGGUNAKAN VMWARE

MODUL 1 INSTALASI DAN PENGENALAN OS. MCROSOFT WINDOWS

JURNAL PRAKTIKUM JARINGAN KOMPUTER 2012/2013. NAMA : Gatra Anggadita NIM : ASISTEN : Amina Alda KELAS : B2 BAB Ke- : 5

Pra Instalasi. A. Pastikan Komputer anda menggunakan Sistem Operasi bertipe 64-bit. Cara cek tipe operasi komputer anda sebagai berikut ini:

Pengenalan Linux Konfigurasi TCP/IP

KOTLIN, SIAPA SUKA. Dasar. P. Tamami BPPKAD Kab. Brebes

Aplikasi ideb Viewer Sistem Layanan Informasi Keuangan (SLIK)

Tutorial Praktis: Membuat CD Live Linux dengan Kernel Sendiri. Kemas Yunus Antonius*

Kami telah melakukan instalasi pada /dev/sda dan akan menambahkan /dev/sdb sebagai bagian dari RAID 1.

Shortcut Aplikasi Komputer Dengan Ucapan (Speech Shortcut)

Panduan Penggunaan dan Perawatan Server

Generic Host For Win32 Caranya manualnya sebagai berikut :

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 1 PENGENALAN LINGKUNGAN PEMROGRAMAN JAVA

PANDUAN INSTALASI LINUX FEDORA CORE 6

LINUX. by: Ahmad Syauqi Ahsan

Upgrade Kernel NPTL Menjadi Kernel MDK Pada Redhat 9.0 Noer Wahid, Estiarto Wahyu Sumirat, Dimas Sasongko Universitas Surakarta

Written by Administrator Wednesday, 15 June :49 - Last Updated Thursday, 20 December :10

Mengkompilasi Source Code C++ dengan g++.

d. Pilih partisi atau hard disk untuk menginstall windows Xp. setelah itu tekan enter untuk melanjutkan, tekan tombol C untuk membuat partisi baru

Praktikum Basis Data (Database Server MySQL) Instalasi MySQL. 1 Oleh : Andri Heryandi, MT, Teknik Informatika Universitas Komputer Indonesia (UNIKOM)

Transkripsi:

Menambahkan System Call pada Linux kernel 2.6.22 System call merupakan mekanisme yang digunakan oleh program aplikasi untuk meminta service dari sistem operasi. Service yang dimaksud adalah services yang dikelola oleh sistem operasi seperti storage, memory, network, process management, mengakses perangkat keras, dll. Sebelumnya, Anda harus memiliki akses root. Instruksi untuk menambahkan system call: 1. Download source linux kernel 2.6.22 di http://user.arc.itb.ac.id/incoming/kernel/linux 2.6.22.tar.gz atau http://www.kernel.org 2. Ekstrak file source kernel di /usr/src dengan perintah #tar zxvf linux.2.6.xx.tar.gz 3. Edit file /usr/src/linux 2.6.xx/arch/i386/kernel/syscall_table.S System Call tidak dapat dipanggil melalui user process, melainkan harus melalui mekanisme interrupt dan terdaftar pada interrupt table. Maka Anda harus menambahkan system call baru pada interrupt table dengan cara mengedit file /usr/src/linux 2.6.xx/arch/i386/kernel/entry.S. Pada bagian akhir file tersebut, Anda akan menemukan kode #include "syscall_table.s" yang berarti file entry.s meng include file syscall_table.s. Di file inilah Anda tambahkan system call baru pada akhir file. Contohnya dengan menambahkan.long sys_showproc pada akhir file syscall_table.s dengan showproc merupakan nama system call baru yang akan kita tambahkan. 4. Anda perlu meng generate system call stub sehingga program user dapat mengivokasi system call Anda. Lakukanlah dengan cara mengedit file /usr/src/linux 2.6.xx/include/asm/unistd.h seperti ini #ifndef _ASM_I386_UNISTD_H_ #define _ASM_I386_UNISTD_H_ /* * This file contains the system call numbers. */ #define NR_restart_syscall 0 #define NR_exit 1 #define NR_fork 2... #define NR_eventfd 323 #define NR_mysyscall 324 Anda perlu menambahkan #define untuk system call Anda pada akhir file dengan menuliskan NR_ sebgai prefix. Sebagai contoh, ditambahkan #define NR_showproc 325 Kemudian tambahkan juga #define NR_syscalls 325 menjadi #define NR_syscalls 326 (ditambahkan 1). 5. Buatlah sebuah file yang merupakan kode implementasi system call Anda, misalnya dengan nama

showproc.c pada direktori usr/src/linux 2.6.xx/arch/i386/kernel/ Agar dapat di link dengan baik, system call Anda membutuhkan kata asmlinkage sebelum fungsi dan sys_ sebelum nama fungsi. Perlu juga dituliskan #include <linux/linkage.h> agar asmlinkage dikenali. Contohnya, Anda akan menuliskan #include <linux/linkage.h> #include <linux/syscalls.h> /*agar sys_getpid() dikenali*/ asmlinkage int sys_showproc (int arg1, char* arg2) return(sys_getpid()); /*sys_getpid() mengembalikan pocess id*/ 6. Editlah file usr/src/linux/arch/i386/kernel/makefile (file Makefile pada direktori tempat Anda menyimpan file showproc.c) lalu tambahkan showproc.o pada akhir baris ke 10. Tujuannya adalah agar file Anda dapat dkompile dan di link dengan baik. 7. Lakukan konfigurasi kernel jika dibutuhkan. Ada tiga cara untuk melakukan konfigurasi kernel, yaitu melalui : text based program jalankan perintah #make config dalam direktori /usr/src/linux.2.6.xx. Perintah make akan menanyakan berbagai pertanyaan terkait konfigurasi kernel. Menekan <ENTER> akan mengembalikan nilai default. text based menu program jalankan perintah #make menuconfig dalam direktori /usr/src/linux.2.6.xx. Selanjutnya akan ditampilakan menu dialog seperti gambar di bawah ini jika pada sistem Anda ter install X Windows, Anda dapat menggunakan X based program. jalankan perintah #make xconfig dalam direktori /usr/src/linux.2.6.xx. Selanjutnya akan ditampilakan window seperti gambar di bawah ini

8. #make clean 9. #make dep Instruksi ini hanya dibutuhkan pada kernel 2.4 or older untuk mempersiapkan source file yang akan digunakan pada saat compiling. 10. Editlah file usr/src/linux/arch/i386/kernel/makefile untuk memberi nama unik pada kernel Anda. Caranya adalah dengan mengedit baris EXTRAVERSION= untuk menambahkan suffix yang unik pada akhir nama kernel default. Sebagai contoh, jika Anda memiliki kernel dengan versi 2.6.22 dan Anda mengedit EXTRAVERSION= mejadi EXTRAVERSION=-6-new, Maka nama versi kernel Anda adalah 2.6.22 6 new. 11. Compile kernel dengan perintah #make. Ini akan memakan waktu yang cukup lama. 12.#make modules_install Tujuannya adalah untuk meng copy semua module yang diciptakan pada tahap sebelumnya ke tempat default nya, yaitu direktori /lib/modules/<kernel version>. 13.#make install Kernel yang telah Anda buat harus di copy ke partisi /boot dimana seluruh file kernel aktif dari sistem disimpan. Ini dilakukan dengan perintah #make install. Anda dapat melihat kernel Anda sudah terinstall dengan perintah #ls -l /boot/vmlinuz* 14. Anda dapat meng update file /etc/grub.conf untuk memasukkan kernel Anda pada boot options. Sebenarnya, perintah #make install telah melakukan ini secara otomatis. Sebagai contoh, pada file /etc/grub.conf, akan berisi

default=2 timeout=10 splashimage=(hd0,7)/boot/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.22) root (hd0,7) kernel /boot/vmlinuz-2.6.22 ro root=label=/ rhgb quiet initrd /boot/initrd-2.6.22.img title Fedora Core (2.6.18-1.2798.fc6) root (hd0,7) kernel /boot/vmlinuz-2.6.18-1.2798.fc6 ro root=label=/ rhgb quiet initrd /boot/initrd-2.6.18-1.2798.fc6.img title Windows XP rootnoverify (hd0,0) chainloader +1 pada file di atas, tertulis default=2. Ini berarti, default boot option yang akan dipilih jika timeout habis adalah yang ke 3, yaitu Windows XP. Anda dapat mengubah default boot option menjadi Fedora Core (2.6.22) dengan mengubah default=2 menjadi default=0. Anda juga dapat mengubah waktu timeout timeout=10 sesuai yang Anda inginkan, dengan nilai integer sebagai satuan detik. 15. Lakukan reboot dengan perintah #reboot Setelah reboot dengan kernel baru, perlu dibuat driver untuk mengetes system call baru yang Anda buat. Misalkan file mainsp.c di bawah ini adalah driver yang Anda buat. Letaknya dapat di mana saja, pada contoh ini letaknya di /root/desktop Anda juga perlu mengedit unistd.h pada direktori /usr/src/linux x.x.x/include/asm/ ke /usr/include/kernel/ karena file tersebut mengandung indeks system call Anda yang baru. #include <linux/errno.h> #include <sys/syscall.h> //agar dapat memanggil system call #include <linux/unistd.h> long errno; //this is the return code from the system call //this is a macro defined in unistd.h to help prototype sys calls int showproc(int i,char* c) return syscall( NR_showproc,i,c); int showproc_par(int i,char* c) return syscall( NR_showproc_par,i,c); int showproc_time(int i,char* c)

return syscall( NR_showproc_time,i,c); int showproc_grp(int i,char* c) return syscall( NR_showproc_grp,i,c); int main() printf("current process ID : %d\n",showproc(1, "hi")); printf("current process parent ID : %d\n",showproc_par(1, "hi")); printf("current process group : %d\n",showproc_grp(1, "hi")); printf("current process time : %d\n",showproc_time(1, "hi")); return 0; Pada file di atas, ada beberapa system call yang tidak dijelaskan pembuatannya pada tahap sebelumnya: showproc_par adalah system call yang mengembalikan current process parent ID showproc_grp adalah system call yang mengembalikan current process group showproc_time adalah system call yang mengembalikan current process time Compile file mainsp.c dengan perintah #gcc -o sp mainsp.c Eksekusi dengan perintah #./sp, maka akan tampil keluaran [root@localhost Desktop]#./sp Current process ID : 4329 Current process parent ID : 4299 Current process group : 4329 Current process time : -1 [root@localhost Desktop] Written by : R. Aditya Satrya Wibawa (adityasatrya.wordpress.com) Referensi: Adding a System Call to a 2.6.x Linux Kernel, By Corban Rivera, 3204 GTA Special Edition Using Linux, 4 th Edition. Que Tugas 1 Mata Kuliah Sistem Operasi IF3191 Menambah System call baru pada Kernel Linux 2.6.x.x Asistensi IF3191, by Pasukan Asisten Sister Tambah System Call di Linux, by Catur Wirawan Adding A System Call, Worchester Poltechnic Institute Computer Science Quick HOWTO : Ch33 : Modifying the Kernel to Improve Performance. Retrieved from "http://www.linuxhomenetworking.com/wiki/index.php/quick_howto_:_ch33_:_modifying_t he_kernel_to_improve_performance"