Tugas 1 Gita Citra Puspita (System call)

Sistem Call
Sistem call menyediakan penghubung (interface ) antara proses menjalankan program dan system operasi, biasanya tersedia dalam bentuk intruksi bahasa assembly dan bahasa assembl digantikan untuk system programming agar mengijinkan system call dibuat secara langsung.
Sistem call adalah sebuah perintah atau permintaan yang merupakan sebuah program yang dibuat untuk suatu system operasi.
Fungsi dari system call

1.       Kontrol
Hal-hal yang dilakukan:
• Mengakhiri (end) dan membatalkan (abort);
• Mengambil (load) dan eksekusi (execute);
• Membuat dan mengakhiri proses;
• Menentukan dan mengeset atribut proses;
Wait for time;
Wait event, signal event;
• Mengalokasikan dan membebaskan memori.

2.       Manipulasi File
Hal-hal yang dilakukan:
• Membuat dan menghapus file;
• Membuka dan menutup file;
• Membaca, menulis, dan mereposisi file;
• Menentukan dan mengeset atribut file;

3.       Manipulasi Device
Hal-hal yang dilakukan:
• Meminta dan mebebaskan device;
• Membaca, menulis, dan mereposisi device;
• Menentukan dan mengeset atribut device;

4.       Informasi Lingkungan
Hal-hal yang dilakukan:
• Mengambil atau mengeset waktu atau tanggal;
• Mengambil atau mengeset sistem data;
• Mengambil atau mengeset proses, file atau atributatribut
device;

5.       Komunikasi
Hal-hal yang dilakukan:
• Membuat dan menghapus sambungan
• Mengirima dan menerima pesan;
• Mentransfer satus informasi;


Langkah-langkah system call


TUGAS SISTEM OPERASI 2


TUGAS SISTEM OPERASI 2
1.            Apakah keuntungan dari layer approach pada sistem design? Dan apakah kerugiannya?
Jawab an:
Keuntungan dari Approach Layer pada OS Design
·                     Memiliki semua kelebihan rancangan modular, yaitu :
Ø  Tiap lapisan dapat dirancang, dikode dandiuji secara independen.
Ø  Pendekatan berlapis menyederhanakan rancangan, spesifikasi dan implementasi sistem operasi.
Ø  Mempermudah debug dan verifikasi sistem.
Ø  Lapisan pertama bisa di-debug tanpa mengganggu sistem yang lain.
 Kerugian dari Approach Layer pada OS Design
·                     fungsi-fungsi sistem operasi harus diberikan ke tiap lapisan secara hati-hati
·                     Hanya bisa menggunakan lapisan dibawahnya
·                     Tidak efisien dibandingkan tipe yang lain

2.                  Sebutkan 5 servis/layanan yang diberikan oleh sistem operasi, jelaskan bagaimana masing-masing memberikan kemudahan kepada pengguna.  Jelaskan juga dalam kasus apa yang tidak mungkin untuk user-level program untuk menyediakan layanan ini.
Jawaban:
Berikut ini adalah kategori-kategori layanan yang diberikan oleh sistem operasi:
1.                  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. Antarmuka (interface) adalah salah satu layanan yang disediakan sistem operasi sebagai sarana interaksi antara pengguna dengan sistem operasi. Antarmuka merupakan komponen sistem operasi yang bersentuhan langsung dengan pengguna. Terdapat dua jenis antarmuka, yaitu Command Line Interface (CLI) dan Graphical User Interface (GUI). 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 (biasanya interface ini sering digunakan oleh pengguna yang memiliki pemahaman dalam dunia ICT). 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 ( biasanya interface ini diperuntukkan untuk memberikan kemudahan pada pengguna awam).
2.                  Eksekusi Program
Sistem harus bisa me- load program ke memori, dan menjalankan program tersebut. Program harus bisa menghentikan pengeksekusian baik secara normal maupun tidak (ada error).
3.                  Operasi Masukan/Keluaran
 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.
