Senin, 05 November 2012

HACK, HACKER, DAN HACKING

HACK - Menurut para pakar IT, definisi "Hack" bisa mengandung banyak artian. Tetapi inti dari semua definisi tetap hampir sama. Hack secara umum adalah pekerjaan yang hampir mustahil, mungkin
menghabiskan banyak waktu dan pikiran tetapi dapat menghasilkan sesuai yang diinginkan. Interaksi dengan komputer dalam bermain dan bereksplorasi, serta dilakukan dengan sungguh-sungguh dengan ketelitian yang sangatlah tinggi.

HACKER - Definisi "Hacker" adalah seseorang atau sekelompok orang yang mempelajari, menganalisa, dan selanjutnya bila menginginkan, bisa membuat, memodifikasi, atau bahkan mengeksploitasi sistem yang terdapat di sebuah perangkat seperti perangkat lunak komputer dan perangkat keras komputer seperti program komputer, administrasi, dan berbagai hal lainnya, terutama pada sistem keamanan. Seorang Hacker biasanya mempunyai pola pikir yang kuat dalam menyelesaikan permasalahan-permasalahan seputar logika dan analisa.

HACKING - Sedangkan definisi dari "Hacking" sendiri adalah suatu aktifitas dari hacker yaitu orang yang tertarik dan mendalami sistem operasi komputer sehingga mengetahui kelemahan yang ada pada suatu sistem tetapi tidak memanfaatkan kelemahan tersebut untuk hal kejahatan. Berbeda dengan Cracker dimana mereka memasuki sistem orang lain dengan tujuan kurang baik.

Sejarah tentang Hack, Hacker, dan Hacking


Sebelum terbentuknya komunikasi yang tercipta di Internet, pada tahun 1960-an beberapa mahasiswa ilmu komputer di Massachusetts Institute of Technology (MIT) yang gemar untuk melakukan engineering dan re-engineering terhadap perangkat keras dan perangkat lunak sering melakukan diskusi-diskusi terbuka yang disana membahas masalah :

Ide-ide mengenai pengembangan perangkat keras dan perangkat lunak
Ide-ide mengenai transformasi terhadap teknologi dan informasi

Pengistilahan dan perkataan “Hack” sebenarnya adalah merupakan slang yang pada saat itu belum memiliki arti yang spesifik dan sebenarnya. Kebiasaan-kebiasaan mengucapkan “I Hack This Stuff” seakan-akan memberikan arti bahwa istilah Hack merupakan kegiatan yang sedang dan memperoleh hasil setelah melakukan pengembangan terhadap segala sesuatu yang dilakukan. Pengembangan-pengembangan yang secara khusus diberikan kepada minicomputer dan microcomputer tersebutlah istilah “Computer Hacker” terbentuk.

Dengan kata lain, Computer Hacker adalah seseorang yang mengaplikasikan kemampuan dalam cakupannya mengenai komputer software, komputer hardware, komputer arsitektur, komputer desain, serta administrasi yang terkandung didalamnya. Seorang Hacker dituntut memiliki kemampuan dalam hal pemrograman untuk tingkatan software, dan keahlian dibidang hardware. Tuntutan yang sedemikian luasnya untuk keamanan disisi sistem aplikasi dan jaringan, memberikan motivasi bagi seorang Hacker untuk mengembangkan keahlian tersebut sehingga hasil dari penelitian yang dilakukan akan memberikan dampak yang positif bagi kelangsungan IT itu sendiri.

Dengan melihat sekelumit penjelasan diatas, kita dapat memberikan kesimpulan bahwa Hacking bukanlah sebatas pada kegiatan illegal yang identik dengan pengrusakan sebuah sistem dan aplikasi, atau sebatas kegiatan-kegiatan tentang pencurian sebuah data-data penting, melainkan kepada tindakan untuk melakukan perubahan yang mendasar atau perbaikan-perbaikan terhadap sistem dan aplikasi, baik yang berupa software ataupun hardware.

