Senin, 30 November 2015

FILESYSTEM IN USERSPACE (FUSE)

Ya, dalam postingan kali ini, kita akan membahas FUSE. Apa itu FUSE? Sebelum membahas FUSE kita harus memahami apa itu FIlesystem.

File System/sistem berkas adalah struktur logika yang digunakan untuk mengendalikan akses terhadap data yang ada pada harddisk.
Dalam File System, terdapat berbagai jenis-jenisnya dan penggunaan algoritma yang berbeda. Semakin baru jenis dari sebuah File System, maka semakin bagus pula kualitas dari File System tersebut.

Misalnya FAT (File Allocation Table). Jenis partisi terdahulu pada Windows yang kemudian diperbaharui dengan adanya FAT-16, FAT -32, dan yang terakhir adalah jenis NTFS (New Technology File System).
Pada Linux, terdapat jenis File System EXT 2 (Extended 2), Swap (Virtual Memory), dan lain-lain. File System terbaru pada Linux adalah EXT 4 yang tentunya lebih baik dari versi-versi EXT yang lainnya.
Filesystem in Userspace (FUSE) merupakan mekanisme sistem operasi untuk sistem operasi Unix-like yang memungkinkan pengguna tidak ber-hak istimewa menciptakan file system mereka sendiri tanpa mengubah kode kernel. Hal ini dicapai dengan menjalankan kode file system di userspace, sedangkan modul FUSE hanya menyediakan "jembatan" untuk antarmuka kernel yang sebenarnya.


Module kernel FUSE dan FUSE library berhubungan melalui sebuah special file descriptor yang didapatkan dengan membuka /dev/fuse. FUSE kernal module meneruskan request ke aplikasi fuse anda. aplikasi anda memerintahkan fuse cara menjawab request. FUSE kernal module dan FUSE library berkomunikasi lewat file deskriptor spesial yang diperoleh dengan membuka /dev/fuse. file ini dapat terbuka berkali-kali dan file deskriptor yang diperoleh diteruskan ke mount syscall, untuk menyesuaikan deskriptor dengan filesystem mount.


Installasi FUSE: 
1. Download FUSE dari http://fuse.sourceforge.net/ pada bagian Download stable release
2. Extract file tar.gz dan masuk ke direktori FUSE. (tar –xvzf fuse-2.9.4.tar.gz)
3. Lakukan installasi FUSE dengan cara : 
       a. Gunakan hak akses super user (sudo su)
       b. Ketikkan perintah ./configure
       c. Ketikkan perintah make
       d. Ketikkan perintah make install
4. FUSE siap digunakan

Ketikkan code berikut ini

