OPERASI ORACLE SOLARIS




A. Sejarah Sistem Operasi Solaris

Pada tahun 1969, engineers dari Bell Labs yang merupakan bagian dari AT&T, membuat operasi system baru yang dibiayai oleh Departemen Pertahanan Amerika. Sistem ini dikenal sebagai Unix, memiliki banyak fitur, namun fitur yang  paling menonjol adalah kemampuan untuk memungkinkan mengakses beberapa user pada waktu yang bersamaan. Pada awalnya, AT&T tidak memperbolehkan menjual perangkat lunak, karena AT&T hanya menerbitkan izin tanpa dukungan teknis pada pihak-pihak yang berkepentingan, salah satunya pada Lembaga Ilmu Komputer UniversityofCalifornia, Berkley, yang menggunakan Unix pada tahun 1974. Pada tahun 1977, lulusan U.C. Berkley menciptakan BerkleySoftware versi pertama yang mendistribusikan Unix. 
 Hal ini menarik Departemen Pertahanan Amerika yang sedang mencari cara untuk mendesentralisasikan jaringan komputernya. Maka bersama-sama mengembangkan cara untuk mendesentralisasikan jaringan dan pada akhirnya tercipta World Wide Web(WWW). Pada tahun 1987 Sun Microsystems dan AT&T bekerjasama dalam satu aliansi untuk mengembangkan Unix System V Release 4(SVR4). Sejak saat itu Sun memperbaiki dan mendukung OS Solaris yaitu dengan menambahkan lebih banyak lagi fitur-fitur baru, termasuk untuk arsitektur komputer 64-bit. 
Versi minor SunOS yang dirilis oleh Sun disertakan dalam penamaan Solaris, misalnya Solaris 2.4 yang merupakan SunOS 5.4. Namun setelah versi Solaris 2.6, Sun menghilangkan angka “2” di depan kodifikasi versinya, sehingga rilis berikutnya SunOS 5.7 dinamakan sebagai Solaris 7 dan rilis terakhir adalah Solaris 11. Oracle saat ini merilis Solaris 11 Express untuk platform SPARC dan x86, Oracle Solaris sendiri dapat berjalan pada lebih dari 1.000 sistem dari produsen terkemuka dan memegang ratusan rekor dunia pada Oracle’s Sun x86-based X-series server dan SPARC-based T-series dan M-seriesservers. Oracle Solaris 11 Express memberikan keamanan, pengelolaan dan kinerja yang profesional IT.

B. Performa Operasi Sistem Solaris


DUKUNGAN MULTIPROCESSOR

       Kernel Solaris memiliki kemampuan fully preemtible yang artinya semua thread, termasuk thread yang mendukung aktifitas kernel itu sendiri dapat ditunda untuk menjalankan thread dengan prioritas yang lebih tinggi; memiliki penjadwalan secara soft realtime; mendukung symmetrically multiprocessing yang mengoptimalkan kerja semua processornya dalam tingkatan yang sama, sehingga memberikan kualitas akses yang sama pada hardware computer yang lain dan mendukung juga user-level multithreading.

      Dukungan multiprocessor pertama kali ditambahkan pada kernel Solaris, pengembang lebih mengutamakan pada kemampuan kernel, karena dengan kernel yang stabil, mampu meningkatkan concurrency, dan juga mampu mendukung dan mengontrol lebih dari satu thread dalam satu proses user. Thread sendiri mampu melaksanakan system calls dan menangani page faults secara independent. Untuk membuat kernel mendukung pengoperasian multiprocessor, thread mengontrol untuk menjalankan proses secara bersamaan pada processor yang berbeda. Para pengembang juga ingin kernel yang dibangun tersebut dapat beroperasi secara soft realtime, yang diperlukan untuk mengontrol penjadwalan yang berlebihan dan preemption adalah tindakan sementara pada proses yang sedang dilakukan oleh system computer, untuk melanjutkan proses di lain waktu. Dan preemption ini memungkinan untuk mengeksekusi pada banyak titik proses.

      Kernel thread menggunakan resources yang sangat sedikit, dan peralihan kernel threadnya relative sangat sedikit karena tidak memerlukan sebuah perubahan space pada virtual memory. Kernel thread juga memiliki kemampuan fully preemptible dan dapat menjadwalkan berdasarkan prioritas pada realtime. Solaris mampu menggunakan kernel threads untuk memungkinkan asynchronous aktifitas kernel, seperti menulis asynchronous disk. Hal ini menghilangkan berbagai komplikasi dari idle loop dan menggantikannya dengan penjadwalan thread secara independent. Hal ini meningkatkan concurrency karena tindakan yang ditangani oleh CPU terpisah dan memberikan aktifitas pada prioritas asynchronous sehingga dapat dijadwalkan secara tepat. Kernel thread juga menangani interrupt. Jika thread ditemukan interrupt, maka akan menguncinya pada blok-blok yang mengalami interrups tersebut dan memungkinkan untuk menghapus dan mencegah terjadinya deadlock. Karena membuat thread baru setiap kali terjadi interrupt itu sangat memakan waktu, maka kernel menyiapkan bagian-bagian untuk menginisialisasi thread interrupt tersebut, dan ketika interrupt terjadi maka satuan kerja tersebut memindahkannya pada tumpukan thread interrupt.

