Sabtu, 13 Agustus 2011

Sistem Operasi Linux


BAB I
PENDAHULUAN


1. Latar Belakang


Pada saat ini hampir semua orang sudah menggunakan system operasi windows sebagai system operasi di komputer mereka. Hampir semua orang sudah tahu tentang system operasi windows, cara instalasinya, aplikasinya dan lain – lain. Tetapi bagaimanakah dengan system operasi linux?, mungkin bagi masyarakat di Negara maju seperti jepang, amerika, dll.Sudah mengenal linux bahkan mampu untuk membuat system operasi yang serupa dengan linux. Tetapi bagaimanakah dengan masyarakat di Negara – Negara berkembang seperti Indonesia? Memang tidak bisa dipungkiri lagi, bahwa sebagian besar masyarakat Indonesia masih banyak yang gagap teknologi, hanya sebagian kecil saja yang memiliki wawasan yang luas dalam bidang IT. Untuk itu kami mencoba untuk mengambil sedikit andil dalam perkembangan dunia pendidikan di bidang IT di negara tercinta ini (Indonesia), pada kesempatan ini kami mencoba untuk menulis beberapa hal mengenai salah satu system operasi (Linux), dalam makalah ini kami memaparkan tentang sejarah linux, keunggulannya, instalasinya dan lain sebagainya.


2. Tujuan

Adapun tujuan dari penulisan ini adalah :

a. mengetahui apa itu linux, perbedaan dengan windows.
b. mengetahui perintah dasar linux.
c. mengetahui cara instalasi linux dan aplikasinya.
d. mengetahui konfigurasi system.


3. Pembatasan Masalah

Agar penulisan ini tetap terfokus maka penulisan makalah ini dibatasi pada :

a. linux dan sejarahnya.
b. perintah dasar linux.
c. instalasi linux dan aplikasinya.

















BAB II
ISI

1. SEJARAH PERKEMBANGAN LINUX

Linux atau GNU/Linux adalah sistem operasi bebas yang sangat populer untuk computer, Istilah Linux atau GNU/Linux (GNU) juga digunakan sebagai rujukan kepada keseluruhan distro Linux (Linux distribution), yang didalamnya disertakan program-program lain pendukung sistem operasi.Contoh program tersebut adalah server web, bahasa pemrograman, basisdata, tampilan desktop (Desktop Environment) (seperti GNOME dan KDE), dan aplikasi perkantoran (office suite) seperti OpenOffice.org, KOffice, Abiword, Gnumeric. Distro Linux telah mengalami pertumbuhan yang pesat dari segi popularitas, sehingga lebih populer dari versi UNIX yang menggunakan sistem lisensi dan berbayar (proprietary) maupun versi UNIX bebas lain yang pada awalnya menandingi dominasi Microsoft Windows dalam beberapa sisi. Linux mendukung banyak perangkat keras komputer, dan telah digunakan di berbagai peralatan dari komputer pribadi, superkomputer dan sistem benam (embedded system), seperti telepon seluler (Ponsel) dan perekam video pribadi.

Pada awalnya, Linux dibuat,dikembangkan, dan digunakan oleh peminatnya saja. Kini Linux telah mendapat dukungan dari perusahaan besar seperti IBM dan Hewlett-Packard. Para pengamat teknologi informatika beranggapan kesuksesan ini dikarenakan Linux tidak bergantung kepada vendor (vendor independence),biaya operasional yang rendah, dan kompatibilitas yang tinggi dibandingkan versi UNIX proprietari, serta faktor keamanan dan kestabilannya dibandingkan dengan Microsoft Windows. Ciri-ciri ini juga menjadi bukti atas keunggulan model pengembangan perangkat lunak sumber terbuka(opensource software). Linux ini disebarkan secara luas dengan gratis di bawah lisensi GNU General Publi License (GPL), yang berarti source code Linux juga tersedia bagi publik. Linux dikembangkan oleh perorangan maupun kelompok yang bekerja secara sukarela. Para pengembang Linux memanfaatkan jaringan Internet untuk melakukan tukar-menukar kode, melaporkan bug, dan membenahi segala masalah yang ada. Setiap orang yang tertarik biasanya bergabung dalam pengembangan Linux ini. Pengembangan Linux pertama kali dilakukan oleh Linux Benedict Torvalds pada tahun 1991 di Universitas Helsinki, Finlandia. Kemudian Linux dikembangkan lagi dengan bantuan dari banyak programmer dan pakar UNIX di Internet. Linux ini bisa diperoleh dari beberapa distribusi yang umum digunakan, misalnya RedHat, Debian,Slackware, Caldera, Stampede Linux, TurboLinux dan lain-lain. Sejarah linux UNIX merupakan salah satu sistem operasi yang mengawali lahirnya Linux ke dunia ini. UNIX merupakan salah satu sistem operasi yang ada saat ini. Adapun UNIX merupakan salah satu sistem operasi populer selain keluarga raksasa Microsoft (mulai dari DOS, MS 9x sampai Vista), Novell,OS/2, BeOS, MacOS dan lainnya. Sejarah kemunculan UNIX dimulai pada tahun 1965 ketika para ahli dari Bell Labs, sebuah laboratorium milik AT&T, bekerja sama dengan MIT dan General Electric membuat sistem operasi bernama Multics(sudah pernah dengar belum?). Nah, sistem operasi Multics ini awalnya didesain dengan harapan akan menciptakan beberapa keunggulan, seperti multiuser,multiprosesor, dan multilevel filesystem. Namun pada tahun 1969, AT&T akhirnya menghentikan proyek pembuatan Multics karena sistem operasi Multics ini sudah tidak memenuhi tujuan semula. Dengan kata lain, proyek ini
mengalami hambatan karena dalam kenyataannya Multics banyak terdapat bugs dan sulit sekali dioperasikan Kenal Linus Torvalds kan? Linus dilahirkan di Helsinki, Finlandia pada
tanggal 28 Desember 1969. Orang yang disebut sebagai Bapak Linux(LINus UniX) ini, sudah mengenal bahasa pemrograman pada umurnya yang ke 10. Saat itu ia sering mengutak-atik komputer kakeknya, Commodore VIC-20.Karena hobinya dalam dunia komputing, 1988 Linus diterima di Univerity of Helsinki dan pada tahun 1990, Linus memulai kelas pemrograman C pertamanya. Pada tahun 1991, Linus tidak puas terhadap sistem operasi yang ada pada PC pertamanya (MS-DOS atau Disk Operation System), OS buatan Microsoft.

Linus lebih cenderung untuk menggunakan sistem operasi UNIX seperti yang dipakai komputer milik universitasnya. Akhirnya ia mengganti sistem operasi openSource Minix yang berbasiskan UNIX. Adapun Minix ini merupakan sistem UNIX kecil yang dikembangkan oleh Andrew S.Tanenbaum, seorang professor yang menggeluti penelitian masalah OS dari Vrije Universiteit, Belanda. Adapun Minix ini digunakan untuk keperluan pengajaran dan pendidikan Namun Linus merasa bahwa Minix masih memiliki banyak kelemahan.Dan mulai saat itu, di usianya yang ke-23, Linus mulai mengutak-atik kernel Minix. Dan ia mulai mengembangkan sistem yang kompatibel dengan IBM PC. Pada bulan Agustus 1991, lahirlah Linux 0.01 hasil oprekan Linus, dan pada tanggal 5 Oktober 1991, secara resmi Linus mengumumkan Linux 0.02 yang hanya dapat menjalankan BASH dan gcc compiler. Selain itu, Linus juga mempublikasikan sistem operasi buatannya tersebut lengkap dengan source codenya, yang ternyata disambut dengan sangat antusias oleh para programmer dan developer di seluruh dunia agar dapat di develop bersamasama Sampai saat ini, Linux dibangun oleh berbagai macam komunitas dan jangan heran apabila banyak sekali distro-distro Linux yang beredar. Mulai dari yang berbayar sampai yang gratis, dari untuk pemula sampai tingkat lanjut, dan biasanya dengan banyaknya distro Linux yang beredar akan membuat orang awam bingung untuk memilih distro. Bayangkan, ada beratus-ratus distro yang tercipta atau bahkan beribu-ribu. Namun perlahan tapi pasti, diantara distro-distro Linux ini ada yang menyamai (atau bahkan) melebihi kemampuan dari Sistem Operasi keluarga raksasa (Microsoft) dan dengan semakin mudahnya dan semakin lengkapnya dukungan Linux pada hardware, besar kemungkinan Linux akan menjadi alternatif (atau bahkan sistem operasi utama di dunia.

Secara teknis dan singkat dapat dikatakan, Linux adalah suatu sistem operasi yang bersifat multi user dan multitasking, yang dapat berjalan di berbagai platform, termasuk prosesor INTEL 386 dan yang lebih tinggi. Sistem operasi ini mengimplementasikan standard POSIX. Linux dapat berinteroperasi secara baik dengan sistem operasi yang lain, termasuk Apple, Microsoft dan Novell.
Nama Linux sendiri diturunkan dari pencipta awalnya, LINUS TORVALDS, yang sebetulnya mengacu pada kernel dari suatu sistem operasi, suatu penamaan yang biasa digunakan untuk mengacu ke pada suatu kumpulan lengkap software, yang bersama-sama dengan kernel menyusun suatu sistem operasi yang lengkap.
Lingkungan sistem operasi ini termasuk
  • Ratusan program termasuk, kompiler, interpreter, editor dan utilitas
  • Perangkat bantu yang mendukung konektifitas, Ethernet, SLIP dan PPP, dan interoperabilitas.
  • Produk perangkat lunak yang reliabel, termasuk versi pengembangan terakhir
  • Kelompok pengembang yang tersebar di seluruh dunia yang telah bekerja dan menjadikan Linux portabel ke suatu platform baru, begitu juga mendukung komunitas pengguna yang beragam kebutuhan dan lokasinya dan juga bertindak sebagai team pengembang sendiri.
Linux mempunyai perkembangan yang sangat cepat. Hal ini dapat dimungkinkan karena Linux dikembangkan oleh beragam kelompok orang. Keragaman ini termasuk tingkat pengetahuan, pengalaman serta geografis. Agar kelompok ini dapat berkomunikasi dengan cepat dan efisien, internet menjadi pilihan yang sangat tepat. Karena kernel Linux dikembangkan dengan usaha yang independent, banyak aplikasi yang tersedia, sebagai contoh, C Compiler menggunakan gcc dari Free Software Foundation GNU’s Project. Compiler ini banyak digunakan pada lingkungan Hewlett-Packard dan Sun. Sekarang ini, banyak aplikasi Linux yang dapat digunakan untuk keperluan kantor seperti untuk spreadsheet, word processor, database dan program editor grafis yang memiliki fungsi dan tampilan seperti Microsoft Office, yaitu Star Office. Selain itu, juga sudah tersedia versi Corel untuk Linux dan aplikasi seperti Matlab yang pada Linux dikenal sebagai Scilab. Linux bisa didapatkan dalam berbagai distribusi (sering disebut Distro). Distro adalah bundel dari kernel Linux, beserta sistem dasar linux, program instalasi, tools basic, dan program-program lain yang bermanfaat sesuai dengan tujuan pembuatan distro. Ada banyak sekali distro Linux, diantaranya :

  • RedHat, distribusi yang paling populer, minimal di Indonesia. RedHat merupakan distribusi pertama yang instalasi dan pengoperasiannya mudah.
  • Debian, distribusi yang mengutamakan kestabilan dan kehandalan, meskipun mengorbankan aspek kemudahan dan kemutakhiran program. Debian menggunakan .deb dalam paket instalasi programnya.
  • Slackware, merupakan distribusi yang pernah merajai di dunia Linux. Hampir semua dokumentasi Linux disusun berdasarkan Slackware. Dua hal penting dari Slackware adalah bahwa semua isinya (kernel, library ataupun aplikasinya) adalah yang sudah teruji. Sehingga mungkin agak tua tapi yang pasti stabil. Yang kedua karena dia menganjurkan untuk menginstall dari source sehingga setiap program yang kita install teroptimasi dengan sistem kita. Ini alasannya dia tidak mau untuk menggunakan binary RPM dan sampai Slackware 4.0, ia tetap menggunakan libc5 bukan glibc2 seperti yang lain.
  • Suse, distribusi yang sangat terkenal dengan YaST (Yet another Setup Tools) untuk mengkonfigurasi sistem. SuSE merupakan distribusi pertama dimana instalasinya dapat menggunakan bahasa Indonesia.
  • Mandrake, merupakan varian distro RedHat yang dioptimasi untuk pentium. Kalau komputer kita menggunakan pentium ke atas, umumnya Linux bisa jalan lebih cepat dengan Mandrake.
  • WinLinux, distro yang dirancang untuk diinstall di atas partisi DOS (WIndows). Jadi untuk menjalankannya bisa di-klik dari Windows. WinLinux dibuat seakan-akan merupakan suatu program aplikasi under Windows. Dan masih banyak distro-distro lainnya yang telah tersedia maupun yang akan muncul.

2. KELEBIHAN DAN KEKURANGAN LINUX
2.1.Kelebihan linux

1. Linux merupakan sistem operasi bebas dan terbuka. Sehingga dapat dikatakan, tidak terdapat biaya lisensi untuk membeli atau menggunakan Linux.

2. Linux mudah digunakan. Dulu, Linux dikatakan merupakan sistem operasi yang sulit dan hanya dikhususkan untuk para hacker. Namun, kini, pandangan ini salah besar. Linux mudah digunakan dan dapat dikatakan hampir semudah menggunakan Windows.

3. Hampir semua aplikasi yang terdapat di Windows, telah terdapat alternatifnya di Linux. Kita dapat mengakses situs web Open Sourceas Alternative untuk memperoleh informasi yang cukup berguna dan cukup lengkap tentang alternatif aplikasi Windows di Linux.

4. Keamanan yang lebih unggul daripada Windows. Dapat dikatakan,hampir semua pengguna Windows pasti pernah terkena virus,spyware, trojan, adware, dsb. Hal ini, hampir tidak terjadi pada Linux.Di mana, Linux sejak awal didesain multi-user, yang mana bila virus menjangkiti user tertentu, akan sangat sangat sangat sulit menjangkiti dan menyebar ke user yang lain. Pada Windows, hal ini tidaklah terjadi. Sehingga bila dilihat dari sisi maintenance / perawatan data maupun perangkat keras-pun akan lebih efisien. Artikel yang menunjang argumen ini:
a). Linux dan Virus.
b). Melindungi Windows dari serangan virus dengan menggunakan Linux.

