Bab
1 PENGANTAR SISTEM OPERASI
Setelah menuntaskan materi dalam bab 1 ini, mahasiswa dapat: Mendefinikan sistem operasi dengan benar Menyebutkan jenis-jenis sistem operasi dengan benar Menyebutkan struktur sistem operasi dengan benar Mengidentifikasi sejarah dan perkembangan terkini sistem operasi: Ubuntu
© 2007, Aripriharta
1
1.1 Pengenalan Saat ini, sistem operasi utama yang umum digunakan pada sistem komputer (termasuk PC: komputer personal) terbagi menjadi 3 kelompok besar, yakni: 1. Keluarga Microsoft Windows yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista yang akan dirilis pada tahun 2007). 2. Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd. 3. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 diluncurkan versi 10.5 (Leopard). Tabel 1. 1 Daftar jenis-jenis OS dengan kemampuan dan lisensinya Sistem Operasi User Task Processor Lisensi MS/PC DOS S S 1 Berbayar Windows 3x S QM 1 Berbayar Machintosh System 7 S QM 1 Berbayar Windows 9x S M 1 Berbayar Amiga DOS S M 1 Berbayar Hline MTS M M 1 Berbayar UNIX M M N Berbayar VMS M M 1 Berbayar NT S/M M N Berbayar Windows 2000 M M N Berbayar BEOS (Hamlet?) S M N Berbayar Windows XP M M N Berbayar Windows Vista M M N Berbayar Linux M M N Gratis Keterangan: S = single user; M, QM =Multitasking; N = lebih dari satu (multi)
Sedangkan pada Mainframe, dan Super computer menggunakan banyak sekali sistem operasi yang berbeda‐beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dan lain sebagainya.
© 2007, Aripriharta
2
Sistem operasi dapat dikelompokkan berdasarkan jumlah task yang dapat ditangani secara silmultan dan jumlah user yang dapat menggunakan sistem tersebut secara simultan (lihat Tabel 1.1). Dalam hal ini, sistem operasi dibedakan menjadi 4, yakni: singletasking, multitasking, singleuser, multiuser. Singetasking berarti sistem operasi hanya dapat mengseksekusi atau menjalankan satu job saja per‐CPU pada satu waktu. Single user berarti hanya dapat mendukung satu pengguna (user) dalam satu waktu (single user). Multitasking mengacu kepada sebuah metode dimana banyak pekerjaan (job atau proses) diolah dengan menggunakan sumber daya (resources) CPU yang sama dalam waktu yang bersamaan. Dalam kasus sebuah komputer dengan prosesor tunggal (single processor), hanya satu instruksi yang dapat bekerja dalam satu waktu, berarti bahwa CPU tersebut secara aktif mengolah instruksi untuk satu pekerjaan tersebut. Multitasking memecahkan masalah ini dengan memjadwalkan pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang lain menunggu untuk diolah dapat dikerjakan. Kondisi mengalokasikan CPU dari pekerjaan satu ke pekerjaan yang lain disebut context switch. Ketika context switch terjadi dengan sangat cepat ‐‐ kondisi ini cukup untuk memberikan ilusi pengolahan‐paralel. Bahkan dalam komputer yang memiliki lebih dari satu CPU (disebut multi‐ prosesor), multitasking memperbolehkan lebih banyak pekerjaan dijalankan dibanding dengan jumlah CPU yang tersedia. Beberapa sistem operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan sistem operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real‐Time OS. Sistem operasi multiuser pasti juga mendukung multitasking (hal ini terlihat pada tabel 1.1). Sebagai cntoh kasus, mari kita menyoroti pembahasan tentang sistem operasi yang paling populer di Indonesia bahkan di dunia saat ini, yakni Windows (XP atau Vista) dan Linux (Ubuntu). Pada Tabel 1.1 jelas terlihat bahwa Windows XP dan Linux (Ubuntu) merupakan sistem operasi multiuser, multitasking dan mendukung untuk komputer multiprocessor. Perbedaannya kalau menggunakan Windows XP diharuskan membeli lisensinya, sedangkan Linux lisensinya gratis karena di bawah naungan GNU/GPL.
© 2007, Aripriharta
3
Selanjutnya, dengan tidak mengurangi bahasan mengenai generalisasi konsep sistem operasi, secara khusus Modul ini membahas tuntas konsep sistem operasi dengan pendekatan praktis, studi kasus Linux (Ubuntu).
1.2 Definisi Sampai saat ini anda telah mendapatkan gambaran singkat tentang kondisi sistem operasi saat ini. Akan tetapi, apakah sistem operasi itu? Sebelumnya ada baiknya kita mengingat kembali struktur sistem komputer modern. Sistem komputer modern (Gambar 1.1) pada dasarnya terdiri dari 4 komponen utama, yaitu perangkat keras (hardware atau peripheral) layer 0, sistem operasi pada layer 1, program aplikasi pada layer 2 dan para pengguna (users) pada layer 3.
Gambar 1. 1 Abstraksi sistem komputer Sumber: Silberschatz, A. et. all, 2006: hal. 4, Figure 1.1.
Sistem operasi (biasa disingkat OS) adalah pengelola seluruh sumber daya (resources allocator atau resources manager) yang terdapat pada sistem komputer dan menyediakan sekumpulan layanan (system calls) ke pengguna (software aplikasi ataupun user) sehingga memudahkan (user friendly) dan menyamankan (convinient) penggunaan serta pemanfaatan resources sistem komputer. Sistem operasi berfungsi untuk membuat kondisi komputer agar dapat menjalankan program secara benar. Hal ini berarti sistem operasi harus
© 2007, Aripriharta
4
dapat menghindari konflik yang terjadi pada saat pengguna yang menggunakan resources yang sama. Sistem operasi mengatur pengguna mana yang dapat mengakses suatu resources dalam suatu waktu tertentu. Satu lagi fungsi penting sistem operasi ialah sebagai program pengendali (control program) yang bertujuan untuk menghindari kekeliruan (error) dan penggunaan komputer yang tidak perlu. Sistem operasi bukan merupakan bagian dari hardware, dan juga bukan merupakan bagian dari software aplikasi komputer, apalagi tentunya bukan merupakan bagian dari user. Mengapa demikian? Pada suatu sistem komputer modern (lihat Gambar 1.1) terdapat hardware sebagai lapisan terendah (layer 0) yang berfungsi sebagai penyedia resources seperti hardisk, piranti I/O, memory, dan sebagainya. Segala informasi tentang hardware dimuat dalam sebuah program kecil yang tersimpan di dalam chipset ROM (read only memory) yang terpatri pada motherboard. BIOS (basic input ouput system) berperan sebagai antarmuka antara hardware dengan sistem operasi. Sistem operasi (layer 1) merupakan manajer dalam sistem komputer yang bekerja secara terstruktur dan sistematis berdasarkan aturan yang telah ditetapkan. Sedangkan program aplikasi (layer 3), seperti pengolah kata, lembar sebar dan sebagainya merupakan keahlian dari sistem komputer. Hal ini dapat dijelaskan sebagai berikut. Salah satu contoh adalah sistem komputer memiliki keahlian membuat program 3 dimensi, apabila pada sistem tersebut telah terinstall program aplikasi seperti 3Dstudiomax dan sebagainya. Contoh lain sistem komputer dapat digunakan untuk membuat software game apabila telah terinstall compiler & editor bahasa pemrograman komputer, seperti Visual C dan sebagainya.
Gambar 1. 2 GUI Linux
© 2007, Aripriharta
5
Pada prinsipnya, program aplikasi menggunakan sistem operasi dengan membuat permintaan‐permintaan layanan (system calls) melalui suatu antar muka yang disebut Application Program Interface (API). User dapat saling berhubungan secara langsung dengan sistem operasi melalui suatu antarmuka berbasis teks (mode teks) atau suatu antarmuka grafis yang disebut GUI atau Graphics User Interface; contoh pada Gambar 1.2 (mode grafis). Linux memiliki CLI yang disebut shell atau terminal, sedangkan windows menggunakan DOS command (cmd shell) sebagai salah satu fasilitas interface dengan penggunanya. Satu sistem operasi memberi layanan untuk aplikasi‐aplikasi, layanan tersebut berupa: Pembuatan Program. Sistim operasi menyediakan berbagai fasilitas yang membantu programer dalam membuat program seperti editor dan compiler. Walaupun bukan bagian dari sistim operasi, tapi layanan ini diakses melalui sistim operasi. Dalam banyak kasus, sistem operasi menyediakan suatu library dari fungsi‐fungsi standar, dimana aplikasi lain dapat memanggil fungsi‐fungsi itu, sehingga dalam setiap pembuatan program baru, tidak perlu membuat fungsi‐fungsi tersebut dari awal. Eksekusi Program. Sistem harus bisa me‐load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusiannya baik secara normal maupun tidak (ada error). Operasi I/O. Program yang sedang dijalankan kadang kala membutuhkan I/O. Dalam menjamin efisiensi dan keamanan, pengguna biasanya tidak bisa mengatur peranti I/O secara langsung, untuk itulah sistem operasi harus menyediakan mekanisme dalam melakukan operasi I/O. Manipulasi sistem berkas (file). Program harus membaca dan menulis file, dan kadang kala juga harus membuat dan menghapus file, mengkoordinasikan dan mengelompokkan file dan directori. Communication. Kadang kala sebuah proses memerlukan informasi dari proses yang lain. Ada dua cara umum dimana komunikasi (communication) dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda, tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan share‐memory atau message‐passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
© 2007, Aripriharta
6
Deteksi error. Sistem operasi harus selalu waspada terhadap kemungkinan error. Error dapat terjadi di CPU dan memori perangkat keras, I/O, dan di dalam program yang dijalankan pengguna. Setiap jenis error sistem operasi harus bisa mengambil langkah yang tepat untuk mempertahankan jalannya proses komputasi. Misalnya dengan menghentikan jalannya program, mencoba kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan yang terjadi agar pengguna dapat mengambil langkah selanjutnya.
Selain berbagai jenis pelayanan di atas, sistem operasi juga menyediakan layanan lain. Layanan ini bukan untuk membantu pengguna tapi lebih pada mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu yaitu: Alokasi resources. Ketika beberapa pengguna menggunakan sistem atau beberapa program dijalankan secara bersamaan, sumber daya harus dialokasikan bagi masing‐masing pengguna dan program tersebut. Accounting. Kita menginginkan agar jumlah pengguna yang menggunakan resources, dan jenis resources yang digunakan selalu terjaga. Untuk itu maka diperlukan suatu perhitungan dan statistik. Perhitungan ini diperlukan bagi seseorang yang ingin merubah konfigurasi sistem untuk meningkatkan pelayanan. Proteksi. Layanan proteksi memastikan bahwa segala akses ke resources terkontrol dan keamanan terhadap gangguan dari luar sistem tersebut. Keamanan (security) bisa saja dilakukan dengan terlebih dahulu mengidentifikasi pengguna. Ini bisa dilakukan dengan meminta password bila ingin menggunakan resources.
1.3 Struktur Sistem Operasi Sistem operasi secara umum terdiri dari beberapa bagian utama yang terintegrasi membentuk sistem operasi, yaitu: 1. Mekanisme boot, yaitu meletakkan kernel ke dalam memory 2. Kernell, yaitu inti dari sebuah sistem operasi 3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna 4. Library yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
© 2007, Aripriharta
7
5. Device Driver (hardware control) untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.
Gambar 1.3 Struktur Linux
Linux, sebagai salah satu sistem operasi memiliki elemen atau komponen‐ komponen penyusun yang terintegrasi dan bekerjasama membentuk sistem tersebut. Gambar 1.3 mengilustrasikan struktur sistem operasi Linux yang merupakan kloning dari Unix. Komponen‐komponen penting dalam arsitektur sistem operasi UNIX / Linux ada 4, yakni: kernel, shell, utilitas dan aplikasi (user program).
1.3.1 Kernel Kernel Linux pertama yang dipublikasikan adalah versi 0.01, pada tanggal 14 Maret, 1991. Sistem berkas yang didukung hanya sistem berkas Minix ‐ kernel pertama dibuat berdasarkan kerangka Minix. Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara tepat. Tanggal 14 Maret, 1994, versi yang merupakan tonggak sejarah Linux yaitu versi 1.0 keluar. Rilis ini adalah kulminasi dari tiga tahun perkembangan yang cepat dari kernel Linux. Fitur baru terbesar yang disediakan adalah jaringan: 1.0 mampu mendukung protokol standar jaringan TCP/IP. Kernel 1.0 juga memiliki sistem berkas yang lebih baik tanpa batasan‐batasan
© 2007, Aripriharta
8
sistem berkas Minix. Sejumlah dukungan perangkat keras ekstra juga dimasukkan ke dalam rilis ini. Dukungan perangkat keras telah berkembang termasuk diantaranya floppy‐disk, CD‐ROM, sound card, berbagai mouse, dan keyboard internasional. Dukungan buat modul kernel yang dynamically loadable dan unloadable juga diberikan. Satu tahun setelah dirilis versi 1.0, kernel 1.2 keluar. Kernel versi 1.2 mendukung variasi perangkat keras yang lebih luas. Pengembang telah memperbaharui networking stack untuk menyediakan support bagi protokol IPX, dan membuat implementasi IP lebih komplit dengan memberikan fungsi accounting dan firewalling. Kernel 1.2 juga merupakan kernel Linux terakhir yang PC‐only. Konsentrasi lebih diberikan pada dukungan perangkat keras dan memperbanyak implementasi lengkap pada fungsi‐ fungsi yang ada. Akhirnya pada bulan Juni 1996, Linux 2.0 dirilis. Versi 2.0 memiliki dua kemampuan baru yang penting, yaitu: dukungan terhadap multiple architectures dan multiprocessor architectures. Kode untuk manajemen memori telah diperbaiki sehingga performa sistem berkas dan memori virtual meningkat. Untuk pertama kalinya, file system caching dikembangkan ke networked file systems, writable memory mapped regions juga sudah didukung. Kernel 2.0 sudah memberikan performa TCP/IP yang lebih baik, ditambah dengan sejumlah protokol jaringan baru. Kemampuan untuk memakai remote Netware dan SMB (Microsoft LanManager) network volumes juga telah ditambahkan pada versi terbaru ini. Tambahan lain adalah dukungan internal kernel threads, penanganan dependencies antara modul‐modul loadable, dan loading otomatis modul berdasarkan permintaan (on demand). Konfigurasi dinamis dari kernel pada run time telah diperbaiki melalui konfigurasi interface yang baru dan standar. Kernell adalah inti dari sistem Linux, yang mengontrol hardware dan membentuk berbagai fungsi beraras rendah. Fungsi‐fungsi yang dilaksanakan oleh kernell, antara lain: pelayanan tanggal (system call) dan jam sistem, manajemen file dan penanganan sekuriti, pelayanan operasi masukan dan keluaran, manajemen dan penjadwalan proses, manajemen memori, melakukan kegiatan akuntansi sistem, melakukan penanganan kesalahan dan interupsi (interrupt).
© 2007, Aripriharta
9
Gambar 1. 4 Proses system call
Gambar 1.4 mengilustrasikan operasi pemanggilan sistem (system call). Bagian‐bagian lain dari Linux, seperti aplikasi dan shell, memanggil kernell untuk membentuk layanan kepadanya. Linux menyediakan antarmuka antara bagian luar kernell dan kernell sendiri, berupa system call. Setiap pemanggilan sistem menginstruksikan kernell untuk membentuk layanan tertentu sesuai permintaan program yang memanggilnya. Sebagai contoh kalau suatu program hendak membaca data dari terminal, program perlu menyampaikan permintaan ke kernell. Kernell akan melakukan tindakan yang sesuai dengan permintaan program, kemudian menyampaikan hasilnya ke program.
1.3.2 Shell Shell adalah penerjemah (command line interpreter) pada Linux. Sering kali shell ini disebut sebagai terminal. Perangkat lunak inilah yang menjadi jembatan antara user dan sistem Linux. User cukup memberikan perintah dan shell yang akan menanganinya. Perintah ‐ perintah shell Linux dapat berupa :
Perintah built‐in. Perintah yang merupakan bagian internal dari shell Perintah eksternal. Perintah yang bukan bagian internal dari shell (dapat berupa utilitas atau program aplikasi)
Shell, baik pada Linux maupun UNIX, digunakan untuk interaksi antara user
© 2007, Aripriharta
10
dengan komputernya termasuk juga dalam mengontrol session UNIX dan pemrograman (scripting). Unix shell menyediakan sekumpulan instruksi khusus yang dapat digunakan untuk membuat program shell scripts. Ada beberapa jenis shell yang umum ditemukan dalam distro Linux, yakni: Bash dan tcsh.
1.3.3 Utility Utilitas (utility) adalah program yang disediakan sistem Linux untuk melaksanakan tugas tertentu. Jumlahnya banyak dengan fungsi yang beraneka ragam. Beberapa kelompok utilitas dilihat dari fungsinya: a. utilitas manajemen file dan direktori, utilitas kelompok ini sangat bemanfaat untuk melakukan tugas yang berhubungan dengan file dan direktori, misalnya untuk membuat direktori dan menghapus file. Utilitas penyunting file. Utilitas ini sering disebut editor, sangat bermanfaat untuk membuat program atau menyimpan informasi tertentu ke dalam file; b. utilitas penunjang komunikasi dan jaringan. Utilitas ini bermanfaat untuk melakukan komunikasi antar user. Bahkan user dapat mentransfer data antar sistem; c. utilitas administrasi sistem. Utilitas ini berguna bagi administrator sistem untuk mengelola sistem. Misalnya untuk menciptakan nama user baru dan mendaftarkan printer pada sistem; d. utilitas pemrograman C. Utilitas ini berguna untuk membuat program aplikasi dengan bahasa C. e. utilitas penganalisis unjuk kerja sistem. Utilitas ini dapat digunakan oleh administrator sistem untuk menganalisis unjuk kerja sistem, sehingga dapat melakukan pensettingan guna meningkatkan unjuk kerja; f. utilitas untuk keperluan backup dan restore. Utilitas ini bermanfaat untuk menyalin atau memindahkan data atau program ke media ekternal seperti magnetic tape, atau sebaliknya.
1.3.4 Program Aplikasi Program aplikasi (aplication sotware) adalah program‐program yang dibuat oleh user, untuk memenuhi kebutuhannya sendiri. Program‐program ini dapat dibuat dengan menggunakan sejumlah utilitas, perintah built‐in milik shell, atau dibangun dengan bahasa pemrograman seperti C, COBOL, atau Python dan berbagai development tool seperti Oracle dan Informix. Bisa juga
© 2007, Aripriharta
11
berupa program paket yang dibeli dari pemasok perangkat lunak. Beberapa contoh program aplikasi di Linux adalah Star Office, Open Office, Mozilla, Skylab, dan sebagainya.
1.4 Linux: Sejarah dan Perkembangannya Linux sangat mirip dengan sistem‐sistem UNIX, hal ini dikarenakan kompatibilitas dengan UNIX merupakan tujuan utama desain dari proyek Linux. Perkembangan Linux dimulai pada tahun 1991, ketika mahasiswa Finlandia bernama Linus Torvalds menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32‐bit pertama dalam kumpulan CPU intel yang cocok untuk PC. Pada awal perkembangannya, source code Linux disediakan secara bebas melalui Internet. Hasilnya, sejarah Linux merupakan kolaborasi banyak user dari seluruh dunia, semuanya dilakukan secara eksklusif melalui Internet. Dari kernel awal yang hanya mengimplementasikan subset kecil dari sistem UNIX, sistem Linux telah bertumbuh dimana sudah mampu memasukkan banyak fungsi UNIX. Kernel Linux perlu dibedakan dari sebuah sistem Linux: kernel Linux merupakan sebuah perangkat lunak orisinil yang dibuat oleh komunitas Linux sedangkan sistem Linux, yang diketahui saat ini, mengandung banyak komponen yang dibuat sendiri atau dipinjam dari proyek lain.
1.4.1 Sistem Linux Dalam banyak hal, kernel Linux merupakan inti dari proyek Linux, tetapi komponen lainlah yang membentuk secara komplit sistem operasi Linux. Dimana kernel Linux terdiri dari kode‐kode yang dibuat khusus untuk proyek Linux, kebanyakan perangkat lunak pendukungnya tidak eksklusif terhadap Linux, melainkan biasa dipakai dalam beberapa sistem operasi yang mirip UNIX. Contohnya, sistem operasi BSD dari Berkeley, X Window System dari MIT, dan proyek GNU dari Free Software Foundation. Pembagian (sharing) alat‐alat telah bekerja dalam dua arah. Sistem perpustakaan utama Linux awalnya dimulai oleh proyek GNU, tetapi perkembangan perpustakaannya diperbaiki melalui kerjasama dari komunitas Linux terutama pada pengalamatan, ketidak efisienan, dan bugs. Komponen lain seperti GNU C Compiler, gcc, kualitasnya sudah cukup
© 2007, Aripriharta
12
tinggi untuk dipakai langsung dalam Linux. Alat‐alat administrasi network dibawah Linux berasal dari kode yang dikembangkan untuk 4.3BSD, tetapi BSD yang lebih baru , salah satunya FreeBSD, sebaliknya meminjam kode dari Linux, contohnya adalah perpustakaan matematika Intel floating‐point‐ emulation. Sistem Linux secara keseluruhan diawasi oleh network tidak ketat yang terdiri dari para pengembang melalui internet, dengan grup kecil atau individu yang memiliki tanggung jawab untuk menjaga integritas dari komponen‐komponen khusus. Dokumen ’File System Hierarchy Standard’ juga dijaga oleh komunitas Linux untuk memelihara kompatibilitas keseluruh komponen sistem yang berbeda‐beda. Aturan ini menentukan rancangan keseluruhan dari sistem berkas Linux yang standar.
1.4.2 Distribusi Linux Siapa pun dapat menginstall sistem Linux, ia hanya perlu mengambil revisi terakhir dari komponen sistem yang diperlukan melalui situs ftp lalu di‐ compile. Pada awal keberadaan Linux, operasi seperti di atas persis seperti yang dilaksanakan oleh pengguna Linux. Namun, dengan semakin dewasanya Linux, berbagai individu dan kelompok berusaha membuat pekerjaan tersebut lebih mudah dengan cara menyediakan sebuah set bingkisan yang standar dan sudah di‐compile terlebih dahulu supaya dapat diinstall secara mudah. Koleksi atau distribusi ini, mengandung lebih dari sistem Linux dasar. Mereka mengandung instalasi sistem ekstra dan utilitas manajemen, juga paket yang sudah di compile dan siap diinstall dari banyak alat UNIX yang biasa, seperti news servers, web browsers, text‐processing dan alat mengedit, termasuk juga games. Distribusi pertama mengatur paket‐paket ini secara sederhana menyediakan sebuah sarana untuk memindahkan seluruh file ke tempat yang sesuai. Salah satu kontribusi yang penting dari distribusi modern adalah manajemen/ pengaturan paket‐paket yang lebih baik. Distribusi Linux pada saat sekarang ini melibatkan database packet tracking yang memperbolehkan suatu paket agar dapat diinstal, di upgrade, atau dihilangkan tanpa susah payah. Distribusi SLS (Soft Landing System adalah koleksi pertama dari bingkisan Linux yang dikenal sebagai distribusi komplit. Walau pun SLS dapat diinstall sebagai entitas tersendiri, dia tidak memiliki alat‐alat manajemen bingkisan
© 2007, Aripriharta
13
yang sekarang diharapkan dari distribusi Linux. Distribusi Slackware adalah peningkatan yang besar dalam kualitas keseluruhan (walau pun masih memiliki manajemen bingkisan yang buruk); Slackware masih merupakan salah satu distribusi yang paling sering diinstall dalam komunitas Linux. Sejak dirilisnya Slackware, sejumlah besar distribusi komersil dan non‐ komersil Linux telah tersedia. Red Hat dan Debian adalah distribusi yang terkenal dari perusahaan pendukung Linux komersil dan perangkat lunak bebas komunitas Linux. Pendukung Linux komersil lainnya termasuk distribusi dari Caldera, Craftworks, dan Work‐Group Solutions. Contoh distribusi lain adalah SuSE dan Unifix yang berasal dari German, dan Ubuntu.
1.4.3 Lisensi Linux Kernel Linux terdistribusi dibawah Lisensi Publik Umum GNU (GPL), dimana peraturannya disusun oleh Free Software Foundation. Linux bukanlah perangkat lunak domain publik (public domain): Public Domain berarti bahwa pengarang telah memberikan copyright terhadap perangkat lunak mereka, tetapi copyright terhadap kode Linux masih dipegang oleh pengarang‐pengarang kode tersebut. Linux adalah perangkat lunak bebas, namun: bebas dalam arti bahwa siapa saja dapat mengkopi, modifikasi, memakainya dengan cara apa pun, dan memberikan kopi mereka kepada siapa pun tanpa larangan atau halangan. Implikasi utama peraturan lisensi Linux adalah bahwa siapa saja yang menggunakan Linux, atau membuat modifikasi dari Linux, tidak boleh membuatnya menjadi hak milik sendiri. Jika sebuah perangkat lunak dirilis berdasarkan lisensi GPL, produk tersebut tidak boleh didistribusi hanya sebagai produk biner (binary‐only). Perangkat lunak yang dirilis atau akan dirilis tersebut harus disediakan sumber kodenya bersamaan dengan distribusi binernya.
1.4.4 Linux Saat Ini Saat ini, Linux merupakan salah satu sistem operasi yang perkembangannya paling cepat. Kehadiran sejumlah kelompok pengembang, tersebar di seluruh dunia, yang selalu memperbaiki segala fiturnya, ikut membantu kemajuan sistem operasi Linux. Bersamaan dengan itu, banyak pengembang yang sedang bekerja untuk memindahkan berbagai aplikasi ke Linux (dapat
© 2007, Aripriharta
14
berjalan di Linux). Masalah utama yang dihadapi Linux dahulu adalah interface yang berupa teks (text based interface). Ini membuat orang awam tidak tertarik menggunakan Linux karena harus dipelajari terlebih dahulu untuk dapat dimengerti cara penggunaannya (tidak user‐friendly). Tetapi keadaan ini sudah mulai berubah dengan kehadiran KDE dan GNOME. Keduanya memiliki tampilan desktop yang menarik sehingga mengubah persepsi dunia tentang Linux. Linux di negara‐negara berkembang mengalami kemajuan yang sangat pesat. Harga perangkat lunak (misalkan sebuah sistem operasi) bisa mencapai US $100 atau lebih. Di negara yang rata‐rata penghasilan per tahun adalah US $200‐300, US $100 sangatlah besar. Dengan adanya Linux, semua berubah. Karena Linux dapat digunakan pada komputer yang kuno, dia menjadi alternatif cocok bagi komputer beranggaran kecil. Di negara‐negara Asia, Afrika, dan Amerika Latin, Linux adalah jalan keluar bagi penggemar komputer. Pemanfaatan Linux juga sudah diterapkan pada supercomputer. Diberikan beberapa contoh:
The Tetragrid, sebuah mega computer dari Amerika yang dapat menghitung lebih dari 13 trilyun kalkulasi per detik (13.6 TeraFLOPS). Tetragrid dapat dimanfaatkan untuk mencari solusi dari masalah matematika kompleks dan simulasi, dari astronomi dan riset kanker hingga ramalan cuaca. Evolocity, juga dari Amerika, dapat berjalan dengan kecepatan maksimum 9.2 TeraFLOPS(FLoating Operations Per Second), menjadikannya sebagai salah satu dari lima supercomputer tercepat di dunia.
Jika melihat ke depan, kemungkinan Linux akan menjadi sistem operasi yang paling dominan bukanlah suatu hal yang mustahil. Karena semua kelebihan yang dimilikinya, setiap hari semakin banyak orang di dunia yang mulai berpaling ke Linux. Saat ini, Ubuntu Linux merupakan distro yang paling populer. Distro ini merupakan turunan dari Debian Linux yang merupakan salah satu distro linux “tertua” yang ada. Debian sangat terkenal karena merupakan distro yang benar‐benar “free”, paling banyak dukungan paket serta dikenal sangat stabil. Beberapa contoh distro yang diturunkan dari Debian Linux, yakni:
© 2007, Aripriharta
15
Knoppix, Morphix, Xandros, Ubuntu dan sebagainya. Ubuntu Linux merupakan sebuah distro baru yang langsung mendapatkan tempat dihati para pengguna Linux khususnya bagi para Debian mania. Bagaimana tidak Ubuntu memiliki lebih banyak kelebihan dibandingkan Debian. Ubuntu memiliki semua kelebihan yang dimiliki oleh Debian ditambah dengan update berkala setiap 3 bulan, dukungan komunitas yang sangat banyak, dukungan dana yang melimpah, bahkan anda bisa mendapatkan CD installernya secara gratis. Ubuntu adalah sebuah kata kuno dari Africa yang berarti “humanity towards other” yang berarti adalah rasa kemanusian untuk membantu sesama. Tujuan dari proyek ini adalah menciptakan sebuah sistem operasi desktop yang gratis dengan dukungan aplikasi serta dokumentasi. Proyek ini disponsori oleh Canonical, Ltd. (http://www.canonical.com). Dekstop Ubuntu (GUI) berbasis GNOME, sedangkan bagi anda yang lebih menyukai KDE, anda bisa memilih [K]ubuntu Linux. Walaupun pada hakekatnya tampilan Ubuntu dan [K]ubuntu berbeda, tetapi keduanya sama‐sama keluar dari “pabrik” yang sama dan tentu saja kedua distro tersebut mempunyai kelebihan dan kekurangan masing‐masing. Kalau anda lebih menyukai tampilan dengan ciri khas “Mac OS” anda bisa memakai Ubuntu, akan tetapi apabila anda lebih menyukai tampilan yang mirip dengan Windows anda bisa memakai Kubuntu. Apabila anda menginkan untuk menginstall Linux pada komputer server anda bisa memakai salah satu dari kedua distro tersebut, karena pada dasarnya base system keduanya sama (hanya berbeda Desktop Manager dan tambahan aplikasinya saja). Awalnya, [K]Ubuntu Linux hadir dalam 2 versi, yakni versi LiveCD dan versi install. Anda bisa memakai versi LiveCD kalau anda tidak ingin menginstallnya ke dalam komputer, cukup masukan LiveCD tersebut kedalam CD‐ROM Drive anda. Pada menu BIOS pilih agar booting pertama dilakukan dari CD‐ROM Drive. Setelah itu, anda sudah dapat menikmati Linux. LiveCD ini mempunyai banyak batasan karena semua perubahan pada konfigurasi yang anda buat akan langsung hilang ketika komputer dimatikan dan tentu saja LiveCD kurang flexibel apabila dibandingkan dengan versi installnya. [K]Ubuntu Linux ini juga hadir dalam 3 Arsitektur komputer yaitu : Intel x86, PowerPC dan AMD64.
© 2007, Aripriharta
16
[Rangkuman] Sistem operasi (operating system atau biasa disingkat OS) adalah perangkat lunak (software) sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras (hardware) serta operasi‐operasi dasar sistem, termasuk menjalankan software aplikasi seperti program‐program pengolah kata, lembar sebar bahkan browser web. Sistem operasi dapat dikelompokkan berdasarkan jumlah task yang dapat ditangani secara silmultan dan jumlah user yang dapat menggunakan sistem tersebut secara simultan. Dalam hal ini sistem operasi dibedakan menjadi 4, yakni: singletasking, multitasking, singleuser, multiuser. Sistem operasi multiuser pasti juga mendukung multitasking. Linux, sebagai salah satu sistem operasi memiliki elemen atau komponen‐ komponen penyusun yang terintegrasi dan bekerjasama membentuk sistem tersebut. Komponen‐komponen penting dalam arsitektur sistem operasi UNIX / Linux ada 4, yakni: kernell, shell, utilitas dan aplikasi (user program). Saat ini, Linux merupakan salah satu sistem operasi yang perkembangannya paling cepat. Kehadiran sejumlah kelompok pengembang, tersebar di seluruh dunia, yang selalu memperbaiki segala fiturnya, ikut membantu kemajuan sistem operasi Linux. Bersamaan dengan itu, banyak pengembang yang sedang bekerja untuk memindahkan berbagai aplikasi ke Linux (dapat berjalan di Linux). Contoh distribusi lain adalah SuSE dan Unifix yang berasal dari German, dan Ubuntu. Awalnya, [K]Ubuntu Linux hadir dalam 2 versi, yakni versi LiveCD dan versi install. Tentu saja LiveCD kurang flexibel apabila dibandingkan dengan versi installnya. [K]Ubuntu Linux ini juga hadir dalam 3 Arsitektur komputer yaitu : Intel x86, PowerPC dan AMD64.
© 2007, Aripriharta
17