4.                  Manipulasi Sistem Berkas
Program harus membaca dan menulis berkas, dan kadang kala juga harus membuat dan menghapus berkas.
5.                  Komunikasi
Kadang kala sebuah proses memerlukan informasi dari proses lain. Ada dua cara umum dimana komunikasi dapat dilakukan. Komunikasi dapat terjadi antara proses dalam satu komputer, atau antara proses yang berada dalam komputer yang berbeda tetapi dihubungkan oleh jaringan komputer. Komunikasi dapat dilakukan dengan share-memory atau message-passing, dimana sejumlah informasi dipindahkan antara proses oleh sistem operasi.
6.                  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:
7.                  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.
8.                  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 sistem untuk meningkatkan pelayanan.
9.                  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
Kasus yang tidak memungkinkan user-level program untuk menyediakan layanan OS:

DoS attack merupakan serangan yang bertujuan untuk melumpuhkan target (hang, crash)  sehingga sistem tidak dapat memberikan layanan. Serangan ini tidak melakukan pencurian, penyadapan, ataupun pemalsuan data. Akan tetapi dengan hilangnya layanan maka target tidak dapat memberikan servis sehingga ada kerugian finansial. Bagaimana status dari DoS attack ini? Bayangkan bila seseorang dapat membuat ATM bank menjadi tidak berfungsi. Akibatnya nasabah bank tidak dapat melakukan transaksi dan bank (serta nasabah) dapat mengalami kerugian finansial. DoS attack dapat ditujukan kepada server (komputer) dan juga dapat ditargetkan kepada jaringan (menghabiskan bandwidth). Tools untuk melakukan hal ini banyak tersebar di Internet. DDoS attack meningkatkan serangan ini dengan melakukannya dari berberapa (puluhan, ratusan, dan bahkan ribuan) komputer secara serentak. Efek yang dihasilkan lebih dahsyat dari DoS attack saja.
3.      Apakah keuntungan dari microkernel approach pada system design?
Jawaban:
Keuntungan:
      1.            Ketika layanan baru akan ditambahkan ke user-space, kernel tidak perlu di-modif
      2.            OS lebih mudah ditempatkan (porting) pada suatu desain perangkat keras ke desain perangkat keras lainnya (asrsitektur sistem yang baru)
      3.            Mendukung keamanan & reliabilitas lebih.
4.      Jelaskan perbedaan antara preemptive and nonpreemptive scheduling!
Jawaban:
 Perbedaan antara preemptive dan non preemptive design:

No.
Preemptive
Non-preemptive
1.
OS dapat mengambil (secara interrupt, preempt) CPU dari satu proses setiap saat.
setiap proses secara sukarela (berkala) memberikan CPU ke OS.

2.
Penjadwalan preemptive mungkin akan dijalankan ketika proses dalam keadaan :
-         Brubah dari running ke waiting state.
-         Berubah dari running ke ready state.
-         Berubah dari waiting ke ready state.
-         Dihentikan.

Penjadwalan Non Preemptive terjadi ketika proses hanya :
-          Berjalan dari running state sampai waiting state
-       Dihentikan
5.      Apakah yang membedakan PCS dan SCS scheduling?
Jawaban:
-          Process Contention Scope (PCS). API thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process).
-          System Contention Scope (SCS), memilih satu dari banyak thread , lalu menjadwalkannya ke thread tertentu (CPU / Kernel).
6.      Berikan alasan mengapa Solaris, Windows XP, and Linux mengimplementasikan mekanisme multiple locking. Jelaskan keadaan dimana mereka menggunakan spinlock, mutexes, semaphores, adaptive mutexes, dan condition variables. Pada setiap kasus, jelaskan mengapa mekanisme tersebut dibutuhkan.
Jawaban:
Sistem-sistem operasi tersebut menyediakan mekanisme penguncian yang berbeda tergantung pada kebutuhan pengembang sistem operasi tersebut. Spinlocks berguna untuk sistem multiprosesor di mana thread dapat berjalan dalam sebuah busy-loop (untuk jangka waktu yang pendek) dibandingkan jika menimbul overhead dari masukkan ke dalam sleep queue. Mutexes berguna untuk mengunci sumber daya. Solaris 2 menggunakan mutexes adaptif, berarti bahwa mutex itu diimplementasikan dengan kunci spin pada mesin multiprosesor. Semaphores dan kondisi variabel lebih tepat digunakan untuk sinkronisasi ketika sumber daya dibutuhkan untuk jangka waktu yang panjang, karena spinning tidak efisien untuk durasi yang panjang.
7.       Jelaskan mengenai konsep dari transaction atomicity!
Jawaban:
  Konsep dari Transaction Atomicity
