Senin, 05 Agustus 2019


Untuk Praktik kali ini menggunakan Linux sebagai OS nya..
Untuk Codingnya langsung aja lihat dibawah ini :


Pengaturan Perangkat

Ini sangat sederhana. Ada dua teknik untuk mengatur perangkat yang ingin kita hirup.

Yang pertama adalah kita hanya bisa memberi tahu pengguna. Pertimbangkan program berikut:

        #include <stdio.h>
        #include <pcap.h>

        int main(int argc, char *argv[])
        {
                char *dev = argv[1];

                printf("Device: %s\n", dev);
                return(0);
        }

Pengguna menentukan perangkat dengan memberikan nama itu sebagai argumen pertama ke program. Sekarang string "dev" memiliki nama antarmuka yang akan kita hirup dalam format yang dapat dipahami pcap (dengan asumsi, tentu saja, pengguna memberi kita antarmuka nyata).

Teknik lainnya sama-sama sederhana. Lihatlah program ini:

#include <stdio.h>
        #include <pcap.h>

        int main(int argc, char *argv[])
        {
               char *dev, errbuf[PCAP_ERRBUF_SIZE];

               dev = pcap_lookupdev(errbuf);
               if (dev == NULL) {
                       fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
                       return(2);
               }
               printf("Device: %s\n", dev);
               return(0);
        }

Dalam hal ini, pcap hanya mengatur perangkat sendiri. "Tapi tunggu, Tim," katamu. "Apa masalahnya dengan string errbuf?" Sebagian besar perintah pcap memungkinkan kita meneruskannya sebagai argumen. Tujuan dari string ini? Jika perintah gagal, itu akan mengisi string dengan deskripsi kesalahan. Dalam hal ini, jika pcap_lookupdev () gagal, itu akan menyimpan pesan kesalahan di errbuf. Bagus, bukan? Dan itulah cara kami mengatur perangkat kami

Membuka perangkat untuk Sniffing

Tugas membuat sesi sniffing sangat sederhana. Untuk ini, kami menggunakan pcap_open_live (). Prototipe fungsi ini (dari halaman manual pcap) adalah sebagai berikut:

pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms,
     char *ebuf)


Argumen pertama adalah perangkat yang kami tentukan di bagian sebelumnya. snaplen adalah bilangan bulat yang menentukan jumlah byte maksimum yang akan ditangkap oleh pcap. promisc, ketika disetel ke true, membawa antarmuka ke mode promiscuous (namun, meskipun disetel ke false, dimungkinkan dalam kasus-kasus tertentu untuk antarmuka berada dalam mode promiscuous). to_ms adalah waktu habis baca dalam milidetik (nilai 0 berarti tidak ada waktu habis; pada setidaknya beberapa platform, ini berarti Anda dapat menunggu hingga cukup banyak paket sebelum melihat paket apa pun, jadi Anda harus menggunakan bukan-nol waktu habis). Terakhir, ebuf adalah string yang dapat kita simpan pesan kesalahan apa pun di dalamnya (seperti yang kita lakukan di atas dengan errbuf). Fungsi mengembalikan pengendali sesi kami.
Untuk demonstrasinya:
#include <pcap.h>
  ...
  pcap_t *handle;

  handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
  if (handle == NULL) {
   fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
   return(2);
  }

Jika Program tidak suport terhadap Link-layer yang diseiakan oleh perangkat, maka code yang digunakan sbb:
if (pcap_datalink(handle) != DLT_EN10MB) {
  fprintf(stderr, "Device %s doesn't provide Ethernet headers - not supported\n", dev);
  return(2);
 }

Filtering traffic
Seringkali sniffer kami hanya tertarik pada lalu lintas tertentu. Misalnya, mungkin ada saat-saat yang kita inginkan adalah mengendus port 23 (telnet) untuk mencari kata sandi. Atau mungkin kami ingin melakukan highjack file yang dikirim melalui port 21 (FTP). Mungkin kita hanya menginginkan traffic DNS (port 53 UDP). Apa pun masalahnya, jarang sekali kita hanya ingin mengendus semua lalu lintas jaringan secara membabi buta. Masukkan pcap_compile () dan pcap_setfilter ().

Prosesnya cukup sederhana. Setelah kita memanggil pcap_open_live () dan memiliki sesi sniffing yang berfungsi, kita dapat menerapkan filter kita. Mengapa tidak menggunakan pernyataan if / else if kita sendiri? Dua alasan. Pertama, filter pcap jauh lebih efisien, karena melakukannya langsung dengan filter BPF; kami menghilangkan banyak langkah dengan meminta pengemudi BPF melakukannya secara langsung. Kedua, ini jauh lebih mudah :)

Sebelum menerapkan filter kami, kami harus "mengompilasinya". Ekspresi filter disimpan dalam string biasa (char array). Sintaksnya didokumentasikan dengan cukup baik di halaman manual untuk tcpdump; Saya meninggalkan Anda untuk membacanya sendiri. Namun, kami akan menggunakan ekspresi tes sederhana, jadi mungkin Anda cukup tajam untuk mengetahuinya dari contoh saya.

Untuk mengkompilasi program, kami memanggil pcap_compile (). Prototipe mendefinisikannya sebagai:
int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, 
     bpf_u_int32 netmask)

