MAKALAH SISTEM OPERASI KOMPUTER

DISUSUN

OLEH

TULIS NAMA DAN NIM ANDA

UNIVERSITAS ANDA BERADA
FAKULTAS ANDA
JURUSAN ANDA
TAHUN PENYERAHAN TUGAS



1. Tujuan Topik

1.1 Mengenal komponen-komponen utama suatu Sistem Operasi komputer
1.2 Mengenal fungsi masing-masing komponen Sistem Operasi komputer
1.3 Mengenal jenis-jenis Sistem Operasi komputer

2. Pendahuluan

Sistem operasi dapat dikatakan adalah perangkat lunak yang sangat kompleks dan Sistem Operasi adalah kumpulan program-program (software/perangkat lunak) yang membantu para pemakai komputer untuk berkomunikasi dengan komputernya. Hal-hal yang ditangani oleh sistem operasi bukan hanya satu atau dua saja, melainkan banyak hal. Dari menangani perangkat keras, perangkat lunak atau program yang berjalan, sampai menangani pengguna. Hal tersebut menyebabkan sebuah sistem operasi memiliki banyak sekali komponen-komponen tersendiri yang memiliki fungsinya masing-masing. Seluruh komponen yang menyusun sistem operasi tersebut saling bekerjasama untuk satu tujuan, yaitu efisiensi kerja seluruh perangkat komputer dan kenyamanan dalam penggunaan sistem operasi.
Seandainya satu saja dari komponen-komponen tersebut tidak ada, bisa dipastikan sebuah sistem operasi tidak akan berjalan dengan maksimal. Bayangkan jika kita memiliki sistem operasi yang tidak memiliki kemampuan untuk menangani program-program yang berjalan sekaligus maka kita tidak akan bisa mengetik sambil mendengarkan lagu sambil berselancar di internet.

 Fungsi Sistem Operasi

 Sebagai Extended Machine (Virtual Machine)
 Menyembunyikan kompleksitas pemrograman hardware dari programmer atau user.
 Menyajikan fasilitas yang lebih mudah dan sederhana untuk menggunakan hardware.

 Sebagai Resource Manager
 Mengatur dan mengefisienkan penggunaan sumber daya komputer (computer resources)
 Tugas utamanya : memantau penggunaan semua resources; menerapkan aturan (policy); mengalokasikan resources yang diminta; mengambil kembali (dealokasi) resource


 Konsep Sistem Operasi

 Proses
 Proses adalah program yang sedang di-eksekusi.
 Proses terdiri dari : Executable program; Data dan stack; Program counter; dll
 Pada sistem timesharing secara periodik sistem operasi menggilir eksekusi proses-proses yang ada, biasanya berdasarkan porsi waktu CPU.
 Ketika suatu proses dihentikan untuk sementara, maka proses tersebut harus dimulai kembali pada state yang sama dengan state ketika ia dihentikan.
• Semua informasi yang berkaitan dengan proses tersebut harus disimpan. Umumnya informasi tersebut disimpan pada tabel proses (array atau linked list), satu tabel untuk setiap proses.
• Suatu proses terdiri dari : address space (core image) dan atribut / informasi pada tabel proses.
 System call utama dalam pengaturan proses adalah yang berkaitan dengan pembuatan dan pemberhentian suatu proses.
Contoh :
• Command interpreter atau shell akan membaca command yang diketikkan user pada terminal, dan membuat proses yang menjalankan command tersebut.
• Bila telah selesai, maka proses akan menjalankan system call untuk menghentikan dirinya.
 Suatu proses dapat men-create proses lainnya yang disebut sebagai child process.
 Sistem operasi dapat berkomunikasi dengan suatu proses dengan menggunakan signal.
 Signal juga dapat digunakan untuk komunikasi antar proses.
 Pada sistem multiprogramming, setiap proses memiliki user identification (uid) yang berasal dari uid pemilik proses.
 Files
Terdiri dari : Pathname; Working directory; rwx (read, write, execute) bits protection code; File descriptor / handle; Special file (block & character); Standard input; Standard output; Standard error; Pipe
 System Calls
 Suatu set ‘extended instructions’ yang merupakan interface antara program-program dengan sistem operasi.
 System calls meng-create, men-delete dan menggunakan objek-objek yang diatur oleh system operasi, antara lain : proses-proses dan file-file.
 Library procedure meletakkan parameter-parameter system call pada tempat tertentu dan memberikan instruksi trap untuk memulai sistem operasi
 Trap instruction : ketika diterima oleh sistem operasi, sistem memeriksa apakah parameter tersebut valid atau tidak
 Return form trap : sistem operasi mengembalikan kontrol ke library procedure
 Contoh mekanisme system calls:
Pada program C, system call untuk READ
count = read (file, buffer, nbytes)
 Shell
 Shell merupakan Unix command interpreter yang walaupun bukan merupakan bagian dari sistem operasi, menggunakan banyak feature sistem operasi
 Prompt : standar input, menandakan bahwa shell siap menerima command
Contoh :
date
date > file
sort < file1 > file2
cat file1 file2 file3 | sort > /dev/lp
 Background job : proses yang berjalan sementara user tetap bisa terus bekerja

 Struktur Sistem Operasi

 Sistem Monolitik
 Konsep : “Sistem operasi sebagai kumpulan prosedur dimana prosedur dapat saling dipanggil oleh prosedur lain di sistem bila diperlukan”.
 Kernel berisi semua layanan yang disediakan sistem operasi untuk pemakai.
Contoh : Sistem Operasi Unix menggunakan konsep kernel loadable modules, yaitu :
• Bagian-bagian kernel terpenting berada dimemori utama secara tetap.
• Bagian-bagian esensi lain berupa modul yang dapat ditambahkan ke kernel saat diperlukan dan dicabut begitu tidak digunakan lagi diwaktu jalan (run-time).
 The ‘big mess’
 Tidak berstruktur
 Kernel call / supervisor call
 User mode
 Kernel mode / supervisor mode
 Sistem Berlapis (Layered System)
 Konsep : “Sistem operasi dibentuk secara hirarki berdasarkan lapisan-lapisan, dimana lapisan-lapisan memberi layanan lapisan lebih atas”.
Contoh :
• Sistem Operasi THE (Technique Hogesschool Endiche), Djikstra, 1968.
• Sistem Operasi MULTICS (menggunakan concentric rings).

Lapisan-lapisan pada Sistem Operasi THE
 Sistem dengan Mesin Maya (Virtual Machines)
 Konsep : “Awalnya struktur ini membuat seolah-olah user mempunyai seluruh komputer dengan simulasi atas pemroses yang digunakan. Sistem operasi melakukan simulasi mesin nyata. Mesin hasil simulasi digunakan user, mesin maya merupakan tiruan 100% atas mesin nyata. Semua user diberi ilusi mempunyai satu mesin yang sama-sama canggih”.
