2. Apa itu linux ?
Linux atau GNU/Linux adalah sistem operasi bebas yang sangat
populer untuk computer, Istilah Linux atau GNU/Linux (GNU) juga
digunakan sebagai rujukan kepada keseluruhan distro Linux (Linux
distribution), yang di dalamnya disertakan program-program lain
pendukung sistem operasi.
Linux ini disebarkan secara luas dengan gratis di bawah lisensi GNU
General Publi License (GPL), yang berarti source code Linux juga
tersedia bagi publik. Linux dikembangkan oleh perorangan maupun
kelompok yang bekerja secara sukarela.
3. Sejarah Linux
Pengembangan Linux pertama kali dilakukan oleh Linus Benedict
Torvalds pada tahun 1991 di Universitas Helsinki, Finlandia. Kemudian
Linux dikembangkan lagi dengan bantuan dari banyak programmer dan
pakar UNIX di Internet
4. Kelebihan dan kekurangan linux
Kelebihan
Linux merupakan sistem operasi bebas dan terbuka. Sehingga dapat
dikatakan, tidak terdapat biaya lisensi untuk membeli atau
menggunakan Linux.
Hampir semua aplikasi yang terdapat di Windows, telah terdapat
alternatifnya di Linux.
Keamanan yang lebih unggul daripada Windows.
Linux relatif stabil. Komputer yang dijalankan di atas sistem operasi
UNIX sangat dikenal stabil berjalan tanpa henti.
Linux mempunyai kompatibilitas ke belakang yang lebih baik (better
backward-compatibilty).
5. Kelebihan dan kekurangan linux
Kekurangan
Banyak pengguna yang belum terbiasa dengan Linux dan masih
‘Windows minded’.
Dukungan perangkat keras dari vendor-vendor tertentu yang tidak
terlalu baik pada Linux.
Proses instalasi software / aplikasi yang tidak semudah di Windows.
Bagi administrator sistem yang belum terbiasa dengan Unix-like
(seperti Linux), maka mau tidak mau harus mempelajari hal ini.
6. Fitur-fitur linux
Multi tasking dan dukungan 32 bit; mampu menjalankan beberapa
perintah secara bersamaan, dan dengan memanfaatkan model
terlindung (protected mode) dari Intel 80836 keatas, Linux merupakan
sistem operasi 32 bit.
Dukungan Java.
Virtual Memory.
Linux menawarkan sistem file yang hierarkis, dengan beberapa folder
utama yang sudah dibakukan (File System Standard/FSSTND).
Grafis antar muka pemakai (Graphical User Interface/GUI) yang
dipergunakan Linux adalah sistem X Window atau X dari MIT.
7. Versi Linux
Linux yg merupakan sebuah software gratis, kini mulai banyak dipakai
oleh para pengguna komputer. Beberapa macam linux antara lain:
1. Fedora Core 4
2. Suse
3. Ubuntu 5.04
4. Knoppix 3.8
5. PC Linux OS
6. Linux Xnuxer
7. Mandrake 10.0
9. Manajemen Sistem Operasi Linux
Kernel
Kernel adalah inti dari system UNIX/LINUX , yang mengontrol perangkat
keras dan membentuk berbagai fungsi beraras rendah. Fungsi-fungsi
yang dilaksanakan oleh kernel :
• Pelayanan tanggal dan jam system
• Manajemen berkas dan penanganan sekuriti
• Pelayanan operasi masukan dan keluaran
• Manajemen dan penjadwalan proses
• Manajemen memori
• Melakukan kegiatan akuntansi sistem
• Melakukan penanganan kesalahan dan interupsi
10. Manajemen Sistem Operasi Linux
Shell
Shell adalah penerjemah pada system UNIX / LINUX. Perangkat lunak
inilah yang menjadi jembatan antara pemakai dan system UNIX /
LINUX. Pemakai cukup memberikan perintah dan shell yang akan
menanganinya. Perintah sendiri dapat berupa:
Perintah built-in, Perintah yang merupakan bagian internal dari
shell
Perintah eksternal, Perintah yang bukan bagian internal dari shell
(dapat berupa utilitas atau program aplikasi) Ada beberapa
jenis shell yang beredar saat ini. Empat diantaranya yang
sangat menonjol adalah :
• Bourne shell,
• C shell,
• Korn shell, dan
• Bourne Again shell.
11. Manajemen Sistem Operasi Linux
Utilitas
Utilitas adalah program yang disediakan sistem UNIX / LINUX untuk
melaksanakan tugas tertentu.
Beberapa kelompok utilitas dilihat dari fungsinya :
Utilitas manajemen berkas dan direktori
Utilitas penyunting berkas
Utilitas penunjang komunikasi dan jaringan
Utilitas administrasi sistem
Utilitas pemrograman C
Utilitas penganalisis unjuk kerja sistem
Utilitas untuk keperluan backup dan restore
12. Manajemen Sistem Operasi Linux
Program Aplikasi
Aplikasi adalah program-program yang dibuat oleh pemakai, untuk
memenuhi kebutuhannya sendiri. Program-program ini dapat dibuat
dengan menggunakan sejumlah utilitas, perintah built-in milik shell,
atau dibangun dengan bahasa pemrograman seperti C, COBOL, atau
Python dan berbagai development tool seperti Oracle dan Informix.
Bisa juga berupa program paket yang dibeli dari pemasok perangkat
lunak.
13. Manajemen proses linux
Tipe-tipe proses dalam Linux, dibagi ke dalam 3 bagian, yaitu :
Interactive : Proses yang diprakarsai oleh sebuah shell dan berjalan dalam
foreground dan background. seperti : terminal, software running, dll.
Batch : Sebuah seri dari proses-proses yang dijadwalkan untuk
dieksekusi pada suatu waktu tertentu, proses batch ini juga tidak
berhubungan dengan terminal, tapi menunggu dieksekusi secara sekuensial.
Daemon : Proses yang diinisialisasi saat booting untuk membentuk
suatu fungsi-fungsi sistem yang dibutuhkan, bila tidak ada request maka akan
berada pada keadaan idle, seperti : LPD, NFS, dan DNS.
14. PENJADWALAN PROSES LINUX
Linux menggunakan dua algoritma penjadwalan proses, yaitu:
1. Algoritma time-sharing untuk preemptive scheduling wajar/ adil
(fairness) di antara banyak proses
2. Algoritma real-time untuk tugas-tugas di mana prioritas absolut lebih
penting daripada kewajaran (fairness)
15. Struktur direktori
Struktur direktori di Linux berbeda dengan sistem operasi lain
(contoh: MS Windows). Jika di dalam sistem operasi MS Windows ada
drive (perangkat) A:, B:, C:, D:, E:, dan seterusnya. Maka di dalam
struktur direktori Linux dimulai dari direktori root yang dilambangkan
dengan simbol / (slice).
Direktori root merupakan direktori paling tinggi (luar) dari seluruh
direktori yang ada di dalam sistem operasi Linux. Direktori root
merupakan direktori utama yang sifatnya tunggal, tidak ada yang
menyamai dan lebih tinggi tingkatannya. Di dalam direktori root (/)
terdapat subdirektori-subdirektori utama yang mempunyai fungsi
khusus terhadap sistem operasi Linux. Subdirektori-subdirektori
tersebut antara lain :
16. Struktur direktori
Direktori K e t e r a n g a n
/bin Tempat file eksekusi untuk menjalankan perintah di Linux bagi semua pengguna
/boot Tempat file kernel dan boot loader (program untuk memuat kernel saat booting)
/dev Tempat file perangkat keras dan fitur perangkat lunak serta keamanan
/etc Tempat file konfigurasi sistem dan aplikasi di Linux
/home Direktori rumah untuk menyimpan konfigurasi dan data dari pengguna (user)
/lib Tempat pustaka (modul program) yang digunakan oleh aplikasi di Linux
/mnt Tempat untuk melakukan mounting (memasang) media penyimpanan (storage)
/opt Tempat file aplikasi dari pihak ketiga (3rd Party) yang bukan Proyek GNU
/proc Tempat file informasi yang dihasilkan oleh kernel Linux
/root Direktori rumah untuk menyimpan file konfigurasi dan data dari root (superuser)
/sbin Tempat file eksekusi untuk menjalankan perintah khusus untuk root (superuser)
/sys Tempat file infomasi yang dihasilkan oleh kernel Linux yang tidak ada di /proc
/tmp Tempat file sementara yang digunakan oleh aplikasi di Linux
/usr Tempat file program aplikasi di Linux yang biasanya program open source
/var Tempat file variabel (campuran) yang biasanya digunakan untuk log dan mail
17. Manajement memory di linux
Memori manajemen merupakan salah satu bagian terpenting dalam
sistem operasi. Karena adanya keterbatasan memori, maka digunakan
memory virtual untuk menanganinya.
Dengan memori virtual kita dapat:
1. Ruang alamat yang besar.
2. Pembagian memori fisik yang adil.
3. Perlindungan
4. Penggunaan memori virtual bersama
18. Manajement memory di linux
Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang
disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini
punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap
instruksi dalam program, CPU melakukan mapping dari alamat virtual
ke memori fisik yang sebenarnya.
Penerjemahan alamat di antara virtual dan memori fisik dilakukan
oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini
menunjukkan virtial PFN0 dari proses x dimap ke memori fisik PFN1.
Setiap anggota tabel page mengandung informasi berikut ini:
1. Virtual PFN
2. PFN fisik
3. informasi akses page dari page tersebut
19. Manajement memory di linux
Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama
CPU harus menangani alamat virtual PFN dan offsetnya di virtual
page. CPU mencari tabel page proses dan mancari anggota yang sesuai
degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU
kemudian mengambil PFN fisik dan mengalikannya dengan besar page
untuk mendapat alamat basis page tersebut di dalam memori fisik.
Terakhir, CPU menambahkan offset ke instruksi atau data yang
dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik
dengan urutan yang teracak.
20. Manajement memory di linux
Demand Paging
Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang
sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya
meload page virtual ke memori hanya ketika program dijalankan disebut demand
paging.
Swaping
Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke
memori, sistem operasi harus memutuskan apa yang harus dilakukan.
Pengaksesan memori virtual bersama
Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke
memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang
sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap
proses mengandung anggota page table yang mempunyai PFN fisik yang sama.
21. Manajement memory di linux
Efisiensi
Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja
dari sistem. Disamping membuat prosesor, memori semakin cepat,
jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa
cache dalam manajemen memori di linux:
1. Page Cache
2. Buffer Cache.
3. Swap Cache
Salah satu implementasi yang umum dari hardware cache adalah di
CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara
langsung membaca tabel page, tetap mencache terjemahan page
yang dibutuhkan.
22. Manajement memory di linux
Load dan Eksekusi Program
1. Penempatan program dalam memori
Linux membuat tabel-tabel fungsi untuk loading program, memberikan
kesempatan kepada setiap fungsi untuk meload file yang diberikan saat
sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan
pada memori virtual. Hanya pada saat program mencoba mengakses page
yang telah diberikan terjadi page fault, maka page akan diload ke memori
fisik.
2. Linking statis dan linking dinamis
a. Linking statis:
librari-librari yang digunakan oleh program ditaruh secara langsung dalam file
binari yang dapat dieksekusi. Kerugian dari linking statis adalah setiap
program harus mengandung kopi library sistem yang umum.
b. Linking dinamis:
hanya sekali meload librari sistem menuju memori. Linking dinamis lebih
efisien dalam hal memori fisik dan ruang disk.
23. Managemen I/O pada linux
1. Block devices
yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok
berukuran tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat
tersendiri, sehingga memungkinkan membaca atau menulis blok-blok secara
independen, yaitu dapat membaca atau menulis sembarang blok tanpa harus
melewati blok-blok lain. Contoh : disk, tape, CD ROM, optical disk. Fungsi
“block devices” sendiri didukung oleh 2 sistem component, block buffer
cache dan request manager. Block buffer cache bertugas sebagai pool dari
buffer i/o aktif dan cache dari “completed i/o”. “Request manager” adalah
lapisan software yang mengelola konten read dan write buffer dari dan
menuju block-device driver.
24. Managemen I/O pada linux
2. Character devices
yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa
membentuk suatu struktur blok. Contoh : terminal, line printer, pita kertas,
kartu-kartu berlubang, mouse. Perangkat ini tidak memerlukan random
access untuk sebuah block data. Akan tetapi, tiap perangkat telah memiliki
berbagai fungsi yang telah terdaftar pada kernel yang diimplementasikan
pada file operasi i/o.
25. Managemen I/O pada linux
3. network devices
berbeda dengan block atau character devices, user harus berkomunikasi
secara tidak langsung dengan cara harus membuka sambungan dengan
subsistem jaringan kernel.