Argumen pertama adalah pegangan sesi kami (pegangan pcap_t * dalam contoh kami sebelumnya). Berikut ini adalah referensi ke tempat kami akan menyimpan versi kompilasi dari filter kami. Kemudian muncul ekspresi itu sendiri, dalam format string biasa. Berikutnya adalah bilangan bulat yang memutuskan apakah ekspresi harus "dioptimalkan" atau tidak (0 salah, 1 benar. Hal-hal standar.) Akhirnya, kita harus menentukan topeng jaringan dari jaringan yang diterapkan oleh filter. Fungsi mengembalikan -1 pada kegagalan; semua nilai lain menyiratkan kesuksesan.

Setelah ekspresi dikompilasi, sekarang saatnya untuk menerapkannya. Masukkan pcap_setfilter (). Mengikuti format penjelasan pcap kami, kami akan melihat prototipe pcap_setfilter ():

        int pcap_setfilter(pcap_t *p, struct bpf_program *fp)

Ini sangat mudah. Argumen pertama adalah pengendali sesi kami, yang kedua adalah referensi ke versi ekspresi yang dikompilasi (mungkin variabel yang sama dengan argumen kedua ke pcap_compile ()).

Mungkin contoh kode lain akan membantu untuk lebih memahami:
        #include <pcap.h>
  ...
  pcap_t *handle;  /* Session handle */
  char dev[] = "rl0";  /* Device to sniff on */
  char errbuf[PCAP_ERRBUF_SIZE]; /* Error string */
  struct bpf_program fp;  /* The compiled filter expression */
  char filter_exp[] = "port 23"; /* The filter expression */
  bpf_u_int32 mask;  /* The netmask of our sniffing device */
  bpf_u_int32 net;  /* The IP of our sniffing device */

  if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) {
   fprintf(stderr, "Can't get netmask for device %s\n", dev);
   net = 0;
   mask = 0;
  }
  handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
  if (handle == NULL) {
   fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
   return(2);
  }
  if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) {
   fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));
   return(2);
  }
  if (pcap_setfilter(handle, &fp) == -1) {
   fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));
   return(2);
  }

Program ini menyiapkan sniffer untuk mengendus semua lalu lintas yang datang dari atau pergi ke port 23, dalam mode promiscuous, pada perangkat rl0.

Anda mungkin memperhatikan bahwa contoh sebelumnya berisi fungsi yang belum kita diskusikan. pcap_lookupnet () adalah fungsi yang, diberi nama perangkat, mengembalikan salah satu nomor jaringan IPv4-nya dan mask jaringan yang sesuai (nomor jaringan adalah alamat IPv4 ANDed dengan mask jaringan, sehingga hanya berisi bagian jaringan dari alamat tersebut ). Ini penting karena kami perlu mengetahui topeng jaringan untuk menerapkan filter. Fungsi ini dijelaskan di bagian Lain-lain di akhir dokumen.

Sudah pengalaman saya bahwa filter ini tidak berfungsi di semua sistem operasi. Dalam lingkungan pengujian saya, saya menemukan bahwa OpenBSD 2.9 dengan kernel default memang mendukung jenis filter ini, tetapi FreeBSD 4.3 dengan kernel default tidak. Jarak tempuh Anda mungkin beragam.

Sniffing yang Sebenarnya
Pada titik ini kita telah belajar bagaimana mendefinisikan suatu perangkat, menyiapkannya untuk mengendus, dan menerapkan filter tentang apa yang seharusnya dan tidak seharusnya kita ketahui. Sekarang saatnya untuk benar-benar menangkap beberapa paket.

Ada dua teknik utama untuk menangkap paket. Kita dapat menangkap satu paket pada satu waktu, atau kita dapat memasukkan satu loop yang menunggu sejumlah paket untuk diendus sebelum dilakukan. Kita akan mulai dengan melihat bagaimana cara menangkap satu paket, kemudian melihat metode menggunakan loop. Untuk ini, kami menggunakan pcap_next ().



u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h)

Argumen pertama adalah pengendali sesi kami. Argumen kedua adalah penunjuk ke struktur yang menyimpan informasi umum tentang paket, khususnya waktu di mana ia diendus, panjang paket ini, dan panjang bagian spesifiknya (jika itu terfragmentasi, misalnya.) Pcap_next () mengembalikan pointer u_char ke paket yang dijelaskan oleh struktur ini. Kami akan membahas teknik untuk benar-benar membaca paket itu sendiri nanti.



Berikut ini adalah demonstrasi sederhana menggunakan pcap_next () untuk mengendus suatu paket.

#include <pcap.h>
  #include <stdio.h>

  int main(int argc, char *argv[])
  {
  pcap_t *handle;   /* Session handle */
  char *dev;   /* The device to sniff on */
  char errbuf[PCAP_ERRBUF_SIZE]; /* Error string */
  struct bpf_program fp;  /* The compiled filter */
  char filter_exp[] = "port 23"; /* The filter expression */
  bpf_u_int32 mask;  /* Our netmask */
  bpf_u_int32 net;  /* Our IP */
  struct pcap_pkthdr header; /* The header that pcap gives us */
  const u_char *packet;  /* The actual packet */

  /* Define the device */
  dev = pcap_lookupdev(errbuf);
  if (dev == NULL) {
   fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
   return(2);
  }
  /* Find the properties for the device */
  if (pcap_lookupnet(dev, &net, &mask, errbuf) == -1) {
   fprintf(stderr, "Couldn't get netmask for device %s: %s\n", dev, errbuf);
   net = 0;
   mask = 0;
  }
  /* Open the session in promiscuous mode */
  handle = pcap_open_live(dev, BUFSIZ, 1, 1000, errbuf);
  if (handle == NULL) {
   fprintf(stderr, "Couldn't open device %s: %s\n", dev, errbuf);
   return(2);
  }
  /* Compile and apply the filter */
  if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) {
   fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle));
   return(2);
  }
  if (pcap_setfilter(handle, &fp) == -1) {
   fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle));
   return(2);
  }
  /* Grab a packet */
  packet = pcap_next(handle, &header);
  /* Print its length */
  printf("Jacked a packet with length of [%d]\n", header.len);
  /* And close the session */
  pcap_close(handle);
  return(0);
  }