Contoh :
• Sistem operasi MS-Windows NT dapat menjalankan aplikasi MS-Dos, OS/2 mode teks, dan Win 16.
• Pengembang Linux membuat DOSEMU agar aplikasi MS-Dos dapat dijalankan di Linux, WINE agar aplikasi MS-Windows dapat dijalankan di Linux, iBCS agar aplikasi SCO-Unix dapat dijalankan di Linux.
 CP/CMS
 VM/370
 Virtual Machine Monitor
 CMS (Conversational Monitor System)
 Sistem dengan Client-Server
 Konsep : “Server adalah proses yang menyediakan layanan, dan Client adalah proses yang memerlukan / meminta layanan. Proses client yang memerlukan layanan mengirim pesan ke server dan menanti pesan jawaban. Proses server setelah melakukan tugas yang diminta, mengirim hasil dalam bentuk pesan jawaban ke proses client. Server hanya menanggapi permintaan client dan tidak memulai percakapan dengan client”.
 Sistem berorientasi objek
 Konsep : “Layanan diimplementasikan sebagai objek”.
 Model ini terstruktur dan memisahkan antara layanan yang disediakan dan implementasinya.
Contoh :
• Sistem operasi X-kernel
• Sistem operasi MS-Windows NT telah mengadopsi beberapa teknologi berorientasi objek, tapi belum secara keseluruhan.

 Layanan Sistem Operasi Komputer

 Layanan Otomatis : Alokasi sumberdaya; Catatan pemakaian; Proteksi; Penanganan kekeliruan; Pindah baris; Gulung jendela pada monitor
 Layanan permintaan pemakaian : Loading; Mengolah/run; Menyimpan/save; Menghapus/delete.

 Jenis Sistem Operasi

 Aspek kegiatan
 Pemakai tunggal (single user)
 Pemakai jamak (multiuser)
 Berdasarkan jenis-jenisnya
 Linux
 MS-Dos
 MS Windows-NT
 MS Windows
 Dll

3. Pembahasan

3.1 Komponen Sistem Operasi komputer dan cara kerja

Pada umumnya sebuah sistem operasi modern akan terdiri dari komponen sebagai berikut:

3.1.a Manajemen Proses.
3.1.b Manajemen Memori Utama.
3.1.c Manajemen Sistem Berkas.
3.1.d Manajemen Sistem M/K.
3.1.e Manajemen Penyimpanan Sekunder.
3.1.f Manajemen Jaringan
3.1.g Proteksi dan Keamanan.
3.1.h Manajemen Command-Interpreter System

Dalam kegiatannya, sistem operasi memiliki sebuah mekanisme proteksi untuk memastikan dirinya, semua program yang berjalan, dan data-data penggunanya berjalan dengan baik. Untuk melakukan hal tersebut, sistem operasi memiliki dua jenis (mode) operasi yang saling terpisah. Dua operasi tersebut, yaitu user mode, eksekusi program dikendalikan oleh pengguna, dan kernel mode, eksekusi program dikendaikan oleh sistem operasi, dinamakan dual-mode operation.

Ilustrasi :
Dual-mode operation diimplementasikan pada arsitektur perangkat keras. Sebuah bit yang disebut mode bit ditambahkan ke perangkat keras untuk menunjukkan mode operasi saat itu. 0 untuk kernel mode dan 1 untuk user mode. Dengan adanya dual-mode operation, eksekusi sebuah program/proses bisa dibedakan sumbernya, apakah dieksekusi oleh sistem operasi atau dieksekusi oleh pengguna. Hal ini akan sangat berguna dalam berjalannya sistem operasi. Selain itu, sistem operasi memiliki sebuah mekanisme untuk melindungi prosesor dari berbagai macam program yang berjalan. Bayangkan jika ada sebuah proses mengalami infinite loop. Tentu saja prosesor akan terus menerus melayani program itu dan menghambat proses lainnya yang akan dieksekusi prosesor, dan hal ini bisa dipastikanakan mengurangi kinerja dari komputer. Perlindungan prosesor tersebut dilakukan dengan timer. Timer diset untuk melakukan interupsi prosesor setelah beberapa periode waktu. Dengan adanya timer, sebuah program bisa dicegah dari berjalan terlalu lama. Misalkan sebuah program memiliki time limit 7 menit. Setelah 7 menit tersebut terlewati, sistem operasi akan menginterupsi prosesor dan menghentikan eksekusi program tersebut.

3.1.a Manajemen Proses

