Pages

Monday, September 17, 2007

1.2 Hardware Dependency

Linux mengatur (maintain) perbedaan kode sumber antara hardware-dependent dan hardware-independent dengan teliti. Untuk tujuan tersebut, kedua direktori arch dan include memiliki 9 sub-direktori, masing-masing untuk 9 jenis hardware platform yang didukung oleh Linux. Nama-nama standard dari jenis platform tersebut adalah:

arm
PC Acorn

alpha
Workstation Compac Alpa

i386
PC IBM-compatible berbasiskan mikroprosesor-mikroprosesor Intel-80x86 atau 80x86-compatible

m68k
PC berbasiskan mikroprosesor-mikroprosesor Motorolla MC680x0

mips
Workstation berbasiskan mikroprosesor-mikroprosesor MIPS Silicon Grhapics

ppc
Workstation berbasiskan mikroprosesor-mikroprosesor MIPS Motorola-IBM

sparc
Workstation berbasiskan mikroprosesor-mikroprosesor Sun Microsystems

sparc64
Workstation berbasiskan mikroprosesor-mikroprosesor Ultra SPARC 64-bit Sun Microsystems

s390
Komputer mainframe IBM System/390

1.1 Kernel Linux v.s Unix

Berbagai macam sistem operasi Unix-like tersedia di pasaran, beberapa di antaranya memiliki sejarah yang sangat panjang dengan fitur-fitur yang saat ini sudah lama tidak digunakan, dan berbeda dalam beberapa hal. Semua varian Unix komersial berasal dari sistem SVR4 atau 4.4BSD; seluruhnya mengikuti standard yang ada, seperti POSIX (Portable Operating Systems based on Unix) IEEE dan CAE (Common Application Environment) X/Open.

Berbagai standard yang ada saat ini memberikan spesifikasi antarmuka pemrograman aplikasi (Application Programming Interface, API)—lingkungan yang sudah didefinisikan dengan baik di mana program-program user berjalan (run). Oleh karena itu, standard-standard tersebut tidak dibenarkan memberikan batasan apapun terhadap perancangan internal kernel yang dipilih.

Untuk mendefinisikan suatu antarmuka pengguna (user interface), ide-ide dan fitur-fitur dari rancangan fundamental kernel-kernel Unix-like sering dipertukarkan (untuk keperluan pengembangan). Oleh karena itu, Linux sebanding dengan sistem operasi Unix-like lainnya. Apa yang kita baca di buku ini dan kita lihat pada kernel Linux, akhirnya akan membantu kita untuk memahami varian Unix yang lain.

Kernel versi 2.2 dirancang untuk mengikuti standard POSIX IEEE. Hal ini, tentu saja menunjukan bahwa sebagian besar dari program-program Unix dapat di-compile dan di-execute pada sistem Linux dengan usaha yang minimal atau bahkan tanpa penambahan patch pada source code-nya. Lebih lanjut, Linux mempunyai semua fitur-fitur sebuah sistem operasi Unix yang modern, seperti virtual memory, virtual filesystem, lightweight processes, reliable signals, SVR4 interprocess communications, mendukung sistem Symmetric Multiprocessor (SMP), dan lain lain.

Awalnya, kernel Linux terlihat tidak inovatif. Ketika Linus Torvalds menulis kernel ini pada kali pertama, beliau mengambil rujukan dari beberapa buku “Unix Internals” lama, seperti The Design of the Unix Operating System karya Maurice Bach (Prentice Hall, 1986). Sebenarnya, Linux memiliki beberapa perbedaan dalam masalah hal-hal yang mendasar pada Unix (Unix baseline) yang dijelaskan pada buku tersebut (seperti tentang SVR4). Akan tetapi, Linux tidak terpaku pada satu varian Unix manapun. Oleh karena itu, Linux mencoba untuk mengadaptasi fitur-fitur dan rancangan baru yang dinilai baik dari beberapa kernel Unix yang berbeda.