Sumber : https://www.tcpdump.org/pcap.html

Rabu, 24 Juli 2019

Pada postingan kali ini pembahasannya dalam bentuk Power Point (ppt)...
Untuk yang penasaran materinya di persilahkan langsung melihat isi nya dibwah ini..





Kamis, 04 Juli 2019






    1. MMU (Memory Manajemen Unit)

a.    Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual kealamat fisik. Pada skema MMU, nilai register relokasi ditambahkan kesetiap alamat yang dibangkitkan oleh proses user pada waktu dikirimke memori.
b.    Physical Address juga dikena sebagai link address (alamat link), adalah alamat dari sebuah node yang didefinisikan oleh LAN atau WAN. Physical Address termasuk dalam frame yang digunakan oleh lapisan data link. Physical Address adalah lowest-level address.Physical Address memiliki otoritasatas jaringan (LAN atau WAN). Ukuran dan format alamat Physical Address bervariasi tergantung pada jaringan. Sebagai contoh, Ethernet menggunakan Physical Address 6-byte (48-bit) yang dicantumkan pada network interface card (NIC). LocalTalk (Apple), Physical Address memilikialamat I-byte dinamis yang berubah setiap kali muncul.
c.    Logical address diperlukan untuk komunikasi universal yang mendasari independen dari jaringan fisik. Logical addresses tidak mendukung dalam lingkungan internetwork dimana jaringan yang berbeda dapat memiliki format alamat yang berbeda. Sebuah sistem pengalamatan universal dibutuhkan di mana setiap host dapatdi identifikasi secara unik, terlepas dari jaringan fisik yang mendasarinya.
Logical address dirancang untuk tujuan ini. Sebuah alamat logis di Internet saat ini adalah alamat 32-bit yang secara unik dapat menentukan sebuah host terhubung ke Internet. Tidak ada dua publik dan host terlihat di Internet dapat memiliki alamat IP yang sama.


2.    Partition MemoryPartisi memori adalah pembagian harddisk menjadi beberapa bagian yang digunakan untuk mempermudah manajemen file.
Terdapat 2 jenis partisi memori, yaitu :

a.    Fixed Partitioning
Ciri-ciri :
•Pembagian memori ditentukan di awal dan tidak dapat dirubah•Ukuran partisi bisa sama (equal-size) atau berbeda (unequal-size)

Kesulitan yang dihadapi :
• Ukuran program >ukuranpartisi
• Penggunaan memori yang tidak efisien
• Internal Fragmentation

Contoh OS yang menggunakan :
• IBM OS/MFT (Multiprogramming with a Fixed Number of Tasks)

b.    Dynamic PartitioningDalam dynamic memory partitioning, memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu.
Ciri-ciri :
• Alokasi memori ditentukan saat runtime Setiap proses diberikan alokasi sesuai yang dibutuhkan

Kesulitan yang dihadapi :
• External Fragmentation
• Ruang kosong di memori banyak, tetapi terbagi-bagi

3.    Penyimpanan di komputer, fragmentasi adalah sebuah fenomena di ruang penyimpanan yang digunakan secara tidak efisien, mengurangi kapasitas penyimpanan. Istilah ini juga digunakan untuk menunjukkan tempat yang gersang itu sendiri.
Ada tiga bentuk yang terkait dengan fragmentasi: fragmentasi eksternal, internal fragmentasi, dan data fragmentasi. Berbagai skema alokasi penyimpanan pameran satu atau beberapa kelemahan. 
Fragmentasi dapat diterima di kembali untuk peningkatan kecepatan atau kesederhanaan.

a.    Fragmentasi Internal
Fragmentasi internal terjadi saat penyimpanan dialokasikan tanpa pernah ngin menggunakannya. Ini adalah ruang-siakan. Sementara ini tampaknya bodoh, sering diterima dalam kembali untuk meningkatkan efisiensi atau kesederhanaan. Istilah "internal" merujuk pada kenyataan bahwa unusable penyimpanan yang dialokasikan di dalam wilayah namun tidak sedang digunakan.
Misalnya, dalam banyak sistem file, setiap file selalu dimulai pada awal sebuah cluster, karena ini simplifies organisasi dan memudahkan tumbuh file. Setiap ruang kiri atasan taraterakhir byte dari file yang pertama dan byte berikutnya dari cluster adalah bentuk internal disebut fragmentasi file atau kendur kendur ruang. 
Demikian pula, sebuah program yang mengalokasikan satu byte data seringkali banyak yang dialokasikan untuk tambahan byte metadata dan berpihak. Spasi ini juga fragmentasi internal.