1. Diagram Multithreading Levels and Relationships

    Fitur utama pada multiprocessor kernel Solaris adalah dengan dukungan Lightweight Processes(LWPs). Dukungan LWPs sendiri adalah mendukung beberapa control dari kernel thread pada banyak proses user, seperti yang ditunjukan pada Gambar 2. Mereka berbagi space dengan proses, dan resources proses. Kernel mendukung pelaksanaan LWPs dengan menghubungkan penggunaan kernel thread dengan LWP masing-masing. Tiap-tiap user level library menggunakan LWPs untuk mengimplementasikan user level threads. Hal ini memungkinkan proses user memiliki ribuan thread tanpa membebankan kernel.

a. Deadlocks

      Seperti yang dibahas sebelumnya, kernel Solaris dirancang untuk mencegah deadlocks yang disebabkan oleh thread interrupt. Hal ini dilakukan dengan memblokir thread-thread interrupt, jika ditemukan maka variable sinkronisasi akan terkunci dan menunggu sampai bagian yang critical sudah selesaikan. Strategi penguncian kernel ini digunakan untuk mengunci yang berbasis data. Didalam metode ini, setiap data dilindungi oleh objek sinkronisasi.

     Kernel juga mengimplementasikan pencegahan deadlocks menggunakan penguncian Mutual Exclusion (mutexes) untuk mencegah lebih dari satu thread dari tiap-tiap proses ketika ditemukan penguncian. Ini menghindari race condition ketika mengakses data secara bersamaan. Jika mutex tidak dapat mengatur penguncian tersebut, maka kebijakan pemblokiran defaultnya adalah dengan cara memutari penguncian tersebut ke arah processor. Status ini akan terus berulang jika tidak menjalankan suatu proses dan menghentikan putaran tersebut, maka statusnya pun akan idle. Hal ini memberikan respon yang cepat dengan tingkat overhead yang rendah.

       Deadlocks Detection juga diimplementasikan, deadlocks ini disebabkan oleh hierarchy violations yang mendeteksi pada saat runtime dengan menggunakan mekanisme prioritas inheritance. Karena mekanisme ini tidak mampu mendeteksi semua deadlocks, beberapa deadlocks yang tidak dapat terdeteksi adalah dengan kondisi yang bervariasi.