Berikut adalah sejumlah perbedaan antara kernel Linux dengan beberapa kernel Unix yang terkenal (komersial):
  1. Kernel Linux tergolong jenis kernel monolithic. Sebuah program yang berukuran besar, dan kompleks, dirancang secara logis dari komponen-komponen yang berbeda. Hal ini sangat umum; karena sebagain besar varian Unix menganut sistem kernel monolithic, kecuali March 3.0 Carnegie-Mellon.
  2. Kernel Unix versi lama di-compile dan di-link secara statik. Sebagian besar kernel modern bisa me-load dan unload sebagian kode kernelnya (yang biasa disebut dengan module) secara dinamik, contoh kasus load/unload module ini terjadi pada device driver/driver perangkat keras). Fasilitas module ini digunakan dengan sangat baik oleh Linux, dengan me-load dan unload module kernel tersebut di semua sesi aktivitas komputasi sedang berjalan. Diantara semua varian Unix yang bersifat komersial, hanya kernel SVR4.2 yang mempunyai fitur ini.
  3. Kernel threading. Beberapa kernel Unix modern, seperti Solaris 2.x dan SVR4.2/MP, tersusun sebagai suatu kumpulan kernel thread. Suatu kernel thread merupakan suatu execution context yang bisa dengan mandiri (independently) dijadwalkan; berlaku baik pada suatu user program, atau menjalankan beberapa fungsi kernel. Context switch di antara sejumlah kernel thread menggunakan sumber daya yang lebih sedikit dibandingkan antar sejumlah proses, karena biasanya beroperasi pada address space yang sama. Linux menggunakan fungsionalitas kernel thread ini sangat terbatas hanya pada beberapa fungsi kernel secara periodik; kernel thread Linux tidak dirancang untuk mengeksekusi user program, karena tidak memberikan abstraksi dasar execution context. (Hal ini akan dibahas pada bagian selanjutnya.)
  4. Mendukung multithreaded application. Sebagian besar sistem operasi modern mempunyai dukungan terhadap aplikasi-aplikasi yang mempunyai fitur multithreading (multithreaded aplication), inilah, program-program (user programs) yang dirancang dengan baik untuk memiliki alur-alur eksekusi yang relatif mandiri (independently) dengan membagi sejumlah besar bagian struktur data aplikasi. Sebuah multithreaded aplication dapat tersusun dari sejumlah lightweight processes (LWP), atau proses-proses yang dapat beroperasi pada address space, RAM, file-file digunakan (opened files) yang sama, dan beberapa sumber daya lain. Linux merancang versi sendiri fitur lightweight processes ini, dan pasti akan berbeda dengan jenis yang digunakan oleh sistem lain seperti SVR4 dan Solaris. Apabila semua varian Unix komersial menggunakan LWP berbasiskan pada kernel thread, Linux memanfaatkannya dengan metoed basic execution context dan mengaturnya lewat system call non-standard clone ( ).
  5. Linux termasuk jenis kernel nonpreemptive. Hal ini berarti Linux tidak bisa secara langsung melakukan interleave alur eksekusi yang sedang berada pada privileged mode. Beberapa bagian kode program pada kernel memberikan gambaran bagaimana Linux dapat menjalankan dan memodifikasi struktur-struktur data tanpa diganggu (interrupted) dan lahirnya thread-thread baru yang dapat mengubah struktur-struktur data tersebut. Biasanya, kernel yang bersifat preemptive secara penuh akan berhubungan dengan sebuah sistem operasi real-time. Pada saat ini, diantara sistem Unix general-purpose yang ada, hanya Solaris 2.x dan March 3.0 yang termasuk kernel preemptive secara penuh. Pada lain pihak, SVR4.2/MP memperkenalkan beberapa hal solusi preemptive yang membatasi kapabilitas fitur preemptive.
  6. Mendukung sistem multiprocessor. Beberapa kernel varian Unix memanfaatkan keunggulan sistem multiprocessor. Linux 2.2 telah menyediakan hasil pengembangan dari symmetric multiprocessing (SMP), artinya bahwa tidak hanya sistem bisa menggunakan sejumlah prosesor, tapi juga prosesor dapat mengeksekusi task manapun; tidak ada diskriminasi di antara prosesor-prosesor yang ada. Walaupun begitu, Linux 2.2 tidak bisa mengotimalkan fasilitas SMP ini. Beberapa fungsi-fungsi kernel yang bisa dieksekusi secara konkuren—seperti filesystem handling dan networking—sekarang hanya bisa dieksekusi secara sekuensial.
  7. Filesystem. Filesystem standard Linux memiliki kekurangan (saat tulisan ini dibuat) pada fitur journaling. Akan tetapi, filesystem lain yang dinilai lebih baik tersedia untuk Linux, dan walaupun tidak source code tidak tersedia pada kernel Linux; diantaranya adalah: Journaling Filesystem (JFS) AIX IBM, dan XFS filesystem Silicon Graphic. Hal yang luar biasa terhadap teknologi object-oriented virtual filesystem (terinspirasi oleh Solaris dan SVR4), filesystem di luar Linux dapat dengan di-porting dengan mudah ke sistem Linux.
  8. STREAMS. Linux tidak memanfaatkan fitur STREAMS I/O (diadaptasi oleh SVR4) ini ke dalam sistemnya, walaupun saat ini sebagian besar kernel varian Unix mengikutkan ke dalam kernelnya dan menjadikannya sebagai interface yang paling sering digunakan untuk menulis (membuat) driver perangkat keras, dan protokol-protokol jaringan komputer.
Biasanya timbul pernyataan yang membuat hal-hal tersebut di atas tidak menggambarkan secara keseluruhan sesuatu yang selalu benar, tetapi, kenyataannya begitulah adanya. Beberapa fitur Linux membuatnya terlihat sebagai sistem operasi yang sangat unik. Sejumlah kernel varian Unix yang komersial sering memperkenalkan fitur-fitur baru untuk memperoleh keuntungan pasar yang lebih besar, tetapi fitur-fitur tersebut (biasanya) tidak bermanfaat secara signifikan, stabil, dan produktif. Akhirnya, kernel-kernel Unix modern cendrung terlihat sebagai sistem operasi yang sangat berukuran besar tapi menjadi tidak efisien. Sebaliknya, Linux tidak terkekang oleh tekanan dan pengaruh dari kondisi pasar, karena Linux berkembang sejalan dengan gagasan dari para pengembangnya (terutama Linus Torvalds). Secara khusus, Linux memiliki beberapa keunggulan dibanding pesaing varian Unix komersial sebagai berikut:

Linux bersifat bebas.
Kita bisa dengan bebas meng-install suatu sistem Unix yang lengkap dengan harga yang lebih terjangkau dibandingkan dengan harga (tentu saja) perangkat keras.

Linux mempunyai komponen-komponen yang keseluruhannya sangat mudah untuk dimodifikasi.
Penghargaan setinggi-tingginya untuk GNU General Public License (GPL), kita diberi kebebasan untuk melihat dan memodifikasi kode sumber (source code) kernel dan semua program sistem.

Linux dapat berjalan pada komputer low-end (spesifikasi hardware yang murah).
Kita bisa membangun sebuah server menggunakan komputer kelas rendah seperti sistem Intel 80386 dengan RAM 4 MB.

Linux memiliki kualitas standard kode sumber yang baik.
Sistem Linux biasanya sangat stabil; memiliki laju kegagalan dan waktu pemeliharaan sistem yang sangat rendah.

Linux sangat cocok (compatible) dengan banyak sekali sistem operasi.
Linux dapat melakukan proses mount otomatis semua filesystem MS-DOS dan MS Windows, SVR4, OS/2, Mac OS, Solaris, SunOS, NeXTSTEP, sejumlah besar varian BSD, dan lain-lain. Linux juga dapat melakukan operasi dengan layer-layer network, seperti Ethernet, Fiber Distributed Data Interface (FDDI), High Performance Parallel Interface (HIPPI), Token Ring IBM, WaveLAN AT&T, RoamAbout DS DEC, dan lain sebagainya. Dengan menggunakan pustaka-pustaka (libraries) yang tepat, sistem Linux bahkan dapat dengan langsung menjalankan program yang ditulis (codding) untuk sistem operasi lain. Sebagai contoh, Linux dapat mengeksekusi aplikasi-aplikasi yang ditulis untuk MS-DOS, MS Windows, SVR3 dan 4, Unix SCO, XENIX, dan sistem operasi lain yang berjalan di atas sistem Intel 80x86.