5. Linux relatif stabil. Komputer yang dijalankan di atas sistem operasi UNIX sangat dikenal stabil berjalan tanpa henti. Linux, yang merupakan varian dari UNIX, juga mewarisi kestabilan ini. Jarang ditemui, komputer yang tiba-tiba hang dan harus menekan tombol Ctrl-Alt-Del atau Restart untuk mengakhiri kejadian tersebut. Sehingga, tidaklah mengherankan bila Linux mempunyai pangsa pasar server dunia yang cukup besar. Dari hasil riset IDC, pangsa pasar server dunia yang menggunakan Linux pada tahun 2008 akan mencapai 25,7 % (dapat dibaca di eweek.com).

6. Linux mempunyai kompatibilitas ke belakang yang lebih baik (better backward-compatibilty). Perangkat keras (hardware) yang telah berusia lama, masih sangat berguna dan dapat dijalankan dengan baik di atas Linux. Komputer-komputer yang lama ini tidak perlu dibuang dan masih dapat digunakan untuk keperluan tertentu dengan menggunakan Linux (sebagai penunjang informasi dapat membaca artikel “Don’t Throw That Old PC Away–Give It New Life with Linux“). Selain itu, tidak pernah ditemui dokumen-dokumen yang lebih baru tidak dapat dibaca pada Linux versi yang lebih lama. Pada Windows,kita seakan dituntut untuk terus mengikuti perkembangan perangkat keras. Sebagai contoh, beberapa bulan lalu, telah dirilis Windows Vista. Beberapa dokumen yang dibuat dalam Windows Vista tidak dapat dibuka dalam Windows XP. Sehingga, mau tidak mau, kita harus beralih ke Windows Vista, dan itu berarti meng-upgrade atau membeli perangkat keras (hardware) baru yang lebih bagus (perangkat keras minimum Windows Vista dapat dilihat Microsoft.com). Atau, bisa jadi ada aplikasi-aplikasi yang dibuat beberapa tahun yang lalu tidak dapat dibuka lagi di Windows Vista, karena sudah tidak didukung lagi oleh Microsoft.

2.2. Kekurangan Linux

1. Banyak pengguna yang belum terbiasa dengan Linux dan masih ‘Windows minded’. Hal ini dapat diatasi dengan pelatihan-pelatihan atau edukasi kepada pengguna agar mulai terbiasa dengan Linux.

2. Dukungan perangkat keras dari vendor-vendor tertentu yang tidak terlalu baik pada Linux. Untuk mencari daftar perangkat keras yang didukung pada Linux, kita dapat melihatnya di Linux-Drivers.org atau LinuxHardware.org.

3. Proses instalasi software / aplikasi yang tidak semudah di Windows. Instalasi software di Linux, akan menjadi lebih mudah bila terkoneksi ke internet atau bila mempunyai CD / DVD repository-nya. Bila tidak,maka kita harus men-download satu per satu package yang dibutuhkan beserta dependencies-nya.

4. Bagi administrator sistem yang belum terbiasa dengan Unix-like (seperti Linux), maka mau tidak mau harus mempelajari hal ini.Sehingga syarat untuk menjadi administrator adalah manusia yang suka belajar hal-hal baru dan terus-menerus belajar.

3. Perbandingan Linux terhadap sistem operasi lainnya

Linux disusun berdasarkan standard sistem operasi POSIX, yang sebenarnya diturunkan berdasarkan fungsi kerja UNIX. UNIX kompatibel dengan Linux pada level system call, ini berarti sebagian besar program yang ditulis untuk UNIX atau Linux dapat direkompilasi dan dijalankan pada sistem lain dengan perubahan yang minimal. Secara umum dapat dikatakan Linux berjalan lebih cepat dibanding Unix lain pada hardware yang sama.

Berikut ini beberapa hal yang dimiliki Linux dibandingkan terhadap sistem UNIX-like lainnya :
Linux kernel adalah monolitik, yaitu program besar dan kompleks yang dibangun atas komponen-komponen yang berbeda. Hampir semua sistem UNIX-like juga merupakan sistem monolitik.
Linux mampu me-load dan unload modul (bagian dari kernel code) secara dinamis sebagaimana dalam kernel SVR4.2. Sistem UNIX-like lainnya dikompilasi dan di-link secara statis.
Kernel threading. Kernel thread adalah execution context yang dapat dijadwalkan secara independen dan dapat diasosiasikan terhadap user program atau menjalankan beberapa fungsi kernel saja. Context switch antara kernel thread lebih murah biayanya daripada context switch antara proses biasa.
Dukungan aplikasi multithread yaitu program yang terdiri dari beberapa execution flow independen yang berbagi application data structure. Sebuah multithread application dapat terdiri atas beberapa lightweight process (LWP) yaitu proses yang berbagi alamat memori, page memori fisik, file yang terbuka, dan lain-lain. Varian UNIX komersil lain berdasar pada kernel thread, Linux menganggap lightweight thread sebagai execution context dasar dan
mengaturnya dengan system call clone().
Linux adalah kernel nonpreemptive sehingga tidak dapat meninggalkan execution flow ketika sedang berada pada priviledge mode. Hanya Solaris 2.x dan Mach 3.0 yang mengadopsi kernel preemptive.
Dukungan multiprosesor. Linux mempunyai dukungan untuk SMP (Symmetric Multiprocessing) yang berarti bahwa sistem tidak hanya dapat menggunakan beberapa prosesor tetapi juga tiap prosesor dapat digunakan untuk menjalankan task manapun tanpa diskriminasi.
Sistem file Linux tidak memiliki fitur yang sempurna. Namun demikian, porting sebuah sistem file lain ke Linux mudah untuk dilakukan dengan Virtual File System Technology.
STREAMS. Linux tidak memiliki analog terhadap terhadap subsistem STREAMS I/O sebagaimana terdapat pada SVR4 walaupun sudah menjadi interface umum pada kernel UNIX untuk menulis device driver, terminal driver, dan network protocol. Overview Kernel Linux dan Signaling Halaman 2 dari 22 Secara umum, Linux menawarkan beberapa hal di bawah ini dibandingkan dengan sistem UNIX-like komersil :
Linux gratis,Sistem UNIX dapat di-install tanpa biaya kecuali biaya untuk hardware.
Seluruh komponen Linux dapat disesuaikan (customizable) Karena di bawah GNU public license, source code kernel dapat dilihat dan diubah sesuai kebutuhan.
Linux dapat berjalan pada platform hardware low-end yang murah Server jaringan dapat dibangun pada sistem Intel 80386 lama dengan 4 MB RAM.
Linux memiliki fitur yang powerful Sistem Linux memiliki kecepatan tinggi karena menggunakan seluruh kemampuan hardware. Targer utama Linux adalah efisiensi.
Linux memiliki standar kualitas source code yang tinggi Sistem Linux stabil, memiliki tingkat kegagalan dan waktu maintenance yang rendah
Kernel Linux memiliki ukuran yang kecil dan padat. Sebuah kernel image, root filesystem, dan program sistem dasar dapat ditulis dalam sebuah disket floppy 1.44’.
Linux kompatibel dengan sistem operasi lainnya.Linux dapat me-mount filesystem MS-DOS, MS Windows, SVR4, OS/2, Mac OS, Solaris, Sun OS, NeXTSTEP, dan berbagai varian BSD. Linux juga mampu mengoperasikan berbagai layer jaringan seperti Ethernet, FDDI,HIPPI, IBM Token Ring, AT&T WaveLAN, dan lain sebagainya.
Linux memiliki dukungan penuh Lebih mudah untuk mendapatkan patch dan update untuk sistem Linux daripada sistem operasi lainnya.

4. Konsep Dasar Sistem Operasi

Sebuah sistem komputer memiliki kumpulan program dasar yang disebut sistem operasi. Program-program yang paling penting dalam sistem operasi tersebut disebut kernel. Kernel diload ke dalam RAM ketika system boot dan mengandung prosedur kritis yang dibutuhkan sistem untuk beroperasi. Sebuah sistem operasi harus memenuhi dua tujuan dasar
Yaitu ; :

1.Berinteraksi dengan komponen hardware yang melayani elemen-elemen yang dapat diprogram yang terdapat pada platform hardware.
2.Menyediakan lingkungan eksekusi kepada aplikasi yang berjalan pada komputer
.
Sistem operasi UNIX-like menyembunyikan semua detail low-level yang berkaitan Dengan organisasi fisik komputer dari aplikasi yang dijalankan pemakai. Sebuah program yang ingin menggunakan sumber daya hardware harus membuat request kepada sistem operasi. Kernel memeriksa request dan berinteraksi dengan hardware atas nama aplikasi pemakai jika request tersebut dipenuhi. Mekanisme tersebut bergantung pada ketersediaan fitur hardware yang dapat membedakan mode eksekusi untuk CPU yaitu nonpriviledge mode (User Mode) untuk program user dan priviledge mode (Kernel Mode) untuk kernel.