Atomisitas adalah properti “all or none” atau “seluruhnya atau tidak sama sekali”, maksudnya seluruh aksi di transaksi dilakukan atau tidak dilakukan sama sekali. Properti ini merupakan perluasan operasi tunggal menjadi seluruh operasi di transaksi. Atomisitas berarti jika eksekusi transaksi mengalami kegagalan, system bertanggungjawa melakukan pemulihan terhadap kegagalan dengan meniadakan efek-efek operasi-operasi yang telah dilakukan, mengembalikan sistem ke state saat dimulai transaksi.
Sistem harus menjamin transaksi yang berjalan sampai selesai atau jika tidak selesai, maka tidak diselesaikan sama sekali. Ketika transaksi berhasil diselesaikan maka disebut commtited,Jika transaksi tidak berhasil diselesaikan, disebut aborted dan sistem bertanggungjawab menjamin perubahan parsial apapun yang dilakukan pada transaksi dan dikembalikan ke situasi semula atau disbut roll back. Eksekusi atomic mengimplikasikan transaksi dilakukan secara keseluruhan atau tidak tidak dilaksanakan sama sekali.

8.      Berikan 3 contoh dari deadlocks yang tidak ada hubungannya dengan lingkungan sistem komputer!
Jawaban:
1.       Kasus deadlock pada lalu lintas di jembatan.
Pada sebuah jembatan kecil (yang hanya bisa dilewati oleh sebuah kendaraan roda 4 / mobil) secara kebetulan pada suatu waktu terdapat sederetan mobil dari dua arah (kiri-kanan) berlawanan melintasi jembatan tersebut. Hal ini menyebabkan kemacetan panjang hingga beberapa kilometer. Karena sama2 memiliki kepentingan (menuju tujuan masing2) maka sederetan mobil tersebut (baik yang berasal dari arah kiri maupun kanan) tidak ada yang mau mengalah. Sekalipun ada yang mau mengalah, tidak ada jalan keluar, karena kemacetan / barisan mobil yang terbentuk sudah terlalu panjang, inilah yang disebut starvation akibat terjadinya deadlock (jalan buntu).
2.       Deadlock pada kasus di persimpangan
Di sebuah persimpangan jalan yang terletak di Ciledug, pada suatu saat system yang mengatur lalu lintas di persimpangan tersebut mangalami error. Sedangkan kita tahu bahwa persimpangan di daerah tersebut tidak pernah sepi dengan kendaraan dengan barbagai jenis kendaraan (motor, mobil, truck, bus, dll). Semua kendaraan yang terjebak dalam kondisi tersebut tidak mampu berbuat banyak kecuali berdiam di tempat. Karena apabila ssatu kendaraan saja maju atau mundur maka kecelakaan tidak bisa dihindarkan.
3.       Kasus deadlock di sebuah pintu kecil
Pada sebuah rumah yang dihuni oleh sepasang suami istri yang memiliki berat badan lebih (keduanya sama2 gemuk) kebetulan pintu untuk keluar rumah hanya bisa dilewati oleh salah satu dari dua orang tersebut. Pada suatu pagi di saat yang bersamaan, suami istri tersebut sama2 ada keperluan mendadak dan sangat mendesak hingga mengharuskan keduanya untuk keluar rumah di saat itu juga. Dari kedua manusia berbadan besar tersebut sama2 keras kepala tidak ada yang mau merelakan salah satu di antranya untuk keluar duluan. Keadaann ini berlangsung hingga 2 jam, tidak ada yang mundur dan tidak ada yang maju.
4.       Kasus deadlock pada saat ujian
Di sebuah universitas islam negeri di Jakarta untuk fakultas SAINTEK jurusan TI semester 4 kelas C, pada tanggal 14 Juni 2011 telah diadakan Ujian Akhir Semester (UAS) untuk mata kuliah Sistem Operasi. Karena tidak ada persiapan matang, seorang mahasiswa peserta ujian mengalami kesulitas menjawab soal-soal yang telah diberikan. Bukan hanya 1 atau 2 soal yang tidak mampu dijawab melainkan seluruh soal tidak ia kerjakan sama sekali. Sekeras apapun dia berfikir, tak ada satupunjawaban terlintas di otaknya. Hingga akhirnya waktu ujian telah habis, sehinhgga dengan sangat terpaksa mahasiswa tersebut mengumpulkan lembar jawaban tanpa ada jawaban satu soalpun.