Linux didukung dengan sangat baik.
Percaya atau tidak, path atau update untuk Linux akan jauh mudah didapatkan daripada sistem operasi proprietary! Jawaban untuk masalah yang dihadapi sering keluar hanya dalam beberapa jam saja setelah masalah tersebut muncul di newsgroup atau mailing list. Lagipula, driver-driver perangkat keras untuk Linux biasanya tersedia dalam beberapa minggu setelah produk perangkat keras tersebut diperkenalkan oleh perusahaannya ke pasar. Pada sisi lain, beberapa vendor hardware hanya menyediakan driver perangkat keras tersebut hanya untuk beberapa sistem operasi komersial, dan biasanya hanya untuk Microsoft saja. Akibatnya, akan ada beberapa fitur dari hardware tersebut yang tidak bisa dipakai di semua varian Unix komersial.

Dengan perkiraan pengguna yang telah meng-install Linux lebih dari 12 juta dan terus bertambah, masyarakat yang sudah biasa menggunakan suatu sistem operasi akan mengalami cara penggunaan komputer yang relatif sama apabila melakukannya di atas Linux. Pada sisi lain, tuntutan terhadap para pengembang Linux terus bertambah, dan untungnya, Linux telah berkembang dalam arah development yang ketat oleh Linus, untuk memenuhi kebutuhan masyarakat.

Friday, June 29, 2007

God is In The Rain

Semua orang dapat menafsirkan title tulisan ini bermacam-macam, tapi yang saya maksud dengan Tuhan ada dalam hujan adalah bahwa cinta dan kasih sayang Tuhan ternyata begitu terasa pada zat yang berwujud air, seperti air hujan yang saya gambarkan.

Betapa air hujan bisa menyejukan udara panas di siang hari, memberi manfaat kehidupan bagi semua makhluk di bumi ini, pun yang paling terasa berkesan (bagi saya pribadi)—bisa menyejukan hati seorang manusia, air bisa memberikan pencerahan yang luar biasa terhadap jiwa seseorang.

Terus terang, kalimat tersebut saya dapatkan dari sebuah film “anak kecil” (menurut sebagian orang), tapi merupakan film yang “mencerahkan” menurut saya, V for Vendetta. Pada saat V--tokoh utama di film tersebut--memberikan semacam “pelajaran kehidupan” terhadap teman wanitanya—Eve, yang akhirnya berhasil tercerahkan mengenai bagaimana melepaskan ketakutan dalam hidup. Dalam ending adegan ini, Eve keluar ruangan untuk menghirup udara segar dan merasakan adanya “pertolongan” dan “pencerahan” oleh Tuhan lewat turunnya air hujan yang menimpa tubuhnya pada kejadian itu.


Saya menggambarkan bahwa Tuhan Menyentuh kita lewat air hujan yang turun, Dia Menyapa kita secara (terasa oleh) fisik lewat kulit ini, yang akhirnya menembus, menyentuh hati manusia yang merasakannya.


Kadang saya sangat perlu dan merindukan sentuhan ini secara fisik untuk berhubungan dengan Tuhan, tidak hanya sewaktu kita berdo'a atau pada saat shalat saja, saya membutuhkan “perantara” yang bersifat fisik untuk mengingat dan berkomunikasi dengan-Nya... Apakah anda juga demikian?

Ada contoh peristiwa dimana hal yang bersifat materi (fisik) sangat membantu dalam membangun komunikasi dengan Tuhan. Seperti kenapa kita harus merasa lapar pada saat melakukan ibadah shaum? Kenapa kita harus ber-zakat agar merasakan situasi kekurangan harta? Kedua peristiwa ini menunjukan bahwa hal yang bersifat fisik (lapar dan kekurangan harta) bisa dijadikan media penghubung yang efektif untuk berkomunikasi dengan Allah Swt., sebagai Tuhan alam semesta ini.

Air hujan (juga benda fisik lainnya) apabila ditelaah dengan benar, pun menjadi alat yang tepat untuk merasakan kasih sayang Tuhan yang dianugrahkan-Nya bagi semua alam. Sehingga diharapkan manusia dapat memahami diri dan menghasilkan karya-karya yang positif, serta bermanfaat bagi kehidupan.


Merasa kecup hangat sebentuk cinta
tlah terukir di dalam jiwaku
seperti tetes embun
menyegarkan hari
terciptakan keajaiban di hati

Cinta bukan hanya sekadar kata, cinta tak hanya diam.

....

Lyric of “Tak Hanya Diam” by Padi, on album: "Padi".

I know now, God touches us through the rain, because God is in the rain, really He is...

Saturday, March 17, 2007

Kemana saja An?

Bulan Februari kemarin blog ini terlihat kosong, kalau di-check tidak ada nama bulan tersebut terdaftar di list Blog Archive blog ini.

Jadi, ngapain dan kemana aza sebulan kemarin ini?... :)

Pertama (Sabtu, 3 Februari 2007)
Saya hadir di Pertemuan Aktivis Linux di LPK Nurul Fikri - Depok, atas pengumuman di milis linux-aktivis@linux.or.id.


[Mohon untuk ditunjukan lokasi LPK NF yang lebih tepat lewat wikimapia di atas]