4.1. Sistem Multiuser

Sistem multiuser adalah komputer yang dapat mengeksekusi beberapa aplikasi yang dimiliki dua user atau lebih secara konkuren dan independen. Konkuren berarti aplikasi dapat aktif secara bersamaan dan saling bersaing untuk menggunakan sumber daya seperti CPU, memori, hard disk, dan lain sebagainya. Independen maksudnya adalah setiap aplikasi dapat menjalankan task-nya tanpa harus mempedulikan apa yang sedang dijalankan oleh pemakai lainnya.

Sistem operasi yang multiuser harus memiliki beberapa fitur :

Mekanisme authentication untuk verifikasi identitas pemakai
Mekanisme proteksi terhadap program user yang mengandung bug sehingga menghindari
kemungkinan mem-block aplikasi lain dalam sistem.
Mekanisme proteksi terhadap program user yang dapat mengganggu atau memata-matai
aktivitas user lain.
Mekanisme penghitungan yang membatasi jumlah sumberdaya yang dapat dialokasi untuk
masing-masing pemakai.

4.2. User dan Group

Dalam sebuah sistem multiuser, setiap user memiliki ruang privat dalam sistem, Umum nya, ia memiliki kuota dari harddisk untuk menyimpan file. Sistem operasi harus dapat memastikan bahwa ruang privat seorang user hanya dapat diakses oleh user yang bersangkutan. Sistem harus memastikan bahwa tidak ada user yang dapat mengeksploitasi aplikasi sistem untuk melanggar ruang privat user lain. Mekanisme untuk menjamin hal tersebut adalah dengan penggunaan User ID dan password yang harus dimasukkan user ketika ia login. Untuk dapat berbagi file secara selektif antar-user, setiap user adalah anggota dari sebuah group. Setiap file diasosiasikan untuk setiap groups. Setiap group memiliki hak akses yang berbeda untuk sebuah file. Sistem operasi UNIX-like memiliki user spesial yang disebut root,superuser, atau supervisor. Administrator sistem harus login sebagai root untuk dapat mengatur user account, melakukan tugas maintenance, dan lain sebagainya. Root user dapat mengakses setiap file dalam sistem dan dapat mengambil alih program user lainnya.

4.3. Proses

Sebuah proses dapat didefinisikan sebagai instans eksekusi program. Sistem operasi
modern memungkinkan proses memiliki beberapa flow eksekusi, yaitu beberapa sekuens instruksi yang dieksekusi pada ruang alamat yang sama. Sistem multiuser harus dapat menciptakan lingkungan tempat beberapa proses dapat aktif secara konkuren dan saling bersaing untuk sumberdaya sistem. Sistem yang memungkinkan proses aktif konkuren disebut sebagai multiprogramming atau multiprocessing. Beberapa proses dapat mengeksekusi program yang sama secara konkuren sedangkan proses yang sama dapat mengeksekusi beberapa program secara sekuensial. Komponen sistem operasi yang menentukan proses mana yang dapat dilanjutkan disebut scheduler. Beberapa sistem operasi hanya memungkinkan proses nonpreemptive yang berarti scheduler hanya diaktifkan ketika proses secara sukarela melepaskan aksesnya terhadap CPU. Namun proses untuk sistem multiuser harus preemptive yaitu sistem operasi harus mencatat jangka waktu sebuah proses
mengakses CPU dan secara periodik mengaktifkan scheduler.




4.4. Arsitektur Kernel

Sebagaimana disebutkan sebelumnya, kernel UNIX adalah monolitik : setiap layer
kernel terintegrasi dalam seluruh kernel program dan berjalan pada Kernel Mode atas proses yang sedang berlangsung. Berbeda dengan monolitik, sistem operasi mikrokernel membutuhkan himpunan kecil dari fungsi-fungsi kernel yang umumnya terdiri dari primiti sinkronisasi, scheduler sederhana, dan mekanisme komunikasi antarproses. Beberapa proses sistem yang berjalan di atas microkernel mengimplementasikan fungsi layer sistem operasi lainnya seperti memory allocator,device driver, system call handler, dan lain sebagainya.
Sistem operasi mikrokernel umumnya lebih lambat daripada sistem operasi monolitik
karena message passing yang eksplisit antara layer yang berbeda dari sistem operasi. Namun demikian, sistem operasi mikrokernel memiliki kelebihan yaitu memaksa system developer untuk melakukan pengembangan dengan pendekatan modular. Hal ini karena setiap layer sistem operasi pada dasarnya adalah program independen yang harus berinterkasi dengan layer lainnya melalui antarmuka yang terdefinisi dengan baik. Dengan demikian, sistem operasi mikrokernel akan mudah untuk dipindahkan ke arsitektur yang berbeda karena komponen yang hardware dependent terenkapsulasi dalam kode mikrokernel. Modul adalah sebuah file objek yang kodenya dapat di-link ke (dan di-unlink dari) kernel pada saat run-time. Kode objek biasanya terdiri atas fungsi yang mengimplementasi filesystem, device driver, atau fitur layer atas kernel. Modul tidak berjalan sebagai proses spesifik sebagaiaman layer eksternal sistem operasi melainkan dieksekusi di Kernel Mode terhadap proses yang sedang berjalan sebagaimana fungsi kernel yang di-link secara statis.

Bebereapa keuntungan dari penggunaan modul adalah :
Pendekatan modular
Karena tiap modul dapat di-link dan di-unlink saat runtime, programer sistem harus medefinisikan dengan baik antarmuka software untuk mengakses struktur data yang ditangani modul. Hal ini memudahkan dalam pengembangan modul baru.

Independensi terhadap platform
Walaupun tergantung pada fitur hardware yang spesifik, sebuah modul tidak bergantung pada paltform hardware tertentu. Sebagai contoh, modul disk drive untuk IBM compatible PC juga dapat bekerja dengan baik pada Compaq Alpha.

Penggunaan memori utama yang efisien
Sebuah modul dapat di-link pada kernel yang sedang berjalan ketika fungsinya sedang diperlukan dan di-unlink kembali ketika tidak lagi digunakan.

Tidak ada kemunduran kinerja
Setelah di-link, kode objek modul setara dengan kode objek yang di-link secara statis sehingga tidak ada message passing yang diperlukan ketika fungsi sebuah modul dijalankan.

5. Overview Kernel Linux

Kernel Linux menyediakan lingkungan eksekusi tempat aplikasi dapat berjalan. Oleh karenanya kernel harus menyediakan layanan dan antarmuka yang bersesuaian. Aplikasi menggunakan antarmuka tersebut dan tidak berinteraksi secara langsung dengan sumberdaya hardware.

5.1. Model Proses/Kernel

Kernel UNIX standar menggunakan dua macam mode CPU yaitu Kernel Mode dan
User Mode. Ketika sebuah program dieksekusi di User Mode, program tersebut tidak dapat mengakses struktur data kernel maupun program kernel. Dalam Kernel Mode hal tersebut dapat dilakukan. Sebuah program lebih banyak berlangsung pada di User Mode dan berpindah ke Kernel Mode ketika meminta layanan kernel. Bila permintaan telah dipenuhi maka kernel akan mengembalikan ke User Mode. Proses adalah entitas dinamik yang memiliki waktu hidup yang terbatas pada sistem.Task untuk membuat, menghilangkan, dan sinkronisasi antarproses didelegasikan ke kumpulan rutin pada kernel. Kernel berfungsi sebagai process manager. Model proses/kernel berasumsi bahwa proses yang membutuhkan layanan kernel menggunakan konstruksi pemrograman spesifik yang disebut system call. Setiap system call menyatakan parameter yang mengidentifikasi request proses dan mengeksekusi instuksi CPU untuk beralih dari User Mode ke Kernel Mode.

Di samping proses user, sistem UNIX mengandung proses yang disebut kernel thread
dengan karakteristik :

Berjalan di Kernel Mode pada ruang alamat kernel
Tidak berinteraksi dengan user sehingga tidak membutuhkan terminal device
Dibuat ketika system startup dan tetap ada hingga system shut down

Gambar di bawah ini menunjukkan bagaimana transisi antara User Mode dan Kernel
Mode. Proses 1 pada User Mode mengeluarkan system call sehingga proses beralih ke Kernel Mode dan system call terlayani. Proses 1 kemudian melanjutkan eksekusi di User Mode hingga interrupt timer terjadi dan dan scheduler diaktivasi di dalam Kernel Mode. Process switch terjadi dan proses 2 memulai eksekusinya di User Mode hingga sebuah device hardware melakukan interrupt . Akibatnya, proses 2 beralih ke Kernel Mode dan melayani interrupt yang bersangkutan.

Gambar 2. Transisi antara Kernel dan User Mode

Kernel Linux tidak hanya menangani system call. Rutin kernel dapat diaktivasi melalui beberapa cara :

Sebuah proses menjalankan system call
CPU yang sedang mengeksekusi program mengeluarkan signal ecxeption karena kondisi tidak normal seperti instruksi invalid.
Peripheral device mengeluarkan interrupt signal ke CPU untuk memberitahukan adanya kejadian seperti attention request, perubahan status, penyelesaian operasi I/O. Tiap interrupt signal ditangani oleh program kernel yang disebut interrupt handler. Karena peripheral device berjalan asinkron dengan CPU, interrupt tidak dapat diprediksi.
Sebuah kernel thread dieksekusi. Karena kernel thread berjalan pada Kernel Mode maka program yang bersangkutan sebagai bagian dari kernel walaupun ia sebenernya terenkapsulasi dalam proses.








5.2. Implementasi Proses

Agar kernel dapat mengatur proses-proses yang berbeda, setiap proses direpresentasikan dengan process descriptor yang mengandung informasi mengenai current state dari proses. Ketika kernel menghentikan eksekusi dari sebuah proses, kernel menyimpan isi dari register proses ke dalam process descriptor yang terdiri atas :
Program Counter (PC) dan Stack Pointer (SP)
General purpose register
Floating point register
Processor control register (Processor Status Word) berisi informasi state CPU
Memory management register yang berfungsi menelusuri RAM yang diakses oleh proses.

Ketika kernel memutuskan untuk melanjutkan eksekusi proses, kernel menggunakan
process descriptor yang sesuai untuk di-load ke register CPU. Karena isi dari Program Counter menunjuk ke instruksi yang mengikuti instruksi terakhir yang dieksekusi maka proses yang bersangkutan melanjutkan eksekusi dari tempat terakhir ia berhenti.

5.3. Kernel Reentrant