#include <fuse.h>#include <stdio.h>#include <string.h>#include <unistd.h>#include <fcntl.h>#include <dirent.h>#include <errno.h>#include <sys/statfs.h>
static const char *dirpath = "/home/zavox/Documents"; static int xmp_getattr(const char *path, struct stat *stbuf){ int res; char fpath[1000]; sprintf(fpath,"%s%s",dirpath,path); res = lstat(fpath, stbuf); if(res == -1) { return -errno; } return 0;}
static int xmp_getdir(const char *path, fuse_dirh_t h, fuse_dirfil_t filler){ char fpath[1000]; if(strcmp(path,"/") == 0) { path=dirpath; sprintf(fpath,"%s",path); } else sprintf(fpath, "%s%s",dirpath,path); int res = 0; DIR *dp; struct dirent *de; dp = opendir(fpath); if(dp==NULL) { return -errno; } while((de = readdir(dp))!=NULL) { res = filler(h, de->d_name, de->d_type); if(res!=0) break; } closedir(dp); return res;}
static struct fuse_operations xmp_oper ={ .getattr = xmp_getattr, //.readlink = xmp_readlink, .getdir = xmp_getdir, //.mknod = xmp_mknod, //.mkdir = xmp_mkdir, //.symlink = xmp_symlink, //.unlink = xmp_unlink, //.rmdir = xmp_rmdir, //.rename = xmp_rename, //.link = xmp_link, //.chmod = xmp_chmod, //.chown = xmp_chown, //.truncate = xmp_truncate, //.utime = xmp_utime, //.open = xmp_open, //.read = xmp_read, //.write = xmp_write, //.release = xmp_release, //.fsync = xmp_fsync, //.readdir = hello_readdir};
int main(int argc, char *argv[]){ return fuse_main(argc, argv, &xmp_oper);}

Code diatas merupakan conto template, jadi jika ingin mencoba FUSE, hanya perlu mengganti dirpath saja, untuk menjalankan program ketik gcc -Wall [nama file].c `pkg-config fuse –cflags –libs` -o [nama file]

Kemudian ketikkan mkdir [nama folder] nama folder bebas

Kemudian ketikkan ./[nama file] /tmp/fuse

Jika berhasil, dan anda menggunakan Ubuntu, maka pada folder device akan keluar [nama folder] dibawah drive HDD yang berisi filesystem dengan direktori "Documents"

Sabtu, 07 November 2015

TUTORIAL MEMAINKAN LAGU MENGGUNAKAN TERMINAL

Dalam Entri ke-3 ini saya akan menjelaskan tentang thread. Apa itu thread? Thread adalah sebuah pengontrol aliran program pelaksanaan program dengan menggunakan kendali tunggal. Operasi yang paling Modern saat ini adalah sistem yang banyak sekali menyediakan berbagai cara, dan memungkinkan suatu proses terkendali dengan baik.

Jika mendengar kata thread, biasanya kita juga mendengar istilah multithreading. Sesuai dengan istilahnya, multi artinya banyak sehingga multithread dapat diartikan sebagai thread yang banyak.  Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor.

Ya, karena udah panjang lebar diatas, langsung aja kita buat codenya, program yang dibutuhkan untuk tutorial kali ini adalah vlc, yaitu program yang berfungsi untuk memutar media, baik itu berupa audio maupun video, dan program gedit, berikut adalah langkah-langkahnya:
1. Ketik gedit playing.c pada terminal, jika belum memiliki program tersebut ketik "sudo apt-get install gedit"

2. Ketikkan library dan fungsi PlayMusic seperti dibawah ini