GNU/LINUX

GNU/Linux adalah sebuah sistem operasi yang diciptakan oleh Linus Benedict Torvalds seorang mahasiswa Universitas Helsinki Finlandia di tahun 1991.Proyek GNU ini diluncurkan pada tahun 1984 untuk mengembangkan sebuah sistem operasi lengkap mirip UNIX berbasis perangkat lunak bebas: yaitu sistem GNU (GNU merupakan akronim berulang dari “GNU’s Not Unix”; GNU dilafalkan dengan “genyu”). Varian dari sistem operasi GNU, yang menggunakan kernel Linux, dewasa ini telah digunakan secara meluas. Walau pun sistem ini sering dirujuk sebagai “Linux”, sebetulnya lebih tepat jika disebut sistem GNU/Linux. Ada salah satu fitur atau kemampuan yang sangat menarik dari GNU/Linux yang belum ada pada sistem operasi populer lainnya, yaitu menjalankan sistem operasi dan aplikasi lengkap tanpa menginstalnya di hard disk. Dengan cara ini dengan mudah kita dapat menggunakan GNU/Linux di komputer orang lain karena tak perlu menginstalnya (tak perlu mengutak-atik hard disk dan partisinya). Sejarah sistem operasi Linux berkaitan erat dengan proyek GNU, proyek program bebas freeware terkenal diketuai oleh Richard Stallman. Proyek GNU diawali pada tahun 1983 untuk membuat sistem operasi seperti Unix lengkap — kompiler, utiliti aplikasi, utiliti pembuatan dan seterusnya — diciptakan sepenuhnya dengan perangkat lunak bebas. Pada tahun 1991, pada saat versi pertama kerangka Linux ditulis, proyek GNU telah menghasilkan hampir semua komponen sistem ini — kecuali kernel. Torvalds dan pembuat kernel seperti Linux menyesuaikan kernel mereka supaya dapat berfungsi dengan komponen GNU, dan seterusnya mengeluarkan Sistem operasi yang cukup berfungsi. Oleh karena itu, Linux melengkapi ruang terakhir dalam rancangan GNU.

Beberapa distro Linux Live CD yang banyak dipakai antara lain Knoppix, SUSE Live Eval, Mandrake Move, Gentoo Live CD, Slackware Live CD dll. Meskipun bentuknya Live CD, tetapi distro tersebut memiliki fungsi yang sama dengan distro-distro terinstal. Di dalam CD tersebut, sudah terdapat paket-paket umum yang biasa kita jumpai di distro Linux besar, seperti: OpenOffice, KOffice, XMMS, GIMP, Konqueror, dan sebagainya. Namun ada beberapa pengecualian, yaitu beberapa paket yang memang sangat besar dan kiranya tidaklah umum digunakan oleh home user, mengingat kapasitas CD yang terbatas, yaitu sekitar 700MB.
Kepraktisan itu ada batasnya karena selama operasionalnya, Linux Live CD tidak mempunyai sebuah tempat khusus di dalam harddisk. Linux Live CD hanya memiliki tempat di memori utama (RAM), sehingga setelah di-restart, semua isi RAM akan dikosongkan dan Linux Live CD harus melakukan inisialisasi ulang untuk mendeteksi semua perangkat keras yang dimiliki oleh user. Selain itu, kinerja dari Linux Live CD sendiri juga tidak bisa maksimal, karena kecepatan komputer untuk mengakses CD-ROM jauh lebih lambat dibandingkan dengan kecepatan mengakses harddisk.