Contoh lainnya: 
Inggris teks sering disimpan dengan satu karakter di masing-masing 8-bit byte meskipun standar ASCII encoding yang paling signifikan sedikit setiap byte selalu nol. Bit yang digunakan adalah bentuk fragmentasi internal.Serupa dengan meninggalkan masalah daya cipta unused muncul di banyak daerah lain. Misalnya, alamat IP hanya dapat dimiliki dalam ukuran blok tertentu, sehingga banyak IP yang dilindungi undang-undang, tetapi tidak sedang digunakan. Ini adalah kontribusi terhadap kekurangan alamat IPv4.Tidak seperti jenis fragmentasi, fragmentasi internal yang sulit untuk kembali, biasanya cara terbaik untuk melepaskannya adalah dengan perubahan desain. Misalnya, dalam alokasi memori dinamis, memori internal renang secara drastis memotong fragmentasi oleh menyebarkan overhead ruang yang lebih besar atas jumlah benda

b.    Fragmentasi Eksternal
Fragmentasi eksternal adalah fenomena yang gratis menjadi dibagi menjadi beberapa bagian kecil dari waktu kewaktu.Ini adalah kelemahan dari beberapa algoritme alokasi penyimpanan, terjadi ketika aplikasi dan mengalokasikan deallocates ( "frees") dari daerah penyimpanan berbagai ukuran, dan alokasi oleh algoritme merespon meninggalkan dialokasikan dan deallocated daerah interspersed. Hasilnya adalah bahwa, walaupun gratis tersedia, maka secara efektif unusable karena dibagi menjadi potongan-potongan yang terlalu kecil untuk memenuhi kebutuhan dari aplikasi. Istilah "eksternal" merujuk pada kenyataan bahwa unusable penyimpanan yang dialokasikan di luar daerah.
Misalnya, dalam alokasi memori dinamis, blok 1000 byte mungkin diminta, tetapi yang terbesar adalah berdekatan blok ruang kosong yang hanya 300 byte. Bahkan jika terdapat sepuluh blok 300 byte dari ruang kosong, yang dipisahkan oleh daerah dialokasikan, satu masih tidak dapat mengalokasikan yang diminta blok 1000 byte, dan alokasi permintaan akan gagal.
Fragmentasi eksternal juga terjadi di banyak file sebagai sistem file yang berbeda ukuran dibuat, mengubah ukuran, dan akan dihapus. Efek lebih buruk lagi adalah jika sebuah file yang dibagi menjadi beberapa bagian kecil akan dihapus, karena ini mirip daun kecil daerah bebas spasi.

c.    Fragmentasi Data
Data fragmentasi terjadi ketika sebuah bagian dari data dalam memori rusak kedalam banyak potongan-potongan yang tidak saling berdekatan. Hal ini biasanya hasil dari mencoba untuk memasukkan benda yang besar kedalam penyimpanan yang telah menderita fragmentasi eksternal.
Misalnya, file dalam file sistem biasanya diatur dalam unit yang disebut blok atau kelompok. Ketika sebuah file sistem yang dibuat, ada ruang untuk menyimpan file blok bersama contiguously. Hal ini memungkinkan untuk cepat berurut membaca dan menulis file. Namun, seperti file ditambahkan, dihapus, dan berubah dalam ukuran, ruang bagi menjadi eksternal, hanya meninggalkan lubang kecil di tempat yang tepat untuk data baru. Bila file yang baru ditulis, atau jika file yang sudahada diperpanjang, maka data baru blok pasti tersebar, karena perlambatan akses untuk mencari waktu dan pemutaran penundaan dari membaca / menulis head, dan overhead incurring tambahan untuk mengelola tambahan lokasi. Hal ini disebut fragmentasi file system.
Sebagai contoh lain, jika node yang terhubung daftar dialokasikan turut dalam memori, ini akan meningkatkan lokalitas dari referensi dan data cache meningkatkan kinerja selama traversal dari daftar. Jika memori renang gratis bagi ruang adalah, baru node akan tersebar di seluruh memori, meningkatkan jumlah cache misses.Seperti compaction dapat menghilangkan fragmentasi eksternal, data fragmentasi dapat dihapuskan oleh rear ranging data terkait agar buah yang saling berdekatan. Misalnya, pekerjaan utama dari defragmentation alat ini untuk mengatur ulang blok pada disk, sehingga setiap file blok yang berdekatan. Paling defragmenting utilitas juga berusaha untuk mengurangi atau menghilangkan fragmentasi ruang kosong. Beberapa pindah pengumpul sampah terkait juga akan memindahkan objek dekat bersama (disebut Memadatkan) untuk meningkatkan kinerja cache.

4.    Sistem PagingSistem Paging adalah sistem manajemen pada sistem operasi dalam mengatur program yang sedang berjalan. Program yang berjalan harus dimuat di memori utama. Kendala yang terjadi apabila suatu program lebih besar dibandingkan dengan memori utama yang tersedia.Paging itu memecah memori fisik menjadi blok-blok yang berukuran tertentu di sebut frame, dan memecah memori logika menjadi blok-blok yang disebut page, seperti di jelaskan dalam point pengertian di atas, Jadi karena ada program yang melebihi memori utama, maka dengan paging ini, dapat di pecah-pecah menjadi beberapa bagian, sehingga program dapat di eksekusi

Selasa, 09 April 2019



