DAFTAR ISI
SISTEM
OPERASI
Oleh:
Abdurrahman
gani
40110041
UNIVERSITAS
GUNADARMA
2011
ILMU
KOMPUTER
KATA PENGANTAR
Assalamu’alaikum
Wr. Wb.
Syukur alhamdulilah
kami persembahkan kehadirat Allah SWT yang telah mencurahkan rahmat
dan karunianya, sehingga penulis dapat menyelesaikan makalah
Pengantar Teknologi Informasi ini dengan judul “SISTEM OPERASI”.
Untuk itu kami mengucapkan terima kasih terhadap semua pihak yang
telah membantu hingga terselesaikannya makalah ini. Terutama kami
ucapkan kepada :
- Kedua orang tua kami, atas segala dukungan yang telah diberikan.
- Dosen yang telah mengajar saya dengan baik
- Serta anak 1DC01 Dan anak HMTK
Makalah
ini kami susun sebagai tugas mata kuliah Pengantar Teknologi
Informasi. Tak ada gading yang tak retak, demikian pepatah
mengatakan. Demikian juga kiranya makalah ini, tentu masih banyak
kekurangan. Oleh karena itu, penulis mengharapkan saran dan kritik
dari pembaca demi sempurnanya makalah kami yang akan datang.
Akhirnya,
mudah-mudahan karya tulis ini bermanfaat bagi mahasiswa khususnya,
dan bagi seluruh komponen bangsa Indonesia umumnya.
Wassalamu’alaikum
Wr.Wb.
Jakarta,
21 mei 2011
Penulis
(Abdurrahman
gani)
BAB I
PENDAHULUAN
Biasanya,
istilah Sistem Operasi sering ditujukan kepada semua software yang
masuk dalam satu paket dengan sistem komputer sebelum
aplikasi-aplikasi software terinstall. Kalau sistem komputer terbagi
dalam lapisan-lapisan, maka Sistem Operasi adalah penghubung
antara lapisan hardware dan lapisan software. Lebih jauh daripada
itu, Sistem Operasi melakukan semua tugas-tugas penting dalam
komputer, dan menjamin aplikasi-aplikasi yang berbeda dapat berjalan
secara bersamaan dengan lancar. Sistem Operasi menjamin aplikasi
software lainnya dapat menggunakan memori, melakukan input dan output
terhadap peralatan lain, dan memiliki akses kepada sistem file.
Apabila beberapa aplikasi berjalan secara bersamaan, maka Sistem
Operasi mengatur skedule yang tepat, sehingga sedapat mungkin semua
proses yang berjalan mendapatkan waktu yang cukup untuk menggunakan
prosesor (CPU) serta tidak saling mengganggu.
Dalam banyak kasus,
Sistem Operasi menyediakan suatu pustaka dari fungsi-fungsi standar,
dimana aplikasi lain dapat memanggil fungsi-fungsi itu, sehingga
dalam setiap pembuatan program baru, tidak perlu membuat
fungsi-fungsi tersebut dari awal.
Sistem Operasi
secara umum terdiri dari beberapa bagian:
- Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
- Kernel, yaitu inti dari sebuah Sistem Operasi
- Command Interpreter atau shell, yang bertugas membaca input dari pengguna
- Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
- Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.
Sebagian
Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan
pada satu waktu, tetapi sebagian besar Sistem Operasi baru
mengizinkan beberapa aplikasi berjalan secara simultan pada waktu
yang bersamaan. Sistem Operasi seperti itu disebut sebagai
Multi-tasking
Operating System.
Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta
inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi
lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa
intervensi manusia sama sekali. Tipe yang pertama sering disebut
sebagai Desktop
OS,
sedangkan tipe kedua adalah Real-Time
OS.
Seiring dengan berkembangnya Sistem Operasi, semakin banyak lagi
layanan yang menjadi layanan inti umum. Kini, sebuah OS mungkin perlu
menyediakan layanan network dan koneksitas internet, yang dulunya
tidak menjadi layanan inti umum. Sistem Operasi juga perlu untuk
menjaga kerusakan sistem komputer dari gangguan program perusak yang
berasal dari komputer lainnya, seperti virus. Daftar layanan inti
umum akan terus bertambah.
Program saling berkomunikasi antara satu dengan
lainnya dengan Antarmuka Pemrograman Aplikasi, Application
Programming Interface atau
disingkat dengan API.
Dengan API inilah program aplikasi dapat berkomunikasi dengan Sistem
Operasi. Sebagaimana manusia berkomunikasi dengan komputer melalui
Antarmuka User, program juga berkomunikasi dengan program lainnya
melalui API.
Walaupun demikian API sebuah komputer tidaklah berpengaruh
sepenuhnya pada program-program yang dijalankan diatas platform
operasi tersebut. Contohnya bila program yang dibuat untuk windows
3.1 bila dijalankan pada windows 95 dan generasi setelahnya akan
terlihat perbedaan yang mencolok antara window program tersebut
dengan program yang lain.
Sistem
operasi-sistem operasi utama yang digunakan komputer sistem umum
(termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar:
- Keluarga Microsoft Windows - yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista yang akan dirilis pada tahun 2007)).
- Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
Sedangkan
komputer Mainframe,
dan Super
komputer
menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya
merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh
vendor seperti IBM AIX, HP/UX, dll.
Dalam
makalah ini, juga akan dibahas tentang fungsi dasar dari system
operasi, tujuan mempelajari system operasi, sejarah dari system
operasi, layanan yang terdapat dalam system operasi. Dan juga kita
akan membahas tentang layanan dan antarmuka, serta akan membahas
tentang Linux.
BAB II
PEMBAHASAN
I. SISTEM OPERASI
- Fungsi dasar
Sistem
komputer pada dasarnya terdiri dari empat komponen utama, yaitu
perangkat-keras, program aplikasi, sistem-operasi, dan para pengguna.
Sistem operasi berfungsi untuk mengatur dan mengawasi penggunaan
perangkat keras oleh berbagai program aplikasi serta para pengguna.
Sistem operasi berfungsi ibarat pemerintah dalam suatu negara, dalam
arti membuat kondisi computer agar dapat menjalankan program secara
benar. Untuk menghindari konflik yang terjadi pada saat pengguna
menggunakan sumber-daya yang sama, sistem operasi mengatur pengguna
mana yang dapat mengakses suatu sumber-daya. Sistem operasi juga
sering disebut resource
allocator.
Satu lagi fungsi penting sistem operasi ialah sebagai program
pengendali yang bertujuan untuk menghindari kekeliruan (error)
dan penggunaan komputer yang tidak perlu.
- Tujuan mempelajari system operasi
Tujuan mempelajari
sistem operasi agar dapat merancang sendiri serta dapat memodifikasi
sistem yang telah ada sesuai dengan kebutuhan kita, agar dapat
memilih alternatif sistem operasi, memaksimalkan penggunaan sistem
operasi dan agar konsep dan teknik sistem operasi dapat diterapkan
pada aplikasi-aplikasi lain.
- Sejarah system operasi
Menurut Tanenbaum,
sistem operasi mengalami perkembangan yang sangat pesat, yang dapat
dibagi kedalam empat generasi:
• Generasi
Pertama (1945-1955)
Generasi pertama
merupakan awal perkembangan sistem komputasi elektronik sebagai
pengganti sistem komputasi mekanik, hal itu disebabkan kecepatan
manusia untuk menghitung terbatas dan manusia sangat mudah untuk
membuat kecerobohan, kekeliruan bahkan kesalahan. Pada generasi ini
belum ada sistem operasi, maka sistem komputer diberi instruksi yang
harus dikerjakan secara langsung.
• Generasi Kedua
(1955-1965)
Generasi
kedua memperkenalkan Batch
Processing System,
yaitu Job yang dikerjakan dalam satu rangkaian, lalu dieksekusi
secara berurutan.Pada generasi ini sistem komputer belum dilengkapi
sistem operasi, tetapi beberapa fungsi sistem operasi telah ada,
contohnya fungsi sistem operasi ialah FMS dan IBSYS.
• Generasi
Ketiga (1965-1980)
Pada
generasi ini perkembangan sistem operasi dikembangkan untuk melayani
banyak pemakai sekaligus, dimana para pemakai interaktif
berkomunikasi lewat terminal secara on-line ke komputer, maka sistem
operasi menjadi multi-user
(di
gunakan banyak pengguna sekali gus) dan multi-programming
(melayani
banyak program sekali gus).
• Generasi
Keempat (Pasca 1980an)
Dewasa
ini, sistem operasi dipergunakan untuk jaringan komputer dimana
pemakai menyadari keberadaan komputer-komputer yang saling terhubung
satu sama lainnya. Pada masa ini para pengguna juga telah dinyamankan
dengan Graphical
User Interface yaitu
antar-muka komputer yang berbasis grafis yang sangat nyaman, pada
masa ini juga dimulai era komputasi tersebar dimana
komputasi-komputasi tidak lagi berpusat di satu titik, tetapi dipecah
dibanyak komputer sehingga tercapai kinerja yang lebih baik.
- Layanan system operasi
Sebuah
sistem operasi yang baik menurut Tanenbaum harus memiliki layanan
sebagai berikut: pembuatan program, eksekusi program, pengaksesan I/O
Device,
pengaksesan terkendali terhadap berkas pengaksesan sistem, deteksi
dan pemberian tanggapan pada kesalahan, serta akunting.
Pembuatan program
yaitu sistem operasi menyediakan fasilitas dan layanan untuk membantu
para pemrogram untuk menulis program; Eksekusi Program yang berarti
Instruksi-instruksi dan data-data harus dimuat ke memori utama,
perangkat-parangkat masukan/ keluaran dan berkas harus
di-inisialisasi, serta sumber-daya yang ada harus disiapkan, semua
itu harus di tangani oleh sistem operasi.
Pengaksesan
I/O
Device,
artinya Sistem Operasi harus mengambil alih sejumlah instruksi yang
rumit dan sinyal kendali menjengkelkan agar pemrogram dapat berfikir
sederhana dan perangkat pun dapat beroperasi.
Pengaksesan
terkendali terhadap berkas yang artinya disediakannya mekanisme
proteksi terhadap berkas untuk mengendalikan pengaksesan terhadap
berkas.
Pengaksesan
sistem artinya pada pengaksesan digunakan bersama (shared
system).
Fungsi pengaksesan harus menyediakan proteksi terhadap sejumlah
sumber-daya dan data dari pemakai tak terdistorsi serta menyelesaikan
konflik-konflik dalam perebutan sumber-daya.
Deteksi dan
Pemberian tanggapan pada kesalahan, yaitu jika permasalahan muncul
pada sistem komputer maka sistem operasi harus memberikan tanggapan
yang menjelaskan kesalahan yang terjadi serta dampaknya terhadap
aplikasi yang sedang berjalan.
Dan Akunting yang
artinya Sistem Operasi yang bagus mengumpulkan data statistik
penggunaan beragam sumber-daya dan memonitor parameter kinerja.
- LAYANAN DAN ANTARMUKA
- Jenis Layanan
Seperti
yang telah kita ketahui bersama, tujuan dari sebuah sistem operasi
adalah sebagai penghubung antara user
dan
hardware,
dimana sistem operasi memberikan kemudahan-kemudahan agar user
tidak
harus mengakses hardware
secara
langsung dalam bahasa mesin, tetapi dalam bentuk layanan-layanan yang
diberikan oleh sistem operasi. Layanan
sistem operasi dirancang untuk membuat pemrograman menjadi lebih
mudah.
- Pembuatan Program
Sistem operasi
menyediakan berbagai fasilitas yang membantu programer dalam membuat
program seperti editor. Walaupun bukan bagian dari sistem operasi,
tapi layanan ini diakses melalui sistem operasi.
- Eksekusi Program
Eksekusi
program adalah kemampuan sistem untuk "load"
program ke memori dan menjalankan program. Operasi I/O: pengguna
tidak dapat secara langsung mengakses sumber daya perangkat keras,
sistem operasi harus menyediakan mekanisme untuk melakukan operasi
I/O atas nama pengguna. Sistem manipulasi berkas dalah kemampuan
program untuk operasi pada berkas (membaca, menulis, membuat, and
menghapus berkas).
Komunikasi
adalah pertukaran data/ informasi antar dua atau lebih proses yang
berada pada satu komputer (atau lebih). Deteksi error
adalah
menjaga kestabilan sistem dengan mendeteksi "error",
perangkat keras mau pun operasi.
Efesisensi
penggunaan sistem:
- Resource allocator adalah mengalokasikan sumber-daya ke beberapa pengguna atau job yang jalan pada saat yang bersamaan.
- Proteksi menjamin akses ke sistem sumber daya dikendalikan (pengguna dikontrol aksesnya ke sistem).
- Accounting adalah merekam kegiatan pengguna, jatah pemakaian sumber daya (keadilan atau kebijaksanaan).
- Antarmuka
Sistem
operasi menyediakan berbagai fasilitas yang membantu programmer
dalam
membuat program seperti editor.
Walaupun bukan bagian dari sistem operasi, tapi layanan ini diakses
melalui sistem operasi.
- Operasi Masukan/Keluaran
Pada
dasarnya, tugas utama komputer adalah processing
dan
Masukan/Keluaran. Bahkan, sebagian besar waktunya digunakan untuk
mengolah Masukan/Keluaran sedangkan processing
hanya
bersifat insidental. Jadi, pada konteks Masukan/Keluaran, peranan
sistem operasi adalah mengatur dan mengontrol perangkat
Masukan/Keluaran dan operasi Masukan/Keluaran. Perangkat
Masukan/Keluaran sangat bervariasi. Oleh karena itu, bagaimana cara
mengontrol perangkat-perangkat tersebut mendapat perhatian besar
dalam organisasi komputer. Bayangkan, perangkat Masukan/Keluaran yang
sangat banyak jumlahnya dan setiap perangkat memiliki fungsi dan
kecepatan sendiri-sendiri, tentunya memerlukan metode yang berbeda
pula. Oleh karena itu, dikenal klasifikasi perangkat Masukan/Keluaran
menjadi perangkat blok dan perangkat karakter, walaupun ada perangkat
yang tidak termasuk ke dalam satupun dari kedua golongan ini.
Perangkat terhubung ke komputer melalui port,
diatur oleh device
controller dan
berkomunikasi dengan prosesor dan perangkat lain melalui bus.
Perangkat
berkomunikasi dengan prosesor melalui dua pendekatan yaitu memory
mapped dan
instruksi Masukan/Keluaran langsung. Bila prosesor ingin mengakses
suatu perangkat, dia akan terus mengecek perangkat untuk mengetahui
statusnya, apakah mengizinkan untuk diakses. Cara ini dilakukan
berulang-ulang yang disebut dengan polling.
Sedangkan bila perangkat ingin memberitahu prosesor ketika siap
diakses, maka perangkat akan menggunakan interupsi. Kedua cara ini
mempunyai kelebihan dan kelemahan masing-masing.
Adanya
Direct
Memory Access (DMA)
dapat mengurangi beban CPU karena terjadinya transfer data antara
perangkat dan memori tanpa melalui CPU. Perbedaan detil untuk setiap
alat akan dienkapsulasi pada modul kernel yang disebut device
driver.
Sedangkan untuk mengetahui waktu dan lama suatu proses digunakan
clock
dan
timer.
Program yang sedang
dijalankan kadang kala membutuhkan Masukan/Keluaran. Untuk efisiensi
dan keamanan, pengguna biasanya tidak bisa mengatur piranti
masukan/keluaran secara langsung, untuk itulah sistem operasi harus
menyediakan mekanisme dalam melakukan operasi masukan/keluaran.
- Manipulasi Sistem Berkas
Program harus
membaca dan menulis berkas, dan kadang kala juga harus membuat dan
menghapus berkas.
Sebuah
berkas adalah jenis data abstrak. Untuk mendefinisikan berkas secara
tepat, kita perlu melihat operasi yang dapat dilakukan pada berkas
tersebut. Sistem operasi menyediakan system
calls untuk
membuat, membaca, menulis, mencari, menghapus, dan sebagainya.
Berikut dapat kita
lihat apa yang harus dilakukan sistem operasi pada keenam operasi
dasar pada berkas.
• Membuat
sebuah berkas
Ada dua cara dalam
membuat berkas: Pertama, tempat baru di dalam system berkas harus di
alokasikan untuk berkas yang akan dibuat. Kedua, sebuah direktori
harus mempersiapkan tempat untuk berkas baru, kemudian direktori
tersebut akan mencatat nama berkas dan lokasinya pada sistem berkas.
• Menulis
pada sebuah berkas:
Untuk menulis pada berkas, kita menggunakan system
call beserta
nama berkas yang akan ditulisi dan informasi apa yang akan ditulis
pada berkas. Ketika diberi nama berkas, sistem mencari ke direktori
untuk mendapatkan lokasi berkas. Sistem juga harus menyimpan penunjuk
tulis pada berkas dimana penulisan berikut akan ditempatkan. Penunjuk
tulis harus diperbaharui setiap terjadi penulisan pada berkas.
• Membaca
sebuah berkas:
Untuk dapat membaca berkas, kita menggunakan system
call beserta
nama berkas dan di blok memori mana berkas berikutnya diletakkan.
Sama seperti menulis, direktori mencari berkas yang akan dibaca, dan
sistem menyimpan penunjuk baca pada berkas dimana pembacaan
berikutnya akan terjadi. Ketika pembacaan dimulai, penunjuk baca
harus diperbaharui. Sehingga secara umum, suatu berkas ketika sedang
dibaca atau ditulis, kebanyakan sistem hanya mempunyai satu penunjuk,
baca dan tulis menggunakan penunjuk yang sama, hal ini menghemat
tempat dan mengurangi kompleksitas sistem.
• Menempatkan
kembali sebuah berkas:
Direktori yang bertugas untuk mencari berkas yang bersesuaian, dan
mengembalikan lokasi berkas pada saat itu. Menempatkan berkas tidak
perlu melibatkan proses Masukan/Keluaran. Operasi sering disebut
pencarian berkas.
• Menghapus
sebuah berkas:
Untuk menghapus berkas kita perlu mencari berkas tersebut di dalam
direktori. Setelah ditemukan kita membebaskan tempat yang dipakai
berkas tersebut (sehingga dapat digunakkan oleh berkas lain) dan
menghapus tempatnya di direktori.
• Memendekkan
berkas:
Ada suatu keadaan dimana pengguna menginginkan atribut dari berkas
tetap sama tetapi ingin menghapus isi dari berkas tersebut. Fungsi
ini mengizinkan semua atribut tetap sama tetapi panjang berkas
menjadi nol, hal ini lebih baik dari pada memaksa pengguna untuk
menghapus berkas dan membuatnya lagi.
Enam operasi dasar
ini sudah mencakup operasi minimum yang di butuhkan. Operasi umum
lainnya adalah menyambung informasi baru di akhir suatu berkas,
mengubah nama suatu berkas, dan lain-lain.
Operasi
dasar ini kemudian digabung untuk melakukan operasi lainnya. Sebagai
contoh misalnya kita menginginkan salinan dari suatu berkas, atau
menyalin berkas ke peralatan Masukan/Keluaran lainnya seperti
printer,
dengan cara membuat berkas lalu membaca dari berkas lama dan menulis
ke berkas yang baru.
Hampir semua operasi
pada berkas melibatkan pencarian berkas pada direktori. Untuk
menghindari pencarian yang lama, kebanyakan sistem akan membuka
berkas apabila berkas tersebut digunakan secara aktif. Sistem operasi
akan menyimpan tabel kecil yang berisi informasi semua berkas yang
dibuka yang disebut "tabel berkas terbuka". Ketika berkas
sudah tidak digunakan lagi dan sudah ditutup oleh yang menggunakan,
maka sistem operasi mengeluarkan berkas tersebut dari tabel berkas
terbuka.
Beberapa
sistem terkadang langsung membuka berkas ketika berkas tersebut
digunakan dan otomatis menutup berkas tersebut jika program atau
pemakainya dimatikan. Tetapi pada sistem lainnya terkadang
membutuhkan pembukaan berkas secara tersurat dengan system
call (open)
sebelum berkas dapat digunakan.
Implementasi dari
buka dan tutup berkas dalam lingkungan dengan banyak perngguna
seperti UNIX, lebih rumit. Dalam sistem seperti itu pengguna yang
membuka berkas mungkin lebih dari satu dan pada waktu yang hampir
bersamaan. Umumnya sistem operasi menggunakan tabel internal dua
level. Ada
tabel yang mendata
proses mana saja yang membuka berkas tersebut, kemudian tabel
tersebut menunjuk ke tabel yang lebih besar yang berisi informasi
yang berdiri sendiri seperti lokasi berkas pada disk, tanggal akses
dan ukuran berkas.
Biasanya tabel
tersebut juga memiliki data berapa banyak proses yang
membuka berkas
tersebut. Jadi, pada dasarnya ada beberapa informasi yang terkait
dengan pembukaan berkas yaitu:
- Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis, sistem tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.
- Penghitung berkas yang terbuka: Setelah berkas ditutup, sistem harus mengosongkan kembali tabel berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel. Penghitung ini mencatat banyaknya berkas yang telah dibuka dan ditutup, dan menjadi nol ketika yang terakhir membaca berkas menutup berkas tersebut barulah sistem dapat mengosongkan tempatnya di tabel.
- Lokasi berkas pada disk: Kebanyakan operasi pada berkas memerlukan sistem untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi. Beberapa sistem operasi menyediakan fasilitas untuk memetakan berkas ke dalam memori pada system memori virtual. Hal tersebut mengizinkan bagian dari berkas ditempatkan pada suatu alamat di memori virtual. Operasi baca dan tulis pada memori dengan alamat tersebut dianggap sebagai operasi baca dan tulis pada berkas yang ada di alamat tersebut. Menutup berkas mengakibatkan semua data yang ada pada alamat memori tersebut dikembalikan ke disk dan dihilangkan dari memori virtual yang digunakan oleh proses.
- Deteksi Error
Sistem
operasi harus selalu waspada terhadap kemungkinan error.
Error
dapat
terjadi di CPU dan memori perangkat keras, masukan/keluaran, dan di
dalam program yang dijalankan pengguna. Untuk setiap jenis error
sistem
operasi harus bisa mengambil langkah yang tepat untuk mempertahanan
jalannya proses komputasi, misalnya dengan menghentikan jalannya
program, mencoba
kembali melakukan operasi yang dijalankan, atau melaporkan kesalahan
yang terjadi agar pengguna dapat mengambil langkah selanjutnya.
Disamping pelayanan
di atas, terdapat juga layanan-layanan lain yang bertujuan untuk
mempertahankan efisiensi sistem itu sendiri. Layanan tambahan itu
yaitu:
• Alokasi
Sumber Daya:
Ketika
beberapa pengguna menggunakan sistem atau beberapa program dijalankan
secara bersamaan, sumber daya harus dialokasikan bagi masing-masing
pengguna dan program tersebut.
• Accounting:
Kita
menginginkan agar jumlah pengguna yang menggunakan sumber daya, dan
jenis sumber daya yang digunakan selalu terjaga. Untuk itu maka
diperlukan suatu perhitungan dan statistik. Perhitungan ini
diperlukan bagi seseorang yang ingin merubah konfigurasi system untuk
meningkatkan pelayanan.
• Proteksi:
Layanan
proteksi memastikan bahwa segala akses ke sumber daya terkontrol; dan
tentu saja keamanan terhadap gangguan dari luar sistem tersebut.
Keamanan bisa saja dilakukan dengan terlebih dahulu mengindentifikasi
pengguna. Ini bisa dilakukan dengan meminta password
bila
ingin menggunakan sumber daya.
- Antarmuka
Antarmuka
(interface)
adalah salah satu layanan yang disediakan sistem operasi sebagai
sarana interaksi antara pengguna dengan sistem operasi. Antarmuka
adalah komponen system operasi yang bersentuhan langsung dengan
pengguna. Terdapat dua jenis antarmuka, yaitu Command
Line Interface (CLI)
dan Graphical
User Interface (GUI).
- Command Line Interface (CLI)
CLI
adalah tipe antarmuka dimana pengguna berinteraksi dengan sistem
operasi melalui text-terminal.
Pengguna menjalankan perintah dan program di sistem operasi tersebut
dengan cara mengetikkan baris-baris tertentu. Meskipun konsepnya
sama, tiap-tiap sistem operasi memiliki nama atau istilah yang
berbeda untuk CLI-nya.
UNIX
memberi nama CLI-nya sebagai bash, ash, ksh, dan lain sebagainya.
Microsoft Disk Operating System (MS-DOS) memberi nama command.com
atau Command Prompt. Sedangkan pada Windows Vista, Microsoft
menamakannya PowerShell. Pengguna Linux mengenal CLI pada Linux
sebagai terminal,
sedangkan pada Apple namanya adalah commandshell.
- Graphical User Interface (GUI)
GUI
adalah tipe antarmuka yang digunakan oleh pengguna untuk berinteraksi
dengan sistem operasi melalui gambar-gambar grafik, ikon, menu, dan
menggunakan perangkat penunjuk (pointing
device)
seperti mouse
atau
track
ball.
Elemen-elemen utama dari GUI bisa diringkas dalam konsep WIMP
(window,
icon, menu, pointing device).
Gambar
2.1. Contoh GUI
Pengguna komputer
yang awam seringkali menilai sebuah sistem operasi dari GUI-nya.
Sebuah sistem operasi dianggap bagus jika tampilan luarnya (GUI-nya)
bagus. Padahal, seperti telah dijelaskan sebelumnya, komponen sistem
operasi tidak hanya GUI, sehingga penilaian terhadap sebuah sistem
operasi tidak bisa hanya dari satu komponen saja. Karena GUI adalah
kesan pertama pengguna dengan sistem operasi itu, setiap pengembang
sistem operasi berlomba-lomba mengembangkan GUI-nya dengan
keunggulannya masing-masing.
Sejarah
mencatat bahwa Xerox PARC (Palo Alto Research Center) yang pertama
kali meriset tentang GUI. Pada tahun 1984, Apple merilis Macintosh
yang menggunakan GUI hasil riset Xerox PARC. Beberapa
tahun kemudian, Microsoft merilis sistem operasi Windows-nya yang
juga menggunakan GUI. Apple mengklaim bahwa Microsoft mencuri ide
dari Apple. Seperti halnya CLI, tiap-tiap sistem operasi juga
memiliki nama tersendiri untuk komponen GUI-nya. Pada Apple Mac OS X,
GUI-nya disebutAqua. Microsoft memberi nama GUI Windows XP sebagai
Lunar dan GUI Windows Vista sebagai Aero.
Pada
Linux, ada dua pengembang utama desktop
environment pada
Linux, yang masing-masing menghasilkan produk KDE (K Desktop
Environment)
dan GNOME. KDE
digunakan pada beberapa distro seperti SuSE dan Mandrake, sedangkan
GNOME dipakai pada beberapa distro seperti Fedora Core dan Ubuntu.
- System Calls
Komputer
digunakan untuk melakukan suatu proses yang dikehendaki user.
Oleh karena itu harus ada suatu bentuk komunikasi antara user
dan
hardware.
Komunikasi itu terjadi dalam bentuk system
calls.
Sistem operasi melalui shell-nya
akan menangkap perintah dari user
yang
kemudian akan dikomunikasikan melalui system
calls.
Disinilah peran Sistem Operasi sebagai jembatan komunikasi antara
user
dan
hardware
itu
terjadi.
System
calls itu
sendiri umumnya ditulis dalam bahasa C dan C++. Mengenai shell,
shell
itu
sendiri secara umum adalah layer
yang
berfungsi sebagai interface
antara
user dan inti dalam sistem operasi (kernel). Melalui shell,
user dapat memberi
perintah-perintah
yang akan dikirim ke sistem operasi, sehingga shell
ini
merupakan layer
yang
menerima interaksi dari user secara langsung. Shell
dalam
Sistem Operasi secara umum dibagi menjadi 2, Command
Line (CLI)
dan Graphical
(GUI).
Jadi
dengan kata lain, system
calls berperan
sebagai interface
dalam
layanan-layanan yang disediakan oleh sistem operasi.
Untuk
lebih jelasnya lihat gambar berikut. Contoh di bawah adalah sytem
calls di
dalam program yang membaca data dari satu file
lalu
meng-copy-nya
ke file
lain.
Gambar
2.2. Contoh System Call
System
call menyediakan
interface antara program (program pengguna yang berjalan) dan bagian
Sistem Operasi. System
call menjadi
jembatan antara proses dan sistem operasi. System
call ditulis
dalam bahasa assembly
atau
bahasa tingkat tinggi yang dapat mengendalikan mesin (C). Contoh:
UNIX menyediakan system
call:
read,
write =>
operasi I/O untuk berkas.
Sering
pengguna program harus memberikan data (parameter) ke OS yang
Akan
di panggil. Contoh pada UNIX: read (buffer, max_size, file_id). Tiga
cara memberikan parameter dari program ke sistem operasi:
• Melalui
registers (sumber daya di CPU).
• Menyimpan
parameter pada data struktur (table) di memori, dan alamat table tsb
ditunjuk oleh pointer
yang
disimpan di register.
• Push
(store)
melalui "stack"
pada memori dan Sistem Operasi mengambilnya melalui pop
pada
stack
tsb.
Gambar
2.3. Memberikan
parameter melalui tabel
- Jenis System Calls
Berikut
ini adalah tipe system
calls:
• Manajemen
Proses
System
Calls
untuk managemen proses diperlukan untuk mengatur proses-proses yang
sedang berjalan. Kita dapat melihat penggunaan system calls untuk
managemen proses pada Sistem Operasi Unix. Contoh yang paling baik
untuk melihat bagaimana system
calls
bekerja untuk managemen proses adalah Fork.
Fork adalah satu
satunya cara untuk membuat sebuah proses baru pada system Unix. Fork
membuat duplikasi yang mirip dengan proses aslinya, termasuk file
descriptor, register, dan lainnya.
Setelah perintah
Fork, child akan mengeksekusi kode yang berbeda dengan parentnya.
Bayangkan yang terjadi pada shell. Shell akan membaca command dari
terminal, melakukan fork pada child, menunggu child untuk
mengeksekusi command tersebut, dan membaca command lainnya ketika
child terminate.
Untuk
menunggu child selesai, parent akan mengeksekusi system call waitpid,
yang hanya akan menunggu sampai child selesai. Proses child harus
mengeksekusi command yang dimasukkan oleh user (pada kasus shell).
Proses child melakukannya dengan menggunakan system
calls
exec.
Dari
ilustrasi tersebut kita dapat mengetahui bagaimana system
calls
dipakai untuk managemen proses. Kasus lainnya bukan hanya pada Fork,
tetapi hampir setiap proses memerlukan system
calls
untuk melakukan management proses.
• Manajemen
Berkas
System
calls
yang berhubungan dengan berkas sangat diperlukan. Seperti ketika kita
ingin membuat atau menghapus suatu berkas, atau ketika ingin membuka
atau menutup suatu berkas yang telah ada, membaca berkas tersebut,
dan menulis berkas itu. System
calls juga
diperlukan ketika kita ingin mengetahui atribut dari suatu berkas
atau ketika kita juga ingin merubah atribut tersebut. Yang termasuk
atribut berkas adalah nama berkas, jenis berkas, dan lain-lain. Ada
juga system
calls yang
menyediakan mekanisme lain yang berhubungan dengan direktori atau
sistem berkas secara keseluruhan. Jadi bukan hanya berhubungan dengan
satu spesifik berkas. Contohnya membuat atau menghapus suatu
direktori, dan lain-lain.
- Manajemen Piranti
- System Call Informasi/Pemeliharaan
- Dua model komunikasi:
- Message-passing. Pertukaran informasi dilakukan melalui fasilitas komunikasi antar proses yang disediakan oleh sistem operasi.
- Shared-memory. Proses menggunakan memori yang bisa digunakan oleh berbagai proses untuk pertukaran informasi dengan membaca dan menulis data pada memori tersebut. Dalam message-passing, sebelum komunikasi dapat dilakukan harus dibangun dulu sebuah koneksi. Untuk itu diperlukan suatu system calls dalam pengaturan koneksi tersebut, baik dalam menghubungkan koneksi tersebut maupun dalam memutuskan koneksi tersebut ketika komunikasi sudah selesai dilakukan. Juga diperlukan suatu system calls untuk membaca dan menulis pesan (message) agar pertukaran informasi dapat dilakukan.
Dalam
contoh program sederhana diatas, dibutuhkan setidaknya ribuan system
calls per
detik. Oleh karena itu Kebanyakan programmer membuat aplikasi dengan
menggunakan Application
Programming Interface
(API). Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk
menggantikan bahasa yang digunakan dalam System
Calls dengan
bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer.
Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan
memanggil system calls sesuai dengan sistem operasinya. Tidak
tertutup kemungkinan nama dari system
calls
sama dengan nama di API.
Keuntungan
memprogram dengan menggunakan API adalah:
III. GNU
(General
Public License)/LINUX
Linux adalah sebuah
sistem operasi yang dikembangkan oleh Linus Benedict Torvalds dari
Universitas Helsinki Finlandia sebagai proyek hobi mulai tahun 1991.
Ia menulis Linux, sebuah kernel untuk prosesor 80386, prosesor 32-bit
pertama dalam kumpulan CPU Intel yang cocok untuk PC. Baru pada
tanggal 14 Maret 1994 versi 1.0 mulai diluncurkan, dan hal ini
menjadi tonggak sejarah Linux.
Linux
merupakan clone
dari
UNIX yang telah di-port
ke
beragam platform, antara lain: Intel 80x86, AlphaAXP, MIPS, Sparch,
Power PC, dsb. Sekitar 95% kode sumber kernel sama untuk semua
platform
perangkat
keras. Linux termasuk sistem operasi yang didistribusikan secara open
source,
artinya kode sumber Linux diikutsertakan sehingga dapat dipelajari
dan dikembangkan dengan mudah.
Selain
itu Linux dikembangkan oleh GNU (General
Public License).
Linux dapat digunakan untuk berbagai keperluan, seperti: jaringan,
pengembangan software,
dan sebagai end-user
platform.
Selama ini Linux menjadi sistem operasi yang menjadi banyak perhatian
karena kecanggihan dan harganya yang relatif murah dibanding dengan
sistem operasi yang lain.
Macam-macam
distribusi Linux antara lain: Stackware, Debian, RedHat, S.u.s.e.,
Caldera, dan Turbo Linux. Istilah Linux atau GNU/Linux (GNU) juga
digunakan sebagai rujukan kepada keseluruhan distro Linux (Linux
distribution), yang didalamnya selalu disertakan program-program lain
yang mendukung sistem operasi ini. Contoh program-program tersebut
adalah Web
Server,
Bahasa Pemrograman, Basis Data, Tampilan Desktop (Desktop
Environment) (seperti GNOME dan KDE), dan aplikasi/software
perkantoran
(office suite) seperti OpenOffice.org, KOffice, Abiword, Gnumeric,
dan lainnya.
Distro
Linux telah mengalami pertumbuhan yang pesat dari segi popularitas,
sehingga lebih populer dari versi UNIX yang menganut sistem lisensi
dan berbayar (proprietary)
maupun versi UNIX bebas lain yang pada awalnya menandingi dominasi
Microsoft Windows dalam beberapa sisi.
Linux
mendukung banyak Perangkat keras Komputer, dan telah digunakan di
dalam berbagai peralatan dari Komputer pribadi, Superkomputer dan
Sistem Benam (Embedded System) seperti Telepon Seluler Ponsel dan
Perekam Video pribadi Tivo. Pada
mulanya, Linux dibuat, dikembangkan dan digunakan oleh peminatnya
saja. Kini Linux telah mendapat dukungan dari perusahaan besar
seperti IBM, dan Hewlett-Packard dan perusahaan besar lain. Para
pengamat teknologi informatika beranggapan kesuksesan ini dikarenakan
Linux tidak bergantung kepada vendor
(vendor-independence),
biaya operasional yang rendah, dan kompatibilitas yang tinggi
dibandingkan versi UNIX proprietari, serta faktor keamanan dan
kestabilannya dibandingkan dengan Microsoft Windows. Ciri-ciri ini
juga menjadi bukti atas keunggulan model pengembangan perangkat lunak
sumber terbuka opensource software.
Pada pentium, Linux
hanya menggunakan 6 segmen:
- Segmen untuk kode kernel
- Segmen untuk data kernel
- Segmen untuk kode pengguna
- Segmen untuk data pengguna
- Segmen Task-State
- Segment default untuk LDT
Segmen
untuk kode pengguna dan data pengguna terbagi dengan semua proses
yang running
pada
pengguna mode, karena semua proses menggunakan ruang alamat logis
yang sama dan semua descriptor
segmen
terletak di GDT. TSS ( Task-State
Segment )
digunakan untuk menyimpan context
hardware dari
setiap proses selama context
switch. Tiap
proses mempunyai TSS sendiri, dimana descriptor
-nya
terletak di GDT. Segment
default
LDT
normalnya berbagi dengan semua proses dan biasanya tidak digunakan.
Jika suatu proses membutuhkan LDT-nya, maka proses dapat membuatnya
dan tidak menggunakan default
LDT.
Tiap selector
segmen
mempunyai 2 bit proteksi. Maka, pentium Mengizinkan proteksi 4 level.
Dari 4 level ini, Linux hanya mengenal 2 level, yaitu pengguna mode
dan kernel mode. Berikut
ini merupakan tiga level penghalaman dalam Linux.
Gambar
3.1. Memori Virtual
- Kernel
Bagian ini akan
menjelaskan kernel secara umum dan sejarah perkembangan Kernel Linux.
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari
sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi
untuk mengakses perangkat keras komputer secara aman. Karena akses
terhadap perangkat keras terbatas, sedangkan ada lebih dari satu
program yang harus dilayani dalam waktu yang bersamaan, maka kernel
juga bertugas untuk mengatur kapan dan berapa
lama
suatu program dapat menggunakan satu bagian perangkat keras tersebut.
Hal tersebut dinamakan sebagai multiplexing.
Akses
kepada perangkat keras secara langsung merupakan masalah yang
kompleks, oleh karena itu kernel biasanya mengimplementasikan
sekumpulan abstraksi hardware.
Abstraksi-abstraksi tersebut merupakan sebuah cara untuk
menyembunyikan kompleksitas, dan memungkinkan akses kepada perangkat
keras menjadi mudah dan seragam. Sehingga abstraksi pada akhirnya
memudahkan pekerjaan programer.
Untuk
menjalankan sebuah komputer kita tidak harus menggunakan kernel
sistem operasi. Sebuah program dapat saja langsung di-load
dan
dijalankan diatas mesin 'telanjang' komputer, yaitu bilamana pembuat
program ingin melakukan pekerjaannya tanpa bantuan abstraksi
perangkat keras atau bantuan sistem operasi. Teknik ini digunakan
oleh komputer generasi awal, sehingga bila kita ingin berpindah dari
satu program ke program lain, kita harus mereset dan meload kembali
program-program
tersebut.
Ada 4 kategori
kernel:
- Monolithic kernel
Kernel yang
menyediakan abstraksi perangkat keras yang kaya dan tangguh.
- Microkernel
- Hybrid (modifikasi dari microkernel)
- Exokernel
Dari
keempat kategori kernel yang disebutkan diatas, kernel Linux termasuk
kategori monolithic
kernel.
Kernel Linux berbeda dengan sistem Linux.
Kernel Linux
merupakan sebuah perangkat lunak orisinil yang dibuat oleh komunitas
Linux, sedangkan sistem Linux, yang dikenal saat ini, mengandung
banyak komponen yang dibuat sendiri atau dipinjam dari proyek
pengembangan lain. Kernel Linux pertama yang dipublikasikan adalah
versi 0.01, pada tanggal 14 Maret 1991. Sistem berkas yang didukung
hanya sistem berkas Minix. Kernel pertama dibuat berdasarkan kerangka
Minix (sistem UNIX kecil yang dikembangkan oleh Andy Tanenbaum).
Tetapi, kernel tersebut sudah mengimplementasi proses UNIX secara
tepat.
Pada
tanggal 14 Maret 1994 dirilis versi 1.0, yang merupakan tonggak
sejarah Linux. Versi ini adalah kulminasi dari tiga tahun
perkembangan yang cepat dari kernel Linux. Fitur baru terbesar yang
disediakan adalah jaringan. Versi 1.0 mampu mendukung protokol
standar jaringan TCP/IP. Kernel 1.0 juga memiliki sistem berkas yang
lebih baik tanpa batasan-batasan sistem berkas Minix. Sejumlah
dukungan perangkat keras ekstra juga dimasukkan ke dalam rilis ini.
Dukungan perangkat keras telah berkembang termasuk diantaranya
floppy-disk,
CD-ROM,
sound
card,
berbagai mouse, dan keyboard internasional. Dukungan juga diberikan
terhadap modul kernel yang loadable
dan
unloadable
secara
dinamis.
Satu
tahun kemudian dirilis kernel versi 1.2. Kernel ini mendukung variasi
perangkat keras yang lebih luas. Pengembang telah memperbaharui
networking
stack untuk
menyediakan support
bagi
protokol IPX, dan membuat implementasi IP lebih lengkap dengan
memberikan fungsi accounting
dan
firewalling.
Kernel 1.2 ini merupakan kernel Linux terakhir yang PC-only.
Konsentrasi lebih diberikan pada dukungan perangkat keras dan
memperbanyak implementasi lengkap pada fungsi-fungsi yang ada.
Pada
bulan Juni 1996, kernel Linux 2.0 dirilis. Versi ini memiliki dua
kemampuan baru yang penting, yaitu dukungan terhadap multiple
architecture dan
multiprocessor
architectures.
Kode untuk manajemen memori telah diperbaiki sehingga kinerja sistem
berkas dan memori virtual meningkat. Untuk
pertama kalinya, file system
caching dikembangkan
ke networked
file systems,
juga sudah didukung writable
memory mapped regions.
Kernel
2.0 sudah memberikan kinerja TCP/IP yang lebih baik, ditambah dengan
sejumlah protokol jaringan baru. Kemampuan untuk memakai remote
netware dan
SMB (Microsoft LanManager) network
volumes juga
telah ditambahkan pada versi terbaru ini. Tambahan lain adalah
dukungan internal
kernel threads,
penanganan dependencies
antara
modul-modul loadable,
dan loading
otomatis
modul berdasarkan permintaan (on demand). Konfigurasi dinamis dari
kernel pada run
time telah
diperbaiki melalui konfigurasi interface
yang
baru dan standar.
Semenjak
Desember 2003, telah diluncurkan Kernel versi 2.6, yang dewasa ini
(2007) telah mencapai patch
versi
2.6.21.1 (http://kambing.ui.edu/kernel-linux/v2.6/). Hal-hal yang
berubah dari versi 2.6 ini adalah:
• Subitem
M/K
yang dipercanggih.
• Kernel yang
pre-emptif.
• Penjadwalan
Proses yang dipercanggih.
• Threading
yang
dipercanggih.
• Implementasi
ALSA (Advanced
Linux Sound Architecture)
dalam kernel.
• Dukungan sistem
berkas seperti: ext2, ext3, reiserfs, adfs, amiga ffs, apple
macintosh hfs, cramfs, jfs, iso9660, minix, msdos, bfs, free vxfs,
os/2 hpfs, qnx4fs, romfs, sysvfs, udf, ufs, vfat, xfs, BeOS befs
(ro), ntfs (ro), efs (ro).
Sistem Linux terdiri
dari tiga bagian kode penting:
• Kernel:
Bertanggung-jawab memelihara semua abstraksi penting dari sistem
operasi, termasuk hal-hal seperti memori virtual dan proses-proses.
• Perpustakaan
sistem: menentukan kumpulan fungsi standar dimana aplikasi dapat
berinteraksi dengan kernel, dan mengimplementasi hampir semua fungsi
sistem operasi yang tidak memerlukan hak penuh atas kernel.
• Utilitas
sistem: adalah program yang melakukan pekerjaan managemen secara
individual.
Walaupun
berbagai sistem operasi modern telah mengadopsi suatu arsitektur
message-passing untuk kernel internal mereka, Linux tetap memakai
model historis UNIX: kernel diciptakan sebagai biner yang tunggal dan
monolitis. Alasan utamanya adalah untuk meningkatkan kinerja, karena
semua struktur data dan kode kernel disimpan dalam satu address
space, alih konteks tidak diperlukan ketika sebuah proses memanggil
sebuah fungsi sistem operasi atau ketika interupsi perangkat keras
dikirim. Tidak hanya penjadualan inti dan kode memori virtual yang
menempati address space ini, tetapi juga semua kode kernel, termasuk
semua device
drivers,
sistem berkas, dan kode jaringan, hadir dalam satu address
space yang
sama.
Kernel Linux
membentuk inti dari sistem operasi Linux. Dia menyediakan semua
fungsi yang diperlukan untuk menjalankan proses, dan menyediakan
layanan sistem untuk memberikan pengaturan dan proteksi akses ke
sumber daya perangkat keras. Kernel mengimplementasi semua fitur yang
diperlukan supaya dapat bekerja sebagai sistem operasi. Namun, jika
sendiri, system operasi yang disediakan oleh kernel Linux sama sekali
tidak mirip dengan sistem UNIX. Dia tidak memiliki banyak fitur
ekstra UNIX, dan fitur yang disediakan tidak selalu dalam format yang
diharapkan oleh
aplikasi UNIX. Interface dari sistem operasi yang terlihat oleh
aplikasi yang sedang berjalan tidak ditangani langsung oleh kernel,
akan tetapi aplikasi membuat panggilan (calls) keperpustakaan sistem,
yang kemudian memanggil layanan sistem operasi yang dibutuhkan.
- Distro
Distro
Linux (singkatan dari distribusi Linux) adalah sebutan untuk sistem
operasi komputer mirip Unix yang menggunakan kernel Linux. Distribusi
Linux bisa berupa perangkat lunak bebas dan bisa juga berupa
perangkat lunak komersial seperti Red Hat Enterprise, SuSE, dan
lain-lain.
Ada banyak
distribusi atau distro Linux yang telah muncul. Beberapa bertahan dan
besar, bahkan sampai menghasilkan distro turunan, contohnya adalah :
• Debian
GNU/Linux
Debian
GNU/Linux adalah distro non-komersial yang dihasilkan oleh para
sukarelawan dari seluruh dunia yang saling bekerjasama melalui
Internet. Distro ini menginginkan adanya semangat open-source
yang
harus tetap ada pada Debian. Kedinamisan distro ini membuat setiap
rilis paket-paketnya di-update setiap waktu dan dapat diakses melalui
utilitas apt-get. Apt-get adalah sebuah utilitas baris-perintah yang
dapat digunakan secara dinamis untuk meng-upgrade
sistem
Debian GNU/Linux melalui apt-repository jaringan archive Debian yang
luas. Milis dan forum debian selalu penuh dengan pesan-pesan baik
mengenai bug,
masalah, sharing,
dll. Dengan adanya sistem komunikasi ini bug
dan
masalah keamanan pada tiap paket dapat dilaporkan oleh para pengguna
dan pengembang Debian dengan cepat. Keuntungan dari Debian adalah
upgradability,
ketergantungan antar paket didefinisikan dengan baik, dan
pengembangannya secara terbuka. Beberapa proyek dan turunan Debian
GNU/Linux:
1. De2,
http://de2.vlsm.org/
2. Knoppix,
http://www.knoppix.org/
3. Debian JP,
http://www.debian.linux.or.jp/
4. Libranet.
5. dan lain-lain
• Red
Hat Linux
Red
Hat adalah distro yang cukup populer dikalangan pengembang dan
perusahaan Linux. Dukungan-dukungan secara teknis,
pelatihan,sertifikasi, aplikasi pengembangan, dan bergabungnya para
hacker
kernel
dan free-software
seperti
Alan Cox, Michael Johnson, Stephen Tweedie menjadikan Red Hat
berkembang cepat dan digunakan pada perusahaan. Poin terbesar dari
distro ini adalah Red Hat Package Manager (RPM). RPM adalah sebuah
perangkat lunak untuk memanajemen paket-paket pada sistem Linux kita
dan dianggap sebagai standar de-facto
dalam
pemaketan pada distro-distro turunannya dan yang mendukung distro ini
secara luas.
• Slackware
Distronya
Patrick Volkerding yang terkenal pertama kali setelah SLS. Slackware
dikenal lebih dekat dengan gaya UNIX, sederhana, stabil, mudah
di-custom,
dan didesain untuk komputer 386/486 atau lebih tinggi. Distro ini
termasuk distro yang cryptic
dan
manual sekali bagi pemula Linux, tapi dengan menggunakan distro ini
beberapa penggunanya dapat mengetahui banyak cara kerja sistem dan
distro tersebut. Debian adalah salah satu distro selain Slackware
yang masuk dalam kategori ini. Sebagian besar aktivitas konfigurasi
di Slackware dilakukan secara manual (tidak ada tool seperti Yast
pada S.U.S.E ataupunLinuxconf pada RedHat).
• S.u.S.E.
S.u.S.E.
adalah distro yang populer di Jerman dan Eropa, terkenal akan
dukungan driver
VGA-nya
dan YasT. S.u.S.E tersedia secara komersial dan untuk versi GPL-nya
dapat diinstal melalui ftp di situs S.u.S.E. Instalasi berbasis menu
grafis dari CD-ROM, disket boot modular, 400-halaman buku referensi,
dukungan teknis, dukungan driver-driver terutama VGA dan tool
administrasi
sistem S.u.S.E., YaST, membuat beberapa pengguna memilih distro ini.
S.u.S.E. juga terlibat dalam pembuatan X server (video driver) untuk
proyek XFree86 sehingga X server distro ini mendukung kartu grafis
baru. S.U.S.E. menggunakan dua sistem pemaketan yaitu RPM (versi
lama) dan SPM, S.U.S.E. Package Manager (versi baru).
• Turbo
Linux
TurboLinux
menargetkan pada produk berbasis Linux dengan kinerja tinggi untuk
pasar workstation dan server terutama untuk penggunaan clustering dan
orientasinya ke perusahaan. Beberapa produk-produknya: TurboLinux
Workstation
untuk
dekstopnya, TurboLinux Server untuk backend
server dengan
kinerja tinggi terutama untuk penggunaan bisnis di perusahaan,
e-commerce
dan
transaksi B2B (Business-to-Business).
Salah satu produknya TurboCluster
Server ditargetkan
untuk pembuatan server
cluster yang
berskala luas dan dapat digunakan 25 cluster node atau
lebih.TurboCluster
server ini
pernah memenangkan poling Best Web Solution dari editor Linux
Journal. enFuzion, satu lagi produk yang berbasis pada konsep
sederhana dan powerful yang dinamakan 'parametric
execution'.
- Lisensi
Kernel
Linux terdistribusi di bawah Lisensi Publik Umum GNU (GPL), dimana
peraturannya disusun oleh Free Software Foundation. Linux bukanlah
perangkat lunak domain publik: Public Domain berarti bahwa pengarang
telah memberikan copyright
terhadap
perangkat lunak mereka, tetapi copyright
terhadap
kode Linux masih dipegang oleh pengarang-pengarang kode tersebut.
Linux adalah
perangkat lunak bebas, namun: bebas dalam arti bahwa siapa saja dapat
mengkopi, modifikasi, memakainya dengan cara apa pun, dan memberikan
kopi mereka kepada siapa pun tanpa larangan atau halangan. Implikasi
utama peraturan lisensi Linux adalah bahwa siapa saja yang
menggunakan Linux, atau membuat modifikasi dari Linux, tidak boleh
membuatnya menjadi hak milik sendiri. Jika sebuah perangkat lunak
dirilis berdasarkan lisensi GPL, produk tersebut tidak boleh
didistribusi hanya sebagai produk biner (binary-only). Perangkat
lunak yang dirilis atau akan dirilis tersebut harus disediakan sumber
kodenya bersamaan dengan distribusi binernya.
- Prinsip Rancangan Linux
Dalam
rancangan keseluruhan, Linux menyerupai implementasi UNIX
nonmicrokernel yang lain. Ia adalah sistem yang multiuser,
multitasking
dengan
seperangkat lengkap alat-alat yang kompatibel dengan UNIX. Sistem
berkas Linux mengikuti semantik tradisional UNIX, dan model jaringan
standar UNIX diimplementasikan secara keseluruhan. Ciri internal
rancangan Linux telah dipengaruhi oleh sejarah perkembangan sistem
operasi ini. Walaupun Linux dapat berjalan pada berbagai macam
platform, pada awalnya dia dikembangkansecara eksklusif pada
arsitektur PC. Sebagian besar dari pengembangan awal tersebut
dilakukan oleh peminat individual, bukan oleh fasilitas riset yang
memiliki dana besar, sehingga dari awal Linux berusaha untuk
memasukkan fungsionalitas sebanyak mungkin dengan dana yang sangat
terbatas.
Saat
ini, Linux dapat berjalan baik pada mesin multiprocessor
dengan
main
memory yang
sangat besar dan ukuran disk
space yang
juga sangat besar, namun tetap mampu beroperasi dengan baik dengan
jumlah RAM yang lebih kecil dari 4 MB. Akibat dari semakin
berkembangnya teknologi PC, kernel Linux juga semakin lengkap dalam
mengimplementasikan fungsi UNIX. Tujuan utama perancangan Linux
adalah cepat dan efisien, tetapi akhir-akhir ini konsentrasi
perkembangan Linux lebih pada tujuan rancangan yang ketiga yaitu
standarisasi. Standar POSIX terdiri dari kumpulan spesifikasi dari
beberapa aspek yang berbeda kelakuan sistem operasi. Ada dokumen
POSIX untuk fungsi sistem operasi biasa dan untuk ekstensi seperti
proses untuk thread dan operasi real-time.
• Pustaka
sistem
Menentukan kumpulan
fungsi standar dimana aplikasi dapat berinteraksi dengan kernel, dan
mengimplementasi hampir semua fungsi sistem operasi yang tidak
memerlukan hak penuh atas kernel.
Pustaka
sistem menyediakan berbagai tipe fungsi. Pada level yang paling
sederhana, mereka membolehkan aplikasi melakukan permintaan pada
layanan sistem kernel. Membuat suatu system
calls
melibatkan transfer kontrol dari mode pengguna yang tidak penting ke
mode kernel yang penting; rincian dari transfer ini berbeda pada
masing-masing arsitektur. Pustaka bertugas untuk mengumpulkan argumen
system-call dan, jika perlu, mengatur argumen tersebut dalam bentuk
khusus yang diperlukan untuk melakukan system
calls.
Pustaka juga dapat menyediakan versi lebih kompleks dari system call
dasar. Contohnya, fungsi buffered file-handling dari bahasa C
semuanya diimplementasikan dalam pustaka sistem, yang memberikan
kontrol lebih baik terhadap berkas M/K daripada system
calls
kernel dasar. Pustaka juga menyediakan rutin yang tidak ada hubungan
dengan system call, seperti algoritma penyusunan (sorting), fungsi
matematika, dan rutin manipulasi string (string manipulation). Semua
fungsi yang diperlukan untuk mendukung jalannya aplikasi UNIX atau
POSIX diimplementasikan dalam pustaka sistem.
• Utilitas
sistem
Program yang
melakukan pekerjaan manajemen secara individual.
Sistem
Linux mengandung banyak program-program pengguna-mode:
utilitas sistem dan utilitas pengguna.fungsi sistem operasi apa pun,
utilitas tetap merupakan bagian penting dari sistem Linux dasar.
- Modul Kernel Linux
Modul
kernel Linux adalah bagian dari kernel Linux yang dapat dikompilasi,
dipanggil dan dihapus secara terpisah dari bagian kernel lainnya saat
dibutuhkan. Modul kernel dapat menambah fungsionalitas kernel tanpa
perlu me-reboot sistem.
BAB
III
PENUTUP
KESIMPULAN
Sistem
Operasi telah berkembang selama lebih dari 40 tahun dengan dua tujuan
utama. Pertama, Sistem Operasi mencoba mengatur aktivitas-aktivitas
komputasi untuk memastikan pendaya-gunaan yang baik dari sistem
komputasi tersebut. Kedua, menyediakan lingkungan yang nyaman untuk
pengembangan dan jalankan dari program.
Pada
awalnya, sistem komputer digunakan dari depan konsol. Perangkat lunak
seperti assembler, loader, linker dan kompilator meningkatkan
kenyamanan dari sistem pemrograman, tapi juga memerlukan waktu set-up
yang banyak. Untuk mengurangi waktu set-up tersebut, digunakan jasa
operator dan menggabungkan tugas-tugas yang sama (sistembatch).
Sistem batch mengizinkan pengurutan tugas secara otomatis dengan
menggunakan Sistem Operasi yang resident dan memberikan peningkatan
yang cukup besar dalam utilisasi komputer. Komputer tidak perlu lagi
menunggu operasi oleh pengguna. Tapi utilisasi CPU tetap saja rendah.
Hal ini dikarenakan lambatnya kecepatan alat-alat untuk
Masukan/Keluaran relatif terhadap kecepatan CPU. Operasi off-line
dari alat-alat yang lambat bertujuan untuk menggunakan beberapa
sistem reader-to-tape dan tape-to-printer untuk satu CPU. Untuk
meningkatkan keseluruhan kemampuan dari sistem komputer, para
developer memperkenalkan konsep multiprogramming.
DAFTAR
RUJUKAN
Abraham
Silberschatz, Peter Galvin, Greg Gagne. 2003. Operating
System Concepts, Sixth Edition.
John Wiley & Sons.
http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt
; per 13 Desember 2004.
[Hariyanto1997]
Bambang Hariyanto . 1997. Sistem
Operasi . Buku Teks
Ilmu Komputer . Edisi
Kedua. Informatika. Bandung
[Love2005]
Robert Love. 2005. Linux
Kernel Development .
Second Edition. Novell Press.
[Tanenbaum1997]
Andrew S Tanenbaum dan Albert S Woodhull. 1997.
Operating
Systems Design and Implementation.
Second Edition. Prentice-Hall.
[Tanenbaum2001]
Andrew S Tanenbaum. 2001. Modern
Operating Systems.
Second Edition. Prentice-Hall.
Tidak ada komentar:
Posting Komentar