b. Virtual Memory

     Pada saat booting, Solaris membagi semua memori ke dalam tiap-tiap halaman. Biasanya, membagi 4 kilobyte, dan dapat berkisar hingga 4 megabyte. Solaris menggunakan algoritma LRU Second Chance two-handed untuk sistem virtual memory. Semua halaman diberikan kesempatan kedua bagi suatu halaman untuk berada didalam memory karena halaman yang sudah lama berada di memory mungkin saja adalah halaman yang sering digunakan dan akan digunakan lagi. Hal ini dilakukan oleh thread kernel pada Solaris yang biasa disebut Scanner.

        Kesempatan kedua itu direalisasikan dengan adanya bit acuan yang diset untuk suatu halaman. Halaman yang lebih dulu diakses berada didepan antrian dan yang baru saja diakases berada dibelakang antrian. Ketika terjadi kesalahan halaman, algoritma ini tidak langsung mengganti halaman didepan antrian tapi terlebih dahulu memeriksa bit acuannya. Jika bit acuannya sama dengan nol, halaman tersebut akan langsung diganti. Jika bit acuannya sama dengan satu, halaman tersebut akan dipindahkan ke akhir antrian dan bit acuannya diubah menjadi nol, kemudian mengulangi proses ini untuk halaman yang sekarang berada didepan antrian.

    Scanning dilakukan secara berkala pada sistem dan tergantung pada jumlah free memory. Aktifitas scanner sistem berada di bawah parameter lotsfree ( batas parameter untuk memulai paging dari free memory yang tersedia ), yang defaultnya adalah 1/64 dari memori utama. Pageout scannerkemudian akan melakukan scanning antara batas tetap slowscan dan fastscan. Jika diperlukan, juga dapat dikonfigurasi untuk menjaga scanner dari penggunaan waktu CPU yang berlebihan.

      Setelah memori turun di bawah desfree, yang defaultnya setengah dari lotsfree, akan memicutimer yang akan mencoba untuk mendapatkan rata-rata memori dalam waktu 30 detik di atas desfree.Jika seperti itu maka akan memicu soft swapping. Dalam soft swapping, akan menukar proses yang idle untuk jangka waktu tertentu. Proses standard idle adalah 20 detik.

  Jika CPU menghabiskan lebih banyak waktu mengganti halaman daripada melakukanpekerjaan yang berguna (ketika rata-rata selama 30 detik turun di bawah minfree [setengah dari desfree] dan free memory yang saat itu dibawah desfree), maka akan masuk ke dalam swap. Jika terdapat proses yang membutuhkan memory besar dan membutuhkan waktu yang lama maka swap mengambil alih.

      Bahkan menjalankan pekerjaan yang layak untuk swap keluar, dan itu nikmatmengambil pekerjaan yang telah berjalan untuk waktu yang lama atau proses yang telah mengalokasikan jumlah yang relatif besar memori.

C. Kelebihan dan Kekurangan


Kelebihan :
  • Free redistribution, setiap user bisa membeli atau memberikan secara bebas software tersebut oleh dirinya sendiri atau sebagai bagian dari kumpulan distributor.
  • Derived works, setiap orang bisa mengubah kode dan mendistribusikan kembali untuk umum.
  • No discrimination, kode disediakan untuk semua orang agar bisa dikembangkan.
  • ZFS adalah Fasilitas Restore Mirip seperti feature Restore di sistem operasi Windows.
  • Banyak tool observasi dan debugging, misal seperti tool monitoring system, modular debugger (MDB), dynamic tracing (D-Trace).
  • Memiliki beberapa bentuk virtulasasi, selain virtualisasi pada tingkat system operasi seperti virtualisai pada Solaris Zone, OpenSolaris juga mendukung virtualisasi untuk Xvm hypervisor, Logical Domains (LDoms), virtualbox dan bisa juga jalan pada VMware dan beberapa framework virtualisasi yang lainnya.
  • Mempunyai tingkat skalabilitas yang tinggi. OpenSolaris dapat berjalan pada single prosesor maupun multiprosesor dengan ratusan CPU dan RAM dengan ukuran terabyte.
  • Integrasi AMP stack (Apache, MySQL, PHP) untuk menjalankan web server.
  • Sistem file stabil untuk database, server Internet, Intranet, file-server, Internet-client, pembangunan Java.  
  •  Solaris bisa dijalankan di atas prosesor yang berspek x86,x64 dan SPARC.
    Kekurangan :
  • Harga sistem operasi komersil yang mahal (versi berbayar).
  • Kepantasan inovasi Linux lama kelamaan memberi kesan kepada sistem Unix komersil.
  • Sistem operasi Unix versi "hampir" percuma tidak sebaik sistem operasi Unix komersil.
  • Driver hardware yang kurang baik.