Layanan langsung sistem operasi ke pemrograman, disebut dengan system call. System call adalah tata cara pemanggilan di program aplikasi untuk memperoleh layanan yang disediakan oleh sistem operasi(kernel). System call berupa rutin sistem operasi untuk keperluan tertentu yang spesifik.

   System Call untuk manajemen proses diperlukan untuk mengatur proses-proses yang sedang berjalan. Kita dapat melihat penggunaan system calls untuk manajemen proses pada Sistem Operasi Unix. Contoh yang paling baik untuk melihat bagaimana system call bekerja untuk manajemen proses adalah Fork.

 Keuntungan dan kerugian menggunakan system call sama antarmuka untuk memanipulasi baik file dan perangkat adalah Setiap perangkat dapat diakses seolah-olah itu adalah file dalam file sistem. Karena sebagian besar penawaran kernel dengan perangkat melalui antarmuka file, relatif mudah untuk menambahkan device driver baru dengan menerapkan kode perangkat keras khusus untuk mendukung antarmuka file abstrak.

   Oleh karena itu, ini manfaat pengembangan baik kode program pengguna, yang dapat bewritten untuk mengakses perangkat dan file dalam samemanner, dan perangkat sopir kode, yang dapat ditulis untuk mendukung API yang didefinisikan dengan baik. Kerugian itu dengan menggunakan antarmuka yang sama adalah bahwa mungkin akan sulit untuk menangkap fungsi peralatan tertentu dalam konteks akses file API, sehingga baik mengakibatkan hilangnya fungsi atau kerugian kinerja. Beberapa ini dapat diatasi dengan penggunaan operasi ioctl yang menyediakan antarmuka tujuan umum untuk proses untuk memanggil operasi pada perangkat.

Ada lima jenis system calls utama, yaitu:

a. Process control merupakan system calls yang mengendalikan proses-proses yang berjalan.
    *load
    *execute
    *create process
    *terminate process
    *get/set process attributes
    *wait for time, wait event, signal event
    *allocate, free memory
b. File manipulation adalah kumpulan system calls yang bertugas untuk melakukan manipulasi file seperti pembacaan, penulisan, penghapusan dan pengubahan.
    *create file, delete file
    *open, close
    *read, write, reposition
    *get/set file attributes
c. Device manipulation adalah system calls yang mengatur penggunaan peralatan-peralatan yang terhubung pada mesin tersebut.
    *request device, release device
    *read, write, reposition
    *get/set device attributes
    *logically attach or detach devices
d. Information maintenance. System calls yang menghubungkan user dengan sistem operasi dalam hal berbagi informasi.
    *get/set time or date
    *get/set system data
    *get/set process, file, or device attributes
e. Communications. Ada dua model komunikasi yaitu pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi (Message-Passing) dan pertukaran dengan menggunakan memori (shared-memory).
    *create, delete communication connection
    *send, receive messages
    *transfer status information
    *attach or detach remote device


Bentuk system call beragam, terbanyak berupa rutin prosedur atau fungsi.

Dibawah ini saya akan mencaoba menambahkan systemcall dengan nama mysyscall yang berguna untuk menampilkan local time dengan mengabaikan parameter zona watu.

