Kamis, 26 Maret 2020

Sejarah Linux


SEJARAH SISTEM OPERASI LINUX

     A.    Project GNU

Berawal dari berdirinya yayasan perangkat lunak bebas yang didirikan oleh Richard Stallman pada tahun 1985, dia mengembangkan lisensi public umum GNU (GNU General Public License atau GNU GPL). Kebanyakan program yang dibutuhkan oleh sebuah sistem operasi seperti pustaka, compiler, penyunting teks, shell unix dan sistem jendela diselesaikan pada awal tahun 1990-an, walaupun elemen-elemen tingkat rendah seperti device driver, daemon dan kernel masih belum selesai pada saat itu.

    B.     Minix.

Adalah sebuah sistem bertipe unix yang ditujukan untuk penggunaan akademi dirilis oleh Andrew S. Tanenbaum pada tahun 1987. Source code dari Minix 1.0 tercantum dalam bukunya operating system: Design and Implementation. Hak cipta dari source codenya termasuk dalam hak cipta dari bukunya yang dipublikasikan oleh Prentice hall, walaupun dapat di modifikasi dan didapatkan, pendistribusian ulang tidak diperbolehkan saat itu. Karena desain Minix versi 16-bit nya tidak secara baik diadaptasikan kepada versi 32-bit dari arsitektur intel 386 yang pada saat itu sudah digunakan dan popular secara luas di computer pribadi. Maka dari itu trovalds mulai merancang versi non-komersial pengganti minix sewaktu dia belajar di Universitas Helsinki. Hasil kerjanya kemudian akan menjadi kernel linux.

    C.     Terciptanya Linux.

Pada awalnya Linus Trovalds seorang mahasiswa di Universitas Helsinki yang menggunakan Minix, walaupun cukup bagus, ia masih merasa sistem operasi ini belum memadai dan kemudian pada tahun 1991 dia membuat sistem operasi clone dari unix, yang dia beri nama linux. Nama tersebut merupakan kombinasi dari nama dia sendiri dan nama sistem operasi yang menjadi targetnya (UNIX). Kemudian dia mengumumkan hasil kerjanya di newsgroup pada tanggal 25 agustus 1991 yang mendapatkan respon postitf dari pengguna internet saat itu dan selanjutnya linux dikembangkan oleh linus dan dibantu oleh programmer dari seluruh dunia lewat internet.
Pada saat pertama peluncurannya sistem operasi linux masih setengah jadi dan hanya bisa menjalankan sedikit task dari perintah UNIX seperti bash, gcc, dan gmu-make. Pada tahun 1992, Tanenbaum menulis sebuah artikel di usenet, yang mengklaim linux sudah ketinggalan zaman karena menurut dia linux masih memakai rancangan monolitik dan terlalu terpaku pada arsitektur x86 sehingga tidak bisa bersifat portable. Tanenbaum menyarankan bila ingin sebuah sistem operasi modern harus melihat pada sebuah rancangan yang bersifat microkernel. Tulisan tersebut menekankan tanggung jawab trovalds yang berujung debat tentang rancangan tentang kenel monolitik dan microkernel. Dan setelah dilincurkannya linux 1.0 pada tahun 1994, sistem operasi ini bisa dikatakan cukup stabil dan mulai memiliki banyak feature seperti kemampuan membagi sumber daya CPU untuk banyak aplikasi (preemptive multitasking) dan kemempuan membagi task diantara banyak CPU (symmetric multiprocessing).

    D.    Logo Linux

Logo dari sistem operasi linux merupakan seekor penguin yang sedang duduk. Cerita dari terpilihnya penguin sebagai logo linux adalah ketika linus trovalds sedang berjalan-jaln di taman perth secara kebetulan bertemu seekor penguin dan dia dipatok oleh penguin tersebut lalu dia mengalami demam selama berhari-hari. Ia kemudian berfikir karakter penguin cocok untuk menjadi logo dari sistem operasi barunya tersebut. Kemudia dia mengadakan kompetisi untuk mendesain logo linux dan kompetisi tersebut dimenangkan oleh larry ewing yang menggambarkan seekor penguin sedang duduk.

    E.     Pengembangan Linux