Proses adalah sebuah program yang sedang dieksekusi. Proses merupakan unit kerja terkecil yang secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat M/K. Sistem operasi mengalokasikan sumber daya sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya. Sistem operasi bertanggung jawab atas aktivitas-aktivitas yang berkaitan dengan manajemen proses seperti:

 Membuat dan menghapus proses pengguna dan sistem proses.
Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar
dapat digunakan untuk proses lainnya.

 Menunda atau melanjutkan proses.
Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari prosesproses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.

 Menyediakan mekanisme untuk proses sinkronisasi.
Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar.

 Menyediakan mekanisme untuk proses komunikasi.
Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.

 Menyediakan mekanisme untuk penanganan deadlock.
Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock (kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi juga harus dapat memulihkan kondisi sistemnya.

3.1.b Manajemen Memori Utama

Sistem operasi memiliki tugas untuk mengatur bagian memori yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang akan berjalan maupun untuk sistem operasi itu sendiri. Tujuan dari manajemen memori utama adalah agar utilitas CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori. Memori utama atau lebih dikenal sebagai memori adalah sebuah array yang besar dari word atau byte yang ukurannya mencapai ratusan, ribuan, atau bahkan jutaan. Setiap word atau byte mempunyai alamat tersendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi/data yang akses datanya digunakan oleh CPU dan perangkat M/K. Memori utama termasuk tempat penyimpanan data yang yang bersifat volatile (tidak permanen), yaitu data akan hilang kalau komputer dimatikan. Sistem komputer modern memiliki sistem hirarki memori, artinya memori yang ada di komputer disusun dengan tingkatan kecepatan dan kapasitas yang berbeda. Memori yang memiliki kecepatan sama dengan kecepatan prosesor memiliki kapasitas yang kecil, berkisar hanya dari ratusan KB hingga 4 MB dengan harga yang sangat mahal. Sedangkan memori utama yang kecepatannya jauh di bawah kecepatan prosesor memiliki kapasitas yang lebih besar, berkisar dari 128 MB hingga 4 GB dengan harga yang jauh lebih murah. Sistem hirarki memori ini memiliki tujuan agar kinerja komputer yang maksimal bisa didapat dengan harga yang terjangkau.

3.1.c Manajemen Sistem Berkas

File atau berkas adalah representasi program dan data yang berupa kumpulan informasi yang saling berhubungan dan disimpan di perangkat penyimpanan. Sistem berkas ini sangatlah penting, karena informasi atau data yang disimpan dalam berkas adalah sesuatu yang sangat berharga bagi pengguna. Sistem operasi harus dapat melakukan operasi-operasi pada berkas, seperti membuka, membaca, menulis, dan menyimpan berkas tersebut pada sarana penyimpanan sekunder. Oleh karena itu, sistem operasi harus dapat melakukan operasi berkas dengan baik. Sistem operasi melakukan manajemen sistem berkas dalam beberapa hal:

 Pembuatan berkas atau direktori.
Berkas yang dibuat nantinya akan diletakkan pada direktori-direktori yang diinginkan pada sistem berkas. Sistem operasi akan menunjukkan tempat dimana lokasi berkas atau direktori tersebut akan diletakkan. Setelah itu, sistem operasi akan membuat entri yang berisi nama berkas dan lokasinya pada sistem berkas.

 Penghapusan berkas atau direktori.
Sistem operasi akan mencari letak berkas atau direktori yang hendak dihapus dari sistem berkas, lalu menghapus seluruh entri berkas tersebut, agar tempat dari berkas tersebut dapat digunakan oleh berkas lainnya.


 Pembacaan dan menulis berkas.
Proses pembacaan dan penulisan berkas melibatkan pointer yang menunjukkan posisi dimana sebuah informasi akan dituliskan di dalam sebuah berkas.

 Meletakkan berkas pada sistem penyimpanan sekunder.
Sistem operasi mengatur lokasi fisik tempat penyimpanan berkas pada sarana penyimpanan sekunder.

 Mem-back-up berkas ke media penyimpanan yang permanen (non-volatile).
Berkas yang disimpan pada media penyimpanan yang non-volatile akan bersifat
lebih stabil.

3.1.d Manajemen Sistem M/K (I/O)

Pekerjaan utama yang paling sering dilakukan oleh sistem komputer selain melakukan komputasi adalah Masukan/Keluaran (M/K). Dalam kenyataannya, waktu yang digunakan untuk komputasi lebih sedikit dibandingkan waktu untuk M/K. Ditambah lagi dengan banyaknya variasi perangkat M/K sehingga membuat manajemen M/K menjadi komponen yang penting bagi sebuah sistem operasi. Sistem operasi juga sering disebut device manager, karena sistem operasi mengatur berbagai macam perangkat (device).
Fungsi-fungsi sistem operasi untuk sistem M/K:

 Penyanggaan (buffering).
Menampung data sementara dari/ke perangkat M/K

 Penjadwalan (scheduling).
Melakukan penjadwalan pemakaian M/K sistem supaya lebih efisien.

 Spooling.
Meletakkan suatu pekerjaan program pada penyangga, agar setiap perangkat dapat mengaksesnya saat perangkat tersebut siap.


 Menyediakan driver perangkat yang umum.
Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K yang umum, seperti optical drive, media penyimpanan sekunder, dan layar monitor.

 Menyediakan driver perangkat yang khusus.
Driver digunakan agar sistem operasi dapat memberi perintah untuk melakukan operasi pada perangkat keras M/K tertentu, seperti kartu suara, kartu grafis, dan motherboard.

3.1.e Manajemen Penyimpanan Sekunder

Penyimpanan sekunder (secondary storage) adalah sarana penyimpanan yang berada satu tingkat di bawah memori utama sebuah komputer dalam hirarki memori. Tidak seperti memori utama komputer, penyimpanan sekunder tidak memiliki hubungan langsung dengan prosesor melalui bus, sehingga harus melewati M/K.
Sarana penyimpanan sekunder memiliki ciri-ciri umum sebagai berikut:

1. Non volatile (tahan lama).
Walaupun komputer dimatikan, data-data yang disimpan di sarana penyimpanan sekunder tidak hilang. Data disimpan dalam piringan-piringan magnetik.

2. Tidak berhubungan langsung dengan bus CPU.
Dalam struktur organisasi komputer modern, sarana penyimpanan sekunder terhubung dengan northbridge. Northbridge yang menghubungkan sarana penyimpanan sekunder pada M/K dengan bus CPU.

3. Lambat.
Data yang berada di sarana penyimpanan sekunder memiliki waktu yang lebih lama untuk diakses (read/write) dibandingkan dengan mengakses di memori utama. Selain disebabkan oleh bandwidth bus yang lebih rendah, hal ini juga dikarenakan adanya mekanisme perputaran head dan piringan magnetik yang memakan waktu.


4. Harganya murah.
Perbandingan harga yang dibayar oleh pengguna per byte data jauh lebih murah dibandingkan dengan harga memori utama.
Sarana penyimpanan sekunder memiliki fungsi-fungsi sebagai berikut:

1. Menyimpan berkas secara permanen.
Data atau berkas diletakkan secara fisik pada piringan magnet dari disk, yang tidak hilang walaupun komputer dimatikan (non volatile)

2. Menyimpan program yang belum dieksekusi prosesor.
Jika sebuah program ingin dieksekusi oleh prosesor, program tersebut dibaca dari disk, lalu diletakkan di memori utama komputer untuk selanjutnya dieksekusi oleh prosesor menjadi proses.

3. Memori virtual.
Adalah mekanisme sistem operasi untuk menjadikan beberapa ruang kosong dari disk menjadi alamat-alamat memori virtual, sehingga prosesor bisa menggunakan memorivirtual ini seolah-olah sebagai memori utama. Akan tetapi, karena letaknya di penyimpanan sekunder, akses prosesor ke memori virtual menjadi jauh lebih lambat dan menghambat kinerja komputer. Sistem operasi memiliki peran penting dalam manajemen penyimpanan sekunder. Tujuan penting dari manajemen ini adalah untuk keamanan, efisiensi, dan optimalisasi penggunaan sarana penyimpanan sekunder.

3.1.f Manajemen Jaringan

Sistem terdistribusi adalah sekumpulan prosesor yang tidak berbagi memori, atau clock. Setiap prosesor mempunyai memori dan clock tersendiri. Prosesor-prosesor tersebut terhubung melalui jaringan komunikasi. Sistem terdistribusi menyediakan akses pengguna ke bermacam sumber-daya sistem.
Tujuan utamanya adalah untuk memberikan hasil secara lebih, terutama dalam:
- file system
- name space
- waktu pengolahan
- keamanan
– akses ke seluruh resources, seperti : prosesor, memori, penyimpanan sekunder, dan perangkat keras.
Suatu sistem operasi terdistribusi yang sejati adalah yang berjalan pada beberapa buah mesin, yang tidak melakukan sharing memori, tetapi terlihat bagi user sebagai satu buah
komputer single.

Perbedaan Sistem Operasi Jaringan dan Sistem Operasi Terdistribusi
a. Tiap komputer memiliki sistem operasi sendiri.
b. Tiap personal komputer memiliki sistem file sendiri, di mana data-data disimpan.
c. Sistem operasi tiap komputer dapat berbeda-beda atau heterogen.
d. Pengguna harus memikirkan keberadaan komputer lain yang terhubung, dan harus
mengakses, biasanya menggunakan remote login (telnet).
e. File system dapat digunakan dengan dukungan NFS.
Sistem terdistribusi memungkinkan user untuk mengakses sumber daya (resource) yang beragam. Dengan mengakses sumber daya yang dapat digunakan bersama-sama tersebut akan memberikan keuntungan dalam :

 Sharing Resource.
Walaupun perangkat sekarang sudah memiliki kemampuan yang cepat dalam proses-proses komputasi, atau misal dalam mengakses data, tetapi pengguna masih saja menginginkan sistem berjalan dengan lebih cepat. Apabila hardware terbatas, kecepatan yang diinginkan user dapat diatasi dengan menggabung perangkat yang ada dengan sistem DOS (Distributed Operating System).

 Waktu Komputasi.
Komputasi berjalan dalam keadaan pararel. Proses komputasi ini dipecah dalam banyak titik (nodes), yang mungkin berupa komputer pribadi, prosesor tersendiri, dan kemungkinan perangkat prosesor-prosesor yang lain. Sistem operasi tedistribusi ini bekerja baik dalam memecah komputasi ini dan baik pula dalam mengambil kembali hasil komputasi dari titik-titik cluster untuk ditampilkan hasilnya.



 Reliabilitas.
Fitur unik yang dimiliki oleh DOS ini adalah reliabilitas. Berdasarkan design dan implementasi dari design sistem ini, maka hilangnya suatu node tidak akan berdampak terhadap integritas system. Hal ini berbeda dengan komputer personal, apabila ada salah satu hardware yang mengalami kerusakan, maka system akan berjalan tidak seimbang, bahkan sistem bisa tidak dapat berjalan atau mati. Dalam sistem operasi terdistribusi tadi sebenarnya cara kerjanya mirip dengan personal computer, tetapi bedanya apabila ada node yang mati, maka akan terjadi proses halt terhadap node tersebut dan proses komputasi dapat dialihkan. Hal ini akan membuat sistem DOS selalu memiliki reliabilitas yang tinggi.

 Komunikasi.
Sistem operasi terdistribusi biasanya berjalan dalam jaringan, dan biasanya melayani koneksi jaringan. Sistem ini biasanya digunakan user untuk proses networking. User dapat saling bertukar data, atau saling berkomunikasi antar titik baik secara LAN maupun WAN.

3.1.g Manajemen Command-Interpreter System

Sistem Operasi menunggu instruksi dari pengguna (command driven). Program yang membaca instruksi dan mengartikan control statements umumnya disebut: control-card interpreter, command-line interpreter dan terkadang dikenal sebagai shell. Command- Interpreter System sangat bervariasi dari satu sistem operasi ke sistem operasi yang lain dan disesuaikan dengan tujuan dan teknologi perangkat Masukan/Keluaran yang ada. Beberapa perintah yang dimasukkan ke sistem operasi menggunakan pernyataan kontrol yang digunakan untuk :
• Manajemen dan pembuatan proses
• Penangananan I/O
• Manajemen penyimpan sekunder
• Manajemen memori utama
• Akses sistem file
• Proteksi
• Jaringan
Program yang membaca dan menerjemakan pernyataan kontrol disebut command-line intepreter atau shell pada UNIX. Fungsinya adalah untuk mengambil dan mengeksekusi pernyataan perintah berikutnya. Contohnya: CLI, Windows, Penbased (touch), dan lain-lain.

3.1.h Proteksi dan Keamaman

Seringkali, istilah keamanan dan proteksi membingungkan dalam penggunaannya. Untuk mengurangi kebingungan itu, istilah keamanan digunakan untuk penggambaran secara umum, sedangkan proteksi digunakan untuk menggambarkan secara teknis mekanisme perlindungan sistem operasi.

Proteksi

Proteksi adalah mekanisme sistem operasi untuk mengontrol akses terhadap beberapa objek yang diproteksi dalam sistem operasi. Objek-objek tersebut bisa berupa perangkat keras (seperti CPU, memori, disk, printer, dll) atau perangkat lunak (seperti program, proses, berkas, basis data, dll). Di beberapa sistem, proteksi dilakukan oleh sebuah program yang bernama reference monitor. Setiap kali ada pengaksesan sumber daya PC yang diproteksi, sistem pertama kali akan menanyakan reference monitor tentang keabsahan akses tersebut. Reference monitor kemudian akan menentukan keputusan apakah akses tersebut diperbolehkan atau ditolak. Secara sederhana, mekanisme proteksi dapat digambarkan dengan konsep domain. Domain adalah himpunan yang berisi pasangan objek dan hak akses. Masing-masing pasangan domain berisi sebuah objek dan beberapa akses operasi (seperti read, write, execute) yang dapat dilakukan terhadap objek tersebut. Dalam setiap waktu, setiap proses berjalan dalam beberapa domain proteksi. Hal itu berarti terdapat beberapa objek yang dapat diakses oleh proses tersebut, dan operasi-operasi apa yang boleh dilakukan oleh proses terhadap objek tersebut. Proses juga bisa berpindah dari domain ke domain lain dalam eksekusi.
Keamanan

Pengguna sistem komputer sudah tentu memiliki data-data dan informasi yang berharga baginya. Melindungi data-data ini dari pihak-pihak yang tidak berhak merupakan hal penting bagi sistem operasi. Inilah yang disebut keamanan (security).
Sebuah sistem operasi memiliki beberapa aspek tentang keamanan. Aspek-aspek ini berhubungan terutama dengan hilangnya data-data. Sistem komputer dan data-data di dalamnya terancam dari aspek ancaman (threats), aspek penyusup (intruders), dan aspek musibah. Dari aspek ancaman, secara umum sistem komputer menghadapi ancaman terbukanya data-data rahasia, pengubahan data-data oleh orang yang tidak berhak, juga pelumpuhan sistem dengan adanya Denial of Service (DoS).
Dari aspek penyusup, saat ini banyak orang mencoba masuk ke dalam sistem operasi dengan berbagai macam tujuan. Ada yang hanya sekedar mencoba menjebol sistem operasi (hacking), ada yang mencoba mengambil keuntungan dari tindakan penjebolah itu (cracking).
Tidak hanya disusupi oleh manusia, sistem operasi juga menghadapi ancaman keamanan dari program-program penyusup, yang disebut malicious program atau malware. Malware adalah program yang menyusup ke dalam sistem operasi dan memiliki tujuan-tujuan tertentu seperti mengambil data-data pribadi, mengambil alih komputer, dan seringkali bertujuan merusak. Yang termasuk kategori malware adalah virus, keylogger, worm, trojan, dan sypware. Yang terakhir, sistem operasi dan data-data di dalamnya terancam justru dari hal-hal non teknis, yaitu dari musibah. Sistem operasi terancam akibat adanya bencana alam (banjir, lumpur panas, gempa bumi, dan lain-lain), kerusakan perangkat keras atau lunak, bahkan kelalaian dari penggunanya. Perkembangan dunia internet saat ini membawa konsekuensi meningkatnya resiko keamanan terhadap sistem operasi. Oleh karena itu, sistem operasi harus memiliki ketahanan keamanan. Bagi kebanyakan pengembang sistem operasi saat ini, keamanan adalah salah satu permasalahan utama.

3.2 Jenis Sistem Operasi komputer

 Jenis Sistem Operasi

 Aspek kegiatan
 Pemakai tunggal (single user)
 Pemakai jamak (multiuser)

 Berdasarkan jenis-jenisnya
 Linux
 MS-Dos
 MS Windows-NT
 MS Windows
 Dll

3.3 User Mode dan Kernel Mode

User space adalah area memori yang digunakan oleh user mode applications dan area memori ini dapat di-swap kapan saja bergantung dari kubutuhan system saat itu. Aplikasi dengan user mode tidak dapat mengakses langsung kernel space, sebaliknya aplikasi kernel mode juga tidak dapat mengakses langsung user space tanpa mengecek terlebih dahulu apakah page yang diperlukan ada di memori atau sedang di-swap.
Pada enkripsi file system dengan user mode terdapat beberapa prinsip yang perlu diperhatikan yaitu:
1. Penggunaan virtual file system, yaitu layer abstrak yang berjalan di atas file system yang sebenarnya. Tujuan dari virtual file system ini adalah agar pengguna dapat mengakses berbagai file system yang berbeda dengan cara yang seragam. Dengan kata lain pengguna hanya mengenal satu file system yaitu virtual file system yang dibentuk, sedangkan akses ke file system yang sebenarnya diatur oleh virtual file system tersebut.
2. Proses enkripsi saat menulis dan proses dekripsi saat membaca dilakukan terhadap file pada virtual file system. Dalam hal ini virtual file system akan menerima kunci dari pengguna yang akan digunakan untuk melakukan proses kriptografi ataupun menurunkan kunci turunan. Kunci dari pengguna ini hanya akan diminta sekali yaitu saat pengguna pertama kali masuk. Pada saat itu pula virtual file system akan dibentuk untuk pengguna tersebut. Melalui mekanisme tersebut maka file yang disimpan pada file system fisik akan berupa cipher yang tidak akan dapat dimengerti oleh pengguna lain karena sudah dienkripsi oleh virtual file system, sedangkan saat akan digunakan maka virtual file system akan membaca dari file system fisik, mendekripsinya dengan kunci pengguna, baru kemudian menyerahkannya ke aplikasi pengguna.
3. Pada enkripsi file system dengan user mode maka keseluruhan proses dijalankan sebagai proses yang menggunakan user space. Penggunaan user space membuat pengembangan aplikasi ini dimasa yang akan datang menjadi lebih mudah begitu pula dalam pencarian kesalahan (debugging).
Pada linux untuk enkripsi file system sudah didukung beberapa pilihan dengan tujuan memudahkan proses kriptografi pada level file system. Misalnya Cryptographic File System (CFS) dan Transparent Cryptographic File System (TCFS) menggunakan NFS dengan ext2. EncFS menggunakan Fuse untuk membentuk file system di user spacenya. Fuse yaitu file system in User Space. Fuse itu sendiri adalah modul yang mengijinkan pengguna untuk membuat file system tanpa perlu memodifikasi kode pada kernel.
Kernel merupakan perangkat lunak bagian sistem operasi yang melakukan eksekusi di bagian supervisor state [3] . Kernel merupakan inti dari sistem operasi. Kernel dirancang sebagai perangkat lunak terpercaya yang mendukung operasi untuk perangkat lunak lainnya. Aplikasi yang berjalan pada kernel mode berarti mempunyai akses lebih luas karena dapat melakukan eksekusi pada supervisor space serta mampu melakukan pengaksesan terhadap bagian lain dari kernel. Enkripsi pada mode ini mengharuskan adanya akses terhadap kernel serta melakukan modifikasi terhadap kernel tersebut. Untuk Sistem Operasi linux atau sistem operasi lainnya yang opensource, akses terhadap kernel ini dibuka untuk siapapun sementara untuk sistem operasi yang bersifat komersial, integrasi enkripsi file system dilakukan oleh vendornya, karena hanya vendor yang mengetahui secara detail struktur kernel dari sistem operasinya.
Untuk sistem operasi open source, enkripsi pada file system dengan mode kernel dilakukan melalui tahapan sebagai berikut :
1. Penambahan paket enkripsi ke dalam kernel. Langkah ini sekaligus melakukan konfigurasi terhadap kernel configuration file
2. Penambahan hard drive baru terhadap system yang akan menampung partisi tunggal yang terenkripsi.
3. Penambahan direktori untuk menampung file kunci. Tiap file kunci berasosiasi dengan partisi yang terenkripsi.
4. Menyertakan partisi terenkripsi pada kernel
5. Membuat file system pada perangkat terenkripsi.
6. Melakukan mounting terhadap enkripsi terpartisi.
7. Melakukan verifikasi terhadap ketersediaan file system tersebut.

Untuk sistem operasi komersial, apabila menyediakan fasilitas enkripsi berbasis kernel, maka paket enkripsinya sudah terintegrasi dengan sistem sehingga tidak diperlukan lagi modifikasi terhadap kernel..
Paket enkripsi yang disediakan menyediakan metoda ciphers serta algoritma enkripsi yang beragam. Metoda ciphers yang biasa dipakai pada enkripsi file system kernel mode adalah simmetric block ciphers. Algoritma yang biasa dipakai diantaranya adalah Triple DES, Blowfish serta Rijndael. Ketiga algoritma tersebut banyak digunakan untuk mengenkripsi file system karena biasa dipakai untuk enkripsi file serta secara matematis, masih sangat aman. Selain itu, algoritma lain yang dapat diimplementasikan untuk enkripsi file system kernel mode adalah algoritma CAST, GOST, IDEA, MARS, Serpent, RC5, RC6 serta algoritma TwoFish.
Peran yang terdapat di sistem ini dibagi menjadi tiga meliputi [1] :
1. System administrator
System administrator melakukan mount terhadap partisi terenkripsi serta bertanggung jawab untuk melakukan modifikasi kernel
2. Owner
Adalah user yang melakukan kontrol terhadap kunci enkripsi dari data
3.Readers and writers
Perbedaan yang paling mendasar antara owner dengan reader/writer adalah bahwa owner memberikan input kunci enkripsi sementara reader atau writer mengakses file secara transparan. Seorang owner secara implisit adalah reader atau writer

Kelebihan dan Kekurangan Penggunaan enkripsi file system memiliki kelebihan yaitu:
1. Pengguna akan merasa lebih nyaman karena proses memasukkan kunci rahasia hanya sekali pada awal login atau saat proses mount direktori yang akan dijadikan virtual file system, berbeda dengan aplikasi enkripsi mandiri yang setiap kali enkripsi / dekripsi memerlukan kunci masukan dari pengguna.
2. Meningkatkan keamanan non-kriptanalis. Dengan mengenkripsi file system, informasi yang ada dalam media penyimpanan tetap aman walaupun media tersebut dicuri dan media tersebut dibuka dengan menggunakan boot dari CDROM atau device lain sehingga fitur keamanan lumpuh. Hal ini tidak menjadi masalah karena yang tersimpan dalam file system sudah dalam bentuk cipher.

Selain kelebihan, enkripsi file system juga memiliki kelemahan, yaitu penggunaan enkripsi seluruh file system akan menghabiskan banyak resource dan mengurangi performansi dari system itu sendiri. Hal ini diakibatkan karena proses baca dan menulis ke media akan selalu melibatkan proses enkripsi dan dekripsi. Belum lagi masalah yang ditimbulkan untuk melindungi data yang sudah diload ke memori atau page file. Hal ini perlu dilakukan karena secara umum data tersebut dalam bentuk plainteks. Untuk mengatasi hal tersebut maka performansi system akan mengalami penurunan lebih lanjut.
Enkripsi file system dengan kernel mode lebih baik dibandingkan user mode dalam hal performansi. Peningkatan performansinya mencapai 12 – 52 % dibandingkan enkripsi pada user mode atau enkripsi pada level aplikasi.[2]. Adanya peningkatan performansi ini disebabkan jumlah context switches yang lebih sedikit serta eksekusi pada privileged mode. Enkripsi file system berbasis kernel mode lebih aman dibandingkan user mode apabila menggunakan algoritma serta metode enkripsi yang sama. Hal ini dikarenakan informasi pada kernel lebih sulit untuk didapatkan serta akses terhadap kernel bersifat private.
Meskipun demikian, enkripsi file system berbasis kernel mode lebih rumit dibandingkan dengan enkripsi file system pada user mode. File system driver tidak dapat mengakses OS services tradisional yang terdapat pada user mode. Selain itu terdapat batasan bagi program yang berjalan pada kernel mode dalam hal kernel paging serta IO architecture. Proses debug terhadap program juga lebih sulit dilakukan karena berjalan pada address space tunggal bersama dengan seluruh komponen kernel mode dari OS. Proses debugging juga membutuhkan debugger spesifik untuk kernel mode.

3.4 Studi Kasus : contoh-contoh Sistem Operasi komputer

Konsep Kebebasan
Para pengembang dan penjual perangkat lunak berpemilik bersikeras bahwa penggunaan perangkat lunak tanpa lisensi merupakan suatu bentuk pelanggaran Hak atas Kekayaan Intelektual (Intellectual Right) yang dikategorisasikan sebagai tidakan kriminal. Konsep yang ditekankan oleh pihak pengembang diatas tidak diterima oleh semua orang, salah satunya adalah Richard Stallman yang berpendapat bahwa perangkat lunak merupakan milik masyarakat (public) sehingga diperbolehkan untuk dipakai, dimodifikasi serta disebarluaskan secara bebas. Pengembangan perangkat lunak bebas memiliki tujuan agar setiap orang dapat mendapatkan manfaat dari perangkat lunak secara bebas sehingga setiap orang dapat menjalankan, menggandakan, menyebarluaskan, mempelajari, mengubah dan meningkatkan kinerja perangkat lunak. Seperti disebutkan di atas kata bebas pada perangkat lunak bebas sering diartikan sebagai gratis (free), arti sesungguhnya bebas pada perangkat lunak bebas lebih merupakan kebebasan untuk mempergunakan perangkat lunak, melakukan penyalinan, dan perubahan pada kode sumber. Arti bebas yang salah, telah menimbulkan persepsi masyarakat bahwa perangkat lunak bebas merupakan perangkat lunak yang gratis. Perangkat lunak bebas ialah perihal kebebasan, bukan harga. Konsep kebebasan yang dapat diambil dari kata bebas pada perangkat lunak bebas adalah seperti kebebasan berbicara bukan seperti bir gratis. Maksud dari bebas seperti kebebasan berbicara adalah kebebasan untuk menggunakan, menyalin, menyebarluaskan, mempelajari, mengubah, dan meningkatkan kinerja perangkat lunak. Suatu perangkat lunak dapat dimasukkan dalam kategori perangkat lunak bebas bila setiap orang memiliki kebebasan tersebut. Hal ini berarti, setiap pengguna perangkat lunak bebas dapat meminjamkan perangkat lunak yang dimilikinya kepada orang lain untuk dipergunakan tanpa perlu melanggar hukum dan disebut pembajak. Kebebasan yang diberikan perangkat lunak bebas dijamin oleh copyleft, suatu cara yang dijamin oleh hukum untuk melindungi kebebasan para pengguna perangkat lunak bebas. Dengan adanya copyleft maka suatu perangkat lunak bebas beserta hasil perubahan dari kode sumbernya akan selalu menjadi perangkat lunak bebas. Kebebasan yang diberikan melalui perlindungan copyleft inilah yang membuat suatu program dapat menjadi perangkat lunak bebas. Keuntungan yang diperoleh dari penggunaan perangkat lunak bebas adalah karena serbaguna dan efektif dalam keanekaragaman jenis aplikasi. Dengan pemberian source code-nya, perangkat lunak bebas dapat disesuaikan secara khusus untuk kebutuhan pemakai. Sesuatu yang tidak mudah untuk terselesaikan dengan perangkat lunak berpemilik. Selain itu, perangkat lunak bebas didukung oleh milis-milis pengguna yang dapat menjawab pertanyaan yang timbul karena permasalahan pada penggunaan perangkat lunak bebas.

Open source
Open source atau disebut juga perangkat lunak bebas ialah perangkat lunak yang mengizinkan siapa pun untuk menggunakan, menyalin, dan mendistribusikan, baik dimodifikasi atau pun tidak, secara gratis atau pun dengan biaya. Perlu ditekankan, bahwa source code dari program harus tersedia. ``Jika tidak ada kode program, berarti bukan perangkat lunak bebas.'' Yang tersebut di atas merupakan definisi sederhananya; lihat juga definisi lengkapnya. Terdapat berbagai cara untuk membuat suatu program bebas -- banyak pertanyaan rinci, yang dapat ditentukan dalam banyak cara dan masih menjadikan program tersebut bebas. Beberapa kemungkinan variasi akan dijelaskan di bawah ini. Perangkat lunak bebas menyangkut masalah kebebasan, bukan harga. Tapi beberapa perusahaan perangkat lunak berpemilik terkadang menggunakan istilah perangkat lunak bebas untuk menunjukkan harga. Terkadang maksud mereka ialah anda dapat memperoleh salinan biner tanpa biaya; terkadang maksud mereka ialah suatu salinan disertakan dalam komputer yang anda beli. Ini tidak ada hubungannya sama sekali dengan apa yang di maksud dengan perangkat lunak bebas pada proyek GNU. Karena hal ini dapat membingungkan, ketika sebuah perusahaan perangkat lunak menyatakan bahwa produknya adalah perangkat lunak bebas, selalu periksa ketentuan distribusinya untuk melihat apakah pengguna memiliki kebebasan yang dimaksudkan oleh istilah perangkat lunak bebas. Terkadang memang benar-benar perangkat lunak bebas; namun terkadang tidak. Banyak bahasa memiliki dua kata yang berbeda untuk menyatakan ``bebas'' sebagai kebebasan dan ``bebas'' sebagai tanpa biaya. Sebagai contoh, bahasa Perancis memiliki kata ``libre'' dan ``gratuit''. Dalam bahasa Inggris terdapat kata ``gratis'' yang menyatakan tentang harga tanpa membingungkan. Tapi tidak ada kata sifat yang menyatakan kebebasan tanpa membingungkan. Hal ini sangat disayangkan, karena kata semacam itu akan sangat berguna disini. Perangkat lunak bebas seringkali lebih handal daripada perangkat lunak tidak bebas.

Public Domain
Perangkat lunak public domain ialah perangkat lunak yang tanpa hak cipta. Ini merupakan kasus khusus dari perangkat lunak bebas non-copyleft, yang berarti bahwa beberapa salinan atau versi yang telah dimodifikasi bisa jadi tidak bebas sama sekali. Terkadang ada yang menggunakan istilah ``public domain'' secara bebas yang berarti ``cuma-cuma'' atau ``tersedia gratis". Namun ``public domain'' merupakan istilah hukum yang artinya ``tidak memiliki hak cipta''. Untuk jelasnya, kami menganjurkan untuk menggunakan istilah ``public domain'' dalam arti tersebut, serta menggunakan istilah lain untuk mengartikan pengertian yang lain.

Copylefted/Non-Copylefted
Perangkat lunak copylefted merupakan perangkat lunak bebas yang ketentuan pendistribusinya tidak memperbolehkan untuk menambah batasan-batasan tambahan--jika mendistribusikan atau memodifikasi perangkat lunak tersebut. Artinya, setiap salinan dari perangkat lunak, walau pun telah dimodifikasi, haruslah merupakan perangkat lunak bebas. Dalam proyek GNU, kami meng-copyleft-kan -kan hampir semua perangkat lunak yang kami buat, karena tujuan kami adalah untuk memberikan kebebasan kepada semua pengguna seperti yang tersirat dalam istilah ``perangkat lunak bebas''. Copyleft merupakan konsep yang umum. Jadi, untuk meng-copyleft-kan sebuah program, anda harus menggunakan ketentuan distribusi tertentu. Terdapat berbagai cara untuk menulis perjanjian distribusi program copyleft.
Perangkat lunak bebas non-copyleft dibuat oleh pembuatnya yang mengizinkan seseorang untuk mendistribusikan dan memodifikasi, dan untuk menambahkan batasan-batasan tambahan dalamnya. Jika suatu program bebas tapi tidak copyleft , maka beberapa salinan atau versi yang dimodifikasi bisa jadi tidak bebas sama sekali. Perusahaan perangkat lunak dapat mengkompilasi programnya, dengan atau tanpa modifikasi, dan mendistribusikan file tereksekusi sebagai produk perangkat lunak yang berpemilik. Sistem X Window menggambarkan hal ini. Konsorsium X mengeluarkan X11 dengan ketentuan distribusi yang menetapkannya sebagai perangkat lunak bebas non-copyleft . Jika anda menginginkannya, anda dapat memperoleh salinan yang memiliki perjanjian distribusi dan juga bebas. Namun ada juga versi tidak bebasnya, dan ada workstation terkemuka serta perangkat grafik PC, dimana versi yang tidak bebas merupakan satu-satunya yang dapat bekerja disini. Jika anda menggunakan perangkat keras tersebut, X11 bukanlah perangkat lunak bebas bagi anda.

GPL-covered
GNU GPL (General Public License) (20k huruf) merupakan sebuah kumpulan ketentuan pendistribusian tertentu untuk meng-copyleft-kan sebuah program. Proyek GNU menggunakannya sebagai perjanjian distribusi untuk sebagian besar perangkat lunak GNU.

GNU
Sistem GNU merupakan sistem serupa Unix yang seutuhnya bebas. Sistem operasi serupa Unix terdiri dari berbagai program. Sistem GNU mencakup seluruh perangkat lunak GNU, dan juga paket program lain, seperti sistem X Windows dam TeX yang bukan perangkat lunak GNU. Pengembangan sistem GNU ini telah dilakukan sejak tahun 1984. Pengedaran awal (percobaan) dari ``sistem GNU lengkap'' dilakukan tahun 1996. Sekarang (2001), sistem GNU ini bekerja secara handal, serta orang-orang bekerja dan mengembangkan GNOME, dan PPP dalam sistem GNU. Pada saat bersamaan sistem GNU/Linux, merupakan sebuah terobosan dari sistem GNU yang menggunakan Linux sebagai kernel dan mengalami sukses luar biasa. Berhubung tujuan dari GNU ialah untuk kebebasan, maka setiap komponen dalam sistem GNU harus merupakan perangkat lunak bebas. Namun tidak berarti semuanya harus copyleft; setiap jenis perangkat lunak bebas dapat sah-sah saja jika menolong memenuhi tujuan teknis. Seseorang dapat menggunakan perangkat lunak non-copyleft seperti sistem X Window.
``Program GNU'' setara dengan perangkat lunak GNU. Program Anu adalah program GNU jika ia merupakan perangkat lunak GNU.

Perangkat Lunak GNU
Perangkat lunak GNU merupakan perangkat lunak yang dikeluarkan oleh proyek GNU. Sebagian besar perangkat lunak GNU merupakan copyleft, tapi tidak semuanya; namun, semua perangkat lunak GNU harus merupakan perangkat lunak bebas. Jika suatu program adalah perangkat lunak GNU, seseorang juga dapat menyebutnya sebagai program GNU. Beberapa perangkat lunak GNU ditulis oleh staf dari Free Software Foundation (FSF, Yayasan Perangkat Lunak Bebas), namun sebagian besar perangkat lunak GNU merupakan kontribusi dari para sukarelawan. Beberapa perangkat lunak yang dikontribusikan merupakan hak cipta dari Free Software Foundation; beberapa merupakan hak cipta dari kontributor yang menulisnya.

Perangkat Lunak Semi-Bebas
Perangkat lunak semi-bebas adalah perangkat lunak yang tidak bebas, tapi mengizinkan setiap orang untuk menggunakan, menyalin, mendistribusikan, dan memodifikasinya (termasuk distribusi dari versi yang telah dimodifikasi) untuk tujuan non-laba. PGP adalah salah satu contoh dari program semi-bebas. Perangkat lunak semi-bebas jauh lebih baik dari perangkat lunak berpemilik, namun masih ada masalah, dan seseorang tidak dapat menggunakannya pada sistem operasi yang bebas. Pembatasan dari copyleft dirancang untuk melindungi kebebasan bagi semua pengguna. Bagi pihak GNU, satu-satunya alasan untuk membatasi substantif dalam menggunakan program--ialah melarang orang lain untuk menambahkan batasan lain. Program semi-bebas memiliki batasan-batasan tambahan, yang dimotivasi oleh tujuan pribadi semata. Sangat mustahil untuk menyertakan perangkat lunak semi-bebas pada sistem operasi bebas. Hal ini karena perjanjian distribusi untuk sistem operasi keseluruhan adalah gabungan dari perjanjian distribusi untuk semua program di dalamnya. Menambahkan satu program semi-bebas pada sistem akan membuat keseluruhan sistem menjadi semi-bebas. Terdapat dua alasan mengapa GNU tidak menginginkan hal ini: Sudah seharusnya kita percaya bahwa perangkat lunak bebas seharusnya ditujukan bagi semuanya--termasuk pelaku bisnis, dan bukan hanya untuk sekolah dan sekedar hobi saja. GNU ingin mengundang kalangan bisnis untuk menggunakan keseluruhan sistem GNU, dan untuk itu kami tidak dapat menyertakan program semi-bebas di dalamnya. Distribusi komersial dari sistem operasi bebas, termasuk Sistem GNU/Linux sangat penting, dan para pengguna menghargai kemampuan untuk dapat membeli distribusi CD-ROM komersial. Menyertakan satu program semi-bebas dalam sistem operasi dapat memotong distribusi CD-ROM komersial untuknya. Free Software Foundation sendiri adalah organisasi nirlaba, dan karena itu, kami diizinkan secara hukum untuk menggunakan program semi-bebas secara ``internal''. Tapi GNU tidak melakukannya, karena hal itu akan melemahkan upaya yang telah dilakukan untuk memperoleh program yang dapat disertakan ke dalam GNU. Jika ada pekerjaan yang berhubungan dengan perangkat lunak, maka sebelum kami memiliki program bebas untuk melakukan pekerjaan itu, sistem GNU memiliki kesenjangan. Kami harus memberitahukan kepada para sukarelawan, ``Kami belum memiliki program untuk melakukan pekerjaan ini di GNU, jadi kami berharap Anda menulisnya sendiri.'' Jika program semi-bebas digunakan untuk untuk melakukan pekerjaan itu, hal itu akan melemahkan apa yang telah dijelaskan diatas; hal itu akan menghancurkan motivasi (bagi pengembang GNU, dan orang lain yang memiliki pandangan yang sama) untuk menulis substitusi yang bebas.

Perangkat Lunak Berpemilik
Perangkat lunak berpemilik ialah perangkat lunak yang tidak bebas atau pun semi-bebas. Seseorang dapat dilarang, atau harus meminta izin, atau akan dikenakan pembatasan lainnya sehingga menyulitkan--jika menggunakan, mengedarkan, atau memodifikasinya. Free Software Foundation mengikuti aturan bahwa seseorang tidak dapat memasang program-program berpemilik di komputernya kecuali untuk sementara waktu dengan maksud menulis pengganti bebas untuk program tersebut. Disamping itu, pihak perangkat lunak bebas merasa tidak; ada alasan untuk memasang sebuah program berpemilik. Sebagai contoh, pengemban GNU merasa sah dalam memasang Unix di komputer yang digunakan pada tahun 1980-an, sebab kami menggunakannya untuk menulis pengganti bebas untuk Unix. Sekarang, karena sistem operasi bebas telah tersedia, alasan ini tidak lagi dapat diterima; pihak GNU harus menghapus semua sistem operasi tidak bebas yang dimiliki, dan setiap komputer yang dipasang harus berjalan pada sistem operasi yang benar-benar bebas. GNU tidak memaksa para pengguna GNU atau para kontributor GNU untuk mengikuti aturan ini. Ini adalah aturan yang dibuat untuk diri kami sendiri (GNU). Tapi kami berharap agar anda memutuskan untuk mengikutinya juga.

Freeware
Istilah ``freeware'' tidak terdefinisi dengan jelas, tapi biasanya digunakan untuk paket-paket yang mengizinkan redistribusi tetapi bukan pemodifikasian (dan kode programnya tidak tersedia). Paket-paket ini bukan perangkat lunak bebas, jadi jangan menggunakan istilah ``freeware'' untuk merujuk ke perangkat lunak bebas.

Shareware
Shareware ialah perangkat lunak yang mengizinkan orang-orang untuk meredistribusikan salinannya, tetapi mereka yang terus menggunakannya diminta untuk membayar biaya lisensi. Shareware bukan perangkat lunak bebas atau pun semi-bebas. Ada dua alasan untuk hal ini, yakni: Sebagian besar shareware, kode programnya tidak tersedia; jadi anda tidak dapat memodifikasi program tersebut sama sekali. Shareware tidak mengizinkan seseorang untuk membuat salinan dan memasangnya tanpa membayar biaya lisensi, tidak juga untuk orang-orang yang terlibat dalam kegiatan nirlaba. Dalam prakteknya, orang-orang sering tidak mempedulikan perjanjian distribusi dan tetap melakukan hal tersebut, tapi sebenarnya perjanjian tidak mengizinkannya.

Perangkat Lunak Komersial
Perangkat lunak komersial adalah perangkat lunak yang dikembangkan oleh kalangan bisnis untuk memperoleh keuntungan dari penggunaannya. ``Komersial'' dan ``kepemilikan'' adalah dua hal yang berbeda! Kebanyakan perangkat lunak komersial adalah berpemilik, tapi ada perangkat lunak bebas komersial, dan ada perangkat lunak tidak bebas dan tidak komersial. Sebagai contoh, GNU Ada selalu didistribusikan di bawah perjanjian GNU GPL, dan setiap salinannya adalah perangkat lunak bebas; tapi para pengembangnya menjual kontrak penunjang. Ketika penjualnya bicara kepada calon pembeli, terkadang pembeli tersebut mengatakan, ``Kami merasa lebih aman dengan kompilator komersial.'' Si penjual menjawab, ``GNU Ada ialah kompilator komersial; hanya saja ia merupakan perangkat lunak bebas.'' Bagi proyek GNU, penekanannya ada pada hal yang sebaliknya: hal terpenting ialah GNU merupakan perangkat lunak bebas; terlepas komersial atau bukan, itu bukan hal yang penting. Perkembangan GNU yang dihasilkan dari komersialisasinya adalah menguntungkan. Harap sebarkan ke khalayak, perangkat lunak bebas komersial merupakan sesuatu yang mungkin. Sebaiknya, anda jangan mengatakan ``komersial'' ketika maksud anda ialah ``berpemilik''.



4. Klasifikasi sistem komputer

4.1 Klasifikasi Flynn

�� Klasifikasi sistem komputer yang didasarkan pada penggandaan alur instruksi dan alur data diperkenalkan oleh Michael J. Flynn
�� Alur instruksi (instruction stream) adalah urutan instruksi yang dilaksanakan oleh mesin
�� Alur data adalah urutan data yang dipanggil oleh alur instruksi
�� Baik instruksi maupun data diambil dari modul memori
�� Instruksi didecode (diartikan) oleh Control Unit.
�� Alur data mengalir dua arah antara prosesor dan memori.
Ada 4 kategori sistem komputer dalam klasifikasi Flynn:
1. Single Instruction stream – Single Data stream (SISD)
2. Single Instruction stream – Multiple Data stream (SIMD)
3. Multiple Instruction stream – Single Data stream (MISD)
4. Multiple Instruction stream – Multiple Data stream (MIMD)

4.2 Klasifikasi Feng

�� Tse Yun Feng mengusulkan pembagian klasifikasi arsitektur komputer berdasarkan derajat keparalelan (degree of parallelism).
�� Jumlah bit maksimum yang dapat diproses dalam satu satuan waktu oleh sistem komputer disebut derajat keparalelan maksimum P.
�� Bila Pi adalah jumlah bit yang dapat diproses dalam siklus prosesor ke – i (atau periode clock ke – i),
�� Siklus prosesor T dinyatakan oleh i = 1,2,3, ......, T
�� Maka derajat keparalelan rata-rataa adalah :
Biasanya Pi # P.
Laju utilisasi (utilization rate) F sistem komputer dalam siklus T


Jika daya komputasi prosesor dipakai penuh, maka Pi = P untuk semua i dan F = 1 untuk 100% utilisasi.
→ Laju utilisasi bergantung pada program aplikasi yang dieksekusi.
Feng mengklasifikasi sistem komputer juga menggunakan parameter panjang word n, panjang bit slice m.
�� Bit-slice adalah string of bits, yaitu satu dari setiap word pada posisi bit vertikal yang sama.
Ada 4 tipe Metode Pemrosesan :
�� Word Serial and Bit Serial (WSBS)
�� Word Paralel and Bit Setial (WPBS)
�� Word Serial and Bit Paralel (WSBP)
�� Word Paralel and Bit Paralel (WPBP)

WSBS disebut Bit serial procesing karena satu bit (n=m=1) diproses pada satu satuan waktu.
�� Proses : lambat
�� Komputer generasi pertama

WPBS (n=1, m>1) disebut BIS procesing ( Bit Slice Procesing) karena sejumlah m bit slice diproses pada satu satuan waktu.
WSBP (n>1, m=1) disebut Word slice processing karena satu word pada n bit diproses pada satu satuan waktu.
�� Ditetapkan pada kebanyakan komputer sekarang.

WPBP (n>1, m>1) disebut Fully Paralel Processing (Paralell Processing) disini array dari n,m bits diproses pada satu satuan waktu.
��Proses : lambat
��Komputer generasi pertama

WPBS (n=1, m>1) disebut BIS procesing ( Bit Slice Procesing) karena sejumlah m bit slice diproses pada satu satuan waktu.
WSBP (n>1, m=1) disebut Word slice processing karena satu word pada n bit diproses pada satu satuan waktu.
��Ditetapkan pada kebanyakan komputer sekarang.
WPBP (n>1, m>1) disebut Fully Paralel Processing (Paralell Processing) disini array dari n,m bits diproses pada satu satuan waktu.
��Proses : paling cepat.