Bismillahirrahmanirrahim.
Ade Malsasa Akbar <teknoloid@gmail.com>
Bila sudah lama Anda menggunakan sistem operasi dengan kernel Linux®, tetapi Anda belum kenal GNU, sudah saatnya sekarang Anda mengenal GNU lebih dekat.
Masalah Persepsi
Dari perjalanan saya berkomunitas, saya mengenali bahwa masalah utama yang menghalangi seseorang mengenal GNU adalah karena dia tidak mengakui GNU sebagai sistem operasi. Ini adalah persepsi, dan persepsi ini bukan tanpa alasan, karena saya temukan juga sebabnya yaitu dia membangun persepsinya hanya berdasar fakta bahwa sampai 1990 GNU tidak memiliki kernel sendiri. Fakta ini ternyata tidak bisa dipakai untuk menolak bahwa GNU adalah sistem operasi. Bagi Anda yang masih memiliki persepsi “GNU bukan sistem operasi karena tidak punya kernel“, mohon hapus dahulu persepsi itu untuk dapat meneruskan membaca artikel ini.
GNU? Saya Tidak Paham!
Bagian ini saya tambahkan pada 23 Mei 2017.
GNU adalah sistem operasi yang dirilis 100% dalam wujud source code. Karena itu Anda tidak melihat tombol “Unduh ISO GNU” di http://www.gnu.org tetapi yang Anda lihat ialah source code di http://ftp.gnu.org/gnu/. Ini sebabnya orang tidak paham bahwa GNU itu OS, sebab mereka sangka OS haruslah tersedia dalam bentuk ISO yang bisa diunduh & diinstal. Tidak demikian, karena yang disebut software itu adalah source code.
Faktanya, Linux (kernel) itu juga dirilis dalam wujud source code. Silakan buka https://www.kernel.org.
Maka dari itu, pengguna akhir butuh OS dalam bentuk olahan source code (yakni, binary code = runnable code), yang diproduksi oleh pihak ketiga (yakni, mengolah dua source code di atas jadi OS yang siap instal), dan produknya nanti disebut distribusi GNU/Linux.
GNU Itu Apa?
GNU adalah sistem operasi. Ini kenyataan. GNU adalah sistem operasi UNIX-like yang merupakan kloning UNIX yang mengimplementasikan standar POSIX dengan sempurna, sehingga kompatibel dengan sistem UNIX itu sendiri dan UNIX-like lainnya. Bedanya dengan UNIX, GNU adalah free software, yakni software yang bebas dari kendali vendor; sementara UNIX proprietary software, yakni lawannya.
Jika Anda kesulitan membayangkan GNU, bayangkan ReactOS. ReactOS adalah sistem operasi free software kloning Windows, kompatibel dengan driver dan software Windows, karena ia adalah hasil reverse engineering Windows. Tapi GNU bukan kloning Windows seperti ReactOS, GNU adalah kloning UNIX. Maka GNU kompatibel dengan software yang dibuat untuk UNIX, GNU kompatibel dengan sistem UNIX-like lain, dan akibatnya, GNU kompatibel dengan Linux yang merupakan kernel UNIX-like. Pengembangan GNU dimulai 1984 sedangkan Windows 1.0 pertama dirilis 1985.
Apa Komponen GNU yang Saya Tahu?
Apabila benar Anda telah lama menggunakan sistem operasi apa pun yang memakai kernel Linux®, maka Anda pasti mengenal komponen-komponen dari GNU yang sangat sering “dinobatkan” secara keliru sebagai komponen dari Linux®. Anda pasti mengenalnya walaupun mungkin Anda tidak menyadari bahwa ia merupakan bagian dari GNU.
- GRUB, yakni GNU GRUB. Bootloader yang selalu menyebut nama sistem operasinya (yaitu GNU) tapi penggunanya lebih sering tidak menyadarinya. Ini bukti bahwa GNU booting lebih dulu daripada kernel Linux®.
- Bash, yakni shell dari sistem operasi GNU.
- GNU coreutils, yakni paket yang mengandung program konsol fundamental ls, cp, mv, rm, mkdir, rmdir, du, df, dd, chroot, chown, chmod, dan lain-lain.
- GNOME, yakni GNU Network Object Model Environment. Ya, GNOME adalah desktop environment dari sistem operasi GNU.
- GTK+, yakni GIMP Toolkit. Ya, GTK+ juga bagian dari GNU. Pesaing terbesar GTK+ adalah Qt.
- GIMP, yakni GNU Image Manipulation Program. Ya, betul, GIMP adalah “photoshop”-nya GNU.
- Wget, yakni GNU Wget (bukan Linux Wget). Download manager konsol yang bahkan UNIX dan BSD saja tidak punya, itu sebenarnya dari GNU.
- R, yakni GNU R.
- PSPP, yakni GNU PSPP.
- Octave, yakni GNU Octave.
- Glibc, yakni GNU C Library.
- GCC, yakni GNU Compiler Collection dan kadang berarti GNU C Compiler.
- GParted dan GNU parted. Anda baru menyadarinya? Ya, saya juga.
- Midnight Commander, yakni GNU Midnight Commander.
- Ncurses, yakni GNU Ncurses. Ya, tampilan konsol aptitude dibuat dengan ncurses.
- Icecat, yakni GNU Icecat. Firefox versi GNU.
- Gzip
- Tar
- GCompris.
- Nano, yakni GNU Nano.
- FreeFont, yakni GNU FreeFont. Apakah Anda tahu FreeSans, FreeSerif, dan FreeMono? Tahu kenapa namanya diawali Free? Karena mereka bagian dari GNU.
- Emacs, yakni GNU Emacs. Text editor legendaris yang umurnya lebih tua dari sistem operasinya sendiri.
- Hurd, yakni GNU Hurd. Ya, akhirnya ini kernel dari GNU.
Apa Kesalahan Saya?
Sebelum membahas kesalahan, supaya adil, mari kita bandingkan kebiasaan pengguna Windows dengan kebiasaan pengguna GNU*.
- Pengguna Windows menyebut Microsoft Office sebagai Microsoft Office, mereka mengakui kalau ini produk dari Microsoft. Mereka tidak menyebutnya Apple Office atau IBM Office.
- Pengguna Windows menyebut Adobe Photoshop sebagai Adobe Photoshop, mereka mengakui juga produk ini asalnya dari Adobe. Mereka tidak menyebutnya Apple Photoshop atau IBM Photoshop.
- Tapi pengguna GNU menyebut GNU ls sebagai Linux ls, GNU cp & mv & rm sebagai Linux punya, GNU sed sebagai Linux sed, GNU GIMP sebagai Linux GIMP, GNU Bash sebagai Linux Bash, GNU Wget sebagai Linux Wget. GNU Gcc sebagai Linux Gcc, bahkan GNU GRUB sebagai Linux GRUB, dan seterusnya.
- Kenapa bisa begitu? Kenapa pengguna Windows jitu mengenali produk yang dipakainya sendiri, tapi pengguna GNU tidak? Dari mana asalnya kesalahan penamaan itu?
*) mayoritas pengguna GNU yang disebut “…mistakenly called GNU as Linux…”, bukan seluruhnya.
GNU is Not Linux
Anda sering mendengar kepanjangan rekursif GNU yaitu GNU’s Not Unix. Namun mungkin Anda belum pernah dengar orang menyebut bahwa GNU’s Not Linux. Ya, dengan melihat 2 bab di atas, Anda sekarang bisa memaklumi bahwa ternyata GNU itu bukan Linux, produk-produk yang berasal dari GNU adalah dari GNU bukan dari Linux®. Penamaan yang betul baik menurut sejarah bahkan menurut kebiasaan pengguna Windows sekalipun, menyatakan, GNU bukan Linux. Produk GNU adalah bagian dari GNU, bukan dari Linux; sebagaimana Microsoft Office adalah produk Microsoft bukan Apple. Kenapa kita tidak memberikan penyebutan kredit yang jitu dan sesuai kebenarannya untuk GNU?
Asal Muasal Mitos
Adalah sebuah mitos yang sangat perlu diluruskan yaitu persepsi bahwa seluruh produk GNU adalah bagian dari Linux®. Memaksakan menyebut satu nama merek produk Linux® untuk keseluruhan sistem operasi GNU/Linux tidak lagi jitu dan sesuai kenyataan sebenarnya. Sebagaimana kesalahan yang sudah saya demonstrasikan di atas, saya ingin mempertanyakan asal muasal mitos ini. Dari mana asalnya?
Asal muasal mitos ini ada beberapa. Satu sudah saya sebutkan di atas, yakni karena pengguna cenderung tidak mengakui bahwa GNU adalah sistem operasi. Tetapi satu lagi belum saya sebutkan, yakni karena pengguna tidak mengakui bahwa sistem operasi yang dipakainya sebagai sistem operasi komposisi. Sistem operasi komposisi bisa disebut juga sistem operasi gabungan. Istilah lain yang biasa digunakan juga adalah distribusi GNU/Linux.
Ketika pengguna dan masyarakatnya berkomunikasi dengan menghilangkan satu per satu kata dari frasa sistem operasi komposisi GNU/Linux, di situlah dimulai mitos ini. Ketika eliminasi sudah mencapai satuan kata terakhir GNU/Linux, lalu pengguna itu menghilangkan pula GNU dan slash di situ, tinggallah nama Linux® tersisa. Ketika pengguna sudah terbiasa dengan nama tunggal merek terdaftar ini, maka pengguna sangat mudah menyebut setiap produk dengan kesan bahwa ia adalah bagian dari Linux®.
Sebenarnya, Apa Itu Kloning?
Clone (Indonesia: klon, kloning) adalah sistem operasi yang diciptakan dengan meniru sama persis sistem operasi lain tanpa mengambil source code darinya sama sekali. Tujuan dari kloning sistem operasi adalah kompatibilitas software dan hardware. GNU adalah clone UNIX, fungsionalitasnya sama persis tetapi GNU tidak mengandung source code UNIX sedikit pun. Linux juga clone UNIX (lebih tepatnya, MINIX), pada bagian kernelnya, fungsionalitasnya juga sama persis tapi Linux tidak mengandung source code MINIX sedikit pun. Demikian pula seluruh BSD yang sekarang, sudah tidak mengandung source code UNIX. Ya, GNU, Linux, dan BSD adalah clone UNIX. Mereka bertiga adalah produk-produk yang disebut UNIX-like.
Sebenarnya, Apa Itu UNIX-like?
Unix-like atau UNIX-like adalah sebutan untuk setiap sistem operasi yang menganut standar POSIX tetapi bukan turunan AT&T UNIX dan tidak mengandung source code UNIX dalam tubuhnya. Kata kuncinya adalah POSIX. Jadi setiap sistem operasi atau produk yang mengimplementasikan POSIX, disebut UNIX-like. Di antara sistem operasi yang tidak menganut POSIX adalah Windows. Di antara sistem operasi lain yang menganut POSIX adalah Mac OS X*, Android, iOS, BSD, BlackBerry, Darwin, MINIX, Solaris*, dan OpenIndiana. Di antara kernel lain yang menganut POSIX adalah XNU dan Mach.
Dengan demikian terbantah persepsi salah yang menyatakan GNU adalah turunan UNIX atau Linux turunan UNIX. Yang sama antara GNU dan UNIX adalah standar yang dianut, yaitu POSIX. Demikian pula antara Linux dan UNIX. UNIX adalah proprietary software yang tidak mengizinkan karya turunan.
Maka Anda perlu mengenal istilah implementasi. Di dunia ilmu komputer ada software, ada hardware, dan di tengahnya ada standard. Bila ada standard, maka ada implementasi. Standard adalah desain sistem dan aturannya, sedangkan implementasi adalah perbuatan yang menghasilkan produk jadinya. GNU adalah hasil implementasi dari standar POSIX. Begitu pun Linux dan sekian banyak UNIX-like lainnya. Setiap sistem yang menganut standar POSIX sampai derajat tertentu disebut dengan istilah POSIX-compliant.
*) Mac OS X dan Solaris adalah UNIX® dan sudah bukan lagi UNIX-like. Mereka tersertifikasi resmi oleh konsorsium The Open Group.
Sebenarnya, Apa Itu Distribusi?
Istilah distribusi sebetulnya diambil dari frasa software distribution (distribusi perangkat lunak). Istilah ini bermakna umum, mencakup setiap software yang didistribusikan dan termasuk di dalamnya sistem operasi. Sebuah distribusi adalah sebuah proyek pengumpulan, pemaketan, dan perilisan software berapa pun jumlahnya dari mana pun sumbernya, yang terkadang berupa sistem operasi siap pakai dan terkadang bukan sistem operasi.
Pada praktik di lapangan, istilah distribusi dipakai untuk menyebut distribusi GNU/Linux (GNU/Linux distribution), yaitu sistem operasi siap pakai yang seperti Debian, Ubuntu, Fedora, openSUSE, Trisquel, gNewSense, atau Gentoo. Apakah developer Debian membuat sendiri semua software di dalam ISO dan repositorinya? Jawabannya tidak, karena Debian hanya mendistribusikan ulang software dari sumber-sumber lain kepada pengguna akhir. Itu sebabnya ia disebut distribusi.
Kenapa istilah yang dipakai justru distribusi GNU/Linux? Kenapa tidak dihilangkan secara mutlak saja istilah itu, diganti dengan istilah sistem operasi saja biar mirip Windows? Jawabannya itu tidak bisa dan itu tidak mungkin. Kenapa?
Karena istilah distribusi memberikan penegasan yang fundamental bahwa sistem operasi yang dilabeli istilah ini bukan sistem operasi vendor tunggal seperti Microsoft Windows. Istilah distribusi memberikan makna secara langsung dan gamblang bahwa sistem operasi tersebut adalah sistem operasi komposisi, sistem operasi gabungan, yaitu gabungan dari GNU dan Linux paling esensialnya. Setiap developer dari distribusi GNU/Linux tidak membuat seluruh softwarenya sendiri, tapi mereka hanya mengambil dari sumber GNU dan Linux dan lain-lain; jadi ini tidak bisa disamakan dengan Microsoft Windows. Oleh sebab itu, penamaan yang dianjurkan oleh sebagian orang (yang peduli masalah ini) ialah distribusi GNU/Linux. Bila istilah distribusi hendak dihilangkan, maka minimal sebut istilahnya GNU/Linux dan tidak kurang dari ini.
Tidak Kenal GNU Dot Org
Sebab lain yang sangat signifikan orang tidak mengenal GNU adalah mereka tidak pernah membaca http://www.gnu.org. Dalam waktu yang singkat dalam durasi Februari-November 2016 ini saya melakukan puluhan diskusi secara privat kepada berbagai macam pengguna GNU/Linux dari Indonesia, yang dari diskusi-diskusi itu saya menarik kesamaan di antara mereka, yaitu tidak pernah membaca http://www.gnu.org sama sekali. Dari data saya ini, dapat ditebak, kurang lebih begitu pula yang terjadi di masyarakat kita. Masyarakat hanya mengenal “Linux” (yang sesungguhnya mereka maksud ialah distribusi GNU/Linux) dari sumber-sumber lain yang tidak pasti keakuratan datanya, yang bukan dari sumber originalnya, yaitu www.gnu.org.
Hal ini ternyata cukup kuat untuk menjelaskan kenapa banyak orang tidak bisa membedakan antara free software dan open source, tidak tahu bedanya freeware dari free software, tidak kenal penamaan GNU/Linux, juga tidak bisa mengenali proprietary software secara pasti, juga tidak begitu yakin kenapa dan apa yang salah dari Microsoft terhadap komunitas, tidak kenal sedikit pun masalah software patents, dan yang paling jelasnya tidak pernah menyinggung bahwa “proprietary software adalah masalah sosial dan free software solusinya“. Sebabnya karena mereka tidak pernah membaca http://www.gnu.org.
Lebih Dalam Mengenal Distribusi
Kenapa istilahnya distribusi? Apa tidak ada istilah lain? Tidak, ini bukan masalah bagus-mana keren-siapa, ini menyangkut masalah yang lebih penting yaitu masalah free software. Distribusi bisa disebut distribusi, yakni dua-duanya distribusi software maupun distribusi GNU/Linux, adalah, karena mereka semua free software. Seandainya mereka proprietary, maka tidak ada distribusi, karena proprietary software artinya pengguna dilarang memodifikasi dan/atau mendistribusikan software.
Karena lisensi setiap software adalah free software (copyleft dan noncopyleft adalah free) maka distribusi itu menjadi mungkin, dan seterusnya, kolaborasi itu menjadi mungkin pula. Dan keduanya sudah terjadi. Seandainya lisensi setiap software adalah proprietary, maka pengembangan ulang dan distribusi oleh pihak ketiga tidak ada. Contoh paling jelasnya kenapa Microsoft Windows tidak disebut distribusi? Karena Windows itu proprietary, pihak selain Microsoft tidak boleh memodifikasi dan/atau mendistribusikannya. Tapi GNU/Linux disebut distribusi, karena komponennya free software, sah untuk digabung-gabungkan, sah untuk digandakan, sah untuk didistribusikan ulang. Apakah Anda mengenali perbedaannya sekarang? Ya, Anda mengenalinya.
Karena lisensi setiap software adalah free software, maka ada yang namanya distribusi turunan, seperti Ubuntu yang turunan Debian. Karena sifat GNU/Linux adalah free software, maka turunan itu jumlah levelnya tidak terbatas. Ini terbukti dengan melihat jumlah turunan Ubuntu dan pohon silsilahnya. Lagi-lagi, ini adalah persoalan distribusi. Windows tidak bisa seperti ini. Apabila pengguna Windows melakukannya, maka dia terancam masuk penjara.
Karena setiap software adalah free software, maka setiap software mempunyai source code yang terpublikasikan. Setiap source code adalah upstream, hulu, sumber, bagi distribusi induk seperti Debian. Debian tidak perlu membuat seluruh komponen sistem operasinya sendirian, karena sudah ada GNU, dan karena sudah ada Linux, dan karena semua software yang bebas didistribusikan (baca: free software) menyediakan source code masing-masing, maka Debian cukup mengambili satu per satu source code yang ada ke satu tempat lalu memroses semuanya menjadi ISO Debian dan repositorinya. Begitulah prosesi terbentuknya sebuah distribusi GNU/Linux. Lagi-lagi, proses ini tidak terjadi di Windows.
Kenapa GNU Dibuat?
Proprietary software adalah masalah sosial dan free software solusinya. Free software movement berdiri untuk menghapuskan proprietary software dari dunia. Namun syarat untuk melakukan itu adalah mereka harus punya sistem operasi yang free dahulu, yang pada saat itu belum ada. Sistem yang ada ketika itu hanyalah UNIX (proprietary), BSD (proprietary, tapi berubah pada 1993) VMS (proprietary), DOS (sama), atau yang semisal dengan mereka. Maka GNU dibuat untuk mewujudkan penghapusan segala proprietary software itu. GNU adalah satu-satunya sistem operasi pertama di dunia yang dibuat murni untuk software freedom. Dan hasilnya GNU telah berhasil mengeliminasi UNIX secara utuh, dengan menggantikannya sepenuhnya pada hari ini.
Free Software Movement
Free software movement (FSM) adalah tentang education. Apabila pengguna mengalami kesalahan atau kebingungan, maka saksikanlah, di situ pasti terdapat peran education yang hilang darinya. Menyosialisasikan GNU/Linux adalah melakukan education. Begitupun menyosialisasikan free software. Apabila penjelasan kata kunci yang sangat fundamental seperti GNU, UNIX-like, distribusi, GNU/Linux, free software, http://www.gnu.org, dihilangkan, maka akibatnya pengguna akan jatuh pada kesalahan atau kebingungan. Maka sekali lagi free software movement adalah tentang education. Jangan menghindar dari mengajarkan kata kunci-kata kunci di atas. Jelaskan secara gamblang dan tegas kepada masyarakat. Edukasikan GNU kepada masyarakat Indonesia.
Tulisan bertopik software freedom ini berlisensi Creative Commons Attribution-NoDerivs 3.0 https://creativecommons.org/licenses/by-nd/3.0/.