Kedua (Rabu s.d. Jum'at, 7-9 Februari 2007)
Saya mengikuti Pelatihan Migrasi Open Source Depkominfo di Hotel Bidakara - Jakarta atas undangan perwakilan Depkominfo (yg di-forward oleh Pak Ronny) di milis linux-aktivis@linux.or.id [1].



Ketiga (23, 24 s.d. 25 Februari 2007)
Ikut ngebantuin teman-teman di Common Room di acara NexxG::Nu-Substance Festival 2007.

[ Saya, Deena (sebelah kanan saya), dan Dea (memakai kaos hitam bertuliskan: "Innovation...") di tengah-tengah Audience yang sedang serius mengikuti workshop (hari ke-dua festival)]

Fuih! Acaranya keren banget! 'Ngga hanya itu, saya berkesempatan bisa kenal sama seleb-seleb musik elektro asal Bandung, salah satunya adalah Homogenic. Setidaknya saya, Dea (Grahadea K.) dan Deena (Dina Dellyana) sempat ngobrol-ngobrol bareng tentang Musik, Intertainment Technology dan FOSS. Asyik banget ngobrol sama mereka berdua,
dan di hari ke-tiga festival ini, walaupun Risa (vocalist) tampil lengkap dengan personel Homogenic lainnya di atas stage Auditorium CCF Bandung, tapi sayang saya ga sempat ketemu dan kenalan dengan Risa :( ... mungkin lain waktu kali yach :)

[Notebook saya sedang nge-record live music performance dengan latar belakang Souldelay di Auditorium CFF Bandung]

Lha! Andi ngapain aja dong? Biasa... ngasih performance Audacity di sound record and editing-nya (di atas sistem operasi Linux) pada hari ke-dua rangkaian festival tersebut... yang akhirnya Audience bukannya tertarik ke tema yang lagi dibicarakan, tapi saya malah ditanya macam-macam tentang Linux itu sendiri, apa program buat ngetiknya lah, photoshop-nya lah, corel draw-nya, dan macam-macam. Sekalian deh saya pamerin keindahan Xgl-Beryl di openSUSE 10.2 desktop saya :) ... alhasil semua Audience tercengang (takjub) dengan efek-efek desktop-nya! (terbilang sukses untuk "dakwah Linux-iah" kali ini) :)

So, itulah kegiatan saya di bulan Februari ini yang pada akhirnya saya tidak sempat menulis
dengan segera report dari setiap event tersebut di blog ini. Nampaknya keterampilan saya menulis di blog belum juga terasah neh! harus banyak latihan! (so pasti dong!) :)

And then?... See you in the next posting! :)

[1] Untuk mendapatkan keterangan lebih lanjut tentang milis tersebut, kunjungi web page ini.

Saturday, January 20, 2007

How to Write to NTFS Partition on Linux

Akses baca (read) dan tulis (write) ke partisi FAT32 Windows sudah lama didukung oleh Linux, sepanjang modul kernel Linux sudah disertakan dan di-load (ketika booting) oleh Linux. Biasanya yang menjadi masalah adalah ketika kita ingin melakukan aksi write ke partisi ber-file system NTFS, kernel Linux men-disable aksi ini karena masih berkemungkinan mengalami data corruption ketika aksi write ini dilakukan. Walaupun paket software yang menyediakan fasilitas mounting dan read ke partisi NTFS sudah lama disertakan oleh distro SUSE Linux (termasuk openSUSE), namun sama halnya dengan distro lain (?) akses write ke parisi NTFS ini membutuhkan konfigurasi--menambahakan fungsionalitasnya pada modul kernel--lebih lanjut.

Hal ini tidak bisa dijadikan alasan bahwa Linux tidak/belum men-support aksi write ke partisi NTFS ini dengan baik, Linux sudah men-suport banyak sekali berbagai jenis file system. Berbeda dengan file system NTFS ini, pihak Microsoft menempatkan spesifikasi dan struktur file system NTFS tersebut dalam rahasia perusahaannya dan oleh karena itu pihak Komunitas Linux (Para Pengembang Kernel Linux) mengalami kesukaran dalam menyediakan support akses write ke partisi NTFS, dan akhirnya akses ke partisi tersebut dipasang read-only sebagai default.

Cause

Microsoft keeps the specifications and structures of the NTFS file system as a company secret, thus making it very difficult to provide support for this file system.

Fortunately, read access to NTFS partitions is very stable. On the other hand, write access might damage the whole NTFS file system of the corresponding partition. For this reason and in order to protect you from data loss, only read access is activated by default in SUSE LINUX.


Tapi bukan Linux namanya kalau harus "mati" hanya karena Microsoft me-"rahasia"-kan spesifikasi dan struktur file system NTFS. Martin von Loewis, Anton Altaparmakov dan programmer lainnya sudah mulai men-develop fasilitas ini pada tahun 1995 dan menghasilkan ntfs-3g sebagai NTFS driver di Linux dengan menggunakan FUSE sebagai userland file system framework pada proses mounting-nya, sehingga akhirnya User dapat melakukan operasi write ke partisi NTFS di atas sistem operasi Linux.

Tutorial berikut menjelaskan (secara sederhana) bagaimana menjadikan distro Linux kita men-support untuk aksi write ke partisi NTFS--How to write to NTFS partition on Linux, dan tulisan ini saya lakukan di atas distro openSUSE 10.2 tapi sangat mungkin untuk bisa dijalankan di distro Linux lain dengan analogi yang sama meski mungkin dengan cara yang sedikit berbeda.

Dengan asumsi pada paragraf sebelumnya, dapat disimpulakan bahwa paket aplikasi (software) minimal yang harus di-install di mesin Linux kita adalah:
  1. fuse,
  2. ntfs-3g, dan
  3. ntfsprogs(apabila diperlukan)
Ketiga paket di atas bisa diperoleh dengan menambahkan list server yang diperlukan di
YaST Installation Source, lalu memilih ketiga paket di atas melalui YaST Software Management. Namun setelah dicoba ternyata versi fuse dan ntfs-3g yang didapat merupakan versi yang lama dan gagal dalam melakukan (even) mounting partisi NTFS di komputer saya, oleh karena itu saya mencoba untuk mendapatkan versi software yang lebih baru (fuse-2.6.1, dan ntfs-3g-0.20070102-BETA)--saat tulisan ini di-publish.

Setelah googling akhirnya saya hanya bisa mendapatkan fuse dan ntfs-3g versi terbaru tersebut dalam bentuk source, tar.gz (bukan rpm) dan terpaksa (?) kita lakukan proses instalasi dengan cara yang berbeda,
  1. fuse versi terbaru, atau kunjungi situsnya,dan
  2. ntfs-3g versi terbaru, atau kunjungi situsnya.
Karena software yang akan kita install berupa source, maka proses instalasi ini menjadi transapan terhadap berbagai distro yang beragam.

Untuk instalasai fuse dan ntfs-3g tersebut PASTIKAN KERNEL-SOURCE serta GCC (tersedia di CD/DVD ROM Distro Linux yang dipakai) sudah di-install sebelumnya dan UNINSTALL fuse dan ntfs-3g versi lama.

Let's begin this installation then,