9.      Dapatkan system mendeteksi beberapa process adalah starving? Jika “ya” jelaskan bagaimana itu bisa. Jika “tidak” jelaskan bagaimana system dapat deal dengan starvation problem!
Jawaban:
Tidak, system hanya bisa mendeteksi adanya deadlock, tetapi tidak dapat mendeteksi terjadinya starvation.
Ada beberapa cara untuk mengatasi maslah starvation sehingga system dapat deal dengan starvation problem :
a.       Dengan Aging


Ada beberapa cara untuk mengatasi Starvation, salah satunya dengan Aging. Pada flowchart di atas, proses awal yang ada diberi urutan ( N ) pemrosesan dengan rumus N = ( P+T ) / P. N maksimum akan mulai dikerjakan dan proses yang lain dinaikkan tingkat urutan prosesnya agar nanti jika ada proses lain yang masuk, proses terdahulu mendapatkan bagian resource dan dapat dikerjakan. Jika ada beberapa proses yang memiliki N maksimum, maka diantara proses tersebut dilihat dari waktu yang dibutuhkan untuk menyelesaikannya. Jika masih sama juga, maka dilihat waktu kedatangannya.


b.      Dengan penjadwalan Round Robin


Selain itu, Starvation juga dapat diatasi dengan pemrosesan dengan cara Round Robin. Pada Round Robin, proses yang masuk akan dimasukkan ke dalam antrian menurut kedatangan proses tersebut. Dalam penyelesainnya, suatu proses tidak akan langsung selesai jika waktu yang dibutuhkan melebihi waktu kuantum yang diberikan. Waktu kuantum adalah waktu yang diberikan untuk menyelesaikan suatu proses. Ketika sutu proses telah mencapai batas waktu kuantum, sisa dari proses tersebut dikembalikan ke antrian paling belakang dan resource dipindahkan ke proses selanjutnya. Dengan cara ini, semua proses yang mengantri, akan mendapatkan resource secara bergantian ( tidak ada proses yang memonopoli resource ) sehingga semua proses dapat diselesaikan.

10.  Gambarkan suatu mekanisme dimana satu segmen dapat berasal dari address space dari dua proses yang berbeda.
Jawaban:
Segmentasi adalah sebuah bagian dari managemen memori yang mengatur pengalamatan dari memori yang terdiri dari segmen-segmen. logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. alamat tersebut menunjukkan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut. pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen dan offset dari segmen tersebut (Hal ini berbeda dengan pemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat dilihat oleh user).

Untuk kemudahan pengimplementasian, segmen-segmen diberi nomor dan direferensikan dengan menggunakan penomoran tersebut, daripada dengan menggunakan nama. maka, logical address space terdiri dari dua tuple yaitu: (nomor-segmen, offset) Pada umumnya, program dari pengguna akan dikompilasi, dan kompilator tersebut akan membuat segmen-segmen tersebut secara otomatis. Jika mengambil contoh kompilator dari Pascal, maka kemungkinan kompilator tersebut akan membuat beberapa segmen yang terpisah untuk
-          Variabel Global;
-          Prosedur dari pemanggilan stack, untuk menyimpan parameter dan pengembalian alamat;
-          Porsi dari kode untuk setiap prosedur atau fungsi; dan
-          Variabel lokal dari setiap prosedur dan fungsi.
11.  Berikan contoh dari sebuah aplikasi dimana data dalam sebuah file harus diakses :
a.      Sequentially
b.      Randomly
Jawaban :
a.       Aplikasi Pendataan Stok Barang, untuk pendataan barang data harus diakses secara berurutan berdasarkan kode barang.
b.      Aplikasi Permainan Hang Man, untuk data huruf acak yg akan muncul, data huruf akan diakses secara acak dalam array.

OS Design

Sejak pertama telah dikenal dua jenis OS untuk menggerakkan komputer, UNIX dan non-UNIX (MS-DOS, Mac-OS, dll.) UNIX digunakan pada komputer besar seperti super komputer, mainframe, dan sebagainya, sedangkan non-UNIX banyak digunakan pada jenis PC. Dengan adanya trend down sizing, yakni kecenderungan penggunaan komputer besar ke arah komputer kecil termasuk PC, maka sistem berbasis UNIX juga sangat diperlukan.

