blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello...

12
TUGAS : TUGAS PRAKTIKUM 4 SISTEM OPERASI NAMA : ANGGI GUSTININGSIH HAPSANI NIM : 105060801111009 KELAS : C ASISTEN : AULIA MEITIKA KUSUMAWARDHANI 1. Modul kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus secara terpisah dari bagian kernel lainnya saat dibutuhkan. Tujuan dibuat sebuah modul kernel adalah untuk menyediakan fungsi-fungsi yang tidak disediakan secara default oleh kernel. Modul ini biasanya digunakan sebagai device driver. Program 2. Membuat custom kernel

Transcript of blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello...

Page 1: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

TUGAS : TUGAS PRAKTIKUM 4 SISTEM OPERASI

NAMA : ANGGI GUSTININGSIH HAPSANI

NIM : 105060801111009

KELAS : C

ASISTEN : AULIA MEITIKA KUSUMAWARDHANI

1. Modul kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus secara terpisah dari bagian kernel lainnya saat dibutuhkan. Tujuan dibuat sebuah modul kernel adalah untuk menyediakan fungsi-fungsi yang tidak disediakan secara default oleh kernel. Modul ini biasanya digunakan sebagai device driver.Program

2. Membuat custom kernel

1. Download kernel linuxversi 2.6.32, nama file: linux-2.6.32.tar.gz2. Copy download kedirektori /usr/src, laluxtractmenggunakanperintah

sudo tar zxf linux-2.6.32.tar.gz

3. Masukdirektori /usr/src/linux-2.6.32. Lalukonfigurasi kernel, samakankonfigurasidengankonfigurasi kernel andasaatini

Page 2: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

4. Supayadalammengkompilasi kernel, yang dikompilasihanyamodul yang dibutuhkan system anda:

5. Untukmembuat clean build:

6. Kompilesemua source code menggunakanperintahsudo make all:

Page 3: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

Proses compile

7. Setelahselesaikompilasi, masukkanperintah :

8. Sekarangmasukdirektori /usr/src. Instal kernel menggunakanperintah

9. Masukdirektori /boot, buatinitrd image

Page 4: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

10. Update grub, supaya kernel yang barumunculpada boot

11. Instalasi selesai sekaran restart dan coba boot dengan kernel yang baru yaitu “Ubuntu, Linux 2.6.32-custom”

3. Membuat hello world module1. Buat program dengan nama hello2.c

2. Buat file Makefile lalu isi seperti dibawah ini

Page 5: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

3. Compile dengan perintah make

4. Periksa informasi dengan perintah modinfo

5. Ketikkan perintah sudo insmod hello2.ko

Ketikkan perintah sudo lsmod | grep hello2

Page 6: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

Masuk ke directory /var/log

Kemudian ketikkan perinta cat syslog

Page 7: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

4. Menambahkan system call dalam kernel

1. Kita akanmembuat system call dengannamafungsimysyscall, untukitubuat folder mysyscallpada /usr/src/linux-2.6.32

2. Edit file syscall_table_32.S

tambahkanpadaakhir file:

3. Edit file unistd_32.h

Tambahkan #define __NR_mysyscall 337, setelahbaris #define __NR_perf_event_open 336. Janganlupamerubahbarisdibawahnyamenjadi #define NR_syscalls 338

Page 8: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

4. Edit file syscalls.h

Tambahkankodeberikutsetelahbaris 881

5. Edit file Makefile

caribarisdengan text “core-y                 +=” (jarakantara ‘y’ dan ‘+’ 2 tab), danubahmenjadi:

Page 9: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

6. Buat file mysyscall.cpadadirektori /usr/src/linux-2.6.32/mysyscall:

isikan source code system call baru yang akanditambahkansebagaiberikut:

7. Buat file Makefilepadadirektori /usr/src/linux-2.6.32/mysyscall:

isikan file sepertiberikut:

Page 10: blog.ub.ac.idblog.ub.ac.id/nggimoshi1/files/2012/01/prak4-sisop.docx  · Web viewMembuat hello world module. Buat program dengan nama hello2.c. Buat file Makefile lalu isi seperti

8. Untukmencobamenjalankan system call yang baruandadapatmembuat program kecilsepertidibawahini:

Program c.h

Program c.c

Compile program c.c,lalueksekusi

1.