INSTALL fuse:
  1. Setelah men-download fuse, kita untar dengan perintah $ tar xfvz fuse-2.6.1.tar.gz ,
  2. Pindah directory ke hasil untar di atas, $ cd fuse-2.6.1/,
  3. Lakukan konfigurasi dengan menyertakan option enable-kernel-module, $./configure --enable-kernel-module ,
  4. Komplasi dan install, # make && make install .
Apabila tidak ada report error pada standard output maka proses instalasi berjalan dengan benar.

INSTALL ntfs-3g:
  1. Setelah men-download ntfs-3g, kita untar dengan perintah $ tar xfvz ntfs-3g-0.20070102-BETA.tgz ,
  2. Pindah directory ke hasil untar tadi, $ cd ntfs-3g-0.20070102-BETA/,
  3. Lakukan konfigurasi untuk memeriksa paket-paket dependcy, $ ./configure ,
  4. Apabila tidak terdapat report error lakukan: # make && make install .
MOUNTING NTFS PARTITION:
Setelah ketiga paket di atas berhasil di-install (ntfsprogs dapat diperoleh dari CD/DVD ROM openSUSE 10.2), kita tinggal melakukan mounting partisi NTFS tersebut ke directory yang sudah kita buat sebelumnya (mount point). Jika partisi NTFS komputer saya berada di /dev/hda10 dengan mount point /windows/F, maka mounting command-nya adalah:

# ntfs-3g /dev/hda10 /windows/F

[Gambar 01: Perintah mounting partisi NTFS dengan ntfs-3g]

Sesuaikan dengan lokasi partisi NTFS Anda dengan melihat output perintah: # fdisk -l ,
berikut contoh tabel partisi hard disk komputer saya:

[Gambar 02: Output dari command # fdisk -l untuk melihat tabel partisi hard dsik]

Apabila berhasil (tidak mengeluarkan error report), maka check dengan perintah $ df , contoh di mesin saya:

[Gambar 03: disk free--df--dapat memberikan informasi partisi-partisi hard disk yang sudah di-mount]

dan report-nya akan keluar di log mesin dengan command: # tail -f /var/log/messages

[Gambar 04: Log mesin yang memberikan informasi tentang proses mounting yang terjadi]

Apabila partisi ini ingin di-mount pada setiap kali komputer booting, tambahkan baris berikut:

/dev/hda10 /windows/F ntfs-3g default,locale=en_US.utf8 0 0

di /etc/fstab (sesuaikan dengan tabel partisi hard disk komputer Anda) dengan menggunakan text editor pilihan Anda, sehingga tampak seperti:

[Gambar 05: Isi /etc/fstab setelah ditambahkan baris baru]

Periksa dengan me-reboot komputer, lihat log-nya pada saat booting masuk ke sistem Linux, atau check dengan:

$ cat /var/log/messages | grep fuse

[Gambar 06: Log mesin, fuse diaktifkan ketika booting masuk ke sistem Linux]


Kita tes dengan copy-paste suatu directory ke partisi tersebut (/windows/F di hard disk saya) dengan ukuran directory tersebut sebesar lebih dari 600 MB:

[Gambar 07: Proses copy-paste berukuran cukup besar ke partisi NTFS]

dan, proses copy-paste tersebut berhasil tanpa ada file yang corrupt[1].

Done!.. and Have Fun with Linux! :)


[1] Ada issue bahwa file yang di-copy sebesar lebih dari 1 GB ke partisi NTFS (dari Linux) bisa mengalami kerusakan (?), dan saya belum mencobanya.

Friday, January 19, 2007

Add Remove Program on SUSE Linux

Setelah dikenalkan atau baru saja meng-install Linux, biasanya newbie akan bertanya kalimat yang menjadi topik tulisan ini, Add Remove Program-nya mana? Sebuah pertanyaan klasik hasil dari sebuah kebiasaan yang mengekang kebebasan berpikir dan berkarya (kebiasaan yang menutup budaya keterbukaan) (?).

Untungnya (sangat wajar sebenarnya) Linux sudah disertai dengan program aplikasi yang menyediakan fasilitas untuk memanajemen software-nya, termasuk di dalamnya program interface untuk install, uninstall, dan updating software secara berkala dan otomatis. YUM biasa digunakan oleh distro RedHat (termasuk Fedora Core), APT-GET untuk distro Debian GNU/Linux dan turunannya (Knoppix, Kuliax, dsb.), Slackware menggunakan Slacktool, SuSE Linux (termasuk openSUSE) sangat terkenal dengan tool YaST-nya, dan distro-distro lain menggunakan software management-nya masing-masing.

Proses "add remove program" dengan menggunakan YaST Software Management menjadi pembahasan pada tulisan kali ini, saya memilih tool (dan karena saya concern menggunakan distro openSUSE) ini karena saya berpendapat bahwa YaST-nya SUSE Linux benar-benar tool yang tidak hanya relible tapi juga membawa paradigma baru--tidak terlalu berbeda dengan tool Add Remove/Control Panel-nya Windows--yang mudah dipahami dan digunakan newbie; user yang baru saja bermigrasi dari Windows ke Linux. Alhasil, newbie tersebut bisa terbantu dan tidak terlalu kaget ketika harus belajar sesuatu yang baru.

Memang tidak semua habitual dan usability di Windows bisa disediakan di Linux, tapi at least, user jadi terbantu dan tidak terlalu kaget dengan banyak hal baru di linux. dan akhirnya kita bisa mengganti padanan fungsi Windows Control Panel di SuSE Linux dengan YaST.

Sebelum kita memulai pembahasan teknis tentang bagaimana memanajemen software di openSUSE, ada paradigma yang harus dipahami oleh newbie, yaitu:

kita dapat meng-install software apapun (yang memang diperuntukkan untuk Linux) dan berasal dari mana saja (di Internet), tetapi sangat disarankan untuk mencarinya terlebih dahulu di CD/DVD ROM bawaan Distro Linux yang kita pakai atau server repository yang direkomendasikan oleh distro tersebut. Hal ini tidak hanya agar sistem kita bisa lebih "bersih" juga berhubungan dengan keseragaman/konsistensi paket aplikasi, software dependency, dan kemudahan upgrade software di masa datang.

Apabila software atau versi software yang kita cari tidak/belum ada di CD/DVD ROM ataupun server repository-nya maka mengambil program aplikasi dari source ataupun software untuk distro lain manjadi alternatif yang tidak bisa dibantah lagi.