Gambar 1. Bagan sistem operasi UNIX

UNIX dikembangkan diakhir tahun 60-an oleh sebuah group yang dipimpin Ken Thompson dari AT&T Laboratories. Pada awalnya OS ini didistribusikan secara gratis untuk pengembangannya ke institusi-institusi pendidikan. Namun dalam perjalanannya, setelah banyak digunakan pula dalam dunia industri karena kehandalannya dalam dunia jaringan (networking), maka OS ini dipatenkan dan diperdagangkan. Secara ringkas bagan sistem operasi UNIX bisa dilihat pada Gambar 1.
Selain dalam bidang jaringan UNIX juga dirancang untuk mengerjakan perintah-perintah program secara simultan (multitasking) dan bisa digunakan oleh beberapa user secara bersama (multiuser). Karena berbagai kemampuan yang dimilikinya, UNIX menjadi sangat mahal harganya dan digunakan secara terbatas. Pada awalnya para penggemar UNIX telah membuat aplikasi-aplikasi yang berjalan di atas sistem operasi DOS semisal Unixtool, MINIX, dan sebagainya. Untuk lebih memasyarakatkan sistem operasi berbasis UNIX ini, seorang hacker handal berkebangsaan Finlandia (Linuz B. Torvalds) mengembangkan sebuah sistem berbasis UNIX yang bisa diimplementasikan di komputer setingkat PC (PC-UNIX) yang dikenal dengan nama Linux. Linux adalah open source OS berlesensi GPL (GNU-General Public Lisence) yang mana pendistribusian dan pengembangannya bisa dilakukan secara bebas dengan mengikutkan kode program asal sebagai turunannya. Dalam kondisi yang sulit seperti sekarang ini, maka OS seperti Linux, FreeBSD, dll merupakan suatu alternatif yang tepat untuk digunakan.
Sebenarnya Linux hanya merupakan sebuah kernel dari sebuah sistem PC-UNIX yang mengatur semua program-program baik aplikasi maupun aksesori yang mengikutinya. Untuk mudahnya bisa diperhatikan ringkasan di Gambar 2. Kernel adalah sebuah program yang mengatur kontrol bermacam-macam hardware atau distribusi file-file yang diperlukan. Dengan demikian kernel bisa juga dianggap sebagai "jantung"-nya OS.




Gambar 2. Imajinasi PC-UNIX
Jika dibandingkan dengan MS-Windows9x, maka kernel identik dengan file-file .DLL yang berada dalam direktori system. Untuk menghubungkan kernel dengan user, maka diperlukan beberapa program aplikasi sebagai interface-nya. Program-program tersebut antara lain adalah: Network tool, User command, X-Window, dll.
Kebanyakan program-program aplikasi yang menyertai Linux memiliki lesensi GPL sehingga lebih fleksibel untuk digunakan sesuai dengan kebutuhan dan mudah didapat dari berbagai site umum di Internet atau CD-ROM pada majalah dan buku-buku tertentu. Untuk itu beberapa orang atau perusahaan berinisiatif membuat sebuah paket distribusi yang memudahkan user atau calon user untuk menginstalasi sistem ini ke PC yang tengah digunakannya.



