Upload
aditya-setiawan
View
17
Download
1
Embed Size (px)
DESCRIPTION
kdjk
Citation preview
LAPORAN AKHIR
PRAKTIKUM MODUL 5
PRAKTIKUM SISTEM OPERASI
Kelompok 5
Nim/Nama : Tutde Suputrawan 1208605007
Sista Pradjna Paramitha 1208605011
Asisten Praktikum : Made Agung Raharja S.Si,M.Cs
Pembimbing : I Made Agus Setiawan, M.Kom, M.Sc.
PROGRAM STUDI TEKNIK INFORMATIKA
JURUSAN ILMU KOMPUTER - FMIPA
UNIVERSITAS UDAYANA
Bukit Jimbaran
2013
KATA PENGANTAR
Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah
memberikan rahmat dan karunia-Nya sehingga kami dapat menyelesaikan Laporan Akhir
Pratikum Sistem Operasi ini.
Laporan ini disusun dalam rangka memenuhi tugas kelompok mata kuliah pratikum
sistem operasi jurusan ilmu komputer Universitas Udayana. Kami menyadari bahwa dalam
menyusun laporan ini masih jauh dari sempurna, untuk itu kami mengharapkan kritik dan
saran yang sifatnya membangun guna sempurnanya laporan ini.
Kami berharap semoga laporan ini dapat bermanfaat bagi kami khususnya dan bagi
pembaca umumnya.
Bukit Jimbaran, November 2013
Kelompok 5
DAFTAR ISI KATA PENGANTAR .................................................................................................................................... 2
BAB 1 : PENDAHULUAN .............................................................................................................................. 4
BAB 2 : PEMBAHASAN ................................................................................................................................. 5
BAB 3 : KESIMPULAN ................................................................................................................................. 12
DAFTAR PUSTAKA ....................................................................................................................................... 12
BAB 1 : PENDAHULUAN
Tugas Praktikum :
Praktikum Sistem Operasi Modul 5 akan dibagi menjadi 2 proyek, yakni
1. Adding a System Call to the Linux Kernel.
2. UNIX Shell and History Feature.
Praktikum Modul 5 akan dilakukan pada minggu ke-12-14 (23Des-12Jan) sesuai
dengan jadwal Grup masing-masing.
Tujuan Praktikum Proyek Pertama
1. Praktikan diharapkan memahami dan mampu mengimplementasikan penambahan
System call pada kernel Linux.
2. Praktikan diharapkan dapat mensimulasikan System Call yang baru ditambahkan pada
kernel linux.
Tugas Praktikum Kelompok Ganjil
Membuat System Call yang kemudian ditambahkan pada kernel linux.
BAB 2 : PEMBAHASAN
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 kernel linux 2.6.39.4 di ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-
2.6.39.4.tar.gz
2. Untuk memindahkan file .tar.gz kernel tsb ke usr/src, kita harus menjadi superuser
terlebih dahulu agar memiliki hak khusus. Caranya : masuk terminal ketik gksu
nautilus. Tetapi jika terjadi pemberitahuan bahwa tidak ada peritnah "gksu", maka kita
perlu melakukan instalasi perintah tsb. Caranya sudo apt-get install gksu. Tunggu
download dan instalasi selesai.
3. Jika sudah selesai maka kita bisa melakukan perintah gksu nautilus, lalu ketika proses
perintah dikerjakan akan muncul folder Home. Itu menandakan bahwa kita sudah
memiliki hak khusus untuk bisa mengakses usr/src. Kemudian lakukan proses copy-
paste kernel .tar.gz dari folder asal ke folder usr/src.
4. Buka terminal baru tanpa menutup terminal proses gksu nautilus. Agar kita bisa tetap
memiliki hak akses untuk pembuatan system call. Kemudian masuk ke /usr/src.
5. Ekstrak file linux-2.6.39.4.tar.gz hasil download tadi ke direktori baru. Misalnya kita
akan meletakan di dalam folder ~/kernel/
Maka akan terdapat direktori ~/kernel/linux-2.6.39.4
6. Masuk ke dalam direktori hasil peng-ekstrak-an kernel langkah sebelumnya.
7. Buat direktori baru, misalnya extsyscall. Direktori ini akan menjadi tempat untuk
menambahkan kode system call nanti.
8. Kemudian masuk ke folder arch/x86/kernel
9. Buka file yang berisi daftar system call dengan cara "nano syscall_table_32.S".
Misalkan Anda ingin menambahkan fungsi baru dengan nama randodd(int *).
Tambahkan baris .long sys_randodd pada akhir file. (Ganti randoodd sesuai dengan nama
fungsi yang akan dibuat).
10. Keluar dari folder kernel, kemudian masuk ke folder include.
11. Buka file unistd (header API sistem operasi berbasis POSIX). Akan didaftarkan system
call yang akan dibuat.
Tambahkan baris #define __NR_randodd 345 pada akhir dari sekumpulan baris dengan
format #define __NR_namasyscall xxx.
Ganti randodd dengan nama system call yang akan dibuat.
Ganti 345 dengan nilai terakhir dari daftar system call yang ada ditambahkan dengan
1. Pada kasus ini, system call terakhir adalah #define __NR_syncfs 344, maka system call
randodd akan mendapatkan nomor system call 344 + 1 = 345.
Selain itu juga, ganti nilai pada #define NR_syscalls 345 menjadi #define NR_syscalls 346,
dengan 346 merupakan jumlah system call yang ada, yaitu nomor system call terakhir
ditambahkan dengan 1, dalam kasus ini 345 (milik randodd) + 1 = 346.
12. Sekarang akan didaftarkan system call untuk sistem dengan 64-bit. Buka file
unistd_64.h.
Tambahkan dua baris seperti pada potongan kode yang di-highlight.
Perhatikan bahwa __NR_randodd mendapatkan nomor system call 307 yang merupakan
lanjutan dari nomor system call terakhir yang ada.
13. Buka file syscall.h.
Tambahkan baris asmlinkage long sys_randodd(int *); sebelum #endif pada akhir file.
14. Buka file Makefile pada direktori utama source.
Tambahkan extsyscall/ (direktori yang dibuat tadi) pada core-y += .
15. Buka direktori extsyscall, kemudian buat file kode dengan cara sebagai berikut.
16. Buat kode yang berisi syscall pada direktori extsyscall. Misalkan file kode yang
dibuat bernama extsyscall.c juga.
Kode berikut akan menghasilkan bilangan random yang selalu ganjil.
17. Buat file Makefile pada direktori extsyscall
Isikan dengan
18. Buat file untuk menguji atau memanfaatkan systemcall yg dibuat sebelumnya.
19. Kemudian compile file.c yang telah dibuat, nantinya akan menampilkan bilangan
random.
Hasil :
BAB 3 : PENUTUP
Demikianlah laporan modul 5 yang kami buat semoga bermanfaat bagi orang yang membacanya dan menambah wawasan bagi orang yang membaca modul ini. Penulis mohon maaf apabila ada kesalahan dalam penulisan kata dan kalimat yang tidak jelas, mengerti, dan lugas.
Sedikit penjelasan darihasil percobaan yang kami buat pada praktikum kali ini, kita
dapat melihat. Pada saat menambahkan system call pada kernel linux versi terbaru kami
mengalami sedikit kesulitan dikarnakan ada salah satu binary yang hilang. Oleh karena itu,
kita menggunakan kernel v2.6 yang sesuai dengan modul dan lebih banyak contohnya
Sekian penutup dari kami semoga berkenan di hati dan kami ucapkan terima
kasih yang sebesar-besarnya.
DAFTAR PUSTAKA http://edwardsamuel.wordpress.com/2012/10/10/linux-menambahkan-system-call-pada-kernel-linux-2-6/