Sebenarnya pilihan terakhir di atas tidak menjadi masalah ketika kita sudah tahu benar apa yang kita dan komputer lakukan dalam hal manajemen software di sistem Linux, tentu saja dengan kerugian bahwa kita harus "bersi-bersih" banyak aplikasi (terutama masalah library) di sistem secara manual. Dan, apabila software yang terinstall sudah sangat banyak dan kompleks, maka tambah kompleks dan rumitlah pekerjaan kita... Jangan sampai waktu terbuang hanya gara-gara proses instalasi yang rumit yang akhirnya pekerjaan pokok kita jadi tidak bisa diselesaikan dengan benar dan tepat waktu. Kalau memang ada tool yang memudahkan pekerjaan kenapa tidak kita pakai dan manfaatkan? :)

OK, let's begin the action! :)

Kita sudah sepakat bahwa selama aplikasi yang kita cari masih ada di CD/DVD ROM atau server repository distro-nya maka kita direkomendasikan untuk selalu menggunakan cara tersebut. Untuk itu sebelum kita meng-install paket yang diinginkan, kita harus me-list terlebih dahulu daftar sumber instalasi di YaST Installation Source sehingga paket yang kita inginkan akan selalu rapi dan terjaga validasi dan konsistensinya. Mirip dengan me-list installation source di apt-get Debian dan Yum-nya Red Hat/Fedora Core.

Adding Installation Source
Untuk menambah (termasuk mengubah) list sumber instalasi, kita jalankan YaST, Software, lalu pilih Installation Source, Add, pilih sumber instalasi (dalam hal ini dari Internet, http), lalu isi Server Name dan Directory on Server-nya [1][2], tunggu hingga Program ini melakukan indexing sehingga server yang dirujuk siap untuk diakses dan digunakan sebagai salah satu sumber instalasi. Selesai! :) , dan tambahkan pula sumber instalasi lain apabila dibutuhkan.

[Gambar 01: Window utama YaST, mengakses Installation Source]


[Gambar 02: Pengisian Server Name dan Directory on Server]


[Gambar 03: Proses akhir penambahan Server Repository di YaST Instalation Source]

Install and Uninstalling Package with YaST Software Management
Sekarang tinggal memilih paket yang diinginkan sesuai dengan list installation source yang sudah didaftar sebelumnya. Akses kembali YaST, Software, pilih Software Management, tunggu hingga program ini selesai memeriksa source yang telah didaftar, setelah selesai tinggal isikan nama paket aplikasi yang diinginkan :) , lalu Accept, window baru akan muncul apabila dibutuhkan dependency yang diperlukan, klik Install untuk meng-install-nya, lalu tunggu hingga proses instasi selesai... Finish, lalu pilih yes apabila menginginkan untuk meng-install atau bahkan meng-uninstall paket aplikasi yang lain.

[Gambar 04: Window utama YaST Software Management; pilih paketnya, klik kanan, Install]


[Gambar 05: Proses install yang sedang berlangsung]


[Gambar 06: Proses install telah selesai]

Untuk proses uninstall, cukup pilih aplikasi yang ingin di-remove (pada window YaST Software Management yang sama), lalu klik kanan, pilih Delete, klik Accept apabila paket aplikasi yang ingin kita remove sudah terpilih semuanya... Selesai! :)

It's Done! Ngga usah tekan-tekan tombol next-next-next lagi kan? Lebih mudah (digunakan dan dimengerti) dan sederhana untuk dijalankan bahkan untuk newbie sekalipun, ditambah dengan tampilan grafis dan keterangan bantuan yang disertakan... kurang apa lagi coba? :) (apa yach?... xixixi)

openSUSE Software Updater
Bagi saya pribadi, ini merupakan bagian yang paling menyenangkan dalam tahapan mengatur paket-paket aplikasi di openSUSE. Cukup akses K Menu (di KDE), System, Desktop Applet, lalu pilih openSUSE Updater Applet, dan seketika icon baru muncul di KDE system tray, dan langsung melakukan
penge-check-an ke server-server--yang sudah di list di Installation Source sebelumnya--apakah ada update atau tidak untuk aplikasi yang ter-install di komputer kita.

[Gambar 07: openSUSE Updater Applet memberikan report adanya update untuk aplikasi tertentu]

Apabila terdapat update, warna centang-an di icon tersebut berubah menjadi kuning (untuk recommended software) atau merah (untuk urgent sofware) dan melaporkan jumlah software yang dimaksud. Klik Install untuk melakukan update, lalu Accept, dan kita hanya menunggu proses instalasi tersebut hingga selesai. Window proses updating akan menutup dengan sendirinya apabila telah selesai meng-update paket yang bersangkutan.

Simple kan? :) Semua kerumitan proses instalasi--yang katanya sulit--berhasil disembunyikan dan dipermudah dengan tool ini. YaST memamg program yang sangat menakjubkan, tak salah Novell mengakuisisi distro ini menjadi disto andalan perusahaan besar yang terkenal dengan Novell Netware di dunia komputer server ini.

Dari proses install dan uninstall paket aplikasi di atas, semuanya harus berhubungan dengan Internet, karena memang source yang didaftarkan semuanya dari Internet (http atau ftp). Tapi bagi user yang komputernya tidak terhubung secara langsung ke Inernet, ada alternatif lain yang juga sangat mudah. Katakanlah kita mendapatkan software--dalam bentuk rpm--dari Internet (lewat Warnet) lalu copy ke hard disk di komputer kita. Terus? ya tinggal kita klik file tersebut, lalu klik tombol Install Package with YaST, lalu muncul kotak dialog isian password root, isi dengan password root-nya, setela itu YaST akan mencari dependency software apabila ada, dan jika memang ada, source installation CD/DVD ROM menjadi pilihan--karena memang menjadi default source installation--sumber instalasi dependency software tadi.

[Gambar 08: Instalasi software yang dilakukan dari hard disk secara manual tapi dengan bantuan YaST]

Kalau yang kita dapatkan (terpaksa) berupa source (tar.gz atau bz2)? ya.. tinggal di-install sesuai instruksi di file INSTALL atau README-nya :) kalau membutuhkan dependency software tinggal install lewat CD/DVD ROM-nya :)

Cukup mudah bukan? :)