1.     Deskripsi Sistem Operasi Unix
Sebelum ini aku pernah membuat pengenalan berkenaan sistem pengoperasian LINUXkali ini mari kita sama2 apakah yang dikenali pula dengan sistem pengoperasian UNIX ?
Ia disebut sebagai yoo-niks, merupakan satu multi-user yang popular, mula dicipta diBell Labs ( Bell Telephone Laboratories) pada awal tahun 1970-an. Unix adalah sebuah sistem pegoperasian yang matang, satu perisian yang mengawal komputer dan mempunyai ciri2 terbaik dari segi keselamatan, pelbagai penggunaan dan boleh digandingkan dengan komputer berkapasiti tinggi. Ia direka supaya mudah dikendali, cekap dan mempunyai pelbagai suasana dalam penggunaan komputer. Mempunyai pelbagai versi mengikut pengeluarnya dan agak rumit untuk mempelajarinya bagi kebanyakan pengguna yang masih baru mengenali komputer.
UNIX dicipta oleh sekumpulan pengaturcara. UNIX direka menjadi satu sistem yang kecil dan flexible khusus untuk kegunaaan para pengaturcara. UNIX merupakan sistem pengoperasian yang pertama yang ditulis dalam bahasa paras tinggi iaitu C. Ini bermakna ia boleh di pasangkan secara mutlak dalam mana2 sistem komputer yang terbina Pengkompilan bahasa pengaturcaraan C dari komputer peribadi sehingga ke Supercomputer.
Bell Labs telah mengedarkan sistem pengoperasian ini dalam satu bentuk sumber bahasa supaya sesiapa sahaja yang mendapat salinan boleh membuat pengubahsuaian untuk kegunaan sendiri. Pada akhir tahun 1970, pelbagai versi UNIX telah mula dijalankan di pelbagai tempat dan lokasi. Waktu itu harganya yang murah serta mudah untuk dibawa menjadikannya pilihan utama antara pusat2 pengajian tinggi. (murah oleh kerana peraturan antitrust melarang Bell Labs daripada menjualnya dalam pasaran).
Pada tahun 1982, AT & T mula bergiat menjual UNIX . Ia juga sebagai permulaan proses yang amat panjang dan sukar untuk mentakrif versi piawai sebenar bagi UNIX. Awalnya, terdapat dua dialek utama UNIX iaitu salah satunya dihasilkan oleh AT & T yang dikenali sebagai System V dan satu lagi dihasilkan di Universiti Berkeley dan dikenali sebagai BSD.X,X menjadi nombor dari 1 hingga 3.
Disebabkan ia portable, berkuasa dan flexible, UNIX telah menjadi Sistem Pengoperasian yang penting untuk stesen2 pekerjaan dan pembelajaran. UNIX kurang popular dalam pasaran komputer peribadi tetapi dengan munculnya satu versi baru yang dikenali sebagaiLinux , ia telah mula muncul dalam semua platform.
Standard UNIX yang terkini ialah yang pertama System V Unix yang dibangunkan oleh AT & T ( kemudiannya dimiliki oleh Unix System Laboratories) dan SUN serta OSF/1 UNIX oleh IBM, DEC dan HP. Mereka telah bersetuju dengan standards set yang dibuat oleh Jawatankuasa POSIX , yang kedua adalah keluarga Unix BSD ( Berkely Software Distibution) dan keluaga Unix terakhir dimana kodingnya tiada kaitan lansung dengan koding asal UNIX iaitu klon Unix yang di kenali sebagai LINUX.


Gambar (atas): Keluarga UNIX