Perbedaan utama linux dengan sistem operasi popular lainnya terletak pada kernel linux dan komponen-komponennya yang bebas dan terbuka. Walaupun bukan satu-satunya sistem pada kategori tersebut, linux merupakan contoh terbaik dan terbanyak digunakan. Sistem linux berkaitan dengan standar-standar POSIX, SUS, ISO, dan ANSI. Akan tetapi, baru distribusi linux-FT saja yang mendapatkan sertifikasi POSIX.1. Project-project perangkat lunak bebas walaupun dikembangkan dalam bentuk kolaborasi sering dirilis secara terpisah. Dikarenakan lisensi-lisensi perangkat lunak bebas secara eksplisit mengizinkan distribusi ulang, terdapat project-project yang bertujuan untuk mengumpulkan software-software tersebut dan menjadikannya tersedia dalam waktu yang bersamaan dalam suatu bentuk yang dinamakan “distribusi linux”. Sebuah distribusi linux atau yang biasa disebut “distro” adalah sebuah project yang bertujuan untuk mengatur sebuah kumpulan software yang berbasis linux dan memfasilitasi instalasi dari sebuah sistem operasi linux. Distribusi-distribusi linux ini ditangani oleh individu, tim, organisasi sukarelawan dan entitas komersial. Distro linux mempunyai perangkat lunak sistem dan aplikasi dalam bentuk paket-paket dan perangkat lunak yang spesifik dirancang untuk instalasi dan konfigurasi sistem. Perangkat lunak tersebut juga bertanggung jawab dalam pemuktahiran paket. Sebuah distro linux mempunyai tanggung jawab atas konfigurasi bawaan, sistem keamanan dan integrasi secara umum dari paket-paket perangkat lunak sistem linux.

    F.      Distribusi Linux

Saat ini sudah terdapat berbagai distro linux yang tersebar diseluruh dunia. Berbagai macam distro yang dibuat dan dikembangkan oleh individu, grup, atau lembaga lain masing-masing disertakan dengan program sistem dan program aplikasi tambahan. Inti di setiap distribusi linux adalah kernel, koleksi program dari GNU atau project lain, shell, dan utilitas seperti libraries, kompilator, dan editor.
Contoh-contoh distribusi linux yang terkenal:

          1.      Ubuntu dan deribiatifnya: kubuntu, xubuntu, lubuntu.
          2.      Debian  
          3.      Fedora
          4.      CentOS
          5.      Kali linux
          6.      Slackware
          7.      OpenSUSE
          8.      Red hat linux
          9.      ClearOS
        10.  Gentoo linux
        11.  Arch linux
        12.  Linux mint
        13.  Elementary OS
        14.  Manjaro


Sumber: Wikipedia.org, Modul Linux UBSI Jakarta.




Selasa, 24 Maret 2020

Harddisk

Struktur harddisk

      1.     Penjelasan Harddisk
                                                      
Harddisk adalah tempat menyimpan seluruh data baik berupa video, audio, text, dan lain-lain. Selain kemampuan penyimpanan dengan jumlah yang berbeda beda, sekarang ada teknologi SSD (Solid State Disk) yang tidak lagi menggunakan sistem optic sebagaimana pada harddisk lama. Dengan teknologi baru ini kecepatan membaca dan menulis data pada harddisk tentu akan lebih cepat serta tahan akan adanya goncangan.

      2.      Struktur harddisk

a.       Platter
b.      Spindle
c.       Head
d.      Actuator arm
e.       Actuator axis
f.       Actuator
g.       IDE connector
h.      Jumper blok
i.        Power connector

Teknologi harddisk
Perkembangan harddisk pada dewasa ini bisa dibilang pesat karena sudah ada generasi baru dari perkembangan tersebut yaitu SSD atau Solid State Drive yang sudah tidak menggunakan plate lagi dalam proses penyimpanan data, tetapi memakai chip. Itulah mengapa saat ini SSD bisa berukuran compact atau kecil karena perkembangan tersebut.

Adapula perkembangan teknologi harddisk dari berbagai karakteristik sebagai berikut:

      a. Kerapatan data dan teknologi bahan
Merupakan ukuran teknologi bahan yang digunakan berapa besar data yang mampu disimpan dalam satuan persegi. Pada awal pembuatannya harddisk terbuat dari bahan iron oxide, tetapi sekarang banyak menggunakan media thin film

      b.Struktur head baca/tulis
Head baca/tulis adalah perantara media fisik dengan data elektronik. Prosesnya adalah data ditulis kemedium fisik atau dibaca dari medium fisik nanti head akan mengubah data bit menjadi pulsa magnetic dan menuliskannya ke medium disk, sedangkan proses pembacaan data prosesnya sebaliknya.

      c.Kapasitas
Dalam perkembangannya harddisk sudah bisa mencapai satuan terra byte. Tentunya ini adalah evolusi dari yang sebelumnya hanya kilo byte saja bisa mencapai satuan terra byte. Dahulu media penyimpanan bentuk fisiknya sangat besar namun hanya bisa memuat beberapa kilo byte saja, berbeda dibandingkan dengan sekarang, bentuk fisiknya semakin kecil namun bisa memuat sampai satuan terra byte.

      d.Shock protection system (SPS)