Dalam ilmu komputer, kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. Istilah Linux sebetulnya hanya mengacu pada kernel dari suatu sistem operasi. Kernel adalah Jembatan antara hardware dan aplikasi-aplikasi yg menterjemahkan bahasa software sehingga mampu dimengerti dan diproses oleh hardware sesuai dengan permintaan. Karena akses terhadap perangkat keras terbatas, sedangkan ada lebih dari satu program yang harus dilayani dalam waktu yang bersamaan, maka kernel juga bertugas untuk mengatur kapan dan berapa lama suatu program dapat menggunakan satu bagian perangkat keras tersebut. Hal tersebut dinamakan sebagai multiplexing. Akses kepada perangkat keras secara langsung merupakan masalah yang kompleks, oleh karena itu kernel biasanya mengimplementasikan sekumpulan abstraksi hardware. Abstraksi-abstraksi tersebut merupakan sebuah cara untuk menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya memudahkan pekerjaan programer. Sebuah kernel sistem operasi tidak harus ada dan dibutuhkan untuk menjalankan sebuah komputer. Program dapat langsung dijalankan secara langsung di dalam sebuah mesin (contohnya adalah CMOS Setup) sehingga para pembuat program tersebut membuat program tanpa adanya dukungan dari sistem operasi atau hardware abstraction. Cara kerja seperti ini, adalah cara kerja yang digunakan pada zaman awal-awal dikembangkannya komputer (pada sekitar tahun 1950). Kerugian dari diterapkannya metode ini adalah pengguna harus melakukan reset ulang komputer tersebut dan memuatkan program lainnya untuk berpindah program, dari satu program ke program lainnya. Selanjutnya, para pembuat program tersebut membuat beberapa komponen program yang sengaja ditinggalkan di dalam komputer, seperti halnya loader atau debugger, atau dimuat dari dalam ROM (Read-Only Memory). Seiring dengan perkembangan zaman komputer yang mengalami akselerasi yang signifikan, metode ini selanjutnya membentuk apa yang disebut dengan kernel sistem operasi.

Selanjutnya, para arsitek sistem operasi mengembangkan kernel sistem operasi yang pada akhirnya terbagi menjadi empat bagian yang secara desain berbeda, sebagai berikut:

Monolithic Kernel. Monolithic kernel mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada di bawah sistem operasi.

Microkernel. Microkernel menyediakan sedikit saja dari abstraksi perangkat keras dan menggunakan aplikasi yang berjalan di atasnya—yang disebut dengan server—untuk melakukan beberapa fungsionalitas lainnya.

Hybrid kernel. Hybrid kernel adalah pendekatan desain microkernel yang dimodifikasi. Pada hybrid kernel, terdapat beberapa tambahan kode di dalam ruangan kernel untuk meningkatkan performanya.

Exokernel. Exokernel menyediakan hardware abstraction secara minimal, sehingga program dapat mengakses hardware secara langsung. Dalam pendekatan desain exokernel, library yang dimiliki oleh sistem operasi dapat melakukan abstraksi yang mirip dengan abstraksi yang dilakukan dalam desain monolithic kernel.

open source adalah sistem pengembangan yang tidak dikoordinasi oleh suatu orang/lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi, yang artinya ketika suatu komunitas menggunakan sebuah program Open Source dan telah menerima sebuah manfaat kemudian akan termotivasi untuk menimbulkan sebuah pertanyaan apa yang bisa pengguna berikan balik kepada orang banyak. Pengembangan Linux bersifat open source artinya source code dari aplikasi pembentuk sistem dan aplikasi lainnya diberikan secara terbuka sehingga setiap orang dapat melakukan modifikasi atau kustomisasi sesuai dengan kebutuhan masing-masing.

Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab. Pada intinya konsep sumber terbuka adalah membuka “kode sumber” dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka. Pergerakan perangkat lunak bebas dan sumber terbuka saat ini membagi pergerakannya dengan pandangan dan tujuan yang berbeda. Sumber terbuka adalah pengembangan secara metodelogi, perangkat lunak tidak bebas adalah solusi suboptimal. Bagi pergerakan perangkat lunak bebas, perangkat lunak tidak bebas adalah masalah sosial dan perangkat lunak bebas adalah solusi.