Cara Instalasi
2.     Instalasi Unix
Apakah mudah menginstalasi linux? pertanyaan yang sering penulis temui pada para peminat OS ini. Untuk menginstal linux ada beberapa hal yang perlu diperhatikan diantaranya: informasi hardware, jenis distribusi linux, dan cara instalasinya. Pada bagian ini akan dicoba diterangkan secara garis besarnya bagaimana cara menginstalasi linux di sebuah PC.
Untuk persiapan instalasi, informasi hardware memang sangat diperlukan diantaranya adalah:
o    CPU (penting)
Untuk CPU kita sedikitnya harus mengetahui jenis CPU dikomputer kita. Untuk CPU Intel dan kompatibelnya bisa menggunakan distribusi linux biasa, hanya saja untuk CPU non-Intel (Motorolla, Alpha, Sparc) paket distribusi khusus yang diperlukan. Saat ini penulis masih memakai CPU jenis AMD-K5/P100 yang merupakan kompatibel dari CPU Intel Pentium 100 MHz. Selain jenis CPU juga perlu diperhatikan jenis bus yang digunakan pada motherboard-nya. Ada ISA, EISA, VL, PCI, dll-nya. Hanya saja akhir-akhir ini banyak motherboard yang hanya menggunakan ISA dan PCI bus saja yang juga sudah disupport linux. Demikian pula untuk AGP bus teknologi terakhir untuk akselerasi grafis.
o    Memory/RAM (penting)
Besarnya memory pada PC kita juga perlu diketahui untuk mengalokasikan swap disk di harddisk. Biasanya besar swap disk dianjurkan 2 kali besarnya RAM sampai maksimum 128 MB. Jika lebih besar dari 128 MB maka diperlukan multiple swap dan tentu saja semakin besar RAM akan semakin baik. Pembuatan multiple swap bisa dilakukan sampai 11 partisi atau sampai sekitar 2 GB. Penulis masih menggunakan 16 MB RAM untuk instalasi linux disalah satu PC-nya.
o    Driver (penting)
Sangat diperlukan untuk mengetahui jenis interface dari harddisk (HD), CD-ROM, dan media lainnya, sebelum menginstalasi linux. Jika HD kita jenis IDE/ATAPI akan sedikit berbeda dengan HD jenis SCSI walaupun secara umum sama dalam pembagian partisinya. Juga penting pula diperhatikan berapa bagian untuk partisi linux dan swap disk-nya. Sebagai informasi diperlukan kapasitas antara 60 s/d 100 MB untuk instalasi linux dan aplikasinya tanpa X-Window, dan diperlukan sekitar 600 MB jika menyertai X-Window dan applikasinya. Pada umumnya setiap driver yang terdeteksi ketika boot pertama akan dapat di-instal Linux, walaupun belum menjadikannya jaminan. Untuk floppy disk drive (FDD) merupakan driver utama yang bisa menetapkan dengan cara apa dan bagaimana instalasi dilakukan. Satu unit HD penulis bermerek Western Digital (WDC AC21000H) sebesar 1 GB dibagi menjadi 3 bagian; 32MB linux-swap, 700MB dan 270MB linux-native.
o    Video Card dan Display Monitor (tambahan)
Informasi ini penting jika kita ingin menjalankan X-Window. Pertama yang harus diperhatikan adalah jenis chips dari video card (VGA) yang akan dipakai untuk menentukan X-Server-nya. Makin baru versi distribusi linux-nya, makin banyak jenis VGA yang disupport, yang terkenal diantaranya: SVGA, VGA, Cirrus Logic, OAK, S3, Tridend, Tseng, ATI Mach, dll. Yang tidak kalah pentingnya adalah jenis display monitor yang kita gunakan. Kita harus mengetahui berapa frekwensi sinkron horizontal (HorizSync)-nya dan berapa frekwensi refresh vertikal (VertRefresh)-nya. Penulis masih menggunakan jenis VGA S3/ViRGE-DX dan display monitor IBM 15R-2115 dengan HorizSync 30-62KHz, VertRefresh 50-120Hz.
o    Aksesori (tambahan)
Informasi untuk aksesori lainnya seperti keyboard, mouse, network card interface (NIC), soundboard, modem, dan lainnya diperlukan jika akan digunakan. Jenis dan cara instalasi aksesori-aksesori bisa ditelusuri dari dokumen yang ada pada setiap paket distribusi atau mencari langsung di situs-situs linux di Internet.
Setelah kita menyiapkan berbagai informasi hardware PC kita, maka kita mesti menentukan paket distribusi apa yang akan kita pakai. Setiap paket distribusi mempunyai cara tersendiri untuk menginstalnya. Sebagai contoh distribusi Slackware memerlukan 2 buah disket yang digunakan untuk membuat boot-disk dan root-disk. Untuk distribusi RedHat diperlukan sebuah disket untuk boot-disk jika instalasi dilakukan dari CD-ROM dan sebuah disket tambahan jika instalasi dijalankan dari media selain itu (HD, network, dll.). Sedangkan untuk distribusi Debian hanya diperlukan sebuah boot-disk saja. Dan untuk distribusi lainnya bisa ditelusuri dari dokumentasi yang menyertainya.
Secara ringkas instalasi dapat dilakukan dengan tahapan sebagai berikut:
o    Partisi HD
Untuk meng-instalasi sebuah paket distribusi linux, kita harus mengalokasikan ruang (space) pada HD yang kita miliki. Diasumsikan spesifik PC kita memiliki HD 1.2 GB yang telah ter-instal MS-Windows9x didalamnya sebesar 400 MB dan RAM 32 MB. Sebelum membuat partisi sebaiknya kita memeriksa kondisi HD dan memperbaikinya dari sektor-sektor yang rusak/error serta merapihkan susunan datanya. Biasanya penulis menggunakan CHKDSK.EXE/SCANDSKW.EXE untuk memeriksa sekaligus membetulkan sektor yang rusak dan DEFRAG.EXE untuk merapihkan datanya. Kemudian membuat partisi lain dengan menggunakan program gratis FIPS.EXE yang biasanya sudah ada disetiap distribusi Linux. Untuk partisi ini bisa juga digunakan program-program komersial lainnya semisal Partition Magic, Partition IT, Norton Utility, dll. Langkah-langkah diatas untuk menyelamatkan data dan susunan file-file MS-Windows9x agar tidak rusak dan untuk lebih jelasnya bisa diperhatikan imajinasi di Gambar 3. Partisi HD yang dibuat adalah 500 MB untuk ruang DOS, 32 MB untuk linux-swap, 500 MB untuk linux (/), dan 200 MB untuk linux (/home).