 3. Ketikkan main seperti dibawah ini

4. Save dan close, kemudian kembali ke terminal
5. Jalankan program dengan cara mengetik "gcc -pthread playing.c -o playing" pada terminal
6. Eksekusi program dengan mengetik "./playing"

Keterangan
-Pada saat pertama kali program berjalan, maka akan ada tulisan "Ketik '0' untuk mengeluarkan bantuan"
-Dan saat kita mengetik "0" maka akan keluar bantuan seperti dalam fungsi PlayMusic
-Untuk melihat list lagu ketikkan 1, untuk mengambil list lagu, saya menggunakan "grep .mp3" yang berfungsi untuk mengambil nama file yang berformat mp3, sehingga untuk file audio yang tidak menggunakan format mp3 tidak akan bisa diputar, dan lagu berada di home
-Untuk memutar lagu ketikkan "2 (judul lagu).mp3"(judul lagu harus yang ada di list nomor 1)
-Untuk pause lagu ketikkan "3 (waktu)"(waktu dalam satuan detik), misalnya saya mengetikkan "3 5" maka lagu akan di pause setelah 5 detik
-Untuk continue lagu ketikkan "4 (waktu)"(waktu dalam satuan detik)
-Untuk stop lagu ketikkan "5 (waktu)"(waktu dalam satuan detik)

Sekian tutorial singkat saya tentang memainkan lagu menggunakan terminal

Minggu, 18 Oktober 2015

TUTORIAL MENGUBAH WARNA FOTO OTOMATIS MENJADI GRAY MENGGUNAKAN IMAGEMAGICK

Kali ini saya akan memberikan tutorial tentang mengubah warna foto menjadi gray menggunakan Imagemagick. Apa yang dibutuhkan? Cukup 1 yaitu software yaitu imagemagick

Apabila anda baru menginstall Linux di dalam PC anda, maka anda harus mendownload dulu aplikasi Imagemagick. Ada beberapa cara yang dapat digunakan yaitu download manual dan download dengan melalui terminal. Saya hanya akan menjelaskan cara download imagemagick melalui terminal.

Langkah-langkah yang dibutuhkan adalah:
1. Buka Terminal

2. Ketikkan sudo apt-get install imagemagick, apabila diminta memasukkan password, inputkan password anda

3. Apabila langkah kedua gagal maka ketik sudo apt-get update, apabila diminta memasukkan password, inputkan password anda, setelah proses selesai, kembali ke langkah 2
Setelah selesai menginstall imagemagick maka kita langsung dapat lanjut ke proses lainnya. Untuk membuat program berjalan secara otomatis, kita harus membuat daemon process, apa itu daemon process? Daemon process adalah program yang dapat berjalan secara otomatis di background dan tidak memiliki interface. Kali ini saya akan sekaligus menjelaskna tentang bagaimana membuat daemon process dan mengeksekusi program tersebut, berikut langkah-langkahnya:
1. Buatlah file *.c dengan menggunakan terminal text editor, saya menggunakan nama daemon2.c, dan ketikkan seperti contoh foto ke 1.2, jika tidak jelas, lihat foto nomor 1.3, setelah membuat file *.c tadi save kemudian close text editor
Keterangan system("./2modul2.sh") pada line 34 mengacu kepada shell script yang akan dibuat selanjutnya
2. Buat file *.sh dengan terminal text editor, saya menggunakan nama 2modul2.sh, dan ketikkan seperti contoh foto ke 2.2, jika tidak jelas, lihat foto nomor 2.3, kemudian save dan close text editor
Keterangan perintah pada line 11 yaitu convert "$line" -colorspace Gray "${photo::-4}"_copy.jpg berfungsi untuk mengubah warna menjadi gray, dan mengopy file foto, sehingga file original masih tetap ada

3. Pada terminal ketikkan gcc (nama_file).c -o (nama), contoh:

4. Eksekusi dengan menggunakan perintah ./(nama)

5. Cek foto dengan cara membuka foto, apabila foto telah di copy, dan copy dari foto tersebut berubah menjadi grayscale maka program daemon telah berhasil

6. Untuk mengakhiri program daemon ketik perintah di terminal pkill (nama)

Minggu, 27 September 2015

TUTORIAL MENGKOMPRESI FILE DENGAN MENGGUNAKAN SHELL SCRIPTING


Apa itu Shell Scripting? Shell scripting adalah sekumpulan perintah(command) yang ditulis dalam sebuah plain text file yang ada di dalam sistem operasi Linux.
Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe Unix. Linux merupakan salah satu contoh hasil pengembangan software opensource. Seperti software opensource lainnya pada umumnya, source code Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja.

Kali ini saya akan menjelaskan langkah-langkah untuk mengkompresi file menggunakan script. Format file yang digunakan saat kompresi di Linux umumnya adalah tar.gz. Berikut adalah langkah-langkah yang dibutuhkan untuk memulai pengkompresian file menggunakan scripting sendiri yaitu:
1. Install OS Linux di PC anda, baik itu menggunakan virtualbox maupun dual booting
2. Buka Terminal di OS Linux anda dan ketikkan (nano/vim/vi) (nama file anda).sh kemudian tekan enter
3. Akan muncul window seperti pada screenshoot dibawah
4. Ketikkan tar -czvf (nama file).tar.gz (direktori yang akan di zip) seperti contoh pada screenshoot dibawah
5. Close script dengan ctrl+x, jalankan script
Mari kita bandingkan isi folder pada direktori diatas yaitu home/anndi/Hendra/ dengan hasil kompresi yang telah dibuat sebelumnya
Scripting tentang kompresi file berhasil dilakukan, keterangan tentang -czvf
c mewakili create
v digunakan untuk menunjukkan process yang terjadi di terminal
f untuk memberitahu nama archive yang muncul setelahnya

Sumber: https://id.wikipedia.org/wiki/Linux