Menambahkan system call
1.    Download kernel linux versi 2.6.32, nama file: linux-2.6.32.tar.gz
2.    Copy download ke direktori /usr/src
3.    Masuk direktori /usr/src
cd /usr/src
4.    Extract archive linux-2.6.32 pada direktori /usr/src
sudo tar zxf linux-2.6.32.tar.gz
5.    Kita akan membuat system call dengan nama fungsi mysyscall, untuk itu buat folder mysyscall pada /usr/src/linux-2.6.32:
sudo mkdir /usr/src/linux-2.6.32/mysyscall
6. Cari file /usr/src/linux-2.6.32/arch/x86/kernel/syscall_table_32.S, dan buka
sudo gedit /usr/src/linux-2.6.32/arch/x86/kernel/syscall_table_32.S
tambahkan pada akhir file:
.long sys_mysyscall
7.    Cari file /usr/src/linux-2.6.32/arch/x86/include/asm/unistd_32.h, dan buka
sudo gedit /usr/src/linux-2.6.32/arch/x86/include/asm/unistd_32.h
tambahkan:
#define __NR_mysyscall 337
setelah baris:
#define __NR_perf_event_open 336
8.    Cari file /usr/src/linux-2.6.32/include/linux/syscalls.h , dan buka
sudo gedit /usr/src/linux-2.6.32/include/linux/syscalls.h
tambahkan:
asmlinkage int sys_mysyscall(struct timeval *current_time);
setelah baris 881
9. Cari file /usr/src/linux-2.6.32/Makefile, dan buka
sudo gedit /usr/src/linux-2.6.32/Makefile
cari baris dengan text “core-y                 +=” (jarak antara ‘y’ dan ‘+’ 2 tab), dan sunting menjadi:
core-y      += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ mysyscall/
10. Buat file mysyscall.c pada direktori /usr/src/linux-2.6.32/mysyscall:
sudo gedit /usr/src/linux-2.6.32/mysyscall/mysyscall.c
isikan source code system call baru yang akan ditambahkan sebagai berikut:
/* file mysyscall.c */#include <linux/linkage.h>#include <linux/unistd.h>
#include <linux/time.h>
#include <linux/kernel.h>
asmlinkage int sys_mysyscall(struct timeval *current_time) {
/** tulis kode system call baru Anda di sini **/
if (current_time != NULL) {
/* sudah dialokasi */
do_gettimeofday(current_time);
}else{
/* current_time belum dialokasi */
return 0;
}
/* berhasil mendapatkan system time */
return 1;
}
11. Buat file Makefile pada direktori /usr/src/linux-2.6.32/mysyscall:
sudo gedit /usr/src/linux-2.6.32/mysyscall/Makefile
isikan sebagai berikut:
obj-y := mysyscall.o
12. Anda telah berhasil menambahkan system call pada kernel linux, Selamat Gan!!! Lanjut ke mengkompilasi kernel agar bisa dipakai system call anda yang buat
Mengkompilasi kernel
1.    Untuk mengkompilasi kernel, sebelumnya tambahkan program berikut ini, bisa lewat Synaptic Package Manager atau lewat sudo apt-get install
kernel-package libncurses5-devfakeroot
kernel-wedge
build-essential
libncurses5
makedumpfile
2.    Setelah menambahkan program-program diatas pada linux Anda, sekarang ayo memulai kompile kernel. Masuk direktori /usr/src/linux-2.6.32:
cd /usr/src/linux-2.6.32
3.    Sekarang konfigurasi kernel, samakan konfigurasi dengan konfigurasi kernel anda saat ini:
sudo make oldconfig
4.    Supaya dalam mengkompilasi kernel, yang dikompilasi hanya modul yang dibutuhkan system anda:
sudo make localmodconfig
5.    Untuk konfigurasi lebih lanjut (tapi repot mending gak usah):
sudo make menuconfig
6.    Untuk membuat clean build:
sudo make-kpkg clean
7.    Kompile semua source code:
sudo make all
8.    Setelah selesai kompilasi (nunggu lama), masukkan:
sudo fakeroot make-kpkg –initrd –append-to-version=-custom kernel-image kernel-headers
9.    Kompilasi sudah berhasil. Sekarang masuk direktori /usr/src
cd /usr/src
10. Instalasi kernel:
sudo dpkg -i linux-image-2.6.32-custom_2.6.32-custom-10.00.Custom_i386.debsudo dpkg -i linux-headers-2.6.32-custom_2.6.32-custom-10.00.Custom_i386.deb
11. Masuk direktori /boot:
cd /boot
12. Buat initrd image
sudo mkinitramfs -k -o initrd.img-2.6.32-custom 2.6.32-custom
13. Update grub, supaya kernel yang baru muncul pada boot
sudo update-grub
14. Instalasi selesai sekaran restart dan coba boot dengan kernel yang baru yaitu “Ubuntu, Linux 2.6.32-custom”
Untuk mencoba menjalankan system call yang baru anda dapat membuat program kecil seperti dibawah ini:
/* file: c.h */#include <linux/unistd.h>#define __NR_mysyscall 337
int mysyscall(struct timeval *tv)
{
return syscall(__NR_mysyscall,tv);
}
/* file c.c */
#include <sys/time.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include “c.h”
int main(void)
{
struct timeval current_time;
struct tm * timeinfo;
int output=mysyscall(&current_time);
if(output){
/* Jika berhasil */
timeinfo = localtime ( &current_time.tv_sec );
printf(“System time: %s”,asctime (timeinfo));
printf(“Microsecond: %ld\n”,(long)current_time.tv_usec);
}else{
/* Jika gagal */
printf(“gagal mengambil system time\n”);
}
return 0;
}


Sumber :
http://anis99mi.blogspot.com/2015/01/sistem-call-pada-sistem-operasi.html
https://selaluwanien.wordpress.com/2011/10/18/shell-linux-dan-system-call-linux/

Senin, 01 April 2019

Oke temans selamat berjumpa kembali..untuk edisi kali ini mimin bakal sedikit bahas tentang PENGERTIAN, MACAM-MACAM DAN FUNGSI DARI PERANGKAT JARINGAN yang sudah akrab digunakan oleh orang jaringan tentunya. oke..tak perlu berlama-lama lagi langsung saja kepembahasannya.....


1. Router

Perangkat keras dalam jaringan komputer berikutnya adalah router. Router sendiri secara teknis memiliki fungsi untuk melakukan penghalaan, atau menyalurkan koneksi internet melalui protokol TCP IP menuju komputer client. Secara khusus, fungsi router bisa seperti access point, dimana bisa meneruskan koneksi internet dari broadband atau provider mernuju lokasi komputer client. Namun demikian, pada dasarnya fungsi router jauh lebih banyak dari pada itu, karena router digunakan untuk memberikan rute atau jalan – jalan tertentu bagi paket data yang ditransmisikan.

2. Bridge

Perangkat Bridge ini berfungsi untuk memperluas jaringan ke bentuk jaringan lain yang lebih luas sehingga bisa dipergunakan pada perangkat lain. Dalam kinerja Bridge ini ia harus mengenali alamat MAC yang biasanya mentransmisikan sebuah data ke jaringan, baru kemudian bridge membuat tabel otomatis. Kelebihan perangkat bridge ini ialah ia bisa menentukan segmen mana yang akan di rooting atau di saring.

3. Access Point

Access Point kegunaannya mirip dengan router. Namun Access Point memiliki fungsi yang sebenarnya ialah untuk memancarkan Wireless sinyal yang dipancarkan dari router untuk membuat jaringan WLAN. Salah satu kelebihan Access Point ini adalah dapat tersambung langsung dengan broadband atau router