Gambar 3. Proses partisi HD
Untuk HD yang masih baru, bisa saja langsung menggunakan FDISK.EXE atau program fdisk yang ada dalam paket distribusi linux untuk membuat partisinya.
o    Instalasi Paket Distribusi
Bila paket distribusi Slackware yang akan kita instal, sebelum memulai instalasi kita harus membuat boot dan root disk dahulu. File image untuk boot dan root disk bisa ditemui masing-masing di direktori \SLACKWAR\BOOTDSK1 dan \SLACKWAR\ROOTDSKS. Untuk merekam file image ke disket kosong yang telah diformat bisa menggunakan program RAWRITE.EXE dalam DOS atau perintah
dd if=/direktori_file_image of=/dev/fd0 dalam UNIX. Ada bermacam-macam jenis file image untuk boot maupun root disk dan masing-masing keterangan bisa didapat pada dokumentasi yang menyertainya. Setelah seluruh disket siap, maka kita harus me-restart PC dan memasukkan disket agar mulai boot dari disket tersebut. Setelah mengikuti beberapa instruksi maka kita diminta mengisi root dan mulai membuat partisi atau sistem file linux dengan perintah fdisk. Dalam UNIX semua device dikenal sebagai sebuah sistem file, demikian pula pada linux. Untuk HD ber-interface IDE/ATAPI biasanya maksimal 4 unit dan dikenal sebagai /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd dan interface SCSI sebagai /dev/sda, /dev/sdb, dan seterusnya. /dev/hdb biasanya digunakan untuk CD-ROM. Dengan perintah fdisk [device-file] kita bisa membuat partisi di HD yang kita inginkan dan membuat jenis sistem file sesuai dengan keperluan. Keterangan selanjutnya bisa dilihat pada perintah help ketika perintah fdisk dijalankan. Setelah partisi siap maka kelanjutan perintah adalah menjalankan perintah setup dan terus mengikuti beberapa instruksi sampai semua paket distribusi selesai diintalasi.
Sedangkan untuk paket distribusi RedHat dan Debian kita cukup membuat sebuah boot disk saja dan mengikuti segala instruksinya termasuk perintah untuk partisi HD yang menjadi satu dengan program installer-nya. Untuk distribusi RedHat dan Debian instalasi awal akan lebih mudah dijalankan dalam sebuah PC.
o    Multiple Boot Loader
Kelebihan dari sistem linux adalah pemakaian bersama dengan OS lainnya, misalnya MS-Windows9x. Untuk itu diperlukan sebuah program yang bisa memilih OS mana yang akan kita gunakan. Ada bermacam-macam program yang disediakan baik yang gratis maupun yang komersial. Yang banyak digunakan dan ada dalam sebagian paket distribusi linux adalah LILO (Linux Loader) yang direkam langsung ke MBR (Mother Board Record) HD atau LOADLIN yang dijalankan diatas MS-DOS. Khusus bagi LILO yang terekam pada MBR-nya HD bisa dihapus dengan memakai perintah FDISK.EXE /MBR yang dijalankan diatas MS-DOS. Untuk keterangan selanjutnya bisa ditelusuri dalam dokumentasi yang menyertainya.
o    Setting Tambahan
Jika kita telah berhasil meng-instalasi sebuah paket distribusi maka kita tinggal menyesuaikan bentuk sistem kita sesuai dengan keperluan. Bisa dengan menambah program-program aplikasi lain atau dengan meng-kompile ulang kernel agar semua peralatan (modem, SCSI-card, NIC, dll.) dan sistem file (MS-DOS, Windows, dll.) dapat terdeteksi dan tersusun dengan sempurna. Hampir semua cara dan dokumentasi tersedia baik dalam sebuah paket distribusi maupun situs-situs linux (http://www.linux.or.id, http://www.linux.org, dlsb.) di Internet.