Fungsinya meredam goncangan yang mengenai harddisk dalam kekuatan yang tinggi dengan tempo yang cepat supaya tidak terjadi bad sector pada head.

      e.Self-monitoing analysis and reporting (SMART)
Dengan teknologi ini, harddisk dapat melakukan komunikasi dengan computer lain lewat perantara software,teknologi ini sangat dapat diandalkan untuk computer-komputer yang mempunyai data-data penting pada harddisk dan computer-komputer yang sedapat mungkin dinyalakan terus-menerus.

      f. Partial response maximum likelihood (PRML)
Tekologi yang berfungsi dalam hal encoding dan konversi data pada saat read-write dari ke piringan dan juga menawarkan kepadatan data yang lebih tinggi, kinerja hdd yang lebih baik dan integritas data yang lebih terjamin.

      g. Hot swap
Sebuah proses yang menunjukan pemasangan peralatan elektronik ke dalam sistem yang sedang bekerja.

      h. Plug and play ATA.
Sistem pnp ini tugasnya melakukan konfigurasi secara otomatis dan akan memudahkan pengaturan cukup lewat software saja, tidap perlu pengubahan jumper.

      i. Environment protection agency
Teknologi ini memungkinkan untuk manajemen penggunaan daya listrik pada computer misalnya fungsi sleep, stand by dan lain-lain.

      j. Error correction code (ECC)
Fungsi dari teknologi ini pada harddisk adalah memperbaiki kesalahan dalam pembacaan tanpa perlu membaca ulang daerah yang rusak.

      k. Auto transfer
Salah satu cara untuk mempercepat transfer data dengan menggunakan mode blok, konsepnya adalah memberikan beberapa perintah baca/tulis secara bersamaan. Setiap ada perintah baca/tulis maka interrupt akan dibangkitkan sehingga cpu akan proses switching, memeriksa device kemudian melakukan setup untuk transfer data.

Algoritma Penjadwalan

Penjadwalan CPU berurusan dengan permasalahan memutuskan proses mana yang akan dilaksanakan, berikut adalah beberapa algoritma penjadwalan seperti berikut:

      Algoritma first come first served (FCFS)

Ini merupakan algoritma paling sederhana dengan skema proses yang meminta CPU mendapat prioritas. Implementtasinya mudah diatasi dengan FIFO queue.
Penjadwalan FCFS algoritma adalah nonpremptive. Ketika CPU telah dialokasikan untuk sebuah proses, proses tetap menahan CPU sampai selesai. FCFS algortima jelas merupakan masalah bagi sistem time-sharing, di mana sangat penting untuk user mendapatkan pembagian CPU pada regular interval. Itu akan menjadi bencana untuk megizinkan satu proses pada CPU untuk waktu yang tidak terbatas.

Algoritma Shortest Job Fist (SJF)

Salah satu algoritma yang lain adalah Shortest Job First. Algoritma ini berkaitan dengan waktu setiap proses. Ketika CPU bebas proses yang mempunyai waktu terpendek untuk menyelesaikannya mendapat prioritas. Seandainya dua proses atau lebih mempunyai waktu yang sama maka FCFS algoritma digunakan untuk menyelsaikan masalah tersebut. Ada dua skema dalam SJFS ini yaitu:
a. Nonpremptive, ketika CPU memberikan kepada proses itu tidak bisa ditunda hingga selesai.

b. Premptive, bila sebuah proses datang dengan waktu prose lebih rendah dibandingkan dengan waktu proses yang sedang dieksekusi oleh CPU maka proses yang waktunya lebih rendah mendapatkan prioritas. Skema ini disebut juga Short - Remaining Time First (SRTF).
SJF algoritma mungkin adalah yang paling optimal, karena ia memberikan rata-rata minimum waiting untuk kumpulan dari proses yang mengantri dengan mengeksekusi waktu yang paling pendek baru yang paling lama, sehingga akibatnya rata-rata waktu menunggu jadi menurun. Hal yang sulit dengan SJF algoritma adalah mengetahui waktu dari proses berikutnya. Untuk penjadwal long term (lama) di sistem batch, bisa menggunakan panjang batas waktu proses yang user sebutkan ketika dia mengirim pekerjaan. Oleh karena itu SJF sering digunakan di penjadwal long term. Walau pun SJF optimal tetapi ia tidak bisa digunakan untuk penjadwal CPU short term. Tidak ada jalan untuk mengetahui panjang dari CPU burst berikutnya. Salah satu cara untuk mengimplementasikannya adalah dengan memprediksikan CPU burst berikutnya.