D. Arsitektur

Solaris menggunakan basis kode sumber yang sama untuk platform yang mendukung SPARC dan i86pc (termasuk x86 dan x86-64).
Solaris mempunyai reputasi yang cukup baik untuk multiprocessing simetris yang mendukung sejumlah besar CPU yang berjalan secara paralel. Secara historis Solaris merupakan produk yang terintegrasi secara erat dengan mesin-mesin berbasis prosesor SPARC Sun (termasuk di dalamnya dukungan untuk aplikasi SPARC 64-bit sejak Solaris 7) yang telah dipasarkan sebagai paket gabungan. Hal ini membuat sistem menjadi lebih handal meski harus dibayar dengan biaya yang lebih tinggi dari tingkat harga pasar rata-rata komoditas komputer personal (PC).
Namun Solaris juga telah mendukung prosesor berbasis x86 sejak Solaris 2.1 dan versi-versi berikutnya. Solaris 10 mendukung aplikasi 64-bit x86, memungkinkan Sun untuk memanfaatkan pangsa pasar yang ada atas ketersediaan komoditas prosesor berbasis 64-bit berbasis arsitektur x86-64. Sun secara internal telah melakukan banyak hal dalam memasarkan Solaris untuk dapat digunakan secara luas baik pada kelas penggunaan workstation "x64" dan ataupun sebagai mesin peladen baik yang berbasis AMD Opteron ataupun prosesor Intel Xeon pada mesin-mesin berbasis x86 yang diproduksi oleh perusahaan seperti Dell, Hewlet-Packard dan IBM. Pada tahun 2009, vendor berikut mendukung sistem Solaris x86 pada prosuk mesin peladen mereka :
  • Dell akan menguji sertifikasi dan Solaris akan mengoptimalkan OpenSolaris pada tatanan serta bilah server mereka serta dan menawarkan hal tersebut sebagai salah satu dari beberapa pilihan dalam menu perangkat lunak Dell keseluruhan
  • IBM juga mendistribusikan Solaris dan Solaris berlangganan berbasis x86 IBM System x server dan BladeCenter server.
  • Intel mendistribusikan dan menyediakan dukungan peranti lunak Solaris pada server blade Proliant dan sistem
  • Fujitsu Siemens pada Juli 2010, Dell dan HP telah bersertifikasi dan menjual oracle Solaris, Oracle Enterprise Linux dan Oracle VM masing-masing pada platform x86. IBM berhenti mendukung Solaris pada x64 kit.

E. Perkembangan


1. 1991-1994

Solaris versi : Solaris 1.x

SUN OS versi : SunOS 4.1.x

Keterangan : SunOS 4 kembali di cap sama Solaris 1 yaitu untuk tujuan marketing.



2. Juni 1992

Solaris versi : Solaris 2.0

SUN OS versi : SunOS 5.0

Keterangan : Terutama hanya tersedia untuk para pengembang, support hanya untuk sun4c arsitesktur. Pertama menampilkan dari NIS+.

3. Desember 1992 (SPARC) Mei 1993 (x86)

Solaris versi : Solaris 2.1

SUN OS versi : SunOS 5.1

Keterangan : Support untuk sun4 dan sun4m arsitekstur; Yang pertama melepaskan Solaris x86. Solaris versi 2 yang pertama dirilis untuk support SMP.

4. Mei 1993

Solaris versi : Solaris 2.2

SUN OS versi : SunOS 5.2

Keterangan : Hanya merilis SPARC. Yang pertama suport sun4d arsitekstur. Yang pertama support ke multithreading libraries.

5. November 1993

Solaris versi : Solaris 2.3

SUN OS versi : SunOS 5.3

Keterangan : Hanya mengeluarkan SPARC. OpenWindows 3.3 melansir dari NeWS untuk memperlihatkan PostScript dan menjatuhkan dukungan SunView.

6. November 1994

Solaris versi : Solaris 2.4

SUN OS versi : SunOS 5.4

Keterangan : Yang pertama mempersatukan SPARC/x86. Memasukan OSF/Motif runtime support.

7. November 1995

Solaris versi : Solaris 2.5

