Pengembangan Dan Analisa Sistem Diskless Berbasis Ubuntu 10.04 Menggunakan Linux Terminal Server Project (LTSP)
ii
DEVELOPTMENT AND ANALYSIS DISKLESS SYSTEM BASED ON UBUNTU 10.04 USING LINUX TERMINAL SERVER
PROJECT (LTSP) By
TIFFAN KAMESWARA 10104241
Linux Operating System that has evolve and popular in the community has proven to provide many alternative solutions that boost efficiency, cost savings and ease of working. Linux allows to obtain the maximum capabilities of the computer with the minimization of the device of the client. Pronoun by using a computer network without a hard drive (diskless), which usually requires the development of computer network resources are fairly large.
The use of diskless systems can be used to solve the problems related to resource limitations. The concept of the computer is using the Linux Terminal Server Project (LTSP) in thin-client (diskless). Performance of the server that it is still not optimized to handle a client can do by configuring methods on the services that are used, such as the Linux kernel integration and use of local application so that performance of the server is not too disturbed, or in other words the existing resource on the server is not very much used by client.
The purpose of this final task is to optimize the performance of Linux Terminal Server Project (LTSP) which then will be used for various purposes ranging from education to the needs of work. The advantage of using diskless computers that Backup data is centralized on the server, and ease of administration on the client.
Keyword : Linux, Diskless Computer, Thin Client, Linux Terminal Server Project (LTSP.
(2)
i
PENGEMBANGAN DAN ANALISA SISTEM DISKLESS BERBASIS UBUNTU 10.04 MENGGUNAKAN LINUX TERMINAL SERVER
PROJECT (LTSP)
Oleh
TIFFAN KAMESWARA 10104241
Sistem Operasi Linux yang kian berkembang dan memasyarakat telah terbukti memberikan banyak solusi alternatif yang mendorong efisiensi, penghematan biaya dan kemudahan kerja. Linux memungkinkan untuk mendapatkan kemampuan yang maksimal dari perangkat komputer dengan minimalisasi perangkat untuk client. Salah satunya dengan memanfaatkan jaringan komputer tanpa harddisk (diskless), dimana biasanya pembangunan jaringan komputer membutuhkan resource yang cukup besar.
Penggunaan sistem diskless dapat dimanfaatkan untuk mengatasi masalah-masalah yang berhubungan dengan keterbatasan resource. Konsep komputer yang akan dijalankan yaitu dengan menggunakan Linux Terminal Server Project
(LTSP) secara thin-client (diskless). Performa server yang dirasa masih kurang untuk menangani client dapat dioptimasi dengan dilakukannya metode konfigurasi pada service-service yang digunakan, seperti integrasi kernel linux dan penggunaan local application agar kinerja server tidak terlalu terganggu atau dengan kata lain resource yang ada pada server tidak terlalu banyak terpakai oleh
client.
Tujuan tugas akhir ini adalah untuk mengoptimalkan kinerja penggunaan
Linux Terminal Server Project (LTSP) yang kemudian akan dimanfaatkan untuk berbagai keperluan mulai dari keperluan pendidikan sampai pada keperluan kerja. Keuntungan dari penggunaan diskless computer yaitu Backup data yang terpusat di server, dan mudahnya administrasi pada client.
Kata kunci : Linux, Diskless Computer, Thin Client, Linux Terminal Server Project (LTSP).
(3)
1
BAB 1
PENDAHULUAN
1.1Latar Belakang Masalah
Sistem Operasi Linux yang kian berkembang dan memasyarakat telah terbukti memberikan banyak solusi alternatif yang mendorong efisiensi, penghematan biaya dan kemudahan kerja. Linux memungkinkan untuk mendapatkan kemampuan yang maksimal dari perangkat komputer dengan minimalisasi perangkat untuk client. Salah satunya dengan memanfaatkan
jaringan komputer tanpa harddisk (diskless), dimana biasanya pembangunan
jaringan komputer membutuhkan resource yang cukup besar.
Penggunaan sistem diskless dapat dimanfaatkan untuk mengatasi
masalah-masalah yang berhubungan dengan keterbatasan resource. Konsep komputer yang
akan dijalankan yaitu dengan menggunakan Linux Terminal Server Project
(LTSP) secara thin-client (diskless). Pada jaringan diskless ini, satu komputer
yang dilengkapi dengan komponen yang lengkap bertindak sebagai server,
sedangkan komputer lain yang bertindak sebagai client tidak dilengkapi dengan
media penyimpan. Selanjutnya komputer client tersebut dapat menjalankan sistem
seperti komputer yang memiliki harddisk dan sudah terdapat sistem operasi
maupun paket aplikasi didalamnya serta client akan mendapatkan performa yang
tinggi sesuai komputer server. Selain itu dibutuhkan juga bootrom untuk
mengaktifkan LTSP (Linux Terminal Server Project) di client. Untuk membuat
(4)
(Dinamic host Configuration Protocol), NFS, Rdekstop, PXE, Portmap dan paket
LTSP itu sendiri.
Pengembangan sistem diskless menggunakan Linux Service Terminal Project
(LTSP) dapat dimanfaatkan untuk berbagai keperluan mulai dari keperluan pendidikan sampai pada keperluan kerja. Keuntungan dari penggunaan diskless
computer yaitu Backup data yang terpusat di server, dan mudahnya administrasi
pada client. Performa server LTSP yang dirasa masih kurang untuk menangani
client dapat dioptimasi dengan dilakukannya metode konfigurasi pada
service-service yang digunakan, seperti integrasi kernel linux dan penggunaan local
application yang digunakan pada sistem LTSP agar kinerja server tidak terlalu
terganggu atau dengan kata lain resource yang ada pada server tidak terlalu
banyak terpakai oleh client.
Sehubungan dengan hal tersebut, maka menjadi alasan bagi penulis untuk mengambil suatu judul “Pengembangan dan Analisa Sistem Diskless Berbasis Ubuntu 10.04 Menggunakan Linux Terminal Server Project (LTSP)”.
1.2Identifikasi Masalah
Berdasarkan latar belakang masalah yang ada, maka dapat diidentifikasikan masalah yang ada, yaitu :
1. Kemampuan client yang minim dan juga kebutuhan resource dalam
pembangunan jaringan komputer yang cukup besar.
2. Performa server LTSP dalam kondisi default masih dirasa kurang untuk
(5)
3. Bagaimana penggunaan resources dalam jaringan diskless?
1.3Maksud dan Tujuan
Berdasarkan permasalahan yang diteliti, maka maksud dari penulisan tugas akhir ini adalah untuk mengembangkan system diskless menggunakan Linux
Terminal Server Project (LTSP).
Sedangkan tujuan yang akan dicapai dalam penelitian ini adalah :
1. Membangun sistem diskless menggunakan Linux Terminal Server Project
(LTSP).
2. Melakukan optimasi dan efisiensi pada sistem LTSP dengan melakukan integrasi pada kernel linux (kernel versi 3.0) dan penggunaan local application
3. Mengetahui performasi processor dan memori kondisi default dan hasil
optimasi untuk sistem LTSP dan aplikasi yang berjalan diatasnya.
1.4Batasan Masalah
Dalam penelitian ini, penulis membatasi masalah sebagai berikut :
1. Kode sumber distro diadopsi dari distribusi Ubuntu versi 10.04 yang merupakan distribusi Linux turunan Debian.
2. Modifikasi Chroot menggunakan distribusi Linux Ubuntu versi 10.04. 3. Pengintegrasian kernel dari versi 2.6.xx menjadi versi 3.0.
(6)
Execution Environment).
5. Pengujian akan dilakukan dengan melihat perbandingan kerja processor dan memori dan diberikan tiga buah beban aplikasi, yaitu Openoffice,Gimp,dan Firefox web browser.
6. Sistem yang dibangun akan terdiri dari satu buah server LTSP dan tiga buah
client dengan spesifikasi sebagai berikut :
a. Spesifikasi server : Processor 2,0 Ghz, Memory 2 GB
b. Spesifikasi client : Processor minimal 533 Ghz, Memory 128 MB
1.5Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah sebagai berikut :
1. Tahap pengumpulan data
Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut :
a) Studi Literatur.
Pengumpulan data dengan cara mengumpulkan literatur, jurnal, paper dan
bacaan-bacaan yang ada kaitannya dengan judul penelitian. b) Observasi.
Teknik pengumpulan data dengan mengadakan penelitian dan peninjauan langsung terhadap permasalahan yang diambil.
2. Tahap perancangan dan pengembangan sistem.
(7)
yang ditanamkan kedalam sistem server LTSP. 3. Instalasi dan modifikasi sistem
Tahap instalasi yang dibutuhkan oleh system dan dilakukan konfigurasi yang diperlukan untuk mengembangkan sistem.
4. Pengujian
Pengujian yang dilakukan terhadap kondisi sistem default dan setelah
dilakukannya optimalisasi pada sistem LTSP.
1.6Sistematika Penulisan
Sistematika penulisan penelitian dengan judul PENGEMBANGAN DAN
ANALISA SISTEM DISKLESS BERBASIS UBUNTU 10.04
MENGGUNAKAN LINUX TERMINAL SERVER PROJECT (LTSP) ini
disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan tugas akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Menguraikan tentang latar belakang permasalahan, identifikasi masalah, maksud dan tujuan, batasan masalah, metodologi, serta sistematika penulisan.
BAB II. LANDASAN TEORI
Membahas berbagai konsep dasar dan teori-teori yang berkaitan dengan topik penelitian yang dilakukan dan hal-hal yang berguna dalam proses analisis permasalahan, berupa jaringan komputer, DHCP, XDMCP, NFS, sistem
(8)
terdistribusi, client server, kernel, sistem operasi, linux, distribusi linux dan struktur direktori.
BAB III. ANALISIS DAN PERANCANGAN SISTEM
Mengemukakan mengenai dasar-dasar teori yang mendukung topik yang didapat dari studi literatur dan percobaan mulai dari Analisis Sistem, Analisis Masalah, Deskripsi Sistem, Analisis Non Fungsional, Analisis Fungsional, Perancangan Sistem Linux Terminal Server Project (LTSP).
BAB IV. IMPLEMENTASI DAN PENGUJIAN
Menguraikan implementasi atau penerapan sistem yang telah dirancang diantaranya : Instalasi Server Linux Terminal Server Project (LTSP), Tampilan Login dan Desktop Linux Terminal Server Project (LTSP), Pengujian kerja LTSP pada sepuluh Client dan Pengujian Linux Terminal Server Project (LTSP).
BAB V. KESIMPULAN DAN SARAN
(9)
7
TINJAUAN PUSTAKA
2.1 Jaringan Komputer
Jaringan komputer adalah sebuah kumpulan komputer, printer dan peralatan lainnya yang terhubung dalam satu kesatuan. Informasi dan data bergerak melalui kabel-kabel atau tanpa kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar dokumen dan data, mencetak pada printer yang sama dan bersama-sama menggunakan hardware/software yang terhubung
dengan jaringan. Setiap komputer, printer atau periferal yang terhubung dengan jaringan disebut node. Sebuah jaringan komputer dapat memiliki dua, puluhan,
ribuan atau bahkan jutaan node.
2.2.1 Jenis-Jenis Jaringan Komputer
Jaringan komputer dapat dibedakan berdasarkan cakupan geografisnya. Ada empat kategori utama jaringan komputer yaitu :
a. Local Area Network (LAN)
Local Area Network (LAN), merupakan jaringan milik pribadi di dalam
sebuah gedung atau kampus yang berukuran sampai beberapa kilometer. LAN seringkali digunakan untuk menghubungkan komputer-komputer pribadi dan
workstation dalam kantor suatu perusahaan atau pabrik-pabrik untuk memakai
bersama sumberdaya (resource, misalnya printer) dan saling bertukar
(10)
b. Metropolitan Area Network (MAN)
Metropolitan Area Network (MAN), pada dasarnya merupakan versi LAN yang berukuran lebih besar dan biasanya menggunakan teknologi yang sama dengan LAN. MAN dapat mencakup kantor-kantor perusahaan yang letaknya berdekatan atau juga sebuah kota dan dapat dimanfaatkan untuk keperluan pribadi (swasta) atau umum. MAN mampu menunjang data dan suara, bahkan dapat berhubungan dengan jaringan televisi kabel.
c. Wide Area Network (WAN)
Wide Area Network (WAN), jangkauannya mencakup daerah geografis
yang luas, seringkali mencakup sebuah negara bahkan benua. WAN terdiri dari kumpulan mesin-mesin yang bertujuan untuk menjalankan program-program (aplikasi) pemakai.
d. Global Area Network (GAN)
Global Area Network (GAN) merupakan suatu jaringan yang menghubungkan negara-negara diseluruh dunia. Kecepatan GAN bervariasai mulai dari 1.5Mbps sampai dengan 100Gbps dan cakupannya meliputi ribuan kilometer. [7]
2.2 DHCP (Dynamic Host Configuration Protocol)
DHCP menggunakan hubungan server-clientuntuk mengalokasikan
alamat, melacak penggunannya ,meminta kembali alamat IP yang sudah ditentukan dan informasi komunikasi yang diperlukan dalam system jaringan.
Server DHCP biasa digunakan dengan range alamat IP tertentu. Ketika sebuah
system clientmelakukan boot,system tersebut mengirimkan permintaan kepada
(11)
Pada umumnya, server DHCP berhubungan dengan alamat IP dan sebuah periode
waktu yang ditentukan (disebut juga dengan lease) yang akan digunakan oleh
client. DHCP mengatur reklamasi dan penugasan dari pengorganisasian alamat IP.
DHCP juga dapat digunakan untuk meneruskan informasi tambahan untuk sebuah system boot. Pertama, sebuah client melakukan request boot, yang
termasuk didalamnya informasi konfigurasi yang spesifik mengenai client. Server
menerima paket informasi ini dan membandingkan informasi konfigurasi dengn sebuah database parameter, dan bereaksi dengan data tambahan diluar alamat IP (seperti zona waktu atau informasi spesifik lainnya).[4][5][7]
2.3 XDMCP (X Display Manager Control Protocol)
X Window System protocol tampilan dan jaringan yang dikembangkan oleh
MIT. Sistem X dibangun dengan fungsi jaringan dan dengan kemampuan untuk menjalankan sesi grafis pada computer yang di remote. Didalamnya X Display
Manager digunakan untuk memulai sebuah session dari system lokal atau dari computer lain. Permintaan dan permulaan session ditangani oleh XDMCP (X Display Manager Control Protocol) dan protocol jaringannya.XDMCP menyediakan sebuah cara untuk menjalankan X−Terminal untuk PC dan menggunakan X Server untuk menyediakan sebuah antarmuka client/server antara
perangkat keras tampilan (mouse, keyboard, dan video) juga desktop dan juga
menyediakan baik infrastruktur windowing dan sebuah antarmuka aplikasi
standar. X−Terminal dapat ditampilan dengan sebuah jendela (tampilan) tunggal atau banyak jendela, berdasar kepada pengaturan dan kemampuan perangkat lunak system X. [4][5][7]
(12)
2.4 NFS ( Network File System)
NFS adalah sebuah file system yang dikembangkan oleh Sun Microsystems
dan diperkenalkan pada akhir tahun 1984. NFS pada awalnya dikembangkan untuk workstation Unix namun juga banyak digunakan oleh workstation lain seperti Microsoft Windows. Beberapa istilah yang digunakan dalam NFS adalah sbb:
1. INODE, adalah sebuah struktur data yang mewakili berkas atau direktori yang terdapat pada file system UNIX. INODE digunakan untuk
mengidentifikasi dan mencari sebuah berkas atau direktori yang terletak didalam file system lokal UNIX.
2. RNODE (remote file node), adalah sebuah struktur data yang mewakili berkas atau direktori yang terdapat pada remote file system (file system
tidak terdapat pada komputer lokal)
3. VNODE (the virtual file node), adalah sebuah struktur data yang mewakili berkas atau direktori yang terdapat pada virtual file system (VFS)
4. VFS (virtual file system), adalah sebuah struktur data (linked lists dari
VNODE) yang mengandung semua informasi yang diperlukan pada sebuah file system real yang diatur oleh NFS. Setiap VNODE berhubungan
dengan sebuah file system disertakan didalam linked list yang berpaut
kepada VFS untuk file system tersebut.
Server dan ClientNFS berkomunikasi menggunakan teknik remote procedure call.
Sebuah spesifikasi external data representation (XDR) digunakan untuk
(13)
2.5 Sistem Terdistribusi
Teknologi Informasi telah mengalami konvergensi (perpaduan), antara tiga kutub utama, yaitu teknologi komputer, telekomunikasi dan multimedia. Konvergensi antara ketiganya melahirkan inovasi-inovasi teknologi, produk dan layanan teknologi informasi yang baru, seperti internet, telepon seluler (ponsel) dan Personal Digital Assistant (PDA) dengan aplikasi-aplikasinya. Hal tersebut
membuka fenomena baru dalam ekplorasi pengembangan sistem terdistribusi, dimana infrastruktur teknologi baru memungkinkan terjadinya distribusi data, informasi objek, proses, beragam aplikasi, penggunaan bersama dan pengembangan sistem informasi. Konvergensi teknik informasi juga memungkinan terjadinya diversifikasi layanan ClientServer, seperti jasa layanan
perbankan Anjungan Tunai Mandiri (ATM), Internet Banking dan sebagainya.
2.5.1 Pengertian Sistem Terdistribusi
Sistem Terdistribusi terdiri dari dua kata, yaitu Sistem dan Terdistribusi. Sistem merupakan sekumpulan elemen yang saling berhubungan dengan lainnya dan membentuk satu kesatuan untuk menyelesaikan suatu tujuan yang spesifik atau menjalankan seperangakat fungsi. Sedangkan kata terdistribusi berasal dari kata distribusi yang merupakan lawan kata sentralisasi, yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.
Maka berawal dari pengertian kata-kata pembentuknya, Sistem Terdistribusi dapat didefinisikan sebagai suatu keadaan dari elemen-element yang saling berinteraksi secara sistematis dan teratur untuk mendistribusikan data, informasi, Sistem Operasi, objek dan layanan dari dan kepada pengguna yang terkait didalamnya.
(14)
Selain pengertian diatas, sistem komputer terdistribusi didefinisikan pula sebagai sebuah sistem yang memungkinkan aplikasi komputer beroperasi secara terintegrasi pada lebih dari satu lingkungan yang terpisah secara fisis. Ciri khas sistem komputer terdistribusi adalah heterogenitas dalam berbagai hal perangkat keras, Sistem Operasi, dan bahasa pemrograman. Adalah tidak mungkin untuk mengembangkan sistem terdistribusi yang homogen secara paksaan, karena secara alamiah sistem komputer terdistribusi tumbuh dari lingkungan yang heterogen. Kata kunci dalam menjembatani perbedaan-perbedaan yang muncul adalah interoperabilitas (interoperability). Interoperabilitas adalah kemampuan saling
bekerjasama antar sistem komputer.
2.5.2 Tantangan Pengembangan Sistem Terdistribusi
Dalam mengembangkan sistem terdistribusi perlu memperhatikan beberapa aspek yang merupakan tantangan dalam pengembangan sistem terdistribusi, yaitu :
1. Keanekaragaman (heterogencity)
Sistem Terdistribusi mampu mendukung berbagai jenis Sistem Operasi, perangkat keras dan perangkat lunak.
2. Keterbukaan (openness)
Pengembangan sistem terdistribusi dilakukan dengan menambahkan komponen-komponen baru dapat dilakukan oleh programer yang berbeda-beda.
(15)
Sistem Terdistribusi harus dapat menyediakan keamanan yang memadai bagi sumber daya yang digunakan bersama dan pesan yang dihantarkan dalam sistem.
4. Skalabilitas (scalability)
Ukuran sistem terdistribusi dan tetap dapat berjalan dengan baik. Perubahan dapat dilakukan dari segi jumlah pengguna maupun dari segi kekuatan perangkat keras komputer-komputer dalam sistem terdistribusi itu sendiri.
5. Penanganan masalah (error handling)
Kesalahan yang terjadi pada suatu komputer dalam sistem terdistribusi mempengaruhi kinerja sistem secara keseluruhan.
6. Kebersamaan (concurrency)
Apabila terjadi permintaan layanan secara bersamaan sistem terdistribusi tidak akan menjadi kacau.
7. Penyembunyian (transparancy)
Penyembunyian membuat aspek distribusi tidak tampil oleh pengguna. a. Penyembunyian akses
Seseorang yang bekerja dalam lingkungan sistem terdistribusi dapat mengakses berbagai sumber daya yang berada dalam lingkungan tersebut untuk menyelesaikan pekerjaannya.
b. Penyembunnyian lokasi
Pengguna layanan transaksi tersebar tidak perlu mengetahui basis data yang akan diakses. Pengguna layanan transaksi juga dapat
(16)
mengakses basis data dari mana saja sejauh memiliki fasilitas untuk mengakses basis data yang bersangkutan.
c. Penyembunyian kebersamaan
Pengelola data mengetahui cara dalam menangani transaksi yang terjadi secara bersama.
d. Penyembunyian replikasi
Pengguna tidak terpengaruh apakah mengakses data orisinil atau replikasi.
e. Penyembunyian masalah
Apabila salah satu komputer dalam sistem terdistribusi mengalami kerusakan, kerusakan tersebut dapat diatasi secara langsung dan cepat tanpa terlihat dan tidak memerlukan banyak campur tangan dari pengguna.
f. Penyembunyian skala
Pengguna tidak terpengaruh atau direpotkan apabila komputer-komputer dalam sistem terdistribusi di-upgrade guna
meningkatkan kinerja dan jangkauan layanan.
2.5.3 Arsitektur Sistem Terdistribusi
Arsitektur didefinisikan sebagai suatu rancangan untuk penyusunan dan operasi komponen-komponen suatu sistem dimana rancangan tersebut mengidentifikasikan komponen beserta fungsi masing-masing komponen, konektifitas/hubungan antar komponen dan mendeskripsikan pemetaan fungsionalitas ke dalam komponen. Arsitektur sistem terdistribusi diharapkan mampu menyediakan gambaran fisik dan logikal dari sistem, serta mampu
(17)
menyediakan aplikasi dari komponen-komponen sistem beserta hubungan atarkomponen dalam sistem. Beberapa jenis arsitektur sistem terdistribusi adalah sebagai berikut :
1. ClientServer
Clientmenghubungi server untuk mendapatkan data, yang kemudian
memformat dan menampilkan pada pengguna. 2. Tightly Coupled (clustered)
Mesin-mesin terintegrasi yang menjalankan Sistem Operasi yang sama secara bersamaan dengan membagi tugas kedalam beberapa bagian yang dijalankan masing-masing mesin. Apabila Sistem Operasi telah selesai, hasil pekerjaan masing-masing mesin digabungkan menjadi satu.
3. Peer-to-peer
Arsitektur dimana tidak ada mesin yang menyediakan layanan atau mengelola sumber daya jaringan, sehingga segala tanggung jawab dibagikan diantara seluruh mesin dikenal dengan istilah pe
2.5.4 Proses
Berikut akan dibahas beberapa materi mengenai proses.
a. Sistem Operasi
Sebuah Sistem Operasi adalah program/instruksi berurutan yang sedang dijalankan. Sistem Operasi mempunyai komponen sebagai berikut :
a. Kode program yang akan dieksekusi/dijalankan.
b. Data yang digunakan ketika program dieksekusi (berasal dari file
(18)
c. Sumber daya yang dibutuhkan oleh program. d. Status dari Sistem Operasi tersebut.
Agar Sistem Operasi bisa dijalankan, maka Sistem Operasi harus mempunyai lingkungan abstrak mesin yang sesuai untuk mengatur/mengelola sumber daya yang dapat digunakan secara bersama dan sumber daya yang terisolasi di antara komunitas Sistem Operasi.
Gambar II.1 Lingkungan mesin abstrak mengelola Sistem Operasi dan sumber daya.[3]
b. Thread
Motivasi adanya model thread adalah untuk membuat abstraksi sistem
informasi yang sederhana dimana terdapat beberapa entri untuk menjalankan program yang sama menggunakan file dan peralatan/device yang sama pula.
Thread merupakan bentuk lain sistem operasi menurut sistem informasi klasik
Dalam model thread, Sistem Operasi adalah abstraksi sistem informasi yang
dapat mengalokasikan beragam sumber daya, namun tidak mempunyai komponen untuk menjalankan program.
Thread adalah suatu entitas yang berjalan menggunakan program dan
sumber daya dari sistem operasi yang memilki thread tersebut. Sistem operasi
dapat mempunyai beberapa thread. Thread sibling (thread yang berada dalam
satu sistem operasi) menggunakan program dan sumber daya sistem operasi secara bersama. Thread harus mempunyai alokasi sumber daya-nya sendiri
Code Data Process Status
Abstract Machine Environment (SISTEM
(19)
sehingga status internalnya dapat dibedakan dengan status internal thread lain.
Secara praktis, sumber daya minimum yang harus dipunyai adalah stack,
informasi status thread, dan beberapa entri tabel sistem informasi. Thread
dijalankan dalam address space yang sama namun merupakan unit komputasi
yang berdiri sendiri.
2.5.5 RPC (Remote Procedure Call)
Paradigma remote procedure call (RPC) merupakan perluasan dari
lingkungan pemrograman sekuensial dengan mengambil keuntungan dari teknologi jaringan. Dalam pemrograman sekuensial, prosedur digunakan untuk memodularkan proses komputasi. Pemodularan ini membungkus data dan implementasi fungsi-fungsi ke dalam suatu interface prosedur publik.
RPC merupakan sebuah variasi dari model penyampaian pesan. Esensi dari teknik ini adalah diperbolehkannya program-program yang terdapat dalam mesin yang berlainan untuk saling berinteraksi dengan menggunakan pemanggilan prosedur, seakan-akan kedua program berada pada satu mesin yang sama. Berikut beberapa penjelasan tambahan mengenai RPC, diantaranya :
a. Mekanisme Kerja RPC
Dalam suatu lingkungan komputasi terdistribusi, RPC diimplementasikan sebagai suatu kumpulan protokol jaringan yang membolehkan satu prosedur untuk memanggil prosedur lain yang dijalankan pada mesin yang berbeda dan mengirimkan salinan paramater untuk digunakan dalam proses komputasi. Karena alasan ini, RPC menjalankan pada ruang alamat yang berbeda dari prosedur pemanggil. RPC adalah suatu pola komunikasi antar proses yang mana program penginisialisasi menjalankan operasi pengiriman yang
(20)
langsung diikuti operasi baca-pemblokan. Program penerima akan menjalankan proses baca-pemblok hingga ia mendapat pesan yang dikirim oleh proses pemanggil tadi. Selanjutnya, akan memberikan pelayanan dan mengembalikan hasilnya ke proses asal.
Konsep sinkron dan tidak sinkron pada RPC analog dengan konsep
blocking (pemblokan) dan nonblocking pada pesan. RPC yang tradisional
bersifat sinkron yaitu yang mengharuskan proses pemanggil menunggu hingga proses terpanggil mengembalikan nilai. RPC yang sinkron mudah dipahami dan diprogram karena perilakunya dapat diperkirakan akan tetapi tidak berhasil mengeksploitasi keparalelan yang terwaris dalam aplikasi terdistibusi. Ini membatasi macam interaksi yang bisa dimiliki oleh aplikasi yang berakibat pada turunnya unjuk kerja. Untuk memberikan fleksibilitas yang lebih luas, RPC tidak-sinkron diimplementasikan untuk mengoptimalkan keparalelan sambil tetap mempertahankan kesederhanaan RPC. RPC tidak-sinkron tidak memblok pemanggil, nilai-nilai yang dikembalikan dapat diterima saat mereka dibutuhkan, yang memungkinkan eksekusi proses di clientdilanjutkan secara
(21)
Int main(…) {
…..
func(a1, a2, …, an);
…. }
void func(p1, p2, …, pn) {
….. } … pack(a1, msg); pack(a2, msg); … pack(an, msg); send(rpcServer, msg); //waiting…
Result = receiving(rpcServer); ...
//Initialize the server While(TRUE){
msg = receive(anyClient); unpack(msg, t1); unpack(msg, t2);
…
unpack(msg, tn); func(t1, t2, …, tn); pack(a1, rtnmsg); pack(a2, rtnmsg); … pack(an, rtnmsg); send(rpcServer, rtnMsg); }
Gambar II.2 Sinkronisasi RPC
b. Pengimplementasian RPC
Ada beberapa isu yang didapat dalam pengimplementasian RPC, antara lain :
a. Sintaksis RPC sebaiknya memiliki penampilan sintaksis yang sama seperti pemanggilan prosedur lokal dalam bahasa pemrograman tingkat tinggi.
b. Semantik pemanggilan dalam kasus remote dan kasus lokal
diupayakan seserupa mungkin, walaupun pada pelaksanaannya sulit. c. Penerima proses RPC sebaiknya dijalankan dalam lingkungan yang
sama dengan lingkungan dimana pemanggilan dilaksanakan. Untuk alasan ini, sebuah prosedur dapat mengacu dan mengubah variabel global dalam lingkungan konvensional.
(22)
c. Pengorganisasian Umum
Pada proses implementasi RPC, mesin clientmengeksekusi proses yang
terdiri atas kode aplikasi client, client stub dan mekanisme transport. Mesin
server mengimplementasikan proses rpcServer dengan sebuah mekanisme
transport, program utama server stub dan implementasi server dari prosedur
remote. Client stub berfungsi menterjemahkan prosedur lokal menjadi aksi
pada sisi clientdari protokol RPC dan server stub mengimplementasikan sisi
server dari protokol RPC.
Name Server Register(remoteF); … While(1) { receive(msg); unpack(msg); remoteF(…); pack(rtnMsg);
send(theClient, rtnMsg); }
Server Stub
remoteF(…) {
…
return; }
a Main Program
Int main(…) {
…. localF(…);
….
remoteF(…);
…. }
localF(…) {
…. return; }
lookup(remoteF); {
Pack(…);
Send(rpcServer.msg); Receive(…); Return; Client Stub
lookeupF(…) {
…
}
register(…) {
…
}
theClient rpcServer
Procedure Call Message Passing
Gambar II.3 Implementasi RPC[8]
d. Dukungan jaringan
Mekanisme transport mengimplementasikan penyampaian pesan jaringan.
Implementasi aktual cenderung untuk menggunakan protokol datagram dengan protokol RPC yang khusus. Pendekatan ini dibenarkan dengan
(23)
memperhatikan bahwa protokol RPC tidak mensyaratkan sirkuit virtual seperti
yang disediakan oleh TCP.
RPC berguna untuk proses tersebar pada mesin berbeda tetapi dia tidak mendorong komputasi paralel. Pada implementasi RPC, unjuk kerja pada saat
runtime selalu menjadi isu utama. Walau begitu, prosedur remote digunakan
secara luas dalam aplikasi terdistribusi karena dia mengimplementasi mode pemrograman tradisional tanpa perlu membutuhkan pengetahuan yang banyak tentang strategi dan mekanisme distribusi.
2.5.6 Penamaan
Nama dalam sebuah sistem yang terdistribusi adalah sebuah string dari bit atau karakter yang digunakan untuk menunjuk sebuah Entity. Untuk
mengoperasikan di dalam sebuah Entity, diperlukan sesuatu untuk mengaksesnya,
yaitu sesuatu yang disebut Acces Point. Nama dari sebuah Acces Point disebut
Address. Untuk menambahkan Address, perlu adanya tipe nama yang lain
mengirimkan sebuah perintah yang khusus, sebagaimana nama unik yang digunakan untuk identify entity. Identifier yang benar adalah sebuah nama yang
mempunyai properti berikut.
1. Sebuah Identifier yang menunjukan maksimal satu Entity.
2. Tiap Entity ditunjukkan oleh maksimal satu Identifier.
3. Sebuah Identifier selalu menunjuk ke Entity yang sama.(tidak pernah
digunakan kembali)
Nama dalam sistem terdistribusi biasanya diorganisasikan kedalam sesuatu yang disebut name space. Sebuah name space dapat diwakili oleh label, yaitu
(24)
grafik yang diarahkan melalui dua tipe Node yaitu Leaf Node yang mewakili
sebuah nama Entity dan mempunyai properti yang tidak mempunyai outgoing
edge dan Directory Node yang mempunyai sejumlah outgoing edge.
i. Fault Tolerance
Sebuah sistem dikatakan fail apabila sistem tersebut tidak dapat
melakukan apa yang sudah dijanjikan. Error adalah apabila ada bagian dari sistem
yang menujukkan kegagalan. Penyebab dari error disebut fault. Topik yang paling
hangat dari fault tolerance adalah bagaimana caranya sistem tersebut dapat
menyediakan servis meskipun dalam keadaan fault.
Secara umum fault diklasifikasikan kedalam transient, intermittent, atau
permanent.
2. Transient fault terjadi sekali dan kemudian menghilang. Jika
pengoperasian diulang, fault pun menghilang.
3. Intermittent fault terjadi, kemudian lenyap, lalu muncul kembali
dan begitu seterusnya.
4. Permanent fault adalah satu-satunya fault yang terus ada sampai
komponen yang mengalami fault tersebut diperbaiki.
Terdapat beberapa model Failure, diantaranya :
1. Crash failure terjadi apabila server berhenti secara prematur, tapi
pernah berjalan secara benar sampai server itu berhenti.
2. Ommision failure terjadi ketika server gagal untuk merespon
(25)
3. Timing failure terjadi apabila respon yang terjadi tidak sesuai
dengan waktu yang seharusnya.
4. Respon failure adalah apabila respon dari server tidak benar. Ini
adalah failure yang termasuk kategori serius.
5. State transition failure terjadi apabila respon dari server tidak
sesuai dengan apa yang diharapkan oleh permintaan yang datang. 6. Arbitrary failure atau disebut juga Byzantine failure, ketika failure
ini terjadi, dampaknya adalah clientharus bersiap untuk
kemungkinan yang terburuk.[8]
2.6 Client server
ClientServer merupakan salah satu arsitektur dari sistem terdistribusi.
Arsitektur ini memiliki beberapa hal yang perlu diketahui, diantaranya :
2.6.1 Komponen dasar ClientServer
1. Client
Clientmerupakan terminal yang digunakan oleh pengguna untuk
meminta layanan tertentu yang dibutuhkan. Terminal clientdapat
berupa PC, ponsel, komunikator, robot, televisi dan peralatan lain yang membutuhkan informasi
2. Middleware
Midleware merupakan komponen perantara yang memungkinkan
clientdan server untuk saling terhubung dan berkomunikasi satu sama
lain. Midleware ini dapat berupa Transaction Monitor /TP. Remote
(26)
3. Server
Server merupakan pihak yang menyediakan layanan. Server ini akan dapat berupa basis data SQL, Monitor TP, server groupware, server
objek dan web. Secara umum, server berperan menerima pesan
permintaan layanan dari client, memproses permintaan tersebut dan
mengirimkan hasil permintaan kepada client.
2.6.2 Ciri-ciri CilentServer
Beberapa ciri dari arsitektur sistem terdistribusi ClientServer diantaranya :
1. Berbasis layanan
Server memberikan sejumlah layanan yang dibutuhkan dan diminta oleh
client, antara lain : berbagai pakai berkas, dan peralatan pendukung.
2. Sumber daya yang digunakan bersama
Server mengelola sejumlah sumber daya yang dimiliki agar dapat diakses
dan digunakan secara bersama-sama oleh terminal-terminal clientyang
terhubung pada server.
3. Hubungan dan interaksi Client Server
Hubungan yang terjadi antara server dan client adalah one-to many, yang
berarti bahwa satu server melayani banyak client. Client selalu memulai
transaksi dengan meminta layanan sedangkan server menanti permintaan
layanan secara pasif.
4. Client tidak perlu mengetahui lokasi fisik server
Server dapat terletak di berbagai tempat yang belum tentu diketahui oleh
client, Walaupun demikian clienttetap dapat mengakses server untuk
(27)
5. Interoperabilitas perangkat lunak dan perangkat keras
Perangkat lunak dan keras yang digunakan oleh masing-masing clienttidak
harus sama dengan yang digunakan pada server, namun masih dapat saling
terkoneksi antara satu dan yang lain.
6. Pertukaran berbasis pesan
Mekanisme dari ClientServer berdasar pada pertukuran pesan. Pesan yang
dipertukarkan adalah permintaan layanan dan umpan balik dari permintaan layanan tersebut.
7. Enkapsulasi layanan
Clienttidak perlu mengetahui Sistem Operasi pengelolaan permintaan yang
terjadi dalam server sehingga client tidak dapat mengontrol Sistem
Operasi pengelolaan permintaan.
8. Skalabilitas
Skalabilitas adalah kemampuan untuk diperbesar atau diperkecil. Ukuran sistem ClientServer dapat diubah secara horizontal maupun vertikal.
Perubahan vertikal berarti berpindah ke server lebih besar atau lebih cepat
atau mendistribusikan tugas melayani clientke beberapa server.
Pengubahan horizontal berarti menambah atau mengurangi jumlah client.
9. Konsistensi data
Data hanya dikelola pada server pusat sehingga konsistensi dan data lebih
(28)
2.6.3 Tipe Jaringan Client Server
Berdasarkan tipe layanan yang diberikan server kepada client, jaringan
ClientServer dapat dibagi menjadi kedalam banyak tipe, tipe-tipe tersebut antara
lain :
1. Server Berkas
Sistem jaringan berkas adalah sistem jaringan yang dimana layanan yang diberikan server berupa berkas, baik berkas aplikasi seperti aplikasi
pengolahan kata, pengolahan angka, pengolahan data, pengolahan gambar dan lain sebagainya, maupun berkas yang dihasilkan oleh aplikasi tersebut, seperti dokumen pengolahan kata, tabel-tabel pengolahan angka, berkas presentasi dan lain sebagainya.
`
Permintaan
Berkas
Client Server
Gambar II.4 Server Berkas[8]
2. Server Basis Data
Sistem jaringan server basis data adalah merupakan sistem jaringan
dimana layanan yang diberikan oleh server berupa pengolahan dan
penyajian data berdasarkan perintah terstruktur (query) yang diberikan
client. Pada jaringan ini, server menyimpan berbagai macam data yang
(29)
Client Server `
Perintah Terstruktur
Hasil Proses Aplikasi
Gambar II.5 Server Basis Data[8]
3. Server Transaksi
Sistem jaringan server transaksi adalah sistem jaringan dimana layanan
yang diberikan server berupa hasil Sistem Operasi dari sekelompok
perintah terstruktur yang diberikan client. Jaringan ini pada dasarnya
hampir sama dengan sistem jaringan basis data sebelumnya. Perbedaan terletak pada server transaksi yang memproses sekelompok perintah
terstruktur dari client, dan sekelompok perintah terstruktur ini disebut
prosedur.
Client Server
`
Prosedur
Hasil Proses
Aplikasi Aplikasi
Gambar II.6 Server Transaksi[8]
4. Groupware Server
Sistem jaringan groupware adalah sistem jaringan dimana layanan yang diberikan server berupa fasilitas pemakaian bernama informasi semi
terstruktur diantara pengguna jaringan. Pada jaringan ini, server
menyimpan, mengelola dan menyebarkan informasi antar pengguna dalam jaringan, misalnya teks, gambar, surat dan ruang diskusi.
(30)
5. Server Objek
Sistem jaringan server objek adalah sistem jaringan dimana layanan
yang diberikan server berbentuk objek. Dalam jaringan ini, clientdan
server berkomunikasi melalui objek-objek yang miliki clientdan server.
6. Web Server
Sistem jaringan web server adalah sistem jaringan dimana layanan
yang diberikan server berupa pengelolaan dan pemakaian bersama
dokumen-dokumen yang saling terhubung. Jaringan ini merupakan jaringan yang memungkinkan tiap dokumen dalam jaringan memiliki hubungan ke dokumen lain sehingga dokumen-dokumen dalam jaringan terhubung satu dengan yang lain, semacam jaringan laba-laba.
2.6.4 Arsitektur Client Server
1. Two Tier
Arsitektur two tier merupakan arsitektur yang disebut ClientServer dimana
terdapat komputer sebagai clientdan server yang berinteraksi melalui
protokol dan media komunikasi tertentu Model arsitektur Two Tier
(31)
a. Thin Client– thick Server
Server Aplikasi
Client `
Client `
Client `
Gambar II.7 Thin Client – Thick Server[4] b. Thick Client – Thin Server
Server
Client
`
Client
`
Client
` Aplikasi Aplikasi Aplikasi
Gambar II.8 Thick Client – Thin Server[4]
2. Three Tier
Arsitektur ClientServer ini memisahkan antara data (Data
Management Tier), aplikasi (Middle Tier) dan penyajian (Presentation
(32)
Aplikasi
Client
`
Client
`
Server Server
Gambar II.9 Arsitektur Three Tier[8]
a. Data Management Tier
Merupakan komputer server yang dikhususkan untuk
menangani pengolahan basis data.
b. Middle Tier
Merupakan komputer server yang dikhususkan untuk
menangani aplikasi-aplikasi dimana prosedur-prosedur dan perhitungan-perhitungan yang kompleks dilakukan di komputer.
c. Presentation Layer
Merupakan komputer clientyang menjadi interface bagi
pengguna untuk memasukkan data, mengajuan permintaan layanan kepada server dan melihat hasilnya..
3. n-Tier
Istilah n-tier menunjukan lapisan yang ada dalam sebuah aplikasi.
Sebuah aplikasi terdiri dari beberapa komponen utama, yaitu lapisan
Presentation (Presentation Layer), lapisan application (Application Layer)
dan logika bisnis (bussiness logic layer) dan lapisan data (Data
layer).Lapisan Presentation menghubungkan antarmuka dengan pengguna aplikasi, dapat berupa model grafis atau berupa teks. Pengguna dapat
(33)
berinteraksi dengan aplikasi tersebut menggunakan lapisan presentation
ini. Lapisan Application berisi inti dari aplikasi dan lapisan data yang
digunakan oleh aplikasi tersebut. Lapisan data dapat berbentuk satu atau lebih server basis data yang lokasinya tersebar dibeberapa tempat.[4][8]
2.7 Kernel
Kernel yang pada banyak persepsinya disamakan dengan Linux adalah low level code yang berfungsi untuk mengatur interaksi perangkat
keras komputer yang kemudian lebih dikenal dengan istilah kernel sistem operasi. Kernel ini bertugas menyediakan sumber daya yang akan digunakan oleh aplikasi untuk dapat saling berinteraksi, memungkinkan CPU agar dapat digunakan oleh berbagai aplikasi secara bersamaan dan mengatur penggunaan memori.
Kernel kemudian dilengkapi dengan aplikasi yang menyediakan perangkat fungsional sistem operasi. Perangkat fungsional ini menyediakan antar muka perintah berbasis teks yang berfungsi memberikan instruksi kepada kernel agar dapat berinteraksi dengan perangkat keras komputer. Selain itu, kernel juga dilengkapi dengan compiler, sebuah aplikasi yang berfungsi untuk
mengubah kode sumber program menjadi aplikasi binary yang siap
digunakan.
Hingga saat ini, kernel terus dikembangkan agar dapat mengenali dan mengoperasikan berbagai perangkat keras komputer dan elektronik baru yang terus menerus bermunculan. Perkembangan kernel ini kemudian ditandai dengan munculnya versi kernel. Perkembangan kernel terbaru dapat dilihat pada situs http://kernel.org/.
(34)
2.7.1 Monolithic Kernel
Kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh. Kernel monolitik mengintegrasikan banyak fungsi di dalam kernel dan menyediakan lapisan abstraksi perangkat keras secara penuh terhadap perangkat keras yang berada dibawah sistem operasi.
Pendekatan kernel monolitik didefinisikan sebagai sebuah antar muka virtual yang berada pada tingkat tinggi perangkat keras, dengan sekumpulan primitif atau system call untuk mengimplementasikan layananlayanan sistem
operasi, seperti halnya manajemen proses, konkurensi, dan manajemen memori pada modul – modul kernel yang berjalan di dalam mode supervisor.
Meskipun jika setiap modul memiliki layanan operasioperasi tersebut terpisah dari modul utama, integrasi kode yang terjadi di dalam monolitik kernel sangatlah kuat, dan karena semua modul berjalam dalam address space yang
sama, sebuah bug dalam salah satu modul dapat merusak keseluruhan sistem.
Akan tetapi, ketika implementasi dilakukan secara benar, integrasi komponen internal yang sangat kuat tersebut justru mengijinkan fiturfitur yang dimiliki oleh sistem yang berada dibawahnya dieksploitasi secara efektif, sehingga membuat sistem operasi dengan kernel monolitik sangatlah efisien, meskipun sangat sulit membuatnya.
Pada sistem operasi modern yang menggunakan kernel monolitik, seperti halnya GNU/Linux, FreeBSD, Open Solaris, dan Microsft Windows, dapat memuat modul – modul yang dapat dieksekusi pada saat kernel tersebut dijalankan sehingga mengijinkan ekstensi terhadap kemampuan kernel sesuai
(35)
kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang berjalan pada ruangan kernel seminim mungkin.
Gambar II.10 Sruktur Kernel Sistem operasi
Monolitik kernel linux dapat dibuat sangat kecil tidak hanya karena kemampuannya untuk memuat modul secara dinamis tetapi juga karena kemudahan kustomisasi. Bahkan, ada beberapa versi yang cukup kecil yang cocok dengan jumlah besar utilitas dan program lain pada satu floppy disk dan masih
menyediakan sistem operasi yang berfungsi penuh. Kemampuan untuk miniaturize dengan kernel juga mengakibatkan pertumbuhan yang cepat dalam penggunaan GNU/Linux pada embedded system (yaitu, sirkuit komputer dibangun
menjadi produk lain). Selain itu, ukuran kernel yang dikompilasi hanya sebagian kecil dari source code aslinya. Sehingga kernel linux yang terkompilasi
mempunyai kemampuan untuk memuat modul-modul secara dinamis pada saat
(36)
2.8 Sistem Operasi
Sistem operasi merupakan program yang ditulis untuk mengendalikan dan mengkoordinasikan kegiatan dari sistem komputer serta menyediakan program ke pengguna dengan antarmuka yang lebih sederhana dari pada pengguna langsung mengakses hardware atau sumber daya sistem secara langsung.
Sistem operasi adalah bagian yang sangat penting bagi semua sistem komputer, secara umum sistem komputer terbagi atas hardware, sistem operasi, program aplikasi, dan user.
Gambar II.10 Komponen komponen Sistem Operasi[3]
Sistem operasi mempunyai peranan yang sangat penting dalam sistem berbasis komputer. Modern Operating system, ada dua tugas utama sistem
operasi. Kedua tugas tersebut yaitu sistem operasi sebagai extended machine dan
(37)
machine artinya sistem operasi bertugas untuk menyembunyikan kerumitan
hardware dan menyediakan antarmuka yang lebih mudah dipakai pengguna. Sedangkan sistem operasi sebagai resource manager berarti sistem operasi
berfungsi sebagai pengatur sumber daya yang ada di komputer baik itu jaringan, software aplikasi, hardware atau sumber daya lainya.
Sistem operasi dilihat dari metode pengembangannya sendiri bisa dibagi menjadi dua. Pertama adalah sistem operasi dengan metode pengembangan tertutup seperti Windows dimana tidak bisa melihat dan mengubah source code
dari sistem operasi tersebut dan yang kedua adalah sistem operasi open source
dimana pengguna bisa memakai dan melihat kode penyusun dari sistem operasi tersebut. Contoh sistem operasi open source yaitu Linux, Minix dan FreeBSD.
Namun, sistem operasi free yang paling populer untuk saat ini adalah Linux.
Linux bisa berjalan diatas arsitektur prosesor yang berbeda beda, dari super komputer, server, komputer pribadi, handled device sampai embedded sistem.
Untuk memperjelas tentang konsep sistem operasi, berikut adalah diagram yang menunjukan posisi sistem operasi pada sistem berbasis komputer. [3]
(38)
2.9 Linux
Sistem operasi GNU/Linux adalah sebuah sistem operasi yang dibangun dari perpaduan antara kernel Linux yang dibuat oleh Linus Torvalds dan GNU, sebuah sistem yang menyerupai Unix namun terdiri dari berbagai macam program dan komponen sistem operasi yang bersifat terbuka dan bebas yang dikembangkan oleh Free Software Foundation (FSF).
Linux merupakan sistem operasi yang dapat diandalkan, baik sebagai sebuah workstation/desktop maupun sebagai server yang menyediakan berbagai
service dan aplikasi seperti yang dapat dilakukan oleh server berbasis sistem
operasi Microsoft Windows Server, Unix, dan server lainnya. Selain itu di Linux,
semua program (yang berada dibawah lisensi GNU) dapat diperoleh secara cuma-cuma dan legal dengan cara mengunduhnya langsung dari internet. Hampir seluruh perangkat lunak dan berbagai aplikasi yang biasa digunakan pada sistem operasi windows terdapat padanannya pada sistem operasi Linux.
Migrasi dari sistem operasi Microsoft Windows (atau sebagian diantaranya dari Macintosh) ke sistem operasi Linux adalah isu yang menarik dan sering muncul. Berkaitan dengan kemudahan pemakaian, banyak pengguna komputer yang mengalami kesulitan pada saat pertama kali menginstalasi Linux. Selanjutnya, saat instalasi berjalan mulus, pengguna dihadapkan pada prompt
dengan perintah-perintah yang asing untuk dapat membuatnya bekerja. Keadaaan semacam ini tampaknya disadari sepenuhnya oleh para pengembang Linux sehingga kemudian muncul berbagai pengembangan modus grafik pada seluruh proses instalasi dan penggunaannya sehingga para pengguna baru dapat menggunakan dan memahami Linux dengan mudah. [6]
(39)
2.10Distribusi Linux
Distribusi Linux (juga disebut GNU / Linux distribusi oleh beberapa
vendor dan user) adalah anggota dari keluarga Unix seperti distribusi software
yang dibangun di atas kernel Linux. Seperti distribusi (sering disebut singkat untuk distro-distro) yang besar terdiri dari kumpulan perangkat lunak aplikasi seperti pengolah kata, spreadsheet, pemutar media, dan aplikasi database. Sistem operasi akan terdiri dari kernel Linux, dan biasanya, sejumlah perpustakaan dan utilitas dari GNU proyek, dengan dukungan dari grafis X Window System. Distro
dioptimalkan untuk ukuran mungkin tidak berisi X, dan cenderung menggunakan lebih kompak alternatif untuk GNU utilitas seperti busybox, uclibc atau dietlibc.
Saat ini terdapat lebih dari tiga ratus distribusi Linux. Kebanyakan dari mereka yang aktif dalam pembangunan, yang direvisi dan terus ditingkatkan. Karena kebanyakan dari kernel dan paket yang mendukung beberapa kombinasi dari perangkat lunak bebas dan open source, distribusi Linux telah mengambil berbagai bentuk - fitur penuh dari desktop dan server untuk sistem operasi
minimal lingkungan (biasanya untuk digunakan dalam embedded system, atau
untuk booting dari floppy disk). Selain beberapa perangkat lunak kustom (seperti
installers tool dan konfigurasi) yang hanya merujuk kepada distribusi tertentu
assortment aplikasi diinstal di atas satu set perpustakaan disandingkan dengan
versi kernel, antara lain bahwa "out-of-the-box" kemampuan memenuhi sebagian
besar kebutuhan khusus para pengguna yang menginginkan fungsi tertentu. Terdapat juga distibusi Linux juga didukung distribusi komersial, seperti Fedora (Red Hat), openSUSE (Novell), Ubuntu (Canonical Ltd), dan Mandriva Linux dan masyarakat seperti distribusi Debian dan Gentoo, meskipun ada Distro lain yang
(40)
tidak didorong oleh korporasi maupun masyarakat, yang salah satu contohnya adalah Slackware. [6]
2.11 Struktur Direktori
Salah satu perbedaan utama antara sistem operasi Linux dengan DOS ataupun windows adalah sistem file. Linux tidak mengunakan notasi drive yang berbeda untuk membedakan partisi yang terdapat pada hard disk karena semuanya disimpan dalam sebuah direktori utama yang dikenal dengan nama root (/). Linux
mengenali semua partisi yang ada pada sebuah hard disk dengan menempatkan partisi-partisi tersebut kedalam sebuah direktori yang terdapat pada direktori utama.
Keunggulan dari penggunaan metode satu direktori utama ini adalah kemampuannya untuk menciptakan sebuah direktori yang bisa terdiri dari berbagai partisi yang dapat membuat kapasitas penyimpanannya bertambah. Sebagai contoh, jika pada sistem operasi windows kapasitas drive sistem c:\ sudah habis, maka kita tidak dapat menambahkan kapasitas baru dari partisi lain agar kapasitas drive c:\ bertambah, sedangkan pada sistem operasi Linux, jika kapasitas direktori utama root sudah habis, maka kita dapat menambahkan partisi lain cukup dengan menempatkannya pada direktori utama tadi dan secara otomatis maka kapasitasnya pun akan bertambah.
Di dalam direktori utama, terdapat beberapa direktori yang merupakan bagian dari sistem operasi Linux dan memiliki fungsi-fungsi tertentu. Direktori berikut fungsinya tersebut antara lain :
(41)
1. /
Direktori ini adalah direktori utama sistem operasi Linux yang menampung seluruh sub-direktori yang terdapat pada sistem operasi Linux.
2. /bin
Direktori ini berisi program-program utama yang dapat dieksekusi oleh pengguna untuk berinteraksi dengan sistem operasi. Selain itu, direktori ini berisi shell dan juga perintah-perintah sistem file seperti ls, cp, mkdir, dll.
3. /boot
Direktori ini beris program yang digunakan untuk melakukan proses pada saat komputer dinyalakan (booting), program tersebut akan mengaktifkan
kernel Linux yang juga terdapat pada direktori ini. 4. /dev
Pada sistem operasi Linux, semua sistem, berikut dengan konfigurasi dan bahkan juga perangkat kerasnya dikenali kedalam file. Semua perangkat keras seperti serial port, usb, hard disk, dll akan dibuatkan sebuah file
khusus yang berisi informasi perangkat keras dan metode aksesnya. Direktori ini berisi file-file khusus mengenai perangkat keras yang terdapat pada komputer.
5. /etc
Direktori ini berisi seluruh file konfigurasi sistem, mulai dari file konfigurasi tampilan grafis, database pengguna, konfigurasi pada saat komputer dinyalakan dan file konfigurasi lain yang digunakan oleh sistem operasi.
(42)
6. /home
Sistem operasi Linux bersifat multi user sehingga setiap pengguna
diberikan sebuah akses dan direktori kerja masing-masing yang bersifat pribadi dan berbeda antara pengguna yang satu dengan pengguna yang lainnya. Direktori ini berisi direktori-direktori pengguna tersebut. 7. /lib
Direktori ini berisi seluruh pustaka (libraries) yang akan digunakan oleh
sistem operasi. 8. /mnt
Direktori ini berisi akses menuju media penyimpanan data seperti media cakram padat (CD-ROM) ataupun tempat meletakkan partisi-partisi dari media penyimpanan data lain kedalam direktori utama.
9. /opt
Direktori ini berisi program ataupun aplikasi tambahan yang tidak terdapat pada direktori /bin yang akan digunakan oleh pengguna. Biasanya
program/aplikasi tersebut adalah program/aplikasi tambahan (optional).
10./proc
Direktori ini adalah salah satu direktori spesial yang berisi virtual
filesystem yang menyediakan akses menuju informasi kernel seperti jenis prosesor yang digunakan, kecepatan akses memori, dan lain sebagainya. 11./root
Pada sistem operasi Linux, terdapat pengguna yang memiliki hak akses penuh untuk melakukan pengubahan terhadap sistem. Pengguna ini dikenal dengan nama root dan memiliki direktori kerja yang terpisah dari
(43)
pengguna lainnya. Direktori ini merupakan direktori kerja untuk pengguna tersebut.
12./sbin
Direktori ini berisi program-program yang dapat digunakan oleh pengguna
root untuk mengubah konfigurasi sistem operasi. Seluruh file dan program
yang terdapat pada direktori ini tidak dapat digunakan oleh pengguna biasa.
13./tmp
Direktori ini digunakan sebagai media penyimpanan data sementara pada saat proses komputasi berlangsung. Direktori ini dapat digunakan oleh semua pengguna yang terdapat pada sistem operasi.
14./usr
Direktori ini merupakan direktori utama untuk berbagai macam keperluan seperti dokumentasi, kode sumber kernel, modul-modul kernel, dan juga program-program seperti Windows Manager untuk tampilan grafis dan juga program lain yang di install dari kode sumber.
15./var
Direktori ini berisi log dan cache dari seluruh proses komputasi yang
(44)
42
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Seringkali pengadaan infrastruktur komputer terbentur pada masalah optimalisasi penggunaan perangkatnya yang harus menyesuaikan perkembangan teknologi yang diadopsi seperti sistem operasi atau perangkat lunak yang digunakan.
Hal ini disebabkan penggunaan arsitektur yang umumnya mengharuskan kompabilitas semua perangkat yang digunakan. Solusi dari masalah tersebut adalah dengan menerapkan arsitektur thin-client, sehingga tidak semua perangkat
komputer harus di upgrade atau diganti. Hanya perangkat di sisi server saja yang
disesuaikan agar dapar mengadopsi teknologi sistem operasi dan perangkat lunaknya, dalam artian memenuhi kompabilitas yang diinginkan.
Dengan sistem LTSP komputer client tidak diinstal suatu Sistem Operasi.
Semuanya memanfaatkan teknologi kloning, yaitu sebuah Server yang besar
diakses oleh banyak client melalui jaringaan LAN agar merasakan kecepatan yang
hampir sama dengan Server tersebut.
Teknologi ini populer di lingkungan sekolah dan kantor yang memiliki keterbatasan dana dalam pengembangan jaringan komputernya. Peningkatan performa serta fitur dilakukan hanya pada server sehingga dapat menekan biaya
(45)
investasi jangka panjang. Disamping itu sistem yang terpusat telah mengurangi beban pemeliharaan dan penanganan masalah (error handling), sehingga
pengembangan dapat lebih ditekankan pada pengembangan fitur dan performa dari server dan client.
3.2 Analisis Masalah
Linux Terminal Server Project (LTSP) menyediakan suatu cara yang bisa
dipelajari dengan mudah untuk mengoptimalkan komputer jaringan yang murah (low cost workstation) sebagai workstation (client) dengan tampilan grafik
ataupun terminal yang berbasiskan teks dengan memanfaatkan GNU/Linux server. Teknologi yang mirip sistem mainframe ini semakin populer karena dapat
menghemat sumber daya perangkat keras (hardware) tanpa perlu mengurangi
kinerja.
Platform Linux yang kian berkembang dan memasyarakat telah terbukti memberikan banyak solusi alternatif yang mendorong efisiensi, penghematan biaya dan kemudahan kerja. Sifatnya yang open source telah melahirkan berbagai
kombinasi baru di bidang teknologi informasi dan dapat dimanfaatkan oleh siapa saja yang mau memanfaatkannya. Cukup dengan menyediakan satu harddisk,
LTSP dapat menjalankan banyak terminal komputer. Dengan demikian teknologi
lowend PC yang menggunakan LTSP ini dapat mengoptimalkan komputer lama
yang sudah tidak terpakai untuk dapat digunakan kembali dengan mode GUI. LTSP merupakaan penggunaan PC secara bersama - sama oleh dua user/client
(46)
menggunakan harddisk, dan dapat digunakan untuk solusi alternatif jika tidak
menggunakan komputer berkekuatan tinggi.
Dengan diskless system, PC lama bisa digunakan dengan lebih cepat. Hal
ini bisa terjadi karena proses kerjanya sebagai berikut :
1. Sebuah client yang disambungkan ke server tanpa menggunakan sistem
operasi yang tersimpan di harddisk. Sebagai gantinya, menggunakan bootrom
yang terpasang di kartu untuk menghubungkan client ke server.
2. Penggunaan metode diskless computer berbeda dengan metode dump
terminal. Karena pada diskless system, meskipun client menggunakan
resource pada server namun tidak semuanya, karena tetap dibantu oleh
processor dan memori pada client.
3. Tentunya semakin baik client akan membantu kinerja server. Demikian pula
halnya server, semakin tinggi spesifikasi dan optimalnya aplikasi pada server yang digunakan akan semakin baik pula kinerja diskless system.
3.3 Deskripsi Sistem
LTSP adalah kepanjangan dari Linux terminal Server Project yang
dikembangkan oleh James McQuillan (www.ltsp.org). LTSP adalah paket add-on dari linux yang memungkinkan banyak user bekerja pada sebuah komputer. Seluruh aplikasi berjalan pada server dan terminal hanya menangani input dan output.
(47)
SERVER LTSP
CLIENT LTSP 1
CLIENT LTSP 2
CLIENT LTSP 3
APPLIKASI NETWORK SERVICE
LOGON STORE FILES DISPLAY MANAGER
Gambar 3.1 Deskripsi Sistem LTSP
Seperti yang terlihat pada Gambar 3.1, LTSP merupakan sebuah jaringan komputer dimana server memberikan fasilitas identifikasi, sistem operasi,aplikasi, penyimpanan data dan display manager kepada client, sehingga komputer client
dapat memiliki sistem operasi dan aplikasi yang sama dengan servernya. Teknologi yang mirip sistem mainframe ini semakin populer karena dapat
menghemat sumber daya hardware tanpa perlu mengurangi performanya.
Linux Terminal Server Project adalah sebuah aplikasi linux yang mampu menjawab kebutuhan akan sebuah sistem yang murah, free dan powerfull. Dengan membuat sebuah LTSP server, maka semua terminal yang terhubung ke server tidak harus mempunyai harddisk, dan bisa berbagi resource dengan sempurna.
(48)
3.4 Analisis Non Fungsional
3.4.1 Analisis Pengguna
Pengguna Linux Terminal Server Project akan dibuat untuk user yang memiliki karakteristik sebagai berikut :
1. Sebagian besar sudah terbiasa menggunakan komputer
2. Memiliki ketertarikan pada perangkat lunak berbasis kode sumber terbuka dan bebas (open source)
3. Pernah menggunakan sistem operasi Linux ataupun minimal pernah mengetahui sistem operasi Linux
3.4.2 Analisis Perangkat Keras
3.4.2.1 Server
Spesifikasi perangkat keras yang digunakan sebagai komputer server
memiliki spesifikasi sebagai berikut :
1. Prosesor : AMD Turion 2,2 GHz
2. RAM : 2 GB DDR2
3. Ethernet : Realtek Ethernet
4. HDD : SATA 160 Gb
3.4.2.2 Client
Spesifikasi perangkat keras yang digunakan sebagai komputer client
sebagai berikut :
1. Prosesor : Minimal 533 MHz
2. RAM : 128 MB
(49)
3.4.3 Analisis Jaringan Komputer
Dalam pengerjaan skripsi ini, tipe dan arsitektur jaringan yang digunakan adalan LAN berdasarkan jangkauan areanya, kemudian berdasarkan fungsinya digunakan sistem jaringan client server, serta menggunakan Topologi Star.
Tipe ini digunakan karena jaringan dibangun di satu ruangan dengan jangkauan kecil. LAN merupakan salah satu arsitektur jaringan yang paling sederhana dan dapat dikembangkan menjadi arsitektur jaringan yang cukup luas cakupannya. Luas cakupan LAN itu sendiri tidak melebihi dari satu area yang terdiri dari beberapa terminal yang saling dihubungkan, sehingga menambahkan fungsi dari terminal itu sendiri.
Jaringan komputer yang digunakan dalam sistem Linux Terminal Server
Project (LTSP) ini adalah sebagai berikut :
SERVER LTSP / 192.168.1.1
CLIENT LTSP 1 / 192.168.1.2
CLIENT LTSP 2 / 192.168.1.3
CLIENT LTSP 3 / 192.168.1.4
(50)
1. Menggunakan topologi star dengan satu switch.
2. Terdapat satu server LTSP yang melayani 3 client.
3. Server menggunakan IP 192.168.1.1
4. Range IP client mulai 192.168.1.2 sampai 192.168.1.20
Lebih lanjut mengenai jaringan yang akan dipakai untuk server dan client
LTSP dapat dilihat pada tabel berikut : Tabel III.1 Konfigurasi jaringan LTSP
No Jenis Konfigurasi Analisis Konfigurasi
1 Subnet 192.168.1.0
2 Netmask 255.255.255.0
3 Range IP DHCP 192.168.1.2 – 192.168.1.20
4 Root path /opt/ltsp/i386
3.4.4 Analisis Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan pada server adalah sebagai
berikut :
1. Sistem operasi : Ubuntu 10.04 (distro turunan Debian) 2. Ruang Hard disk : 120 GB
3. SWAP : 1Gb
4. Tipe partisi : EXT3
(51)
3.5 Analisis Fungsional
Untuk menjalankan sistem LTSP dibutuhkan beberapa sevice yang harus telah terinstall dan berjalan dengan baik, service – service itu sendiri adalah :
1. DHCP (Dynamic Host Configuration Protocol), adalah layanan yang
secara otomatis memberikan nomor IP kepada komputer yang memintanya. Komputer yang memberikan nomor IP disebut sebagai DHCP server, sedangkan komputer yang meminta nomor IP disebut sebagai DHCP Client. Dengan demikian tidak perlu lagi harus
memberikan nomor IP secara manual pada saat konfigurasi TCP/IP untuk
client LTSP, tapi cukup dengan memberikan referensi kepada DHCP
Server.
2. TFTP (Trivial File Transfer Protocol), memiliki fungsionalitas dasar dari
protokol File Transfer Protocol (FTP). TFTP digunakan untuk melakukan
booting komputer dalam proses LTSP.
3. NBD (Network block device) merupakan sebuah teknik remote data
storage, yang memungkinkan sebuah komputer client untuk dapat
mengakses penyimpanan data (data store) pada LTSP. NBD digunakan seolah-olah terdapat sebuah disk drive sebenarnya pada client.
4. SSH (Secure Shell), protokol jaringan yang memungkinkan pertukaran
data melalui saluran aman antara dua perangkat jaringan. Digunakan untuk login ke mesin remote dalam X11 connections.
(52)
Pada Proses kerjanya, LTSP menggunakan port-port komunikasi untuk
melakukan pertukaran informasi maupun permintaan-permintaan dari client
kepada server. Berikut adalah daftar port-port yang dipergunakan dalam LTSP :
Tabel III.2 Daftar Port pada LTSP
Port Spesifik LTSP
Port Tipe Dekripsi
9100 9102
TCP Printer, dilayani oleh lp_server
9200 TCP ltspinfo – digunakan untuk query informasi dari client
9202 TCP lbuscd – berjalan pada thin client, menunggu koneksi dan pendaftaran session
9210 TCP Port default untuk ltspswapd (NBD Swap Server)
Standard services
67 UDP DHCP (menunggu request DHCP dari clients)
68 UDP DHCP (dhcpd mengirim jawaban kepada client)
69 UDP TFTP (client terhubung ke port 69 pada server untuk mengunduh kernel)
(53)
177 UDP XDMCP (XDM,GDM,KDM)
1067 UDP Port alternatif untuk port DHCP-67
1068 UDP Port alternatif untuk port for DHCP-68
6000 TCP X Protocol menggunakan port ini untuk menghubungkan aplikasi client dengan Xserver
Tahapan atau proses kerja umum dari sebuah linux terminal server project
dapat dilihat pada gambar berikut :
Server LTSP
Boot Room
DHCP
TFTP NBD
NBD File System
NBD File System
File System
File System 3
2
Client LTSP 5
Mac Address
NIC Card
Lts.conf
1
4
Gambar 3.3 Proses kerja umum LTSP
Berikut penjelasan langkah - langkah proses kerja umum LTSP dari gambar diatas :
(54)
1. Pada saat komputer client melakukan booting dari Lancard, Client akan
meminta IP Address dari LTSP Server melalui protokol DHCP (server), DHCP akan membaca file konfigurasi dhcp.conf yang berada pada /etc/ltsp/dhcp.conf.
2. Setelah client mendapatkan IP address dari protocol DHCP, Server
kemudian memuat Linux kernel dari preconfigured Linux Image
(pxelinux.0 atau nbi.img) kedalam BOOT Rom client dengan
menggunakan protokol TFTP (Trivial File Transfer Protokol) yang telah berjalan pada services LTSP Server.
3. Pada saat bersamaan Server akan melakukan mount filesystem baru yang dilakukan oleh protokol NBD (Network File System) khas berada di
/opt/ltsp/i386. Ia tidak dapat menambatkan sistem berkas baru sebagai /.
Pertama−tama harus dimount sebagai /mnt. Kemudian, ia akan melakukan pivot_root. pivot_root akan menukar sistem berkas root sekarang dengan sistem berkas baru. Ketika selesai, sistem berkas NBD akan dimount pada /, dan sistem berkas root lama akan dimount pada/oldroot. dan meload image dari /opt/ltsp/images/i386.img.
4. Server akan membaca file konfigurasi lts.conf, jika pada file lts.conf terdapat konfigurasi sound maka daemon pulseaudio akan dijalankan, untuk mengizinkan client melakukan koneksi ke server dan menjalankan
file audio. Server juga menjalankan service ltspfsd untuk memungkinkan
client menggunakan USB Flash Drive dan meload screen session yang
(55)
5. Client akan membangun saluran SSH (Secure Shell tunnel) untuk
berhubungan ke Server LTSP yang kemudian memulai LDM (LTSP Display Manager) login manager pada client.
3.6 Perancangan Sistem Linux Terminal Server Project (LTSP)
Spesifikasi service dan konfigurasi server LTSP yang akan dibangun
adalah sebagai berikut :
1. Menggunakan Distribusi Linux Ubuntu 10.04 (Lucid Lynx)
Sistem operasi yang akan digunakan pada server LTSP adalah Linux
distribusi Ubuntu 10.04 (Lucid Lynx). Distribusi linux ini digunakan karena merupakan versi LTS (long term support), yang berarti adanya
support waktu sepanjang 3 tahun baik dari segi penyediaan program dan plugin-plugin tambahan yang diperlukan. Repository atau sumber
program untuk linux Ubuntu 10.04 dapat ditemui di situs resmi ubuntu, maupun pada mirror-mirror lokal yang terdapat di Indonesia.
2. Menggunakan kernel versi 3.0
Untuk rilis versi 3.0 ini merupakan “loncatan” dari versi sebelumnya
yaitu versi 2.6.39 tidak dimaksudkan sebagai suatu perubahan fitur yang mendasar. Fitur terpenting yang diikutkan disamping perampingan penomoran menjadi Linux 3.0, antara lain adalah termasuk: Btrfs Data scrubbing dan defragmentasi otomatis, dukungan
(56)
XEN Dom0, ICMP_ECHO biasa, wake on WLAN, penyaringan Berkeley Packet Filter JIT, syscall yang memungkinkan penanganan lebih baik dari sistem virtualisasi ringan seperti kontainer. Dukungan hardware baru telah ditambahkan: misalnya, Microsoft Kinect, AMD Fusion Llano APUS, Intel iwlwifi 105 dan 135, Intel C600 serial-attached-scsi controller, Ralink RT5370 USB, beberapa perangkat Realtek RTL81xx atau Apple iSight webcam.
3. Menggunakan LTSP-Server-Standalone
Terdapat dua opsi untuk instalasi LTSP pada linux distribusi Ubuntu, yaitu ltsp-server dan ltsp-server-standalone. Perbedaan dari kedua
paket tersebut adalah kelengkapan service dan environment
pendukungnya. Ltsp-server-standalone digunakan karena merupakan
paket LTSP server yang lengkap dan memiliki environment dan
program-program pendukung yang lengkap untuk linux terminal
server project (LTSP) yang akan dibangun.
4. Melakukan modifikasi pada chroot
Modifikasi pada chroot akan dilakukan dengan cara melakukan
kombinasi penggunaan environment chroot yang digunakan pada
sistem linux terminal server project (LTSP). Kombinasi tersebut
adalah dengan menggunakan server dengan paket LTSP linux
distribusi Ubuntu 10.04 dan dilakukan setelah server LTSP terinstall
(57)
top yang akan memberikan informasi yang dibutuhkan mengenai
kinerja prosessor dan memori pada saat linux terminal server project
(LTSP) bekerja.
5. Melakukan konfigurasi pada file /etc/ltsp/dhcpd.conf
Konfigurasi yang dilakukan pada file ini adalah setting pada range DHCP, root path, serta next server yang akan digunakan pada client
linux terminal server project (LTSP).
6. Efisiensi sistem LTSP agar kinerja client dan server semakin optimal,
salah satunya dengan menggunakan dengan menggunakan localapps .
Parameter lain yang digunakan adalah adanya pembedaan hak akses dari setiap user untuk pengaksesan program pada LTSP, artinya dapat dilakukan
pengaturan hak akses program yang digunakan pada setiap user. Pengaturan
tersebut dilakukan pada server dengan perintah chmod.
Sistem LTSP yang akan dibangun akan terdiri dari satu buah server dan
tiga buah client yang akan dihubungkan dengan satu hub dan menggunakan
topologi star. Aplikasi yang akan dijalankan oleh client akan terdiri dari tiga
aplikasi yaitu :
1. Open Office 2. GIMP 3. Firefox
(58)
3.6.1 Perancangan paket kernel versi 3.0 untuk server LTSP
Persiapan sebelum melakukan pembangunan dan instalasi paket kernel dengan metode manual, dilakukan dalam mode user root, yaitu login sebagai root
dan mempersiapkan mesin untuk mengkompilasi kernel versi 3.0 semua dilakukan di Terminal. Paket-paket yang dibutuhkan diantaranya :
1. Paket kernel-package, digunakan sebagai paket kernel yang akan menjadi pedoman saat akan melakukan pengkonfigurasian kernel
source, sebelum kernel source akan di kompilasi sesuai dengan kebutuhan dan menyediakan kemampuan untuk membuat paket
kernel-image debian.
2. Paket gcc (GNU Compiler Collection), yakni program untuk
mengkompilasi source code C. Kernel Linux sendiri ditulis untuk dapat dikompilasi oleh GCC, sehingga paket ini dibutuhkan untuk mengkompilasi paket kernel.
3. Paket libncurses5-dev, digunakan agar saat melakukan kompilsai
pada kernel source dapat menampilkan modus grafik (GUI) dari
kernel source yang akan dikompilasi sehingga memudahkan dalam
melakukan kompilasi kernel linux.
4. Paket fakeroot, berfungsi untuk menyamarkan user yang akan
digunakan, seolah olah menjadi user root.
5. Paket wget dan bzip2, aplikasi download manager yang ada pada
(59)
default dari linux. Sedangkan paket bzip2 digunakan untuk
mengekstrak atau menguraikan file terkompresi berbentuk tar.gz2
dan sama seperti wget, paket ini sudah terinstal secara default.
Untuk menginstal dependensi dari paket-paket yang dibutuhkan diatas, jalankan perintah berikut dalam terminal dan ketik password untuk user, ketika diminta:
$ sudo apt-get install gcc
$ sudo apt-get install libncurses5-dev $ sudo apt-get install wget bzip2
3.6.2 Perancangan Server Linux Terminal Server Project (LTSP)
Gambar dari perancangan sistem LTSP yang akan dibangun dapat dilihat pada gambar di bawah ini :
(60)
Client 1 / 192.168.1.2
Client 2 / 192.168.1.3
Client 3 / 192.168.1.4
Install LTSP Server dan Client Software
Membangun dan konfigurasi LTSP Server dan Client
Start service : DHCP, TFTP, Portmapper, XDMCP
Server LTSP / 192.168.1.1
Gambar 3.4 Rancangan sistem LTSP
Flowchart atau diagram alir dari proses Linux Terminal Server Project
(61)
START
Server DHCP ON
DHCP dan TFTP Request dari
Client
Sukses
Client mendapat
IP adress DHCP
Client Memuat kernel dan melakukan inisialisasi hardware
Inisialisasi NFS dari Client ke Chroot server
Server memberi environment chroot ke client
Client mendapat environment
chroot
Client meminta service XDMCP
Sukses
Client mendapat session
Finish Ya
Ya Tidak
Tidak
(62)
Penjelasan dari flowchart diatas adalah sebagai berikut :
1. Muat kernel linux ke dalam memori komputer kerja. Langkah ini dapat
dilakukan dengan menggunakan PXE bootrom.
2. Setelah kernel dimuat ke memori, ia akan mulai mengeksekusi.
3. Kernel akan menginisialisasi keseluruhan sistem dan semua periferal yang
dikenalinya.
4. Selama proses pemuatan kernel, citra ramdisk juga akan dimuat ke dalam
memori. Argumen baris perintah kernel root=/dev/ram0 memberitahu
kernel untuk menambatkan citra tersebut sebagai direktori root.
5. Secara normal, jika kernel selesai melakukan boot, ia akan meluncurkan
program init. Namun, dalam kasus ini, telah di instruksikan kernel untuk
memuat skrip shell kecil sebagai gantinya. Hal ini dilakukan ini dengan
melewatkan init=/linuxrc pada perintah baris kernel.
6. Skrip /linuxrc dimulai dengan memindai bus PCI, mencari kartu jaringan,
Untuk tiap peranti PCI yang ditemukannya, skrip akan dicari di berkas /etc/niclist, untuk melihat apakah ditemukan yang bersesuaian. Setelah yang ditemukan sesuai, nama modul driver NIC dikembalikan, dan modul
kernel itu akan dimuat. Untuk kartu ISA, modul driver harus ditetapkan pada baris perintah kernel, bersama dengan IRQ atau parameter−parameter
alamat yang mungkin diperlukan.
7. Sebuah client DHCP kecil yang disebut dhclient kemudian akan
dijalankan untuk membuat permintaan dari server DHCP. Hal ini perlu
(1)
DAFTAR PUSTAKA
[1] Raharjo,Suwanto. (2004), Teori, Analisa, dan Implementasi Jaringan Tanpa Disk ,pada GNU/Linux, Andi, Yogyakarta.
[2] Hartono, Jogiyanto. (2004). Pengenalan Komputer: Dasar Ilmu Komputer, Pemrograman, Sistem Informasi, dan Intelegensi Buatan, Andi, Yogyakarta
[3] Kusumadewi, Sri. (2002). Sistem Operasi, Graha Ilmu, Yogyakarta.
[4] Purbo, Onno W. (2006). PC Cloning Windows Pakai Linux LTSP, Andi, Yogyakarta. [5] Noprianto. (2004), Teknologi Tepat Guna Dengan Linux, Infolinux, Jakarta
[6] Handaya, Wilfridus B.T., Suteja, Bernard R., & Ashari, Ahmad. (2008). Linux System Administrator, Informatika, Bandung.
[7] Sofana, Iwan. (2006), Membangun Jaringan Komputer (Membuat Jaringan Komputer (Wire dan Wireless)) Untuk Pengguna Windows dan Linux, Informatika, Bandung. [8] Oetomo, Budi Sutedja Dharma. (2009), Client server dan Sistem Terdistribusi, Andi,
Yogyakarta.
[9] http://wiki.ltsp.org/twiki/bin/view/Ltsp/Documentation, di akses September 2011 [10] https://help.ubuntu.com/community/UbuntuLTSP, di akses September 2011. [11] http://www.sanitarium.net/golug/netboot.html, diakses Oktober 2011. [12] http://id.wikipedia.org/wiki/Kernel_(ilmu_komputer), diakses Oktober 2011
(2)
iii
KATA PENGANTAR
Segala puji dan syukur penulis panjatkan kehadirat Allah SWT, atas berkat rakhmat serta karunia-Nya, sehingga dapat terselesaikannya skripsi ini yang berjudul “PENGEMBANGAN DAN ANALISA SISTEM DISKLESS
BERBASIS UBUNTU 10.04 MENGGUNAKAN LINUX TERMINAL SERVER PROJECT (LTSP)”.
Laporan ini disusun sebagai salah satu syarat kelulusan mata kuliah Tugas Akhir pada Program Strata 1 Jurusan Teknik Informatika. Keterbatasan pengetahuan, pengalaman dan kemampuan serta kendala – kendala yang mengiringi membuat penulisan laporan tugas akhir ini jauh dari sempurna, namun berkat bimbingan, dukungan serta doa dari berbagai pihak menjadikan penulisan laporan ini dapat terselesaikan dengan baik.
Dengan hati ikhlas, penulis haturkan rasa syukur dan terima kasih serta penghargaan yang tidak terhingga sedalam-dalamnya kepada :
1. Allah SWT, yang telah memberikan segala nikmat yang tak terhingga, terutama nikmat kesehatan.
2. Kedua orang tua, Bapak Sanusi dan Ibu Nimah atas semua do’a dan dukungan selama ini. “Mohon maaf apabila anakmu ini pernah mengecewakan”, semoga perlindungan, keselamatan, kasih sayang serta Ridho Allah SWT selalu menyertai kita.
(3)
3. Rahadian Alfiah Malik, yang selalu memotivasi agar tetap optimis dalam mengerjakan Tugas Akhir ini. Terima kasih atas semua, kasih sayang, pengertian, perhatian dan kesabarannya, you’re always be my love .
4. Bapak Andri Heryandi,S.T selaku Dosen Wali.
5. Bapak Irawan Afrianto, S.T M.T., selaku Pembimbing yang senantiasa membimbing dan terima kasih atas saran – sarannya dari awal pembuatan sampai selesainya laporan tugas akhir ini.
6. Bapak Iskandar Ikbal S.T., M.Kom., dan ibu Nelly Indriani W, S.Si., M.T. selaku penguji.
7. Ibu Mira Kania Sabariah, S.T., M.T. selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia Bandung.
8. Seluruh staff dosen Jurusan Teknik Informatika, terima kasih atas ilmu yang telah diberikan.
9. Staff Jurusan Teknik Informatika, kang Hendar, Santi dan Teh Hanny, hatur nuhun ka sadayana.
10.Keluarga Gunung Batu dan Cirebon yang selalu mendukung dan mendoa’kan penulis.
11.Muhammad Aditya Prima, terima kasih adikku sudah mau meminjamkan laptopnya.
(4)
v
12.Teman – teman di PT. Laju Paramitra dan PT. Garuda Games, terutama untuk Bapak Yadhi dan Bapak Pramulyana selaku manager di tempat penulis bekerja, terima kasih atas dukungannya.
13.Teman – teman seperjuangan skripsi, terima kasih atas dorongan semangatnya. Semoga dimudahkan dalam mencapai semua cita – citanya.
14.Teman- teman IF-17K angkatan 2007, terima kasih atas dorongan semangatnya.
15.Semua pihak yang tidak dapat penulis sebutkan satu per satu yang telah memberikan bantuan dan dorongan dalam penyusunan laporan ini.
Tiada kata yang pantas saya ucapkan selain kata terima kasih kepada semua pihak yang telah membantu sehingga laporan ini bisa terselesaikan dengan baik. Mudah-mudahan amal baik mereka diterima oleh Allah SWT, Amin Yaa robbal Alamiin.
Bandung, Maret 2012
(5)
(6)