Penjadwalan Prioritas

Penjadwalan SJF (Shortest Job First) adalah kasus khusus untuk algoritma penjadwal prioritas. Prioritas dapat diasosiasikan masing-masing proses dan CPU dialokasikan untuk proses dengan prioritas tertinggi. Untuk proritas yang sama dilakukan dengan FCFS.
Ada pun algoritma penjadwal prioritas adalah setiap proses akan mempunyai prioritas (bilangan integer). Beberapa sistem menggunakan integer dengan urutan kecil untuk proses dengan prioritas rendah, dan sistem lain juga bisa menggunakan integer urutan kecil untuk proses dengan prioritas tinggi. Tetapi dalam teks ini diasumsikan bahwa integer kecil merupakan prioritas tertinggi. CPU diberikan ke proses dengan prioritas tertinggi (integer kecil adalah prioritas tertinggi). Dalam algoritma ini ada dua skema yaitu:
a. Preemptive: proses dapat di interupsi jika terdapat prioritas lebih tinggi yang memerlukan CPU.
b. Nonpreemptive: proses dengan prioritas tinggi akan mengganti pada saat pemakain time-slice habis.
SJF adalah contoh penjadwal prioritas dimana prioritas ditentukan oleh waktu pemakaian CPU berikutnya. Permasalahan yang muncul dalam penjadwalan prioritas adalah indefinite blocking atau starvation. Kadang-kadang untuk kasus dengan prioritas rendah mungkin tidak pernah dieksekusi. Solusi untuk algoritma penjadual prioritas adalah aging. Prioritas akan naik jika proses makin lama menunggu waktu jatah CPU.

Penjadwalan Round Robin

Algoritma Round Robin (RR) dirancang untuk sistem time sharing. Algoritma ini mirip dengan penjadwal FCFS, namun preemption ditambahkan untuk switch antara proses. Antrian ready diperlakukan atau dianggap sebagai antrian sirkular. CPU meng-alokasikan masing-masing proses untuk interval waktu tertentu sampai satu time slice/quantum. Berikut algoritma untuk penjadwal Round Robin:
a. Setiap proses mendapat jatah waktu CPU (time slice/quantum) tertentu, Time
slice/quantum umumnya antara 10 - 100 milidetik.
b. Setelah time slice/ quantum maka proses akan di-preempt dan dipindahkan ke antrian ready.
c. Proses ini berlangsung adil dan sederhana.
Jika terdapat „n‟ proses di „antrian ready‟ dan waktu quantum „q‟ (milidetik), maka:
a. Setiap proses akan mendapatkan 1/n dari waktu CPU.
b. Proses tidak akan menunggu lebih lama dari: (n-1)q time units.
Kinerja dari algoritma ini tergantung dari ukuran time quantum. Time Quantum dengan ukuran yang besar maka akan sama dengan FCFS. Time Quantum dengan ukuran yang kecil maka time quantum harus diubah ukurannya lebih besar dengan respek pada alih konteks sebaliknya akan memerlukan ongkos yang besar.

Penjadwalan Multipe Processor

Multiprocessor membutuhkan penjadwalan yang lebih rumit karena mempunyai banyak kemungkinan yang dicoba tidak seperti pada processor tunggal. Pada penjadwalan multipresor penjadwalan menjadi lebih kompleks, Jika ada beberapa prosesor yang identik tersedia maka load sharing akan terjadi. Dalam kasus ini, bagaimana pun, satu prosesor bisa menjadi idle dengan antrian yang kosong sedangkan yang lain sangat sibuk. Untuk mengantisipasi hal ini kita menggunakan ready queue yang biasa. Semua proses pergi ke satu queue dan dijadwalkan untuk prosesor yang bisa dipakai.
Dalam skema tersebut, salah satu penjadwalan akan digunakan. Salah satu cara menggunakan symetric multiprocessing (SMP) di mana setiap prosesor men-jadwalkan diri sendiri. Setiap prosesor memeriksa ready queue dan memilih proses yang akan dieksekusi. Beberapa sistem membawa struktur satu langkah kedepan, dengan membawa semua keputusan penjadwalan, I/O prosesing, dan aktivitas sistem yang lain ditangani oleh satu prosesor yang bertugas sebagai master prosesor. Prosesor yang lain mengeksekusi hanya user code yang disebut asymmetric multiprosessing jauh lebih mudah.

sumber : Buku ajar sistem operasi oleh Iwan Purnama dan Ronal Watrianthos, Modul slide    sistem operasi UBSI