Semua kernel UNIX adalah reentrant yang berarti beberapa proses dapat berlangsung dalam Kernel Mode pada waktu yang sama. Sebuah sistem uniprosesor hanya memungkinkan satu proses yang dapat berlangsung dalam suatu waktu tetapi proses-proses tersebut dapat di-block dalam Kernel Mode untuk menunggu CPU atau penyelesaian beberapa operasi I/O. Sebagai contoh, setelah mengeluarkan perintah read kepada disk, kernel akan membiarkan disk controller untuk menangani perintah tersebut dan kernel meneruskan mengeksekusi proses lainnya. Sebuah interrupt akan menotifikasi kernel ketika device telah menyelesaikan perintah read sehingga proses sebelumnya dapat kembali dilanjutkan. Ketika suatu interrupt hardware berlangsung, reentrant kernel dapat menghentikan sementara proses yang sedang berjalan walaupun ketika proses tersebut dalam Kernel Mode. Kemampuan ini sangat penting karena dapat meningkatkan throughput dari device controller yang mengeluarkan interrupt. Ketika suatu device mengeluarkan interrupt, device tersebut menunggu jawaban dari CPU. Jika kernel dapat memberi jawaban dalam waktu singkat, device controller dapat melanjutkan
task lain sementara CPU menangani interrupt tersebut.Sebuah kernel control path adalah sekuens instruksi yang dieksekusi kernel untuk menangani system call, exception, atau interrupt. Dalam kasus yang paling sederhana, CPU mengeksekusi sebuah kernel control path dari awal hingga akhir.Namun demikian, CPU meninggalkan kernel control path ketika salah satu event berikut terjadi :

Sebuah proses yang sedang berlangsung di User Mode mengeluarkan system call dan kernel control path yang bersangkutan memverifikasi bahwa permintaan tersebut tidak dapat langsung dipenuhi. Kernel kemudian menjalankan scheduler untuk memilih proses berikutnya untuk dijalankan. Akibatnya sebuah process switch terjadi. Kernel control path pertama dibiarkan tidak selesai dan CPU melanjutkan eksekusi kernel contol path lainnya. Dalam hal ini kedua kernel control path dieksekusi untuk dua proses yang berbeda.

CPU mendeteksi exception ketika dalam kernel control path (misalnya request untuk mengakses page yang tidak terdapat di RAM). Control path pertama dihentikan dan CPU menjalankan prosedur yang sesuai. Untuk contoh exception di atas, prosedur dapat berupa alokasi page baru untuk proses dan read isinya dari disk. Ketika prosedur berakhir, control path pertama dapat dilanjutkan. Dalam hal ini kedua control path dieksekusi untuk proses yang sama.

Sebuah interrupt hardware terjadi ketika CPU sedang berjalan dalam kernel control path dengan interrupt enable. Kernel control path pertama dibiarkan tidak selesai dan CPU mulai memproses kernel conrol path lainnya untuk menangani interrupt. Kernel control path pertama dilanjutkan ketika interrupt handler diterminasi. Dalam hal ini kedua kernel control path berjalan dalam execution context proses yang sama. Walaupun demikian, interrupt handler tidak perlu beroperasi untuk proses tersebut.

Gambar di bawah menunjukkan beberapa contoh noninterleaved dan interleaved
kernel control path. Tiga status CPU yang menjadi perhatian :

Menjalankan proses dalam User Mode (User)
Menjalankan exception atau system call handler (Excp)
Menjalankan interrupt handler (Intr)


Gambar 3. Interleaving Kernel Control Path


5.4. Ruang Alamat Proses

Setiap proses berjalan di dalam ruang alamat privat masing-masing. Sebuah proses
yang berjalan dalam User Mode merujuk pada private stack, data, dan code area. Ketika berjalan dalam Kernel Mode, proses memiliki alamat pada data kernel, code area, dan menggunakan stack yang lain. Terdapat saat-saat tertentu ketika bagian tertentu dari ruang alamat privat dapat dibagi kepada beberapa proses. Dalam beberapa hal pembagian ini diminta secara eksplisit oleh proses. Pada hal lain pembagian dilakukan secara otomatis oleh kernel untuk mengurangi penggunaan memori.

5.5. Sinkronisasi dan Critical Region

Implementasi reentrant kernel memerlukan penggunaan sinkronisasi, yaitu jika sebuah kernel control path dihentikan sementara ketika mengakses suatu struktur data kernel, tidak ada kernel control path lainnya yang diperbolehkan untuk mengakses struktur data yang sama kecuali jika telah di-reset pada state yang konsisten. Jika tidak demikian, interaksi dari kedua control path dapat merusak informasi yang telah tersimpan. Ketika hasil dari suatu komputasi tergantung pada penjadwalan dua atau lebih proses maka code-nya tidak benar. Keadaan ini disebut sebagai race condition.
Pada umumnya akses yang aman terhadap variabel global dapat dilakukan dengan menggunakan operasi atomik. Walaupun demikian, kernel mempunyai struktur data yang tidak dapat diakses dengan operasi tunggal. Suatu bagian code yang harus diselesaikan oleh tiap proses yang memulainya sebelum proses lain dapat memasukinya disebut sebagai critical region.

Hal ini tidak hanya terjadi di antara kernel control path tetapi juga pada prosesproses
yang membagi data bersama. Beberapa teknik sinkronisasi telah digunakan
yaitu :

5.5.1. Nonpreemptive kernel

Solusi sederhana paling drastis untuk masalah sinkronisasi adalah penggunaan nonpreemptive kernel. Ketika sebuah proses dieksekusi di Kernel Mode, proses tersebut tidak dapat dihentikan sementara atau digantikan oleh proses lain. Dengan demikian, pada sistem uniprosesor semua struktur data yang tidak di-update interrupt atau exception handler aman untuk diakses oleh kernel. Sebuah proses dalam Kernel Mode dapat melepaskan CPU secara sukarela tetapi dalam hal ini proses tersebut harus memastikan bahwa semua struktur data dalam keadaan yang konsisten. Selain itu, ketika proses tersebut melanjutkan eksekusi, proses harus memeriksa ulang nilai dari struktur data yang terakhir diakses yang mungkin berubah. Nonpreemptive tidak efisien dalam sistem multiprosesor karena dua kernel control path yang berjalan pada CPU yang berbeda dapat mengakses struktur data yang sama secara konkuren.
5.5.2. Interrupt disabling

Mekanisme sinkronisasi lainnya untuk sistem uniprosesor adalah dengan men-disable semua interrupt hardware sebelum memasuki critical region dan meng-enable mereka kembali tepat setelah keluar dari critical region. Mekanisme ini, walaupun sederhana, tidak optimal. Jika critical region-nya besar, interrupt tetap disable untuk jangka waktu yang lama sehingga menghentikan semua aktivitas hardware. Selain itu, dalam sistem multiprosesor mekanisme ini tidak bekerja sama sekali. Tidak ada cara untuk memastikan bahwa tidak ada CPU lain yang dapat mengakses struktur data yang sama dalam critical region yang diproteksi tersebut.

5.5.3. Semaphore

Semaphore adalah mekanisme efektif yang digunakan baik pada sistem uniprosesor maupun sistem multiprosesor. Semaphore pada dasarnya adalah counter yang diasosiasikan dengan struktur data. Semaphore diperiksa oleh semua kernel thread sebelum kernel thread tersebut mencoba untuk mengakses struktur data. Setiap semaphore dapat dipandang sebagai objek yang terdiri atas
Variable integer
List proses yang sedang menunggu (waiting)
Dua metode atomik : down() atau up()

Metode down() mengurangi nilai dari semaphore. Jika nilai yang baru kurang dari 0, metode ini menambahkan proses yang sedang berjalan ke list semaphore dan memblock proses tersebut. Metode up() menambah nilai dari semaphore dan jika nilai barunya sama dengan atau lebih dari 0, mengaktivasi kembali proses dalam semaphore list. Tiap stuktur data yang diproteksi memiliki semaphorenya masing-masing yang diinisiasi dari 1. Ketika sebuah kernel control path akan mengakses struktrur data tersebut, control path mengeksekusi metode down() pada semaphore bersangkutan. Jika nilai baru semaphore tidak negatif, akses ke data dapat dilakukan. Sebaliknya jika nilai baru negatif, proses yang mengeksekusi kernel control path ditambahkan ke dalam list semaphore dan di-block. Ketika proses lain mengeksekusi metode up() pada semaphore tersebut, salah satu dari proses dalam list diperbolehkan untuk dilanjutkan.

5.5.4. Spin lock

Dalam sistem multiprosesor, semaphore tidak selalu menjadi solusi terbaik untuk masalah sinkronisasi. Beberapa struktur data kernel harus dirproteksi dari akses konkuren oleh kernel control path yang berjalan pada CPU yang berbeda. Dalam hal ini, jika waktu yang dibutuhkan untuk update struktur data hanya sebentar, semaphore menjadi tidak efisien. Untuk memeriksa sebuah semaphore, kernel harus memasukkan proses ke dalam list semaphore dan menghentikannya sementara. Karena kedua operasi tersebut biayanya tinggi, membutuhkan waktu yang lama untuk menyelesaikannya, kernel control path lainnya mungkin telah melepaskan semaphore. Untuk kasus ini, sistem multiprosesor menggunakan teknik spin lock. Spin lock hampir sama dengan semaphore tetapi tidak menggunakan list proses. Ketika suatu proses menemukan lock (kunci) ditutup oleh proses lain, proses tersebut mengeksekusi loop instruksi kecil hingga lock terbuka. Akan tetapi spin lock tidak berguna dalam lingkungan uniprosesor. Ketika sebuah kernel control path mencoba mengakses sebuah struktur data yang terkunci, control path memulai loop infinit. Oleh karenanya, kernel control path yang sedang mengupdate struktur data yang diproteksi tidak memiliki kesempatan untuk melanjutkan eksekusi dan membuka lock. Akhirnya sistem mengalami hang.

5.5.5. Menghindari deadlock

Proses atau kernel control path yang bersinkronisasi dengan control path lainnya dapat dengan mudah mengalami keadaaan deadlock. Deadlock terjadi ketika suatu proses p1 mengakses struktur data a dan proses p2 mengakses struktur data b, tetapi p1 menunggu b dan p2 menunggu a. Sebuah deadlock mengakibatkan berhenti secara keseluruhannya proses dan kernel conrol path yang terpengaruh. Deadlock menjadi masalah ketika jumlah tipe semaphore kernel banyak. Dalam hal ini, akan menjadi sulit untuk menentukan tidak ada deadlock yang akan terjadi untuk semua cara interleave bagi kernel control path Beberapa sistem operasi termasuk Linux menghindari masalah ini dengan menggunakan jumlah tipe semaphore yang terbatas dan melakukan request ke semaphore secara berurutan.

5.6. Signal dan Komunikasi Antarproses

Signal UNIX memberikan mekanisme untuk memberitahu system event kepada proses. Tiap event memiliki nomer signal-nya masing-masing yang biasanya dirujuk melalui konstanta simbolik seperti SIGTERM. Terdapat dua macam system event :

Asynchronous notification
Sebagai contoh, user dapat mengirimkan signal SIGTERM ke proses dengan menggunakan interupt key (CTRL+C) pada terminal.

Synchronous error dan exception
Sebagai contoh, kernel mengirimkan signal SIGSEGV ke proses ketika proses itu mengakses lokasi memori dengan alamat yang illegal. Standar POSIX mendefinisikan 20 macam signal, dua di antaranya user-defined dan dapat digunakan sebagai mekanisme primitif untuk komunikasi dan sinkronisasi antara proses dalam User Mode. Secara umum, sebuah proses dapat merespon suatu signal dengan dua cara yaitu :

Mengabaikan signal
Mengeksekusi secara asinkron suatu prosedur spesifik (signal handler)

Jika suatu proses tidak melakukan salah satu dari dua alternatif di atas, kernel akan melakukan default action yang bergantung pada nomor signal. Lima default action yang mungkin dilakukan adalah :
Melakukan terminasi proses
Menulis execution context dan isi dari ruang alamat dalam sebuah file (core dump)
dan melakukan terminasi proses
Mengabaikan signal
Menghentikan proses sementara (suspend)
Melanjutkan eksekusi proses, jika dihentikan sebelumnya