Wednesday, January 10, 2007

Music Recording with Audacity--KluBCommonRoomCollaboration

[Gambar 01: Proses exporting dari file crnfoo.aup hasil recording ke crnf00.mp3]

Ini merupakan pengalaman pertama saya ikut (sedikit) berkontribusi dalam proses perekaman suatu live music. Walaupun hanya membantu dalam proses perekaman saja, saya merasa sudah menjadi bagian dari kelompok musik lokal Bandung ini. Sungguh suatu pengalaman yang mengasyikan bagi "orang kaku" yang tidak terlalu mengenal dunia musik dan aktivitas digital art lainnya dengan serius.

Dimulai dari kesepakatan kerja bareng antara KluB dengan Common Room tentang pemanfaatan free/open source software di bidang aplikasi multimedia dan digital art. Live music recording yang digelar pada hari Sabtu (6 Januari 2007) kemarin ini merupakan hasil kolaborasi: Gustaff (Programming/Sampling/Synth), Hendy (Vox/Efx), dan Pey (Bass). Dan, musik yang dihasilkan direkam di notebook saya dengan aplikasi Audacity di atas platform Linux, tepatnya distro openSUSE 10.2.

[Gambar 02: Versi Audacity yang digunakan, Audacity-1.3.2-0.pm.beta]


[Gambar 03: Versi Kernel Linux yang dipakai, 2.6.18.2-34]


[Gambar 04: openSUSE 10.2, distro Linux yang digunakan]

Suasana yang tidak jauh beda dengan live music professional dan klab-klab musik--yang biasa live pada setiap malam di kota-kota besar--terasa sekali oleh naluri selera musik saya yang berbeda. Biasanya saya hanya suka mendengarkan lagu pop yang itu-itu saja, pada waktu perekaman musik tersebut saya mendapatkan perasaan baru yang strange tapi sangat bisa untuk dinikmati. Entahlah apakah musik ini tergolong music jazz atau bukan, tapi yang pasti musik ini dimainkan dengan suasana enjoy dan dapat didengar dengan sangat nyaman. Kolaborasi antara musik yang nge-beat dan instrument music yang tenang... Great, it's a great music!

Tapi, ternyata yang membuat saya takjub bukan hanya sekadar live music yang nyaman dan enak untuk dinikmati tapi juga (terutama) proses recording yang menggunakan Audacity yang dioperasikan oleh saya sendiri, sebuah software open source yang cukup terkenal sebagai sound editing application di Linux. Dan karena pengalaman berharga ini, saya bisa memastikan bahwa Audacity SUDAH SIAP sebagai aplikasi perekam (recording) dan pengolah (editing) suara.

Pada kesempatan ini pun (Alhamdulillah) saya sekali lagi ditunjukan oleh Allah Swt. adanya suatu tool (=program alat bantu) yang free (as freedom), yang luar biasa manfaatnya bagi kebaikan dan kehidupan. Tool yang dapat memodifikasi musik standard menjadi musik yang bisa menggugah hati pendengarnya, yang semoga dapat menjadi inspirasi positif bagi yang mendengarkannya :)

Proses recording tersebut berlangsung dengan mulus dan menghasilan output musik yang excellent!, begitu ungkap Gustaff H. Iskandar--Koordinator Bagian Riset dan Pengembangan Common Room Network Foundation--yang sampai hari ini saya lihat Beliau terus mengolah hasil rekaman tadi.

Tapi sayang live music tersebut tidak saya capture, alasannya simple... tidak punya foto digital aja sih.. :) , mudah-mudahan hari Sabtu depan ada yang bawanya, jadi bisa disimpan di blog ini.

Tulisan lain yang berkaitan: Projekt Heterologia 1, dan Projekt Heterologi 2.

Ingin mencoba mendengarkan hasil (ubahan) akhir dari musik tersebut? Anda bisa mendapatkannya di sini.

Audacious! :)

Sunday, January 07, 2007

[SEDIH BANGET] Mamah Andi sakit

Sore tadi saya dihubungi (lewat hand phone) oleh Mamah (kebiasaan pribadi untuk memanggil Ibu saya) sekadar ingin menanyakan kabar saya, mungkin sedang kangen berat kali ya? Padahal pada 3 hari (Sabtu, Minggu, dan Senin) saya pulang ke Banjar di Hari Raya Idul Adha dan liburan Tahun Baru 2007 kemarin.

Pada sore tersebut saya sedang membantu teman saya yang pindah kost, katanya agar mendapat lingkungan yang lebih kondusif untuk belajar dan bekerja, serta lebih dekat dengan kampus.

Di tengah-tengah pembicaraan saya juga menanyakan kabar Beliau:
" Mamah sapertos nuju teu raraos (Mamah seperti lagi 'ga sehat ya?)? "

Mamah menjawab:
" Puguh muhun, ti pas Andi uih ge da tos teu damang (Iya, sudah terasa sakit/tidak enak badan sejak Andi pulang kemarin).... "


Anak yang mana yang 'ga sedih kalau ternyata kita meninggalkan Orang Tua yang sedang sakit, dan kita tidak (sempat) menanyakan kabar kesehatannya ketika kesempatan bertemu itu ada. Ini tidak hanya sekadar alasan, memang pada waktu itu ketika saya berada di Banjar, kerjaan saya hanya tidur, karena badan terasa 'ga enak dan sedikit meriang (mungkin karena cuaca yang "kurang bersahabat" dan tubuh ini tidak dalam kondisi yang bugar).