4. LAN Card

Seperti halnya dengan perangkat jaringan yang lain, LAN Card ini merupakan perangkat jaringan yang dapt menghubungkan kiriman data dari perangkat satu ke perangkat lainnya. Tapi pada LAN Card ini harus menggunakan kabel biar data dapat sampai ke perangkat lainnya. Pada penggunaan LAN ini maka data dapat tertransmisikan menggunakan media jaringan kabel UTP.

5.Switch

Switch merupakan sebuah hardware yang fungsinya hampir sama dengan HUB, ia bisa membagi-bagi jaringan lokal ke banyak perangkat komputer. Sementara fungsi utamanya switch ini ialah untuk menerima sinyal, mengirimkan data jaringan dari server ke jaringan perangkat lain. Namun, kelebihan switch dibandingkan hub adalah switch lebih cerdas dalam membagi sinyal koneksi. Dalam kata lain, switch mampu membuat beberapa komputer mendapatkan kecepatan internet yang setara

6. Antena

Antena adalah alat untuk mengirim dan menerima gelombang elektromagnetik, bergantung kepada pemakaian dan penggunaan frekuensinya, antena bisa berwujud berbagai bentuk, mulai dari seutas kabel, dipole, ataupun yagi, dsb.

Antena adalah alat pasif tanpa catu daya (power), yang tidak bisa meningkatkan kekuatan sinyal radio, dia seperti reflektor pada lampu senter, membantu mengkonsentrasi dan memfokuskan sinyal.

Kekuatan dalam mengkonsentrasi dan memfokuskan sinyal radio, satuan ukurnya adalah dB.
Jadi ketika dB bertambah, maka jangkauan jarak yang bisa ditempuhpun bertambah.
Jenis antena yang akan dipasang harus sesuai dengan sistem yang akan kita bangun, juga disesuaikan dengan kebutuhan penyebaran sinyalnya.

7. Modem

Modem adalah sebuah singkatan dari Modulator Demodulator. Modulator adalah bagian yang berfungsi guna mengubah sinyal informasi menjadi sinyal pembawa atau carrier dan siap dikirimkan, sedangkan Demodulator merupakan bagian yang memisahkan sinyal informasi dari sinyal pembawa yang diterima yang selanjutnya informasi tersebut dapat diterima dengan baik.

Modem adalah penggabungan dari 2 alat tersebut yang artinya modem merupakan suatu alat komunikasi dua arah. Setiap perangkat komunikasi jarak jauh 2 arah pada umumnya memakai bagian yang disebut "modem", seperti Microwave Radio dan sebagainya, namun pada umumnya istilah modem dikenal sebagai sebuah Perangkat keras yang digunakan untuk keperluan komunikasi pada komputer.


Hai Temans-temans setelah sekian lama mimin tak mengunggah konten materi baru, kali ini mimin mau upload materi baru tentang Cara Instalasi Linux Debian 9 di Virtualbox. Bagi kalian yang belum tau Apa sih Debian itu?? Disini mimin mau kasih tau bocoran sedikit.

Debian adalah Sistem operasi yang pengembangannya bebas atau terbuka oleh Programmer Suka rela yang tergabung dalam proyeksi Debian. Sistem operasi ini juga gabungan dari perangkat lunak yang dikembangkan dengan lisensi GNU, dan utamanya menggunakan kernel Linux sehingga populer dengan nama Debian GNU/Linux dan merupakan distro Linux yang populer saat ini.

untuk spesifikasinya jikan menggunakan Desktop minimal RAM 256 megabytes dan ram yang direkomendasikan 1GB serta membutuhkan Hard Drive 10GB. Sedangkan jika menggunakan yang non Desktop atau yang lebih sering disebut console minimal RAM 1MB dan RAM yang direkomendasikan 512 MB dan kebutuhan Hard Drive 2GB.

Mungkin kenalannya sampai situ aja. Dan langsung saja kita ke Cara Instalasi Linux Debian 9 di Virtualbox ...

Langkah ke-1 Buka aplikasi Oracle VM Virtualbox,

Langkah ke-2 Klik new untuk membuat mesin virtual baru

Langkah ke-3 Masukkan nama mesin virtual. Jika nama tersebut di isi nama os type,icon dan version berganti sesuai dengan nama jika namanya tidak diketahui/terdaftar biasanya type,icon dan version berganti ke other. Setelah Selesai klik Lanjut

Langkah ke-4 Atur ram untuk mesin virtualnya. Sesuai dengan kebutuhan mesinnya dan besar ram asli.

Langkah ke-5 Konfigurasi virtual hardisk.
  • Do not add a virtual hard disk= tidak menambahkan hardisk virtual
  • Create a virtual hard disk now= buat hardisk virtual sekarang
  • Use an existing virtual hard disk file= memakai virtual hardisk yang sudah ada. Jika memakai ini maka diharuskan menambahkan file virtual hardisk dibawahnya.

Jika memilih create a virtual hard disk now. Maka setelah klik ok/create dihadapkan seperti foto diatas secara berurutan.


Langkah ke-6 pilihlah jenis virtual hardisk.
  • VDI=virtualbox
  • VMDK=vmware



Langkah ke-7 pilihlah settingan hardisknya
  • Dynamically allocated= besar file hardisk virtual sesuai dengan isi hardisk virtual tersebut dengan maksimal sesuai dengan yang ditentukan di step selanjutnya.
  • Fixed size = besar file hardisk virtual sesuai dengan besar yang ditentukan di step selanjutnya