Penanganan signal kernel lebih rumit karena semantik POSIX memperbolehkan proses untuk mem-block signal untuk sementara waktu. Selain itu, beberapa signal seperti SIGKILL tidak dapat langsung ditangani oleh proses dan tidak dapat diabaikan (ignore). Kernel mengimplementasi konstruksi ini sebagai IPC resource yaitu sebuah proses yang mengambil sumber daya dengan menjalankan system call shmget(), semget(), atau msgget(). Seperti file, IPC resource harus didealokasi secara eksplisit oleh proses yang membuatnya, proses yang memilikinya, atau proses superuser. Semaphore hampir sama dengan semaphore yang dijelaskan pada bagian sebelumnya, kecuali bahwa semaphore di sini digunakan untuk proses dalam User Mode. Message queue memungkinkan proses untuk bertukar pesan dengan menggunakan system call msgsnd() dan msgget() yang secara berurutan memasukkan pesan ke dalam message queue spesifik dan mengambil pesan darinya. Shared memory menyediakan cara tercepat bagi proses untuk bertukar dan berbagi data. Sebuah proses mulai dengan mengeluarkan system call shmget() untuk membuat shared memory baru. Setelah memiliki identfier IPC resource, proses tersebut kemudian menjalankan system call shmat() yang mengembalikan alamat awal dari region baru di dalam ruang alamat proses. Ketika proses hendak melepas shared memory dari ruang alamatnya, proses tersebut menjalankan system call shmdt(). Implementasi shared memory tergantung pada bagaimana kernel mengimplementasi ruang alamat proses.

5.7. Manajemen Proses

UNIX membuat perbedaan yang jelas antara proses dan program yang mengeksekusinya. System call fork() dan exit () digunakan untuk membuat proses baru dan terminasi proses, sedangkan system call exec() dijalankan untuk me-load program baru. Setelah system call tersebut dieksekusi, proses melanjutkan eksekusi dengan ruang alamat baru yang berisi program yang telah di-load. Proses yang menjalankan fork() adalah parent sedangkan proses baru disebut child. Parent dan children dapat saling menemukan karena struktur data yang mendeskripsikan kedua proses mengandung pointer ke parent tepat di atasnya dan pointer ke semua childrennya. System call exit() melakukan terminasi proses. Kernel menangani system call ini dengan melepas resource yang dimiliki proses dan mengirim signal SIGCHLD ke proses parent.

5.7.1. Proses zombie

System call wait() membiarkan proses untuk menunggu terminasi proses anaknya dan mengembalikan Process ID (PID) dari proses anak yang diterminasi. Saat mengeksekusi system call wait() tersebut, kernel memeriksa apakah proses anak telah diterminasi. Keadaaan proses khusus yang disebut zombie process merepresentasi proses yang diterminasi tersebut. Sebuah proses tetap berada dalam keadaan tersebut hingga proses induk memanggil system call wait() System call handler kemudian mengambil beberapa data mengenai penggunaan resource dari process descriptor field kemudian melepaskan data tersebut ketika berhasil dikumpulkan. Jika tidak terdapat proses anak yang telah diterminasi ketika wait() dijalankan, kernel menempatkan proses dalam kondisi wait() hingga sebuah proses anak diterminasi.

Banyak pula kernel yang menimplementasikan system call waitpid() yang membuat sebuah proses menunggu proses anak tertentu. Jika sebuah proses induk diterminasi tanpa mengeluarkan system call wait(), informasi proses anak akan menggunakan slot memori yang seharusnya dapat digunakan untuk proses lain yang sedang berjalan. Solusi dari masalah ini adalah adanya proses sistem khusus yaitu init yang dibuat ketika inisialisasi sistem. Ketika sebuah proses diterminasi, kernel mengubah semua pointer proses anak yang masih berjalan sehingga menjadikan mereka anak dari proses init. Proses ini memonitor eksekusi dari semua anaknya dan mengeluarkan system call wait() secara rutin dengan tujuan terminasi seluruh proses zombie.

5.7.2. Process group dan login session

Sistem operasi UNIX modern menggunakan istilah process group untuk merepresentasikan abstraksi job. Sebagai contoh untuk mengeksekusi perintah $ ls | sort | more Sebuah shell yang mendukung process group (misalnya bash) membuat sebuah group baru untuk ls, sort, dan more. Dengan cara ini shell berfungsi untuk ketiga proses sebagaimana mereka merupakan sebuah entitas tunggal (job). Setiap process descriptor mengandung field process ID. Setiap process group dapat mempunyai group leader yaitu proses yang PID-nya sama dengan ID process group. Sebuah proses yang baru dinisialiasasi dengan dimasukkan ke dalam process group parentnya. Kernel UNIX modern juga menggunakan login session. Login session terdiri atas semua proses yang merupakan turunan dari proses yang telah berjalan pada terminal tertentu (biasanya proses command shell yang pertama kali dibuat untuk user). Semua proses yang terdapat dalam sebuah process group harus berada dalam login session yang sama Sebuah login session dapat memiliki beberapa process group yang aktif secara bersamaan. Salah satu dari process group tersebut selalu berada di foreground yang berarti memiliki akses ke terminal. Process group yang aktif lainnya berada di background. Ketika sebuah process group background berusaha untuk mengakses terminal, process group tersebut menerima signal SIGTTIN atau SIGTTOUT. Pada banyak command shell perintah internal bg dan fg dapat digunakan untuk meletakkan proses di background atau foreground.

5.8. Manajemen Memori

Manajemen memori adalah aktivitas yang paling kompleks dalam kernel UNIX.

5.8.1. Virtual memory
Virtual memori berperilaku sebagai layer logik antara request memori aplikasi dan Memory Management Unit (MMU). Virtual memory memiliki tujuan dan kelebihan :
Beberapa proses dapat dieksekusi secara konkuren
Aplikasi dapat tetap berjalan walaupun kebutuhan memori lebih besar
daripada memori fisik yang tersedia
Proses dapat menjalankan program yang hanya sebagian dari kodenya yang
di-load ke memori
Setiap proses diperbolehkan mengakses subset dari memori fisik yang
tersedia
Proses yang berbeda dapat saling berbagi suatu image memori dari library
atau program
Program relocatable, yaitu dapat diletakkan di mana pun pada memori fisik
Programmer dapat menulis kode yang machine-independent karena mereka
tidak perlu berurusan dengan organisasi memori fisik

Komponen utama dari subsistem virtual memory adalah ruang alamat virtual. Referensi memori yang digunakan oleh sebuah proses berbeda dari alamat memori fisik. Ketika sebuah proses menggunakan alamat virtual, kernel dan MMU bekerja sama untuk menentukan lokasi fisik yang sebenarnya.

5.8.2. Penggunaan random access memory

Semua sistem operasi UNIX membedakan dua bagian dari RAM. Beberapa megabyte
digunakan untuk menyimpan image kernel (kode kernel dan struktur data kernel statis). Sisanya ditangani oleh sistem virtual memory dan digunakan dengan tiga kemungkinan :

Memenuhi request kernel atas buffer, descriptor, dan struktur data kernel dinamis
lainnya
Memenuhi request proses atas area memori generik dan untuk file mapping.
Meningkatkan kinerja disk dan perangkat buffer lainnya dengan metode cache.

Setiap request terhadap memori memiliki nilai penting, sedangkan RAM yang tersedia memiliki ukuran terbatas. Bila sebuah proses berisi algoritma untuk membebaskan memori dijalankan sedangkan memori telah penuh, perlu metode untuk menentukan page frame mana yang harus dilepaskan. Masalah lain yang timbul dalam virtual memory system adalah fragmentasi memori. Idealnya, request terhadap memori hanya gagal bila jumlah page frame yang tersedia lebih kecil daripada yang diminta. Namun terkadang kernel diharuskan untuk menggunakan memori fisik secara kontigu sehingga request terhadap memori juga dapat gagal jika ruang memori mencukupi tetapi tidak tersedia dalam satu kesatuan kontigu.

5.8.3. Kernel Memory Allocator

Kernel Memory Allocator (KMA) adalah subsistem yang bertujuan untuk memenuhi request memori dari semua bagian sistem. Beberapa request dapat berasal dari subsistem kernal lain yang membutuhkan memori untuk digunakan kernel, dan beberapa request lainnya dapat berasal dari system call oleh program user untuk meminta tambahan ruang alamat bagi prosesnya. KMA yang baik harus memiliki fitur sebagai berikut :


Bekerja dengan cepat, merupakan atribut terpenting karena dijalankan oleh semua
subsitem kernel (termasuk interrupt handler)
Meminimasi memori yang tidak digunakan
Mengurangi masalah fragmentasi memori
Mampu bekerja sama dengan subsistem manajemen memori lainnya untuk meminjam
atau melepas page frame dari manajemen memori lain tersebut

Terdapat beberapa jenis KMA yang didasarkan pada beberapa teknik algoritmasebagai berikut :
Resource map allocator
Power-of-two free list
McKusick-Karel allocator
Buddy system
Mach Zone allocator
Dynix allocator
Solaris Slab allocator

5.8.4. Penanganan ruang alamat virtual proses

Ruang alamat dari suatu proses berisi semua ruang alamat virtual yang diperbolehkan untuk diakses oleh proses. Kernel biasanya menyimpan ruang alamat virtual sebagai list memory area descriptor. Sebagai contoh, ketika proses memulai eksekusi program melalui system call exec(), kernel menentukan ruang alamat virtual kepada proses yang berisi area memori untuk :
Executable code dari program
Data inisialisasi dari program
Data tidak terinisialisasi dari program
Program stack inisialisasi (yaitu User Mode stack)
Executable code dan data dari library yang di-share
Heap (memori yang di-request secara dinamis oleh program)

Sistem operasi UNIX menggunakan strategi alokasi memori berupa demand paging. Dengan demand paging, sebuah proses dapat memulai eksekusi program tanpa adanya page-nya yang berada di memori fisik. Ketika program mengakses page yang tidak ada tersebut, MMU mengeluarkan exception. Exception handler kemudian menemukan memori region yang dimaksud, mengalokasi page yang masih free, dan menginisialisasikannya dengan data yang sesuai. Dengan cara yang sama, ketika proses membutuhkan memori secara dinamis menggunakan system call malloc() atau brk(), kernel hanya memperbarui ukuran region heap memory dari proses. Sebuah page frame di-assign ke sebuah proses hanya ketika proses tersebut mengeluarkan exception ketika mereferensi ke alamat memori virtual.

5.8.5. Swapping dan Caching

Untuk memperbesar ukuran ruang alamat virtual yang dapat digunakan oleh proses, sistem operasi UNIX menggunakan swap area dari disk. Sistem virtual memori menganggap isi dari sebuah page frame sebagai unit dasar swapping. Ketika sebuah proses me-refer pada page yang di-swapped out, MMU mengeluarkan exception. Exception handler kemudian mengalokasi page frame baru dan menginisialisasinya dengan isi lama yang tersimpan dalam disk.

Memori fisik juga digunakan sebagai cache untuk hard disk dan device block lainnya. Karena hard disk bekerja dengan lambat maka sering menjadi bottle neck dalam kinerja sistem. Untuk mengatasinya maka sistem berupaya untuk men-delay penulisan ke disk selama mungkin dengan me-load ke RAM buffer disk yang bersesuaian dengan blok yang dibaca dari disk. System call sync() melakukan sinkronisasi disk dengan menulis semua dirty buffer (semua buffer yang isinya berbeda dengan isi blok yang sesuai pada disk) ke disk. Untuk menghindari hilangnya data, sistem operasi menulis dirty buffer ke disk secara periodik.