Memang, pada malam harinya (seperti biasa) saya selalu diminta Mamah untuk meuseul (memijat dalam bahasa Sunda) kedua kaki Beliau, dan malam itu "pasien" bertambah menjadi 2, Bapa (Ayah) dan Ema' (Nenek) saya pun meminta untuk dipijat. Saya tidak menyangka ternyata Mamah (dan sangat mungkin Bapa dan 'Ema pun) sudah merasa sakit sejak malam tersebut (tepatnya sesudah Hari Idul Adha), dan bisa jadi sudah dirasakan dari hari-hari sebelumnya walaupun saya belum menanyakannya lebih lanjut.
Saya menduga sakit Beliau ini mungkin sakit yang biasa Beliau rasakan kalau terlalu capek dari tempat kerja, dan biasanya akan sembuh di keesokan paginya. Dan, pada malam itu (kata 'Ema saya) Mamah bisa tidur dengan sangat pulas, yang biasanya selalu tidak bisa tidur dengan pulas di setiap malamnya (suka gundah tiap malam). Walaupun saya tidak terlalu khawatir dengan sakitnya, tapi yang membuat saya khawatir dan tidak tenang adalah tidak bisa berada di sampingnya ketika Beliau sakit karena harus segera menyelesaikan tugas saya di kampus (di Bandung).

Ingat tidak ketika kita sedang sakit pada waktu masih kecil dan Ibu kita selalu mendampingi dan merawat kita? Nah, sekarang apa balas budi kita kepada Orang Tua ketika Mereka sedang sakit? Egoiskah kita membiarkan Orang Tua sendirian dalam sakitnya? Siapa yang bisa tega melakukannya?

Malam ini saya kebingungan antara harus mengerjakan tugas secepatnya (karena dikejar deadline) atau pulang untuk menengok Orang Tua?.. Pulang jangan ya?...

Pantas saja waktu itu Bapa menanyakan apakah saya bisa sedikit lama (mungkin seminggu) untuk tinggal (istirahat) dulu di Banjar?...Mungkin mereka sudah sangat kangen kali ya? (begitupun saya juga kangen banget!) karena memang sudah 3 bulan ini saya hanya pulang ke Banjar 1 bulan 1 kali (biasanya 2 minggu satu kali)... Iya, nampaknya kami sudah sangat jarang lagi pergi liburan bersama dalam waktu yang cukup lama.

Semoga Orang Tuaku lekas sembuh dan kami bisa cepat bertemu bersama lagi dalam waktu yang cukup lama untuk melepaskan kerinduan seorang Anak dengan Orang Tuanya... Semoga Jalan Pertolongan-Mu dapat kulihat dan kujalankan dengan benar, serta Hikmah cobaan ini menjadi pelajaran berharga dan tak terlupakan sepanjang hidup.

Friday, January 05, 2007

openSUSE 10.2 on My Machine

[Gambar 01: Tampilan Desktop Linux Hasil Kustomisasi]

Distro openSUSE ini saya download dengan menggunakan wget, dan baru kali ini saya melihat ketangguhan download manager sederhana (tapi cukup reliable) dalam men-download file ISO DVD openSUSE 10.2 sebesar 3.6 GB! dengan beberapa kali resuming. Terima kasih kepada Hrvoje Niksic (hniksic@xemacs.org) dan semua Programmer yang terlibat. Dan distro ini menjadi kado (hadiah) Idul Adha dan Tahun Baru 2007 yang tak terlupakan bagi saya!... Mudah-mudahan saya (pribadi) mempunyai semangat baru dan dapat terus konsisten dalam "berkorban" untuk kebaikan :)

OK then, proses instalasi openSUSE 10.2 ini memakan waktu kurang lebih 30 menit pada instalasi default dengan memilih KDE sebagai desktop environment-nya. Berikut deskripsi hasil instalasi distro tersebut di notebook saya:

LCD dan VGA Adapter
Pada probing hardware ini, openSUSE 10.2 mendeteksi LCD ini dengan nama QUANTADISPLAY LCD MONITOR dan VGA Adapter-nya dengan driver VESA [Gambar 02] (padahal notebook saya memakai ATI Mobility Radeon X1300.. hehehe..) dan akhirnya diberi resolusi 800x600 [Gambar 05], sehingga pada saat booting ke desktop, icon, font dan window aplikasinya terlihat berukuran besar dilihat di mata saya. Kita tunggu setelah saya install driver ATI-nya.

[Gambar 02: Potongan Isi File /etc/X11/xorg.conf Awal]

Mouse dan Keyboard
Untuk hal ini (saya kira) semua distro sudah mendukungnya dengan baik [Gambar 03], hanya saja seperti tombol tambahan (seperti: tanda mata uang Euro dan Dollar) di notebook saya tidak bisa muncul di standard output ketika di-press. Pada sisi lain, semua tombol multimedia dan short cut-short cut Acer dapat digunakan dengan baik. Hal ini sekali lagi membuktikan bahwa peripheral (terutama yang vendor specific) hardware sudah mulai banyak di-support oleh programmer vendor tersebut untuk bisa dipakai baik di atas platform Linux.

[Gambar 03: Potongan File /etc/X11/xorg.conf untuk Konfigurasi input device]

Wireless and Ethernet Adapter
Hal yang menyenangkan bagi saya adalah wireleess adapter yang dulu sempat "aneh" bisa langsung dipakai secara langsung [Gambar 04], dan di-detect sebagai "Intel Corporation PRO/Wireless 3945ABG Network Connection". Untuk Ethernet Adapter-nya (dari dulu) tidak ada masalah, langsung di-detect sebagai "Broadcom Corporation BCM4401-B0 100Base-TX".

[Gambar 04: openSUSE 10.2 Sudah Otomatis Dapat Menjalankan Koneksi Wireless]

Tampilan X WIndows (Grafis)
Perubahan mendasar dari segi tampilan adalah bentuk start menu yang baru [Gambar 05], ubahan dari programmer openSUSE sendiri. Walaupun terlihat menarik, setelah dicoba, akhirnya saya kembali dengan start menu KDE yang biasa (bentuk sebelumnya). Suatu saat apabila sudah dirasa bosan, saya akan switch ke model start menu yang baru tersebut :)

[Gambar 05: Bentuk Start Menu Baru dan Tampilan Desktop yang Masih Berukuran "Besar"]

Berikut (sebagian) isi /etc/X11/xorg.conf [Ganbar 06][Gambar 07] setelah saya instalasi driver ATI di notebook saya tersebut:

[Gambar 06: Potongan Isi File /etc/X11/xorg.conf Hasil Instalasi ATI Driver--fglrx]


[Gambar 07: Potongan File /etc/X11/xorg.conf Hasil Instalasi ATI Driver--Monitor&Screen]

dan game 3D-pun [Gambar 08] dengan smooth dapat dijalankan, plus tampilan desktop yang lebih menawan [Gambar 01] ! :)

[Gambar 08: Salah Satu Game yang Memerlukan Kemampuan 3D Acceleration]

Have fun then! :)