BAB II LANDASAN TEORI
2.1 SISTEM OPERASI Sistem operasi adalah penghubung antara pengguna dan perangkat keras komputer. Fungsi sistem operasi ialah menyediakan lingkungan layanan bagi pengguna untuk menjalankan program dengan nyaman dan efisien. (Abraham Silverschatz, Galvin, Gagne, 2012) Berikut adalah konsep yang menggambarkan level sistem operasi bekerja :
Gambar 1 Konsep Sistem Operasi Sumber: http://stackoverflow.com/questions/11579669/what-operating-system-concepts-should-everyprogrammer-be-aware-of
Ada beberapa fungsi utama yang menjadi tanggung jawab sistem operasi, yaitu : 1. Manajemen proses, 2. Manajemen memori, 3. Manajemen sistem berkas, dan 4. Manajemen masukan/keluaran.
6
http://digilib.mercubuana.ac.id/
2.1.1 Manajemen Proses Proses didefinisikan sebagai program yang sedang dieksekusi. Menurut Silberschatz proses tidak hanya sekedar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. 2.1.2 Manajemen Memori Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang ada pada program counter. Instruksi memerlukan proses memasukkan/menyimpan ke alamat di memori. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Pada bagian ini kita akan membahas berbagai cara untuk mengatur memori. Algoritma untuk manajemen memori ini bervariasi dari yang menggunakan pendekatan primitif pada mesin sampai pemberian halaman dan strategi segmentasi. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu. 2.1.3 Manajemen Sistem Berkas Berkas adalah kumpulan informasi yang berhubungan, sesuai dengan tujuan pembuat berkas tersebut. Umumnya berkas merepresentasikan program dan data. Berkas dapat mempunyai struktur yang bersifat hirarkis (direktori, volume, dll.). Sistem operasi mengimplementasikan konsep abstrak dari berkas dengan mengatur media penyimpanan massa, misalnya tapes dan disk. Sistem operasi bertanggung-jawab dalam aktivitas yang berhubungan dengan manajemen berkas:
Pembuatan dan penghapusan berkas.
Pembuatan dan penghapusan direktori.
Mendukung manipulasi berkas dan direktori.
Memetakan berkas ke media penyimpanan sekunder.
7
http://digilib.mercubuana.ac.id/
Melakukan backup berkas ke media penyimpanan yang permanen (nonvolatile).
2.1.4 Manajemen Masukan/Keluaran Sistem ini sering disebut dengan device manager. Menyediakan device driver yang umum sehingga operasi Masukan/Keluaran dapat seragam (membuka, membaca, menulis, menutup). Komponen Sistem Operasi untuk sistem Masukan/Keluaran:
Penyangga
:
menampung
sementara
data
dari/ke
perangkat
Masukan/Keluaran.
Spooling : melakukan penjadwalan pemakaian Masukan/Keluaran sistem supaya lebih efisien.
Menyediakan driver: untuk dapat melakukan operasi rinci untuk perangkat keras Masukan/Keluaran tertentu.
Secara garis besar keempat aspek manajemen itulah yang merupakan tanggung jawab dari sebuah sistem operasi komputer. (Silverschatz dkk, 2012). 2.2 LINUX Linux dalam istilah sederhana, sebuah sistem operasi. Linux adalah perangkat lunak pada komputer yang memungkinkan aplikasi dan pengguna komputer untuk mengakses perangkat pada komputer untuk melakukan fungsi yang diinginkan. Sistem operasi menyampaikan instruksi dari aplikasi, misalnya, prosesor komputer. Prosesor melakukan tugas yang diperintahkan, kemudian mengirimkan kembali hasilnya ke aplikasi melalui sistem operasi. Linux sama seperti Windows dan OS X, sebuah sistem operasi komputer. Dalam perkembangannya saat ini linux sudah banyak digunakan dalam komputasi seperti di Bursa Efek New York, perangkat ponsel dan super komputer. (Linux foundation). Linux diciptakan oleh Linux Torvalds pada tanggal 25 Agustus 1991. Sebagai sistem operasi yang bersifat kode terbuka. Linux memiliki filosofi sebagai berikut :
8
http://digilib.mercubuana.ac.id/
Bebas untuk menggunakan program untuk tujuan apapun
Bebas untuk mempelajari konsep bekerja program dan melakukan perubahan kode sesuai yang kita inginkan
Bebas untuk mendistribusikan program, sehingga dapat membantu orang lain
Bebas untuk mendistribusikan program yang telah kita ubah versinya kepada orang lain.
Linux menjadi pilihan banyak orang karena sifatnya yang gratis dan kode terbuka. Gratis berarti kita tidak perlu mengeluarkan biaya untuk membelinya dan membayar lisensi pemakaian. Bersifat kode terbuka mengizinkan pengguna untuk mempelajarinya, dan melakukan modifikasi sesuai dengan kebutuhan. Selain itu, linux cukup stabil ketika digunakan dalam sistem operasi server. Dengan sifatnya yang terbuka, hal ini membuat banyak orang/komunitas melakukan modifikasi terhadap kernel linux. Alhasil banyak berkembang distribusi linux di dunia. Modifikasi yang dilakukan bermacam-macam sesuai dengan keinginan dari masing-masing pengembang. Berikut adalah beberapa varian distribusi linux yang berkembang saat ini :
Ubuntu Linux
Linux Mint
Debian
Fedora
OpenSUSE
Saat ini sudah berkembang juga versi komersil dari linux. Seperti Redhat Enterprise Linux dan SUSE Linux. Keduanya menghadirkan versi komersil untuk dukungan pengembangan, pembaharuan sistem serta dukungan teknis. Hal ini menjadi pilihan tersendiri bagi pengguna bisnis. Para pebisnis tentunya menginginkan bahwa ketika mereka mengadopsi linux untuk penggunaan komputer baik untuk keperluan desktop dan server mendapatkan dukungan penuh sehingga mampu menyelesaikan kemungkinan permasalahan yang terjadi. Dengan
9
http://digilib.mercubuana.ac.id/
demikian jaminan kepastian bisnis tetap terjaga dalam kondisi apapun dan kapanpun. 2.3 LINUX DEBIAN Linux Debian merupakan salah satu varian dari sistem operasi open source berbasis linux. Debian dihasilkan dari Debian Project yang merupakan kumpulan pengembang-pengambang perangkat lunak yang bergabung dalam satu komunitas. Mereka mengembangkan sistem operasi bersifat open source (kode terbuka) yang dapat digunakan oleh siapapun baik perorangan maupun organisasi. Nama Debian merupakan gabungan dari nama Debra Lynn dan Ian Murdock, menjadi Debian. Debian pertama kali rilis pada tanggal 16 Agustus tahun 1993. Rilis tersebut saat Ian Murdock menjadi pemimpin pertama dari Debian Project. Sampai pada tahun 2016, versi terakhir Debian yaitu 8 yang dapat diunduh secara langsung di website resmi debian atau dari server-server mirror yang bekerjasama dengan Debian Project.
Gambar 2 Logo Debian
Debian setidaknya memiliki tiga versi rilis dalam setiap proyek pemeliharaan, yaitu :
Stable Versi ini merupakan versi yang didukung penuh oleh debian untuk pembaruan dan pengembangan sistem.
Testing Versi ini berisikan paket-paket program dalam masa pengujian dan akan menjadi versi stable jika dianggap stabil.
10
http://digilib.mercubuana.ac.id/
Unstable Berisikan versi yang hanya dalam tahap pengembangan oleh para pengembang internal debian.
Sejak pertama kali rilis pada tahun 1993, saat ini versi stabil Debian ialah versi 8 (Jessie).
Gambar 3 Debian Release Timeline
2.4 SERVER Menurut O’brien (2011:190) lebih spesifik menyatakan bahwa, “Server adalah komputer yang mendukung aplikasi dan telekomunikasi dalam jaringan, serta pembagian peralatan software, dan database di antara berbagai terminal kerja dalam jaringan. Sebuah klien akan mengirimkan sebuah permintaan (request) ke server dan selanjutnya server akan memproses permintaan tersebut. Setelah server selesai memproses permintaan, maka akan mengirimkan balik hasilnya ke klien. Hal ini berlaku bagi setiap klien yang mengirimkan permintaan ke server. Server harus memiliki spesifikasi yang lebih tinggi dari klien. Hal ini dikarenakan server akan melayani semua permintaan dari semua kliennya. Spesifikasi yang tinggi meliputi cpu, memori, pita jaringan (bandwith) dan media
11
http://digilib.mercubuana.ac.id/
penyimpanan (storage). Dengan spesifikasi tersebut diharapkan server dapat melayani permintaan-permintaan dari klien dengan baik dan cepat. Sebuah server umumnya hanya melayani dan memproses sebuah layanan. Layanan yang ditangani dapat berupa permintaan halaman web, file sharing, dan lain sebagainya. Pembagian fungsi layanan ini disesuaikan dengan kebutuhan dan infrastruktur yang ada. Namun tidak memungkiri jika sebuah server dapat melayani beberapa layanan sekaligus dalam satu perangkat keras. Pada umumnya hal ini dikonfigurasi pada server yang memiliki beban kerja minimal. Ada beberapa macam server berdasarkan fungsi yang dilayaninya : 1. Fax Server Fax server berfungsi untuk melayani permintaan fax bagi klien. Setiap pengiriman fax yang dilakukan oleh klien akan melalui server ini terlebih dahulu. Untuk selanjutnya Fax Server yang akan memproses dan mengirimkan fax ke tujuan. 2. FTP Server FTP singkatan dari File Transfer Protocol. Sebuah protokol jaringan yang berfungsi untuk melayani permintaan pertukaran file khususnya. FTP Client akan mengambil file-file yang ditempatkan di FTP Server untuk disimpan ke lokal. 3. Mail Server Mail server berfungsi untuk melayani kebutuhan surat menyurat secara elektronik (email). Sebelum server melayani kebutuhan ini, harus dikonfigurasi sebuah domain (nama) untuk identitas email nantinya seperti domain test.com. Setiap pengguna yang dibuat akan menjadi anak domain dengan awalan simbol @ (at), misal
[email protected]. 4. Database Server Database server berfungsi sebagai penyedia dan pengelola basis data. Semua yang berhubungan dengan basis data akan dilayani oleh server ini. 5. Proxy Server Akses internet yang dimiliki oleh organisasi/instansi tentunya akan dibagikan kepada semua user yang berada dalam organisasi/instansi 12
http://digilib.mercubuana.ac.id/
tersebut. Hal ini merupakan fungsi dari proxy server yang akan meneruskan permintaan akses internet dari dan ke klien. 6. Web Server Web server berfungsi untuk melayani permintaan halaman web terhadap suatu alamat internet. Klien akan mengirimkan permintaan akses halaman web ke server dan server akan mengirimkan halaman yang diminta oleh klien. 7. File Server Server ini berfungsi sebagai media penyimpanan data pengguna. Pada umumnya data yang disimpan di server ini akan diakses oleh banyak pengguna (sharing). Dengan adanya server ini, penyimpanan menjadi terpusat untuk data-data yang bersifat publik akses. 8. DNS Server Domain Name Server (DNS) berfungsi untuk mentranslasi sebuah IP Address menjadi sebuah nama. Misalkan sebuah laman memiliki IP Address 1.1.1.1 dan akan ditranslasikan menjadi sebuah nama misal test.com. Pengguna lebih mudah mengingat nama bila dibandingkan angka. Karena itulah dibutuhkan sebuah DNS Server untuk memudahkan operasional dari sebuah server dijaringan. 9. DHCP Server Dynamic
Host
Configuration
Protocol
(DHCP)
berfungsi
untuk
memberikan alamat IP Address kepada sebuah klien secara dinamis. Pengguna tidak perlu mengeset sendiri IP Address miliknya, namun sebaliknya IP Address akan dialokasian oleh server ini. 2.5 BACKUP Backup dilakukan dengan menyalin suatu data ke media penyimpanan lain dan menyalin balik ketika pada waktu tertentu. Data tersebut bisa berupa file dokumen, gambar, video, audio, sistem operasi, atau software/program tertentu. (Joel Berman, 2016).
13
http://digilib.mercubuana.ac.id/
Backup menjamin data yang kita miliki tetap ada dalam kondisi apapun dengan melakukan restorasi. Banyak hal yang dapat terjadi terhadap sebuah data seperti kerusakan, kehilangan, dan pencurian. Kerusakan perangkat keras media penyimpanan secara langsung akan berdampak pula pada data yang disimpan didalamnya. Dampaknya bisa berupa kerusakan dan kehilangan data sebagian atau seluruhnya. Dalam hal pencurian, faktor keamanan sistem menjadi pemicu utama data dapat dicuri oleh orang yang tidak bertanggung jawab. Pada umumnya data disimpan disebuah hardisk. Data utama secara struktur disimpan didalamnya. Backup menyalin data utama tersebut ke media penyimpanan lain yang dapat berupa hardisk, optikal disk (cd/dvd), tape, flash disk. Mode backup yang dilakukan dapat dikategorikan menjadi 3: 1. Full Mode backup ini menyalin seluruh data utama ke media penyimpanan lain. Mode ini pada umumnya dilakukan pada saat prose backup pertama kali dilakukan. 2. Differential Mode differential menyalin perbedaan/perubahan pada saaat data utama dibackup terakhir kali di full backup dengan data utama yang ada saat ini. Restorasi hasil backup ini memerlukan full backup terakhir dan backup dari differential itu sendiri. 3. Incremental Proses backup ini hanya menyalin perbedaan data diantara data saat ini dengan full/differential backup terakhir. Pada saat ini teknologi backup sudah sangat berkembang dengan pesat. Dahulu kala backup bisa dilakukan hanya dengan menyalin data utama yang statis ke media lain. Namun saat ini data yang dibackup sudah dapat berupa backup sistem operasi, file sistem, program/aplikasi baik dalam teknologi server fisik, virtual, maupun awan.
14
http://digilib.mercubuana.ac.id/
2.6 RSYNC Rsync adalah tool untuk transfer dan sinkronisasi file atau tree (struktur direktori dan file) secara satu arah, baik transfer lokal (di sistem yang sama) maupun remote (jaringan/internet). Rsync merupakan tools yang powerful karena bisa bertindak sebagai server sekaligus sebagai klien. Rsync diciptakan oleh Andrew Tridgell dan Paul Mackerras pada tanggal 19 Juni 1996. Andrew Tridgell membahas mengenai desain, implementasi dan performa rsync pada bab 3 sampai bab 5 dalam tesisnya tahun 1999. Rsync menjadi paket standar dalam distribusi linux saat ini karena fleksibilitas, kecepatan dan adaptasi perintahnya. Ada beberapa kelebihan yang dimiliki oleh rsync, diantaranya yaitu : 1. Fleksibel Rsync bersifat fleksibel memungkinkan kita melakukan salinan data secara rekursif pada sebuah direktori beserta seluruh isinya. Rsync juga memiliki kemampuan resume ketika prosesnya dihentikan sementara, sehingga ketika menjalankan kembali tidak perlu kembali pada proses awal sekali. 2. Ringan Rsync merupakan tool kecil yang sangat ringan ketika dijalankan oleh komputer. Ada beberapa istilah yang perlu pahami dalam rsync, diantaranya :
Client
: klien yang menginisialisasi sinkronisaasi
Server
: Proses remote rsycn yang dikoneksikan dengan klien.
Daemon
: Proses rsync yang berjalan di server, menunggu koneksi
yang datang dari klien. Dikenal pula dengan istilah service
Remote Shell : satu/beberapa proses yang menyediakan konektivitas antara server dan klien
Sender Receiver
: server yang menjadi sumber data : server yang menjadi tujuan penerimaan data
15
http://digilib.mercubuana.ac.id/
Generator
: proses yang menggenerasi identitas perubahan data dan
mengatur data secara logikal Ketika sebuah proses rsync berjalan di klien dan terkoneksi dengan server, maka secara logic terbentuk sebuah pipa atau socket jaringan. Melalui pipa/socket jaringan inilah proses sinkronisasi akan berjalan. Rsync mendeskripsikan sebuah file tidak hanya berupa alamat/lokasi di media penyimpanan saja. Namun algoritmanya mendeskripsikan pula kepemilikan, mode, pengaksesan, ukuran dan perubahan waktu. Sebuah desain protokol komunikasi yang baik, memiliki karakteristik sebagai berikut :
Setiap paket data yang dikirimkan selalu terdefinisi dengan sebuah header.
Paket header berisikan tipe dana tau perintah tertentu.
Setiap paket terdefinisikan dengan baik panjangnya.
2.7 CRON Cron merupakan tool yang dapat digunakan untuk menjalankan perintah secara otomatis dan berulang. Setiap distribusi linux secara mendasar sudah menyediakan paket cron. Jadwal eksekusi perintah dapat dilakukan oleh cron berdasarkan satuan waktu tertentu. Paket bawaan cron sudah menyediakan beberapa pilihan , diantaranya perintah setiap jam, hari, minggu, dan juga bulan. Terlepas dari pilihan tersebut, kita dapat membuat sendiri/kostumisasi perintah sesuai kebutuhan yang ada. Crontab adalah sebuah teks simpel yang berisikan daftar baris perintah yang akan dijalankan pada waktu tertentu. Crontab dapat dilakukan perubahan dengan utilitas teks. Setiap baris perintah yang ada di crontab, dikontrol penuh oleh servis cron. Dalam hal ini proses cron akan menjalankannya di balik layar (background). Setiap pengguna (user) di dalam sistem operasi linux memiliki file crontab masing-masing. Hal ini untuk memisahkan identitas proses yang akan berjalan
16
http://digilib.mercubuana.ac.id/
nantinya. Dengan adanya pemisahan ini, maka dapat dikenali pengguna mana yang sedang menjalankan cron. Selain itu terdapat level tertinggi dari proses cron yang dijalankan oleh akun root. Akun ini berfungsi untuk menjalankan administrasi proses cron. Kita dapat mengkonfigurasi hak akses pengguna yang diperbolehkan untuk menjalankan proses cron. Pembatasan ini dilakukan untuk memudahkan administrator dalam operasional server. Cron memiliki special string yang sudah tersedia, seperti berikut : String
Keterangan
@reboot
Dijalankan sekali, saat sistem dinyalakan
@yearly
Dijalankan setiap tahun
@annually
Dijalankan setiap tahun, sama seperti @yearly
@monthly
Dijalankan setiap bulan
@weekly
Dijalankan setiap minggu
@daily
Dijalankan setiap hari
@midnight
Dijalankan setiap hari, tengah malam
@hourly
Dijalankan setiap jam Tabel 1 String Cron
Dengan special string di atas, kita dapat menyingkat baris perintah. Semakin sederhana kita mendefinisikannya, maka semakin mudah pula orang lain dapat mengerti. Setiap proses cron yang berjalan, akan menghasilkan tercatat di log file. Di dalam log file akan diinformasikan mengenai status cron yang kita jalankan. Apakah
berhasil atau gagal.
2.8 SSH SSH (Secure Shell) adalah seperangkat alat komunikasi jaringan yang secara kolektif berdasarkan protokol/standar terbuka yang dipandu oleh Internet Engineering Task Force (IETF). (Wale Soyinka, 2012). Komunikasi jaringan pada awalnya bersifat Cleartext, berarti data tidak dilakukan enkripsi dijaringan. Hal ini tentunya sangat beresiko karena ketika seseorang mengirimkan akun dan sandi untuk memasuki suatu sistem, maka orang 17
http://digilib.mercubuana.ac.id/
lain dapat melakukan packet sniffing. Dengan melakukan hal tersebut tentunya informasi akun dan sandi sudah didapatkan oleh orang yang melakukannya. Dengan demikian orang lain dapat memasuki sistem yang kita miliki. Banyak hal yang akan terjadi jika celah keamanan tersebut berhasil ditembus. SSH menjadi solusi untuk menjawab celah keamanan tersebut. Komunikasi yang dilakukan antara dua buah sistem akan dilakukan enkripsi. Jika ada orang lain yang melakukan sniffing, ia masih dapat melihat paket yang sudah dibungkus. Namun perlu melakukan ekstra usaha untuk mendekripnya. SSH bergantung kepada sebuah teknologi yang dinamakan kriftografi. Prinsip kerja kriptograsi ini terdiri dari 2 kunci, publik dan privat. Masing-masing kunci bersifat unik. Kunci publik dapat kita sebarluaskan untuk orang lain, sedangkan kunci privat bersifat rahasia dan harus disimpan dengan baik. Berikut analogi cara kerja ssh yang dilakukan oleh 2 buah sistem/pengguna ( Alice dan Bob) :
Gambar 4 Cara Kerja SSH Sumber ((Wale Soyinka, Linux Administration A Beginner's Guide, Sixth Edition 2012).
18
http://digilib.mercubuana.ac.id/