Langkah ke-8 Setelah klik next tentukan nama file hardisk,letak file hardisk,ukuran file hardisk.
Setelah selesai klik Buat 

Langkah ke-9 Sebelum menyalakan mesin virtualnya ada 2 yang perlu di setting yaitu cd/iso dan jaringannya. Untuk menyetting klik pada logo yang seperti dibawah ini

Langkah ke-10 Pilih CD dengan mengeklik logo CD sebelah kiri, dan kemudian klik lagi logo yang sebelah kanan untuk memilih ISO debian. Setelah selesai lanjut ke langkah berikutnya

Langkah ke-11 Masuk ke bagian network. Setelah itu centang enable network adapter.
Pilih jenisnya.
  • Host only=pc tersebut dengan virtual
  • Internal= virtual dengan virtual
  • Bridged= virtual denga jaringan yang tersambung dengan pc
  • Name= nama adapternya
  • Adapter type= jenis/hardware adapternya
  • Premiscuous= pilih allow all/ijinkan semua
  • Mac address
  • Cable connected
  • Port forwarding

Setelah selesai klik ok.


Langkah ke-12 Klik Mulai untuk menyalakan mesin virtualnya


Langkah ke-13 Pilih mode installnya.
  • Graphic install=bisa menggunakan mouse dan touchpad.berwarna dan bergambar
  • Install= tidak bisa menggunakan mouse dan touchpad. Background biru.
  • Untuk mode dibawahnya jarang digunakan


Langkah ke-14 Pilih bahasa yang akan digunakan.

Langkah ke-15 Pilih negaranya. Karena lokasi penginstalan saya di Indonesia jadi harus mencari negara Indonesia seperti  Gambar dibawah .



Langkah ke-16 Karena kombinasi bahasa dan negara tidak ada maka disuruh memilih kombinasi yang ada

Langkah ke-17 Pilih keyboard yang digunakan. Untuk qwerty/keyboard biasa. Pilih american english.

Langkah ke-18 Masukkan hostname/nama komputer

Langkah ke-19 Masukkan Domain komputer dan Root Password



Langkah ke-20 Masukkan nama lengkap untuk user baru.

Langkah ke-21 Defaultnya nama user baru diambil dari kata pertama full name. bisa diganti nama usernya disini

Langkah ke-22 Masukkan password untuk user baru tersebut.


Langkah ke-23 Pilih zona waktu.


Langkah ke-24 Konfigurasi partisi disini saya menggunakan manual.

Langkah ke-25 Jika hardisk baru maka disuruh membuat table partisi terlebih dahulu dengan cara pilih hdd dan klik enter.

Langkah ke-26 Disini saya akan membuat partisi  root. Untuk cara membuat partisinya pilih di bagian free space tekan enter.

       Pilih create a new patition. Untuk membuat partisi manual

      Tentukan besar partisinya

      Tentukan type partisinya.hardisk tipe mbr maksimal partisi primary nya 4.

       Jika mempunyai free space setelah membuat partisi ini. Maka ditanyakan apakah ditaruh di depan atau di belakang. Maksudnya:

  • Didepan=free space berada setelahnya partisi ini
  • Dibelakang= free space berada sebelum partisi ini


 Pilih Bootable Flag : On. Dengan cara enter

 Ketika selesai pilih Done Setting up the partition


Langkah ke-27 Untuk Partisi berikutnya yakni partisi untuk Swap





Karena tadi saya konfigurasi untuk swap maka yang bagian use as diganti menjadi swap area dengan cara=pilih use as klik enter dan pilih swap area.



Langkah ke-28 Swap sudah terbuat sekarang buat partisi root. Pilih free space dan klik enter





 Langkah ke-29 Jika konfigurasi partisinya sudah selesai langsung pilih finish.

Langkah ke-30 Partisi tesebut akan di format. Pilih yes

Langkah ke-30 Dibagian ini mungkin membutuhkan waktu yang lama.


Langkah ke-31 Scan cd/dvd/iso lain?? Pilih saja no. saya sarankan scan nanti aja setelah selesai terinstall. Karena kalau di scan disini mungkin ada beberapa aplikasi yang akan terinstall dari dvd yang baru discan. Dan membuat waktu instalasi semakin lama.

Langkah ke-32 Sama seperti yang di dvd tadi bedanya ini menggunakan internet/repo dan lebih lengkap dibanding dvd.

Langkah ke-33 Apakah ingin berpartisipasi dalam survey??

Langkah ke-34 Agar lebih cepat centang saja bagian standard. Jika ingin ada desktopnya pilih salah satu antara debian desktop sampai web.


Langkah ke-35 Install grub boot loader wajib. Pilih yes.setelah itu pilih diletakkan dimana. Pilih jika tadi diinstall di flashdisk maka bootloadernya juga di flashdisk. Jika tadi diinstall di hardisk maka bootloadernya juga di taruh di hardisk.




Langkah ke-36 Tampilan GNU GRUB version 2.02 untuk Debian 9. Pilih opsi *Debian GNU/Linux untuk masuk ke sistem Debian 9.




Popular Posts

renny wahyu. Diberdayakan oleh Blogger.

Contact Us

Nama

Email *

Pesan *

Total Pageviews

Pages