SUN OS versi : SunOS 5.5

Keterangan : November 1995 Yang pertama support ke UltraSPARC dan memasukan CDE, NFSv3 dan NFS/TCP. Memasukan sun4 (VMEbus) support. POSIX.1c-1995 pthreads. ditambah Doors tapi tidak dikomumenkan.

8. May 1996

Solaris versi : Solaris 2.5.1

SUN OS versi : SunOS 5.5.1

Keterangan : Hanya diliris untuk mendukung/menyokong PowerPC platform; ditambah Ultra Enterprise support; user dan group IDs (uid_t, gid_t) dikembangkan hingga 32 bits, juga dimasukan processor sets dan manajemen sumber daya teknologi yang cepat.

9. Juli 1997

Solaris versi : Solaris 2.6

SUN OS versi : SunOS 5.6

Keterangan : Memasukan Kerberos 5, PAM, TrueType fonts, WebNFS, file support besar , enhanced procfs. SPARCserver 600MP series support.

10. November 1998

Solaris versi : Solaris 7

SUN OS versi : SunOS 5.7

Keterangan : 64-bit UltraSPARC yang pertama kali dirilis. Ditambah native support for file sistem meta-data logging (UFS logging). Memasukan MCA support x86 platform. Pembaharuan yang terakhir solaris 7 pada November 1999.

11. February 2000

Solaris versi : Solaris 8

SUN OS versi : SunOS 5.8

Keterangan : Memasukan Multipath I/O, IPMP, support untuk pertama kalinya untuk IPv6 dan IPsec, modular debugger. diperkenalkannya Role-Based Access Control (RBAC); sun4c support dan pembaharuan untuk versi ini dilakukan pada Februari 2004.

12. 28 Mei 2002 (SPARC) 10 Januari 2003 (x86)

Solaris versi : Solaris 9

SUN OS versi : SunOS 5.9

Keterangan : iPlanet Directory Server, Manajer sumber daya , manajer volume, extended file attributes, IKE( IPsec keying), dan kompabiliti terhadap LINUX; dikalahkan oleh open windows, sun4d support kepada sun4d. dan versi yang termutakhir pada September 2005.

13. 31 Januari 2005

Solaris versi : Solaris 10

SUN OS versi : Solaris OS 5.10

Keterangan : Support kepada processor x64 (AMD64/EM 64T), Dinamic Tracing, Solaris Containers, support untuk sun4m dan processor Ultra SPARC 1, Service Management Security (SMF) yang menggantikan init.d script dan NFSv4, support untuk EISA-based PCs removed dan ditambah JAVA sistem desktop, didukung labih dari didukung oleh lebih dari 270 platform peranti keras dari vendor yang berbeda-beda, seperti Dell, Fujitsu, Fujitsu Siemens Computers, IBM, dan HP. Sun juga meluncurkan game- changing business model untuk mendukung Solaris 10.

• Solaris 10 pada januari 2006 ditambah GRUB bootloader untuk x86 sistem, iSCSI Initiator support dan fcinfo command-line tool. 

• Solaris 10 pada Juni 2006 ditambah ZFS file sistem. 

• Solaris 10 pada November 2006 ditambah STU (Solari Trusted Extensions) dan Logical Domains.

• Solaris 10 pada Agustus 2007 ditambah Samba Active Directory support, IP Instances, iSCSI Target support dan Solaris Containers untuk Linux aplikasi.

• Solaris 10 pada Juni 2008 ditambah CPU capping untuk kemampuan Solaris Containers, support untukAMD processors.

Sun Microsystem Inc. Memegang peranan penting pada perkembangan Sun Solaris. Pada bulan Januari 2010, Sun Microsystem melakukan akuisisi pada Oracle, maka Solaris dikenal sebagai Oracle Solaris. Solaris mendistribusikan source codenya dibawah licensi Common Development and Distribution License (CCDL). Oracle juga akan memulai program mitra teknologi yang telah dilakukan pada produk-produk lainnya dengan nama Oracle Technology Network (OTN) yang memberikan akses serta izin atas source code solaris tersebut.

Komentar

Profil Kampus :

https://sttpln.ac.id/