12
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

Klp1 05 Laporan Akhir

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/