5.9. Device Driver

Kernel berinteraksi dengan device I/O melalui device driver. Device driver disertakan
dalam kernel dan terdiri atas struktur data dan fungsi yang mengontrol satu atau lebih device (harddisk, keyboard, mouse, monitor, antarmuka jaringan, device SCSI). Setiap driver berinteraksi dengan bagian kernel lainnya melalui antarmuka khusus. Pendekatan ini memiliki beberapa kelebihan :
Kode yang spesifik terhadap device tertentu terenkapsulasi pada modul khusus
Vendor dapat menambahkan device baru tanpa harus mengetahui source code kernel.
vendor hanya perlu mengetahui spesifikasi antarmuka
Kernel berhubungan dengan semua device melalui cara yang sama dan mengakses
mereka dengan antarmuka yang sama pula
Memungkinkan untuk menulis device driver sebagai suatu modul yang dapat di-load
secara dinamis tanpa harus reboot system. Modul juga dapat diunload secara dinamis
bila tidak lagi dugunakan sehingga meminimasi ukuran kernel image yang disimpan
dalam RAM

Gambar di bawah mengilustrasikan antarmuka device driver dengan komponen kernel lainnya dan dengan proses. Beberapa user program akan beroperasi pada device hardware. Program tersebut melakukan request ke kernel menggunakan system call yang file-related dan file device ditemukan secara normal pada direktori /dev. Pada dasarnya, device file adalah bagian antarmuka device driver yang visible untuk user. Tiap file device me-refer pada driver device spesifik yang dijalankan kernel untuk melakukan operasi yang direquest pada komponen hardware.

Gambar 4. Antarmuka Device Driver





6. Perintah Dasar Linux

Perintah untuk berbagai operasi dasar di sistem operasi linux, beserta penjelasannya, dapat saudara lihat pada tabel yang telah penulis susun sebagai berikut:

Perintah
Keterangan
Any command help
Menampilkan keterangan bantu tentang pemakaian perintah.
"--help" sama dengan perintah pada DOS "/h".
Ls
Melihat isi file dari direktori aktif. Pada linux perintah dir hanya berupa alias dari perintah ls. Untuk perintah ls sendiri sering dibuatkan alias ls --color, agar pada waktu di ls ditampilkan warna-warna sesuai dengan file-filenya, biasanya hijau untuk execute, dsb.
Ls -al
Melihat seluruh isi file pada direktori aktif beserta file hidden, lalu ditampilkan layar per layar.
Cd directory
Change directory. Menggunakan cd tanpa nama direktori akan menghantarkan anda ke home direktori. Dan cd – akan menghantarkan anda ke direktori sebelumnya.
Cp source destination
Mengopi suatu file
Mcopy source
destination
Mengcopy suatu file dari/ke dos filesystem. Contoh <tt>mcopya:autoexec.bat ~/junk . Gunakan man mtools untuk command yang sejenis : mdir, mcd, mren, mmove, mdel, mmd, mrd,mformat....
Mv source destination
Memindahkan atau mengganti nama file
Ln -s source destination
Membuat Simbolic Links, contoh <tt>ln -sf
/usr/X11R6/bin/XF86_SVGA /etc/X11/X, membuat Simbolic
link dari file XF86_SVGA ke X
Rm files
Menghapus file
Mkdir directory
Membuat direktori baru
Rmdir directory
Menghapus direktori yang telah kosong
Rm -r files
(recursive remove) Menghapus file, direktori dan subdirektorinya. Hati-hati menggunakan perintah ini apabila anda login sebagai root, karena root dengan mudah dapat menghapus seluruh file pada sistem dengan perintah di atas, tidak ada perintah untuk undelete di Linux
More
Untuk melihat isi suatu file, dengan tambahan perintah more, maka isi file tersebut ditampilkan layar per layar.
Less filename
Melihat suatu file layar per layar, dan tekan tombol "q" apabila
ingin keluar,
Pico filename
Edit suatu text file.
Pico -w filename
Edit suatu text file, dengan menonaktifkan fungsi word wrap, sangat berguna untuk mengedit file seperti /etc/fstab.
Lynx file.html
Melihat file html atau browse ke net dengan text mode, dimana gambar/image tidak dapat ditampilkan, tapi lynx adalah suatu browser yang sangat cepat, sangat berguna bila anda hanya menginginkan suatu artikel tanpa image.
Tar–zxvf filename.tar.gz
Meng-untar sebuah file tar sekaligus meng-uncompress file tersebut (*.tar.gz atau *.tgz), untuk meletakkannya direktori yg diinginkan tambahkan option -C direktori, contoh tar -zxvf
filename.tar.gz -C /opt (meletakkan file tersebut di direktori /opt
Tar –xvf filename.tar
Meng-untar sebuah file tar yang tidak terkompress (*.tar).
Gunzip filename.gz
Meng-uncompress sebuah file zip (*.gz" or *.z). dengan menggunakan gzip (juga zip atau compress) jika anda menginginkan mengompress file.
Bunzip2 filename.bz2
Meng-uncompress file dengan format (*.bz2) dengan utiliti
"bzip2", digunakan pada file yang besar.
Unzip filename.zip
Meng-uncompress file dengan format (*.zip) dengan utiliti
"unzip" yang kompatibel dengan pkzip for DOS.
Find / -name
"filename"
Mencari "namafile" pada komputer anda dimulai dengan
direktori /. Namafile tersebut mungkin saja berisi wildcard
(*,?).
Locate filename
Mencari file dengan string "filename". Sangat mudah dan cepat dari perintah di atas.
Pine
Email reader yang sangat mudah digunakan, dan menjadi favorit banyak pemakai mesin Unix. Atau anda bisa pakai email yang sangat customize, yaitu mutt ,
Talk username1
Berbicara dengan keyboard dengan user lain yg sedang login pada mesin kita (atau gunakan talk username1@machinename</t> untuk berbicara dengan komputer lain). Untuk menerima undangan percakapan, ketikkan <tt>talk username2. Jika seseorang mencoba
untuk berbicara dengan anda dan itu dirasakan mengganggu, anda bisa menggunakan perintah mesg n untuk menolak pesan tersebut. Dan gunakan perintah who atau rwho untuk melihat siapa user yang mengganggu tersebut.
Mc
Menjalankan "Morton Commander" ... eh... salah maksudnya
"Midnight Commander" sebagai file manager, cepat dan bagus.
Telnet server
Untuk menghubungkan komputer kita ke komputer lain dengan menggunakan protokol TELNET. Gunakan nama mesin atau Nomor IP mesin, dan anda akan mendapatkan prompt login name dari mesin tersebut, masukkan passwordnya, oh ya .. anda juga harus punya account di mesin remote tersebut. Telnet akan menghubungkan anda dengan komputer lain dan membiarkan anda untuk mengoperasikan mesin tersebut. Telnet sangat tidak aman,
setiap yang anda ketik menjadi "open text", juga dengan password anda! Gunakan ssh alih-alih telnet untuk mengakses mesin secara remote.
Rlogin server
(remote login) Menghubungkan anda kekomputer lain. Loginname dan password, tetapi apabila account anda tersebut telah dipakai, maka anda akan mendapatkan pesan kesalahan pada password anda. Sangat tidak aman juga, gunakan ssh sebagai gantinya.
Rsh server
(remote shell) Jalan lain untuk menghubungkan anda ke remote machine. Apabila login name/password anda sedang dipakai di remote mesin tsb, maka password anda tidak akan berlaku. Idem dengan rlogin, gantikan dengan ssh.
Ftp server
Ftp ke mesin lain, ini sangat berguna untuk mengopy file ke/dari remote mesin. Juga tidak aman, gunakan scp dari keluarga ssh sebagai gantinya.
Minicom
Program Minicom (dapat dikatakan seperti
"Procomm/Hyperterminal for Linux").
./program_name
Menjalankan program pada direktori aktif, yang mana tidak
terdapat pada PATH anda
Xinit
Menjalankan X-window server (tanpa windows manager).
Startx
Menjalankan X-window server dan meload default windows manager. Sama seperti perintah "win" under DOS dengan Win3.1
Startx -- :1
Menjalankan sesi X-windows berikutnya pada display 1 (default menggunakan display 0). Anda dapat menjalankan banyak GUI terminal secara bersamaan, untuk pindah antar GUI gunakan <Ctrl><Alt><F7>, <Ctrl><Alt><F8>, etc, tapi ini akan lebih banyak memakan memori.
Xterm
(pada X terminal) ,menjalankan X-windows terminal. Untuk keluar ketikkan exit
Xboing
(pada X terminal). Sangat lucu deh ...., seperti games-games lama ..
Gimp
(pada X terminal) Program image editor yang sangat bagus, bisa disamakan dengan Adobe Photoshop, yang membedakan adalah program ini gratis.
Netscape
(pada X terminal) menjalankan netscape, versi pada waktu tulisan ini dibuat telah mencapai versi 4.7
Netscape -display
host:0.0
(pada X terminal) menjalankan netscape pada mesin yang aktif dan menampilkan outputnya pada mesin yang bernama host display 0 screen 0. Anda harus memberikan akses untuk mesin aktif untuk menampilkannya pada mesin host dengan perintah xhost
Shutdown -h now
(sebagai root) Shut down sistem. Umumnya digunakan untuk remote shutdown. Gunakan <Ctrl><Alt> untuk shutdown pada konsol (dapat dijalankan oleh user).
Halt
reboot (sebagai root) Halt atau reboot mesin. Lebih simple dari perintah di atas.
Man topic
Menampilkan daftar dari sistem manual pages (help) sesuai dengan topic. Coba man man. lalu tekan q untuk keluar dari viewer. Perintah info topic Manual pages dapat dibaca dilhat dengan cara any_command --help.
apropos topic
Menampilkan bantuan manual berdasarkan topik..
Pwd
Melihat direktori kerja saat ini
Hostname
Menampilkan nama local host (mesin dimana anda sedang bekerja). Gunakan perintah netconf (sebagai root) untuk merubah nama host dari mesin tersebut, atau edit file /etc/hosts
Whoami
Mencetak login name anda
Id username
Mencetak user id (uid) atau group id (gid)
Date
Mencetak atau merubah tanggal dan waktu pada komputer, contoh merubah tanggal dan waktu ke 2000-12-31 23:57 dengan perintah; date 123123572000
Time
Melihat jumlah waktu yg ditangani untuk penyelesaian suatu proses + info lainnya. Jangan dibingungkan dengan perintah date
Who
Melihat user yang login pada komputer kita.
Rwho -a
Melihat semua user yg login pada network anda. Layanan perintah rwho ini harus diaktifkan, jalankan setup sebagai root untuk mengaktifkannya.
Finger username
Melihat informasi user, coba jalankan; finger root
Last
Melihat user sebelumnya yang telah login di komputer.
Uptime
Melihat jumlah waktu pemakaian komputer oleh seseorang, terhitung proses reboot terakhir.
Ps
(=print status) Melihat proses-proses yang dijalankan oleh user
Ps axu
Melihat seluruh proses yang dijalankan, walaupun tanpa terminal control, juga ditampilkan nama dari user untuk setiap proses.
Top
Melihat proses yang berjalan, dengan urutan penggunaan cpu.
Uname -a
Informasi system kernel anda
Free
Informasi memory (dalam kilobytes).
Df -h
(=disk free) Melihat informasi pemakaian disk pada seluruh system (in human-readable form)
Du / -bh
(=disk usage) Melihat secara detil pemakaian disk untuk setiap direktori, dimulai dari root (in human legible form).
Cat /proc/cpuinfo
Cpu info. Melihat file pada /proc directori yang bukan merupakan file nyata (not real files).
Cat /proc/interrupts
Melihat alamat interrupt yang dipakai.
Cat /proc/version
Versi dari Linux dan informasi lainnya.
Cat /proc/filesystems
Melihat filesystem yang digunakan.
Cat /etc/printcap
Melihat printer yang telah disetup
Lsmod
(as root) Melihat module-module kernel yang telah di load.
Set
Melihat environment dari user yang aktif
Echo $PATH
Melihat isi dari variabel PATH. Perintah ini dapat digunakan untuk menampilkan variabel environmen lain dengan baik. Gunakan set untuk melihat environmen secara penuh.
Dmesg
Mencetak pesan-pesan pada waktu proses boot. (menampilkan file: /var/log/dmesg).
Clear
Membersihkan layar.
Adduser
Menambah pengguna.

7. Filesystem Linux

Ketika awal mula mencoba Linux kemudian mengeksplorasi direktory dan filefilenya,
ada kemungkinan timbul pertanyaan-pertanyaan. “Apa maksud dari Home Directory, Root Folder (/), /etc, /var/, /boot, /home?” “Apakah Linux mengenal istilah ‘Drive A’, ‘Drive C, D’?” “Mengapa tidak ditemukan file program seperti .exe, .com, dll di dalam Linux ?” Untuk mengerti filesystem di Linux, kita perlu sedikit mengubah pengertian yang telah kita anut selama ini terhadap filesystem, khususnya filesystem di system operasi Windows. Oleh karena itu, modul ini memerlukan asumsiasumsi sebagai berikut :

1. Pemahaman terhadap filesystem di Windows
2. Pemahaman komputer secara umum, misalnya apa itu direktori, dsbnya.

Dalam modul ini, yang dimaksud dengan filesystem adalah suatu cara pengorganisasian file dan direktori di dalam suatu media penyimpanan (misalnya harddisk).

7.1. Direktori / Partisi

Filesytem di dalam Linux sebenarnya ada persamaan dengan Windows, misalnya kedua OS ( Operating System ) ini sama-sama mengenai istilah ‘root directory’. Di dalam Windows tidak terdapat direktori bernama ‘root’, tapi sebenarnya yang dimaksud dengan root direktori dalam Windows adalah ketika user berada dalam prompt C:/. Root direktori ini adalah tempat awal dimana nantinya semua direktori akan bercabang.

7.2. Linux Tidak Mengenal ‘Drive C, Drive D’ dll

Disinilah perbedaan cara organisasi file dari Linux. Kita bisa katakan bahwa /etc, /boot, dll itu adalah ‘partisi’ seperti yang dikenal dalam Windows (walaupun tidak sama persis. Sebab Windows hanya mengenal 1 partisi utama dan partisi extended. Sedangkan di dalam Linux kita bisa membuat direktori atau partisi itu sangat banyak). Jadi /etc, /boot, /home itu bisa dikatakan sebagai partisi, tetapi jangan mengunci dalam pengertian filesystem Windows. Sebenarnya kita bisa saja membuat direktori bernama ‘C’ atau ‘D’, tapi hal ini tidak ada gunanya atau hubungannya dengan organisasi file/direktori dalam Linux. Dalam Linux, file-file dikelompokkan lebih berdasarkan fungsi, jadi misalnya: semua file konfigurasi akan berada dalam direktori /etc. Sedangkan Windows menggolongkan file berdasarkan Program, Misalnya program WinZip, maka boleh dibilang semua file program WinZip akan berada dalam direktori C:/Program Files/Winzip (kecuali bila diinstall dalam direktori lain).

7.3. Penamaan File

Sistem penamaan file di dalam Linux lebih fleksibel. Dalam artian, tidak semua file memerlukan extension seperti halnya di dalam Windows. Jadi tidak akan ditemukan file berextension ‘exe’ atau ‘com’ di dalam Linux. Filefile aplikasi di Linux tidak memerlukan extension. Extension file dalam Linux hanya berguna untuk menandakan apa fungsi dari file itu, misalnya extension ‘conf’ untuk file konfigurasi (misalnya: named.conf), extension ’sh’ untuk file script.

7.4. Device = Nama File

Satu lagi yang menarik dari Linux. Device-device seperti floppy disk, harddisk, CDROM, modem, dll, ditulis dalam bentuk sebuah file. Device ?device tersebut dapat dilihat dalam direktori /dev/ (device).

7.5. Daftar Direktori Dalam Linux

Seluruh informasi yang tersimpan dalam Linux berada pada sebuah struktur file. Sistem file yang tersusun dalam direktori-direktori yang menyerupai struktur tree (seperti pohon dengan akar berada diatas dan cabang dibawah).

/
(root!)
|
|
—————————————————————-
| | | | | | | | |
| | | | | | | | |
/bin /boot /dev /etc /home /lib /tmp /usr /sbin
|
|
—————–
| |
/home/andi /home/sabar
/ = root direktory

/home = direktori tempat user menaruh filenya. Jadi misalnya user andi akan memiliki direktori home sbb: /home/andi/

/etc = direktori tempat semua file konfigurasi, baik dari program aplikasi maupun system Linux.

/bin = direktori tempat binary dari program-program yang bisa dijalankan.

/sbin = sama seperti /bin, tapi khususnya untuk program-program yang berkaitan dengan system.

/tmp = sama seperti direktori direktori temp pada Windows, namun pada Linux direktori /tmp ini akan dihapus secara periodik

/usr = direktori yang berisi file-file program yang tidak kritis/penting sekali.

/var = direktori tempat menaruh file-file yang berubah-ubah terus, seperti file log, dan mail.

/boot = direktori tempat menaruh file-file yang berkaitan dengan proses booting dari Linux

/dev/hda = harddisk IDE pertama Anda

/dev/hda1 = partisi pertama pada harddisk IDE pertama

/dev/hdb2 = partisi kedua pada harddisk IDE kedua

/dev/fd0 = floppy drive pertama

/dev/ttyS1 = serial port yang pertama

/dev/hdc = biasanya CDROM

/dev/sda = device pertama pada SCSI controller

8. Instalasi Linux

Bagi mereka yang tidak mampu untuk membeli sistem operasi Microsoft, maka Linux dapat menjadi alternatif sistem operasi yang digunakan di PC secara halal & tidak membajak perangkat lunak sama sekali. Biasanya yang paling membuat pusing kepala adalah ketakutan / ketidak mampuan dalam menginstalasi sistem operasi Linux. Saya sendiri menggunakan sistem operasi Linux Mandrake 8.0 di PC saya berdampingan dengan sistem operasi Windows (asli). Saya harus akui sebagian sistem operasi Linux cukup sulit bagi orang biasa untuk menginstalasi-nya, akan tetapi Linux Mandrake sudah demikian mudah sekali
& kemungkinan gagal-nya rendah. Secara umum ada beberapa pilihan cara instalasi yang dapat dilakukan, Linux dapat di instalasi dengan kondisi:

PC sudah terinstalasi Windows dan seluruh harddisk terpakai oleh Windows. Biasanya kita menggunakan program partition magic untuk me-resize partisi Windows.
PC sama sekali belum terinstalasi apa-apa, kita mulai dari nol. Seluruh harddisk masih kosong & belum terformat sama sekali. Kita bisa menginstalasi Linux secara keseluruhan, atau membagi sebagian partisi untuk Windows. Pada kesempatan ini saya hanya memfokuskan teknik instalasi Linux Mandrake tanpa berdampingan dengan Windows sama sekali. Jika anda ingin dalam satu komputer ada Windows & Linux sekaligus, install Windows terlebih dulu baru kemudian instalasi Linux.

Sebelum instalasi Linux

Pastikan kita masih memiliki sisa harddisk minimal sebesar 1.5GB untuk Linux. Tidak apa-apa jika harddisk tsb. sudah terformat menggunakan Windows FAT32, kita bisa mengakali agar file systemnya nanti di ubah menjadi Linux.
Catat baik-baik semua data teknis periferal yang ada di komputer yang kita gunakan, seperti, ethernet card (LAN card), sound card, jenis harddisk, video card. Umumnya Linux Mandrake dapat secara otomatis mendeteksi card-card tersebut, hal ini hanya untuk berjagajaga kalau Mandrake gagal mendeteksi card periferal tsb. Cara paling sederhana & gampang untuk men-check data teknis peralatan / card periferal yang digunakan adalah menggunakan Windows melalui Start _ Settings _ Control Panel _ System _ Device Manager. Klik device yang kita inginkan & catat resources yang digunakan.
Setting BIOS diubah agar urutan booting menjadi FDD (floppy) _CDROM _ HDD (harddisk). Untuk memasuki setting BIOS tekan ESC atau DEL pada saat booting pertama kali & cari bagian untuk setting urutan booting.

Siapkan Partisi Untuk Linux

Bagian ini merupakan bagian yang paling seru, merupakan seni tersendiri & sangat tergantung pada kebutuhan kita maupun kondisi awal harddisk yang akan kita instalasi. Minimal sekali Linux akan membutuhkan partisi:

Directory / Mount
File System
Ukuran
/
Ext4
1 Gbyte
/ home
Ext4
100Mbyte
Swap
Swap
64Mbyte

Proses setting partisi dapat dilakukan secara automatis oleh Linux atau secara manual.
Instalasi Linux.
Masukan CD Linux Mandrake (CD 1) ke CD drive & booting komputer. Mohon di pastikan bahwa anda telah menset BIOS agar urutan booting adalah: FDD (floppy) _ CDROM _ HDD (harddisk). Jika booting dari CDROM Linux dapat dilakukan dengan baik maka anda akan melihat logo Linux Mandrake pada layar. Anda dapat langsung menekan tombol ENTER untuk melanjutkan proses instalasi. Perlu saya ingatkan disini bahwa proses instalasi Linux, terutama bagi yang menggunakan distribusi Mandrake 8.0 sudah demikian mudahnya karena sebagian besar parameter-nya tinggal di klik OK saja karena Mandrake telah mendeteksi & menyiapkan yang terbaik. Di samping itu, sebagian parameter dapat di set ulang setelah Linux Mandrake terinstall menggunakan fasilitas Mandrake Control Center. Oleh karenanya kita tidak perlu takut akan menderita kesulitan yang berarti untuk menginstalasi Linux. Selanjutnya akan saya overview sedikit proses yang terjadi pada saat instalasi. Terus terang, sebagian besar yang harus kita lakukan hanya menekan OK, Accept. Kalaupun kita harus menset sesuatu biasanya semua tertera dengan jelas pada layar.

Layar pertama yang akan muncul adalah menanyakan bahasa apa yang ingin anda gunakan dalam operasi Linux. Sebagian orang akan memilih bahasa Indonesia yang kebetulan di sediakan juga di Linux Mandrake. Beberapa rekan, masih lebih menyukai untuk menggunakan bahasa Inggris karena terbiasa dengan bahasa Inggris. Tekan tombol OK untuk melanjutkan. Seperti hal-nya proses instalasi software lainnya, anda akan diminta untuk menerima perjanjian lisensi penggunakan software. Anda dapat membacanya baik-baik jika dibutuhkan & jika anda menerima perjanjian penggunaan software tersebut dapat menekan tombol ACCEPT. Karena Linux mempunyai banyak sekali koleksi software, maka ada beberapa pilihan instalasi yang dapat dilakukan. Oleh karena itu Mandrake memberikan pilihan apakah kita akan menginstall software yang recommended saja, atau untuk expert (ahli). Pada pilihan recommended hanya software yang diperlukan saja yang akan di install. Pada pilihan expert maka banyak software lainnya yang akan di install yang biasanya hanya
dibutuhkan oleh orang yang ahli Linux (bukan user biasa). Bagi para pemula saya sarankan untuk memilih recommended agar sebagian besar proses akan di otomatisasi oleh Linux.

Mungkin yang paling penting hanya pemilihan paket program yang akan digunakan, karena Linux membawa banyak sekali paket program. Tentunya sebaiknya anda memilih paket program yang anda butuhkan saja untuk menghemat harddisk. Pada dasarnya pola fikir yang digunakan tidak terlalu rumit, secara sederhana kita biasanya memfokuskan pada penggunaan workstation, server atau development. Masing-masing akan membutuhkan software yang berbeda sekali satu sama lain. Pada saat anda mencoba-coba Linux tidak ada salahnya sebanyak mungkin software di install agar dapat dicoba berbagai hal yang berkaitan dengan Linux. Biasanya cukup salah satu lingkungan grafik yang di install (saya biasanya memilih KDE) agar tidak menghabiskan banyak ruang di harddisk. Biasanya harddisk sebesar 1.5-1.9Gbyte cukup untuk menginstall cukup banyak software termasuk source code untuk development. Waktu instalasi semua paket software akan sangat tergantung pada jenis CD drive & komputer yang anda gunakan. Untuk komputer saya Pentium II 233MHz membutuhkan sekitar 45 menit s/d 1 jam untuk menginstall semua paket software yang saya inginkan. Pada beberapa kesempatan saya sempat menginstall di mesin Pentium III CD drive > 40x, ternyata membutuhkan hanya sekitar 5-10 menit-an untuk menginstalasi semua software yang saya butuhkan.


Setelah semua software di instalasi, anda akan di tanyakan password untuk root (user tertinggi) di mesin anda. Jangan sampai lupa password root, karena dengan root anda dapat melakukan apa saja di komputer anda ini. Kemudian secara bertahap kita dapat memasukan user untuk komputer yang akan kita gunakan. Informasi nama, username, password untuk masingmasing user harus dimasukan secara manual satu per satu. Sebaiknya untuk penggunaan sehari-hari gunakan user non-root untuk menjaga jangan sampai kita mengubah konfigurasi system secara tidak sengaja. Kita akan di sodorkan beberapa pilihan untuk menset layar monitor, resolusi, tingkat warna-nya dll. Biasanya semua sudah di set dengan baik oleh software DrakX. Sehingga kita hampir tidak perlu melakukan apa-apa kecuali menekan tombol OK. Untuk aman-nya pengalaman saya dalam pemilihan monitor yang di Linux, saya biasanya menggunakan setting generic untuk non-interlace monitor jika ingin memperoleh resolusi di atas 800x600.

9.Menginstall Program / Aplikasi Sofware di linux

Mungkin sudah banyak yang tau bagaimana cara menginstall program di linux namun ada baiknya saja saya menambahkan catatan saya pada blog ini. Pada dasarnya di linux memiliki beberapa macam cara menginstall software dan biasanya setiap distro juga memiliki cara yang berbeda dalam menginstall sebuah program.
Cara menginstall program di linux dibagi menjadi beberapa bagian;
1. mengcompile dan install program dari source
2. menginstall program berekstensi RPM dari Redhat Packet Manager
3. menginstall program menggunakan apt-get bawaan debian
4. menginstall program di mandriva
5. menginstall program di fedora menggunakan yum
6. menginstall paket di slackware
7. menginstall file binary (.BIN/ .SH)
Berikut saya akan tuliskan caranya bagaimana cara menginstall software di linux berdasarkan kategori yang telah saya kelompokkan diatas;
1. mengcompile dan install program dari source
Biasanya aplikasi yang diinstall dari source akan berekstensi “.tar.gz”, “.tar.bz2″, “. zip”, dan biasanya sebelum menginstall program tersebut ada beberapa orang yang lebih suka menaruh file-file tersebut sebelum diinstall di /usr/local/src/ tetapi ini bukan suatu keharusan bisa ditaruh dimana saja. Langsung saja ke tahap selanjutnya mulai menginstall, pertama tama buka terminal atau command prompt anda lalu langsung menuju ke dimana anda menaruh file tersebut , lalu lakukan hal ini, sesuaikan dengan ekstensi file anda.
[ file dengan ekstensi .tar.gz ——> tar -xzvf <nama file> ]
[ file dengan ekstensi .tar.bz2 ——> tar -jxvf <nama file> ]
[ file dengan ekstensi .zip ——> unzip <nama file> ]
setelah melakukan hal tersebut maka file anda akan terekstaks secara otomatis akan membuat sebuah folder, lalu buka file tersebut dengan
[ cd <nama file> ]
langkah selanjutnya adalah tinggal tinggal melakukan pre-installation dengan menuliskan
[ ./configure ]
[make]
[make install]

sampai disini sudah selesai, namun ada baiknya sebelum melakukan instalasi program anda membaca manual dalam menginstall program tersebut biasanya ada di INSTALL atau README.

2. menginstall program berekstensi RPM dari Redhat Packet Manager
Untuk menginstall program dengan ekstensi ini sangat mudah biasanya aplikasi ini di pakai pada distro redhat dan turunannya, berikut caranya;
[ menginstall program —’ rpm -i <nama file> ]
[ menguninstall program —’ rpm -e <nama file> ]
3. menginstall program menggunakan apt-get bawaan debian.
Pada distro debian danturunannya dikenal apt-get untuk menginstall program, namun ada yang lebih penting selain aplikasi tersebut yaitu kita arus menset source-list yaitu alamat yang digunakan untuk aplikasi tersebut menginstall program in iberguna apabila kita mengg unakan aplikasi apt-get ini secara online. Biasanya alamat tersebut ditambahkan di /etc/apt/ source.list dengan cara buka dengan aplikasi editor anda lalu tambahkan alamat alamat yang berisi source-list program.
Setelah melakukan perubahan source.list ada baiknya kita melakukan
[ apt-get update ] untuk mengupdate source.list yang kita miliki.
Langkah selanjutnya adalah mengintall program menggunakan apt-get
[ install —’ apt-get install <nama program> ]
[ uninstall –’ apt-get remove <nama program> ]
4. menginstall program di mandriva
Untuk menginstall program di mandriva dapat dilakukan dengan cara
[ install –’ urpmi <nama program> ]
[ uninstall –’ urpme <nama program ]
5. menginstall program di fedora menggunakan yum
Pada dasarnya cara menginstall menggunakan yum hamper sama dengan menggunakan pt-get di debian berikut caranya
[ yum update ]
[ yum install <nama program> ]
[ yum remove <nama program> ]
6. menginstall paket di slackware.
Menginstall paket di slackware lebih gampang lagi tinggal masuk ke root kemudian;
[ install -’installpkg <nama program.tgz> ]
[ uninstall –’ removepkg <nama program.tgz> ]
atau bisa juga menggunakan
[ pkg tool ]
selain itu kita juga bisa mengubah file berekstensi rpm ke format tgz dengan cara yang sangat mudah
[rpm2tgz <nama paket.rpm>]
7. menginstall file binary (.BIN/ .SH)
Untuk menginstall program binary ada beberapa langkah yang pertama pastikan file tersebut dapat dieksekusi berikut caranya;
[ chmod +x nama program.bin], kemudian
[ ./nama program.bin]
[sh nama program.sh]
Mungkin ini hanya beberapa cara saja dari banyak cara dalam menginstall program di linux namun ini sudah cukup untuk mengenal dan menginstall program di linux
Catatan :
” Cara diatas semuanya dilakukan menggunakan console/terminal/ command-prompt di linux.
” biasanya dalam menginstall program hanya bisa dilakukan oleh root, maka masuklah sebagai root untuk menginstall program-program tersebut. Ada beberapa cara masuk ke root bisa menggunakan [su], atau bisa juga menggunakan [sudo su].
” Selain cara menginstall diatas mungkin anda bisa menggunakan aplikasi GUI yang juga bisa digunakan untuk menginstall program, sebagai contoh di debian dan ubuntu bisa menggunakan synaptic packet manager.

10. Pengguna Linux

Linux populer digunakan di lingkungan pemerintahan (khususnya di USA) dan industri. Pada banyak kasus pilihan terutama disebabkan pertimbangan harga. Tetapi kemudian dibuktikan bahwa ini merupakan pilihan yang tepat berdasarkan aspek yang lainnya pula.
Linux telah menunjukkan penetrasinya di bidang yang lainnya pula yaitu web server dan merupakan sistem operasi pilihan di lingkungan universitas. Juga bagi para pengguna yang menginginkan mempelajari UNIX untuk perkembangan karirnya. Sehingga Linux banyak digunakan untuk perangkat bantu pelatihan.
Linux juga populer dalam penggunanaan sistem embedded dan aplikasi turnkey (siap pakai) termasuk firewall Interwall, router, Point of Sale (POS). Juga ada beberapa penerbit yang menggunakan Linux pada sistem Raster Image Processor (RIP).
Dewasa ini Linux perkembangan linux tidak hanya terpusat di daerah besar saja namun di daerah-daerah terpencil pun sudah menggunakan sistem operasi ini,seperti Kabupaten Aceh Tengah misalnya.Di Aceh Tengah perkembangan penggunaan Sistem Operasi Linux sangatlah marak digunakan.Hampir kantor-kantor instansi pemerintahan,sekolah-sekolah Negri sudah terinsatalasi Sistem Operasi ini.Bahkan Universitas Gajah Putih Khusunya Fakultas Teknik Informatika sudah memakai Sistem operasi Linux Sebagai pembelajaran dan pengembangan di laboraturium komputer yang menggunakan 100% Linux dalam sistim operasi komputernya






BAB III
PENUTUP

1. Kesimpulan

a) Linux atau GNU/Linux adalah sistem operasi bebas yang sangat populer untuk computer yang disebarkan secara luas dengan gratis di bawah lisensi GNU General Publi License (GPL), yang berarti source code Linux juga tersedia bagi public.
b) Pengembangan Linux pertama kali dilakukan oleh Linux Benedict Torvalds pada tahun 1991 di Universitas Helsinki, Finlandia. Kemudian Linux dikembangkan lagi dengan bantuan dari banyak programmer dan pakar UNIX di Internet. Linux ini bisa diperoleh dari beberapa
distribusi yang umum digunakan, misalnya RedHat, Debian, Slackware, Caldera, Stampede Linux, TurboLinux dan lain-lain.
c) Linux memiliki banyak kelebihan dibanding system operasi windows diantaranya : mudah didapat dan gratis,mudah digunakan , tidak mudah dijangkiti virus atau bisa dikatakan bebas dari virus. Aplikasi –aplikasinya dapat diperoleh dengan mudah dan gratis. Hampir semua
aplikasi di windows sudah tersedia di linux, sistem operasi linux relatif stabil atau bisa dikatakan tidak mengenal istilah “hang”.
d) File System Yang Stabil, Linux Mempunyai file system Ext2. File system jenis inilah yang menjadi file system, standar linux. Beberapa Distro kecil menggunakan ini sampai sekarang. Selain itu , ada yang namanya Ext3, ReiserFS,Minix dst.

2. Saran

Cobalah untuk menggunakan system operasi linux, dan beralih dari system operasi windows ke system operasi linux.

Tidak ada komentar:

Posting Komentar