Thursday 30 June 2011

makalah sistem operasi solaris


Makalah Sistem Operasi
Sistem Operasi Solaris



Disusun oleh:




Endri Rahmawanto     (09018250)
Faqihuddin Al-Ansori (09018285)
Fitrayadi                      (09018237)



PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
2011

 OPEN SOLARIS
Definisi OpenSolaris
Solaris merupakan sebuah sistem operasi keluarga UNIX yang dikembangkan oleh Sun Microsystems Inc. Sedangkan OpenSolaris adalah Sun Solaris yang di Open Souce kan di bawah lisensi CDDL (Common Developer and Distribution Lisence). Open Solaris terdiri dari jutaan baris source code dalam puluhan ribu file.
Sejarah OpenSolaris
Pada tahun 1969, Ken Thompson di Lab AT&T Bell menulis versi pertama dari sistem operasi UNIX. UNIX dari awal memang dirancang untuk multitasking dan multiuser dengan interaktif shell yang masih terlihat akrab untuk pengguna UNIX dan Linux. Selama beberapa tahun, Ken Thompson dan Dennis Ritchie terus menyempurnakan UNIX yang umumnya digunakan di dalam Lab AT&T Bell. Namun pada pertengahan akhir tahun 1970-an, UNIX versi 6 dan 7 didistribusikan cukup banyak dan digunakan diberbagai instansi pemerintah dan akademik, termasuk Universitas California di Barkeley. Karena Lisensi yang ringan pada awal versi AT&T’s UNIX, Organisasi lainnya secara signifikan mulai mengubah dan ikut meningkatkan sistem operasi tersebut. Project inilah yang menyebabkan beberapa cabang utama UNIX, dan yang paling relevan dengan OpenSolaris adalah keluarg BSD ( Barkeley Software Distribution ).
Pada tahun 1978, Bill Joy dan rekan-rekannya di Barkeley menambahkan virtual memory, demand paging, dan lain-lain untuk UNIX versi 7 untuk menciptakan sebuah versi UNIX yang disebut 3BSD. Joy dan rekan-rekannya terus meningkatkan BSD UNIX selama beberapa tahun, menambahkan TCP / IP networking, C shell, editor VI dan fitur penting lainnya. Pada tahun 1982, Bill Joy mendirikan Sun Microsystems dan pada 1984 telah menggunakan UNIX BSD sebagai dasar bagi sistem operasi SunOS yang dijalankan di Sun workstation. Sementara it, AT&T terus mengembangkan lini UNIX, yang biasa disebut system V, dan perusahaan lain mngembangkan distro mereka sendiri, seperti Microsoft Xenix (yang kemudian menjadi SCO UNIX).
Pada akhir tahun 1980-an, Sun dan AT&T mulain mengerjakan sebuah proyek bersama untuk remerge beberapa varian popular UNIX untuk menciptakan System V Release  Hasilnya, selesai pada tahun 1990, berisi fitur terbaik dari AT&T’s sebelumnya System V Release 3, SunOS, 4.3BSD, dan Xenix 5, termasuk dukungan TCP / IP, Network File System (NFS), Unix File System (UFS), dan Virtual File System (VFS) interface. Selain itu System V Release 4 (SVR4) benar-benar dipenuhi standar Portable Operating System Interface (POSIX), yang mendefinisikan pemrograman aplikasi interface, utilitas dan aspek-aspek lain dari sistem operasi. Secara teori, sebuah program POSIX interface ditulis untuk dapat berjalan pada POSIX-compliant sistem operasi. Pada tahun 1992, SVR4 menjadi dasar dari Sun sistem operasi baru, Solaris 2.0.
Sejak saat itu, Sun terus-menerus memperkuat Solaris dengan fitur seperti kernel lab pengalokasian memori multithreaded kernel dan dukungan proses multithreaded, kernel 64-bit dan banyak lainnya. Rilis terbaru Solaris, Solaris 10, memperkenalkan beberapa fitur baru yang menarik seperti dynamic tracing facility (DTrace), Service Management Facility (SMF), zone, dan ZFS file system. Pada tahun 2005, Solaris menjadi sistem operasi proprietary pertama yang mau merilis versi opensource. Source code yang terbuka pada dasarnya adalah source untuk Solaris 10, yang telah pertama kali diliris sekitar lima bulan sebelumnya. Sejak saat itu, beberapa pengembangan aktif di OpenSolaris telah backported dan diliris di Solaris 10 pembaruan. Sangat penting untuk dicatat bahwa backports dari fitur OpenSolaris ke solaris 10 hanya dapat dilakukan oleh Sun Solaris 10 karena sumber kode ini tidak open source.
Fitur-fitur       Open   Solaris
OpenSolaris memiliki fitur banyak yang menjadikan OpenSolaris bisa digunakan untuk skala penggunaan yang besar, dari penggunaan untuk desktop atau laptop sampai ke penggunaan dalam skala enterprise untuk database dengan tingkat availability yang tinggi. Fitur-fitur OpenSolaris diantaranya :
* Mendukung multiple arsitektur hardware computer, termasuk SPARC dan 32-bit, 64-bit x86.
* Mempunyai tingkat skalabilitas yang tinggi. OpenSolaris dapat berjalan pada single prosesor maupun multiprosesor dengan ratusan CPU dan RAM dengan ukuran terabyte.
* Memiliki filesistem yang inovatif dan mendukung volume manager. Filesistem didalamnya ZFS, termasuk Solaris Volume Manager.
* Fitur networking sampai level kernel, TCP/IP stack,mendukung IPv6,IPsec,Network Auto-Magic (NWAM) untuk konfigurasi dan deteksi otomatis interface jaringan, IP Network Multipathing (IPMP) untuk toleransi kesalahan dan load balancing.
* Keamanan yang canggih, termasuk role-based access control (RBAC), privilege yang mudah di konfigurasi.
* Kaya akan tool observasi dan debugging, misal tool monitoring system, modular debugger (MDB), dynamic tracing (D-Trace)
* Tool untuk memprediksi dan memperbaiki error pada system sendiri dalam bentuk Fault Management Architecture (FMA) dan Service Management Facility (SMF). Keduanya bekerja sama untuk mendeteksi error pada perangkat keras dan perangkat lunak dan mengambil tindakan yang sesuai.
* 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.
* Bisa untuk 64-bit kernel. OpenSolaris kernel berbentuk modular, device driver dapat diinstall tanpa melakukan reboot system dan fitur dapat di konfigurasi tanpa mengkompilasi kernel.
*Mendukung
   aplikasi            64-bit -
* Integrasi AMP stack (Apache, MySQL, PHP) untuk menjalankan web server.
Arti      “Open”            diOpenSolaris
Dari kata “Open”, OpenSolaris adalah sistem operasi dengan kode terbuka / opensource. Arti umum dari opensource adalah kode sumber bisa didapatkan dan dilihat oleh setiap orang. Akan tetapi, opensource di OpenSolaris tidak sama persis seperti di Linux, Apache, MySQL, BSD, Perl, Java atau seperti software opensource yang familiar. Untuk lebih memahami tentang model opensource openSolaris, berikut ini ada beberapa review dan definisi dari dasar software opensource :
* Free redistribution : setiap orang bisa membeli atau memberikan secara bebas software tersebut oleh dirinya sendiri atau sebagai bagian dari kumpulan distributor
* Source Code : sumber / source harus tersedia untuk semua distribusi – Derived Works : setiap orang bisa mengubah kode dan mendistribusikan kembali
* No Discrimination : kode harus disediakan untuk seseorang untuk dikembangkan Lebih lengkap lagi bisa baca dari sini http://opensource.org/docs/osd. Ini penting untuk mengingat bahwa program opensouce, yang kadang-kadang disebut free software tidak selalu gratis atau ga bayar. Free disini adalah bebas untuk menggunakan, memodifikasi, dan mendistribusikannya. Dan disisi lain, individu atau perusahaan bisa menjual produk / program yang dikembangkan dari kode opensource tersebut.
Lisensi OpenSolaris
Sebagian besar dari kode sumber OpenSolaris dibawah Common Development and Distribution License (CDDL), yang biasa disebut “cuddle”. Di tetapkan oleh Sun secara eksplisit untuk OpenSolaris, lisensi ini sudah di setujui oleh Open Source Initiative (OSI) sebagai lisensi opensource yang sah.
Karena CDDL ini copyleft, maka perubahan pada kode sumber itu sendiri harus dibawah lisensi CDDL juga. Aspek ini yang memungkinkan fitur OpenSolaris (Dtrace, ZFS) dapat di porting ke sistem operasi lain seperti Mac OS X 10.5
— Note GPLv2 tidak compatible dengan CDDL kareana GPv2 menginginkan semua kode harus di lisensikan dibawah GPL. Oleh karena itu, proses porting fitur OpenSolaris kedalam Linux secara signifikan sangat komplikatif jika dibandingkan dengan sistem operasi yang lain. —
Dengan adaanya lisensi CDDL ini hasil proses pengembangan tidak diharuskan untuk men-share ke public. Artinya kita sebagai pengembang dapat menyimpan apa yang sudah dikembangin bahkan kita juga dapat menjual apa yang telah kita kembangkan tersebut.
Selain CDDL, OpenSolaris juga mempunyai lisensi yang lain yaitu OBL ( OpenSolaris Binary License ) artinya binary OpenSolaris free untuk di distribusikan, dan bisa juga di gunakan untuk menjalankan dan mengembangkan OpenSolaris.

Management Proses Solaris OS

Open Solaris merupakan suatu bentuk kemajuan besar dalam pengembangan dan penyebaran Sistem Operasi. Open Solaris mengkombinasikan dasar teknologi dan perlengkapan Solaris yang kuat dengan fitur dan aplikasi desktop moderen yang dikembangkan oleh komunitas open source seperti GNOME, Mozilla dan Free Software Foundation," kata Stephen Lau, anggota Open Solaris Governing Board.
Sistem Operasi OpenSolaris didesign sebagai platform bagi inovasi yang memungkinkan para pengembang untuk dapat dengan cepat mengembangkan, menguji, memecahkan masalah dan mengimplementasikan layanan web mereka yang baru, HPC dan aplikasi-aplikasi jaringan.
instalasi Live CD dan Open Solaris Image Packaging System (IPS) berbasis-jaringan yang baru menyederhanakan dan mempercepat instalasi dan integrasi dengan aplikasi pihak-ketiga. Open Solaris IPS meningkatkan kecepatan instalasi dan keakuratan dengan menyediakan kontrol aplikasi serta ketergantungan yang lebih baik dan menawarkan pengelolaan sistem yang mudah digunakan.
Sistem Operasi Open Solaris adalah Sistem Operasi Pertama yang memiliki ZFS sebagai sistem file default-nya, melindungi kerja dengan roll-back yang cepat dan kapabilitas check-summing yang terus-menerus untuk memungkinkan pengguna untuk menguji ide-ide. Fitur Dynamic Tracing (DTrace)-nya menyediakan kemampuan meneliti sistem produksi yang aman dan luas untuk mempercepat pengembangan aplikasi dan pengoptimalan tumpukan AMP/MARS.
Disamping itu Solaris Container memungkinkan pengguna untuk membangun aplikasi -virtualisasi yang dapat disebarkan pada lebih dari 1.000 sistem, dari sistem mesin tunggal sampai multi-CPU dan multi-core. tar
Proyek OpenSolaris diluncurkan pada tanggal 14 Juni 2005 untuk menghasilkan sebuah upaya membangun komunitas dengan menggunakan kode pemograman Solaris sebagai langkah awalnya. Proyek ini merupakan sebuah tempat dimana upaya pengembangan komunitas saling terkait, tempat dimana para kontributor dari Sun dan siapa pun dapat berkolaborasi demi perkembangan dan kemajuan teknologi Sistem Operasi. Ketersediaan kode pemograman OpenSolaris dapat dimanfaatkan untuk banyak hal antara lain sebagai dasar untuk versi mendatang produk Sistem OperasiSolaris, proyek-proyek Sistem Operasi lainnya, produk pabrikan pihak-ketiga dan distribusidistribusi aplikasi yang diminati oleh komunitas. Hingga saat ini, Sun Microsystems, Inc. Yang mensponsori proyek ini.
Hingga 2 tahun pertama, lebih dari 60.000 peserta telah terdaftar sebagai anggota. Komunitas para rekayasawan ini terus bertumbuh dan berubah untuk memenuhi kebutuhan para pengembang perangkat lunak, sistem administrator dan pengguna Sistem Operasi Solaris.
Komponen-komponen fungsional utama kernel di Solaris atau OpenSolaris adalah:
 Aplikasi dan Librari (Applications dan Libraries)
Terdiri dari semua kode tingkat pengguna, data dan librari. Di Solaris, seperti sistem lain berbasis-Unix, bagian ini terdiri dari shells, daemons, compilers, dan semua yang bisa dijalankan dari perintah baris atau di dalam skrip.
 Panggilan Sistem (System Call)/Trap Handling
Bagian ini adalah tergantung mesin. Terdiri dari kode untuk bertransisi antara pengguna dan kernel, kode yang menangani panggilan sistem dan kode yang menangani perangkap (traps), pengecualian (exceptions), dan kegagalan (faults).
 Manajemen Sumber Daya (Resource Management)
Kode ini menangani pembatasan-pembatasan penggunaan memori, CPU dan lebar-pita I/O.         
 Layanan-layanan Kernel (Kernel Services)
Kernel menyediakan berbagai layanan bagi aplikasi dan bagian-bagian lain dari Kernel sendiri. Terdapat beberapa layanan yang terkait pewaktuan (timers), yaitu pewaktuan resolusi tinggi (llihat clock_settime(3rt)), dan pewaktuan yang dapat-digunakan oleh program penggerak/driver usable timers (lihat timeout(9f)). Taskqs (lihat taskq(9f)) disediakan untuk memungkinkan program penggerak melakukan penjadwalan tugas asinkron.
Proses (Processes)
Program yang sedang berjalan. Setiap proses memiliki ruang alamat (address space) terproteksi dan satu atau lebih yang mengeksekusi kode.
 Threads
Entitas dasar penjadwalan di Solaris. Setiap proses setidaknya memiliki satu thread. Proses dengan hanya satu thread disebut "single-threaded", dengan lebih dari satu thread, "multi-threaded".
Penjadwal (Schedulers)
Hanya ada satu penjadwal di sistem, tapi setiap thread dimiliki oleh sebuah "kelas penjadwalan" yang akan menentukan jatah-waktu (time slice) dan prioritas thread tersebut. Saat ini, terdapat 6 kelas penjadwalan.
 Manajemen Memori (memori Management)
Kode dan struktur data yang digunakan Solaris untuk manajemen ruang alamat virtual proses dan Kernel sendiri.
Modul Spesifik Platform (Platform Specific Module, PSM)
Terdiri dari kode yang menangani interupsi (interrupt) tingkat bawah dan beberapa bagian saat sistem boot dan inisialisasi. Sesuai dengan namanya, kode-kodenya tergantung mesin.
 Translasi Alamat Perangkat Keras (Hardware Address Translation, HAT)
Bagian dari kode manajemen memori yang tergantung mesin. Bertugas menangani tabel halaman (page tables) dan struktur data spesifik perangkat keras dari segi manajemen memori.
 Antarmuka Vnode (Vnode Interface)
Juga disebut sebagai "virtual file system" atau VFS. Berupa lapisan abstraksi data yang memungkinkan aplikasi berusan dengan gagasan Unix yang disebut "files" tanpa mempedulikan spesifik-spesifik sistem file yang mendasarinya untuk sebuah file yang diberikan. Semua Sistem Operasi mirip-Unix memiliki ini atau abstraksi lain yang sangat mirip.
Spesifik-spesifik Sistem File (File System Specifics)
Terdapat lebih dari 10 tipe sistem file di Solaris, dan lebih dapat ditambahkan. Selain disisi administrasi, aplikasi tidak perlu mengetahui tentang tipe-tipe sistem file yang berbeda. Beberapa sistem file didokumentasikan di bagian 7fs halaman manual (coba ls -l /usr/man/man7fs) atau bagian 4 (lihat proc(4) untuk deskripsi procfs). Kita akan membahas secara singkat UFS dan ZFS, nanti di sesi ini.

 Jaringan (Networking)
Terdiri dari berbagai kerangka kerja (himpunan rutin-rutin dan struktur-struktur data) untuk mengimplementasikan layanan jaringan di Solaris, berupa protokol-protokol TCP/IP dan protokol lain. Jaringan tidak akan dibahas secara rinci di sini.
Program Penggerak Perangkat (Device Drivers)
Perangkat lunak yang bertanggung jawab menangani perangkat. Perangkat sendiri berupa perangkat keras atau perangkat "pseudo". Perangkat pseudo adalah perangkat yang secara keseluruhan diimplementasikan oleh program penggerak.
Modul-modul Kernel
Di OpenSolaris, semua modul kernel yang diperlukan oleh sistem secara dinamis dimuatkan (dynamically loaded). Sebagian besar modul kernel juga secara dinamis dibongkar-muatkan. Secara umum, kernel yang sedang berjalan hanya terdiri dari modul-modul yang diperlukan untuk sumber daya yang sedang digunakan saja. Contohnya: program penggerak perangkat bge hanya dimuatkan jika terdapat perangkat Broadcom BCM57xx di sistem. Bisa juga perangkat/sumber daya terpasang di sistem tetapi modulnya tidak dimuatkan karena perangkat/sumber daya tersebut tidak sedang digunakan. Contohnya: program penggerak pengontrol audio tidak karena perangkat audio tidak sedang digunakan.
Modul Kernel stdanarnya eksis di direktori /kernel, /usr/kernel, dan /platform/i86pc/kernel atau /platform/sun4u/kernel. Modul bisa juga eksis di direktori lain selama dispesifikasikan oleh file /etc/system atau dispesifikan langsung saat boot.
Tedapat dua keuntungan utama dari skema ini:
• Modul-modul yang tidak diperlukan tidak mengkonsumsi sumber daya (memori, dan waktu-cpu untuk thread sistem ketika menjalankan beberapa modul tertentu)
• Selama pengembangan dan pengetesan, modul dapat dibongkar-muatkan dan diganti dengan versi modifikasinya tanpa perlu mereboot sistem untuk melakukannya.
1. Modul unix dan genunix
Modul unix dan genunix dimuatkan oleh kode boot sistem. Ini adalah dua modul yang pertama kali dimuatkan. Kedua modul ini tidak dapat dibongkar-muatkan karena semua subsistem kernel tergantung pada kode dan data dari kedua modul ini. Meskipun, benar bahwa OpenSolaris berbasiskan kernel-mikro, kedua modul ini yang sebenarnya menjadi inti kernel. Semua modul-modul kernel yang lain dimuatkan secara dinamis setelah kedua modul ini dimuatkan.
Modul genunix terdiri dari kode "generic" dan struktur data yang sama yang diperlukan oleh semua platform perangkat keras yang menjalankan OpenSolaris. (Tentunya, modul-modul harus disusun "built" melalui pengkompilasi (compiler) untuk platform yang berbeda). Modul genunix ada di /kernel/genunix untuk 32-bit x86, /kernel/amd64/genunix untuk 64-bit x86, dan /kernel/sparcv9/genunix untuk SPARC.
Perintah nm(1) dapat digunakan untuk mengamati tabel simbol sebuah modul (juga aplikasi dapat-dieksekusi (executable application), librari berbagi ( shared library) dan kernel sendiri). Modul unix module terdiri dari rutin-rutin tingkat paling bawah, harus dimuatkan sebelum modul-modul kernel lain termasuk genunix. Rutin-rutin di modul ini adalah spesifik platform. Ini karena keterbatasan kinerja (contoh, rutin bcopy(9f) melakukan penyalinan memori ke memori) atau karena kebutuhan untuk mengeksekusi instruksi-instruksi tergantung mesin tertentu (contoh, fungsi() yang men-switch konteks antara therad. Rutin-rutin di modul ini secara mutlak digunakan oleh komponen-komponen lain di dalam kernel.
Contohnya, fungsi mutex_enter(9f) yang digunakan untuk pengunci mutual exclusion (mutexes) didefinisikan di dalam modul ini. Hampir semua di dalam sistem di beberapa titik memerlukan ini. Kodenya ditulis dalam assembler sebagai bahasa pemograman tercepat untuk perangkat keras dimana sistem berjalan (mutexes perlu penggunaan instruksin"test dan set" yang hanya bisa dilakukan di assembler (atau bahasa mesin). Catatan, tidak semua rutin-rutin assembler ada di sini. Masih terdapat kode dan data tergantung mesin lain yang tidak diperlukan sistem untuk berjalan, tetapi keberdaannya diperlukan untuk kinerja atau keterbatasan-keterbatasan perangkat keras di dalam modul-modul lain di sistem.
2. Module Penggerak Perangkat (Device Drivers)
Penggerak Perangkat adalah modul kernel yang dapat dimuatkan secara dinamis, digunakan untuk mengontrol interaksi dengan perangkat. Sebuah perangkat bisa berupa perangkat keras eksternal (artinya eksternal terhadap CPU dan memori), atau sebuah perangkat-pseudo (keseluruhannya diimplementasikan di perangkat lunak). Agar perangkat eksternal dapat digunakan, harus tersedia program penggerak (driver) untuknya. Perangkat-pseudo memungkinkan berbagai kemampuan hadir di sistem. Contohnya, penggerak memori yang menggerakan /dev/mem, /dev/kmem, /dev/null, dan /dev/zero. Dimana masing-masing adalah memori fisik, memori kernel, keranjang bit keluaran, dan sumber masukan NULLs (Lihat kmem(7d), null(7d), dan zero(7d) untuk informasi lebih lanjut). Banyak penggerak di sistem memiliki halaman manualnya di /usr/man/man7d.
Penggerak perangkat biasanya mendukung panggilan-panggilan sistem terkait I/O "stdanard" seperti read(2), write(2), open(2), close(2), ioctl(2), mmap(2), dll. Tidak semua penggerak mendukung semua panggilan sistem.
3. Modul Sistem File
Modul-modul Sistem File digunakan untuk mendukung tipe-tipe sistem file yang berbeda di Solaris. Lihat http://en.wikipedia.org/wiki/File_system untuk deskripsi umum sistem file. Sebuah sistem file terdiri dari himpunan rutin-rutin untuk mengimplementasikan antarmuka vnode (atau VFS – Virtual File System). Ini termasuk rutin-rutin yang dispesifikasikan oleh vnodeops_t dan vfsops_t, masing-masing didefinisikan di /usr/include/sys/vnode.h dan /usr/include/sys/vfsops.h. Catatan, sebuah sistem file tidak perlu mendukung semua rutin. Contohnya, sistem file /proc tidak mendukung titik masuk (entry point) vop_remove(). Ini artinya kita tidak dapat menggunakan rm(1) untuk menghapus file-file di /proc. Secara umum, vnodeops_t adalah untuk ruti-rutin yang bertindak terhadap file-file individual di dalam sistem file, dan vfsops_t adalah untuk rutin-rutin yang bertindak terhadap sistem file sebagai kesatuan. Jadi open(2) ditangani didalam vnodeops_t, sementara mount(2) ditangani didalam vfsops_t. Modul sistem file juga memiliki beberapa data privat terhadap masing-masing sistem file. Data ini biasanya terdiri dari informasi tentang lokasi data dari sebuah file di dalam sistem file, kepemilikan, catatan-waktu, dll. Struktur dan penggunaan data ini secara total tergantung sistem file. Sistem file yang berbeda memiliki secara keseluruhan memiliki data privat yang berbeda.
Untuk mengimplementasikan sebuah sistem file baru di Solaris juga melibatkan penulisan perintah-perintah administratif untuk mendukung sistem file tersebut. Perintah-perintah ini akan meliputi perintah mount dan unmount, juga perintah untuk menyusun/membuat sistem file baru sesuai tipe sistem filenya. Hingga sekarang, belum ada dokumentasi bagaimana mengimplementasikan sebuah tipe sistem file baru, maka kita harus langsung menggunakan kode pemograman sumbernya dan menyusunnya dari sana. Sistem File mungkin perlu juga berinteraksi dengan sistem manajemen memori. Khususnya, jika halaman-halaman dibaca/ditulis ke sistem file maka sistem file tersebut harus mendukung rutin-rutin vop_getpage() dan vop_putpage() vnodeops_t.
Selain sistem file yang terdiri dari data di disk (lokal atau jarak-jauh), Solaris memiliki beberapa sistem file dengan kegunaan khusus (disebut sistem file pseudo). Iini menyediakan sebuah model file Unix untuk mengakses berbagai sumber daya sistem. Dokumentasi tingkat-atas untuk beberapa sistem file yang didukung tersedia di halaman manual /usr/man/man7fs. Catatan, disini tidak terdapat halaman manual semua sistem file Solaris (beberapa sistem file memiliki halaman manual di /usr/man/man4 yang menjelaskan struktur sistem file bersangkutan.
Berikut adalah beberapa sistem file yang tersedia di OpenSolaris dan penjelasan singkatnya :
• UFS – Turunan dari "Fast File System" implementasi awalnya di Unix 4.2bsd, berbasiskan sistem file yang dikembangkan untuk Unix di Bell Labs. Lihat Fast File System for Unix, tersedia di http://www.cs.berkeley.edu/~brewer/cs262/FFS.pdf oleh McKusick, Joy, Leffler, dan Fabry untuk informasi detail implentasi orisinal UFS. Lihat juga http://en.wikipedia.org/wiki/Unix_File_System untuk informasi umum UFS.
• ZFS –Ini bisa menjadi sesuatu yang dapat diperdebatkan bahwa di masa mendatang, sistem file lain di-disk akan hanya diajarkan di kelas sejarah OS.
• NFS – Network File System awalnya dikembangkan oleh Sun Microsystems.
• Procfs – Memungkinkan proses diakses sebagai file. Berbagai perintah, yaitu ps(1) dan truss(1), menggunakan sistem file ini. Untuk tinjauan lihat proc(4).
• Specfs – Sistem file pseudo untuk mengakses perangkat. Akses file spesial blok dan karakter tersedia di sini
• Swapfs – Sistem file pseudo untuk merawat ruang memori anonim. Ruang memori anonim adalah ruang yang tidak memiliki sebuah nama di dalam sistem file. Terdiri dari, heap, stack, modified private data, dan shared memori.
• Tmpfs – Sistem file yang menggunakan swapfs untuk file-file temporer. • Hsfs – Sistem file High Sierra digunakan denganmCD-ROM.
Modul Kelas Penjadwalan
Di Solaris, tidak ada thread terpisah yang melakukan penjadwalan. Tetapi, terdapat rutin-rutin yang dipanggil oleh setiap thread ketika keputusan penjadwalan perlu diambil. Banyak pihak menyatakan bahwa rutin clock() adalah "penjadwalnya". Rutin clock() dieksekusi setiap 10 milliseconds dan menyesuaikan besarnya jatah-waktu untuk setiap thread yang berjalan.
Di banyak posisi dari siklus-hidup sebuah thread, keputusan penjadwalan perlu diambil. Contohnya, ketika thread perlu mem-block menunggu beberapa sumber daya atau sebuah kejadian, ketika thread di-preempted oleh thread lain, ketika thread tak-terblok, dan ketika thread keluar. Dari semua kasus ini, sebuah rutin tergantung kelas penjadwalan dipanggil. Setiap thread di sistem dimiliki oleh sebuah kelas penjadwalan setiap saat.
Terdapat enam kelas penjadwalan di Solaris hingga saat ini. Penambahan masih mungkin dilakukan. Keenam kelas penjadwalan ini adalah:
Time-Shared (TS)
Merupakan kelas default untuk thread/proses pengguna. Penjadwalan "Mean-time-to-wait" artinya bahwa thread di kelas ini semuanya menunggu jumlah waktu rata-rata yang sama untuk mendapatkan kesempatan berjalan. Kelas ini cocok untuk thread terikat I/O (I/O bound) dengan memberi mereka prioritas lebih tinggi (tapi jatah-waktu lebih pendek) daripada thread terikat CPU (CPU/compute bound).
Interactive (IA)
Kelas ini menggunakan sebagian besar rutin-rutin dan struktur data kelas TS. Thread IA dikontrol oleh server X. Thread yang berjalan di dalam jendela aktif diberikan peningkatan prioritas. Prioritas untuk thread yang berjalan di latar-belakang diturunkan. Efeknya adalah proses-proses yang terlihat di layar tampilan akan tampak berjalan lebih cepat.
Real-Time (RT)
Digunakan oleh thread waktu-nyata. Thread ini berjalan pada prioritas yang lebih tinggi daripada thread di kelas yang lainya kecuali interupsi. Thrad ini bisa mem-preempt thread yang sedang berjalan di lingkungan kernel. Informasi lebih lanjut tentang kelas waktu-nyata akan didiskusikan nanti di sesi ini.
System (SYS)
Digunakan untuk thread yang tidak berasal dari tingkat pengguna. Thread seperti meliputi, idle thread, thread interupsi, berbagai daemon kernel dan thread taskq. Kelas SYS merupakan kelas yang paling sederhana, tidak ada penjatahan waktu dan penyesuaian prioritas untuk thread di kelas ini.
Fixed (FS)
Threads di kelas ini memiliki prioritas yang sama seperti TS, IA, dan FSS, tetapi prioritasnya tidak disesuaikan secara dinamis. Kelas FX digunakan oleh nfsd(4).
Fair Share Scheduler (FSS)
Memungkinkan pengguna/administrator memiliki kontrol lebih baik terhadap prioritas penjadwalan dan jatah-waktu. Lihat FSS(7) untuk informasi lengkapnya.
Fitur-Fitur Utama Open Solaris
Tinjauan Fitur ZFS
ZFS menyajikan model penyimpan ter-pool yang secara lengkap menghilangkan konsep volume dan masalah-masalah terkaitnya seperti partisi, provisioning, lebar-pita yang terbuang dan penyimpan yang dan strdaned storage. Ribuan sistem file dapat dibuat dari pool penyimpan bersama, masing-masing sistem file mengkonsumsi hanya ruang yang dibutuhkannya saja. Lebar-pita gabungan semua perangkat di dalam pool tersedia untuk semua sistem file setiap saat. Semua metadata di disk secara dinamis dialokasikan.
ZFS menggunakan mekanisme "copy-on-write" untuk semua operasi I/O. Ini artinya, ketika dilakukan perubahan data, semua perubahan data (dan meta-data) disalin. Setelah penyalinan lengkap, perubahan yang dilakukan telah konsisten. Jika sistem mengalami kegagalan atau masalah, data orisinal masih dapat ditemukan. Ini meniadakan kebutuhan terhadap journalling/logging, dan menjalankan fsck. Untuk menjamin proteksi terhadap korupsi data, ZFS melakukan end-to-end in-memori checksumming. Checksum tidak disimpan bersama di dalam blok data, tetapi di dalam metadata yang menyimpan alamat-alamat blok data. Tentunya, metadata sendiri juga di- checksummed.
Pool ZFS dapat dibilas "scrubbed" (checksum semua data dan metadata diperiksa), ketika sedang digunakan untuk memeriksa kesalahan tersembunyi (silent errors) akibat cacat perangkat keras atau kegagalan disk. Untuk mereplikasi data, ZFS secara otomatis memperbaikai kesalahan.
"Snapshot" adalah versi hanya-dibaca dari sebuah sistem file atau volume. Volume adalah sebuah pool penyimpan-data yang terlihat sebagai perangkat block/karakter. Ketika snapshot diciptakan, tidak ada penyimpan-data yang digunakan. Selama perubahan dilakukan terhadap sistem file/volume orisinal, copy-on-write memungkinkan terjadinya perubahan tersebut, tetapi menyalin data orisinal ke snapshot. Ini menjadikan penciptaan snapshot terjadi sangat cepat. "Klon" adalah salinan dapat-ditulis sistem file atau volume. Klon tidak menggunakan penyimpan-data ketika diciptakan. Lagi, copy-on-write digunakan ketika perubahan-perubahan dilakukan terhadap orginal sistem file atau klon-nya.
ZFS backups dan restore menggunakan snapshots. Tidak ada pembatasan praktis banyaknya snapshot, file, sistem file, atribut file, direktori, perangkat, atau penyimpan data. (Terdapat limit, tetapi secara umum adalah 2**48 atau lebih). ZFS menggunakan teknik pipelining (mirip dengan CPU pipelining), caching, dan pre-fetching untuk meningkatkan parallelisme dan kinerja. Terdapat beberapa mekanisme kompresi di ZFS. Selain data, hampir semua metadata dikompresi. Hanya diperlukan 2 perintah, zfs(1M) dan zpool(1M) untuk administrasi ZFS.
Fitur DTrace
DTrace adalah piranti yang secara dinamis merunut aplikasi dan kernel. DTrace dapat merunut semua hal yang dilakukan oleh aplikasi, dari tingkat pengguna ke dalam kernel dan kembali ke tingkat pengguna.
DTrace dirancang sehingga dapat digunakan di lingkungan produksi. Ketika DTrace secara aktif digunakan, tidak ada beban-kerja tambahan di sistem. Tidak diperlukan juga penambahan instrumentasi (kode pemograman) tertentu di perangkat lunak aplikasi atau kernel agar dapat menggunakan Dtrace.
DTrace dapat digunakan untuk:
Debugging – Dengan DTrace, dapat diketahui rutin-rutin apa yang sedang dipanggil, argumen dan nilai balik dari setiap fungsi-fungsinya.
Analisa Kinerja– Dengan DTrace, dapat diamati dimana aplikasi banyak menggunakan waktunya dan berapa lama. Digunakan untuk menggali lebih dalam dan menemukan penyebab utama masalah kinerja.
Observabilitas – DTrace membantu pemahaman terhadap sistem. Dapat diketahui siapa yang memanggil sebuah fungsi dan fungsi-fungsi lain apa yang dipanggil oleh satu fungsi tertentu yang sedang dipanggil.
Jangkauan Kode (Code Coverage) – Sebagai piranti pengetes, DTrace digunakan untuk mengetahui apakah sebuah fungsi dipanggil dan dimana.
Manajemen Kegagalan
The Fault Management framework (FMA) adalah fitur baru Solaris yang memungkinkan sistem secara aktif mencegah, mendiagnosa, dan memulihkan dari kegagalan. Administrator disajikan interaksi terbimbing ketika campur-tangan diperlukan untuk menangani kegagalan. FMA juga mencoba mengisolasi masalah sehingga kegagalan tidak mempengaruhi keseluruhan sistem. Tersedia berbagai API program penggerak perangkat untuk penanganan kegagalan.
Zona (Zones)
Zona mengimplementasikan sebuah abstraksi sistem operasi yang memungkinkan beberapa aplikasi berjalan secara terisolasi satu dengan lainya di perangkat keras fisik yang sama. Misalnya, sebuah sistem dapat memiliki sebuah zona pengembangan, sebuah zona pengetesan dan sebuah zona produksi. Semua zona berjalan di satu kernel. Tidak ada kernel yang terpisah untuk setiap zona. Masalah di kernel dapat mempengaruhi semua zona. Satu zona disebut zona "global". Semuanya terlihat di dalam zona global. Aplikasi yang berjalan di dalam zona tidak akan terlihat oleh aplikasi lain di zona yang lain. Misalnya, perintah ps(1) di dalam sebuah zona hanya menampilkan proses-proses di dalam zona tersebut.
Zona yang digunakan bersama fasilitas manajemen sumber daya disebut "Containers". Biasanya, istilah zona dan container dapat dipertukarkan. Manajemen sumber daya memungkinkan administrator mengontrol berbagai sumber daya terdiri dari utilisasi CPU, lebarpita jaringan, batasan proses dan thread, utilisasi memori dan utilisasi HBA. Beban-kerja untuk menjalankan aplikasi di dalam zona biasanya kurang dari 1% CPU.
Zona Branded memungkinkan aplikasi yang berjalan di dalam zona memiliki lingkungan sistem operasi yang berbeda. Zona brdaned "lx" mengimplementasikan aplikasi-aplikasi linux berjalan di dalam zona.
Perbandingan OpenSolaris dengan Sistem Operasi Lain
* OpenSolaris vs Solaris –> OpenSolaris adalah opensource berdasarkan kode, komunitas dan distribusi. Sedangkan Solaris adalah software proprietary dari Sun Microsystems. OpenSolaris dikembangkan dari kode Solaris 10 yang di opensource-kan. OpenSolaris mirip Solaris, tetapi tidak sama.
* OpenSolaris vs Linux –> Linux dan OpenSolaris adalah diantara program opensource sistem operasi UNIX-Like. Mereka mendukung interface user seperti GNOME, dapat menjalan banyak program aplikasi seperti Apache, MySQL, Mozilla Firefox, dan OpenOffice, mendukung tool GNU seperti GNU compiler, Java, Perl, Phyton, Ruby dan yang lainnya. Masing-masing keduanya memiliki perbedaan yang mendasar dari sejarah, lisensi, model distribusinya dan implementasinya.
* OpenSolaris vs BSD –>Karena OpenSolaris based on Solaris, yang mana Solaris bagian dari BSD, OpenSolaris dan BSD mempunyai kemiripan dalam kode mereka. Tetepi juga memiliki perbedaan, pertama : BSD di kembangkan secara terbuka, seperti Linux. Yang sangat interesting, komunitas BSD mempunyai menjadi 3 kategori utama yaitu OpenBSD, NetBSD, FreeBSD. Kedua : BSD bukan berdasarkan SVR4. Sedangkan OpenSolaris merupakan hanya opensource UNIX System V Release 4.
 Pengalokasian Penggunaan Prosesor
Fair Share Scheduler (FSS) mengatur pengalokasian penggunaan  resource CPU
dengan menggunakan CPU-Shares. Kepentingan terhadap beban kerja ditunjukkan
dengan nilai dari pembagian yang dialokasikan terhadap sebuah project yang
menggambarkan beban kerja tersebut.

Fair Share Scheduler mengkalkulasi proporsi dari  resource  prosesor yang
dialokasikan kepada sebuah  project dengan membagi nilai bagian untuk project
dengan nilai total bagian dari semua project yang aktif. Sebuah project yang aktif
adalah project dengan paling sedikit satu buah proses yang menggunakan  resource
prosesor.
Sebagai contoh, misalnya project A,  B, dan C memiliki bagian 2, 1, dan 4
secara berturut-turut. Jika project A, B, dan C semuanya aktif, maka project A bernilai
2/7, project B bernilai 1/7, dan project C bernilai 4/7 dalam pembagian penggunaan
resource. Jika project A sedang tidak aktif, project B akan bernilai 1/5, dan project C
bernilai 4/5. Perhatikan bahwa walaupun secara aktual nilai penggunaan  resource
untuk project B dan C meningkatkan, namun proporsi penggunaan  resource antara
project B dan C tetap berbanding 1:4.
Perlu diperhatikan bahwa Fair Share Scheduler hanya membatasi penggunaan
prosesor jika ada kompetisi dalam penggunaan resource prosesor. Jika hanya ada satu
project yang aktif pada sistem, project  tersebut dapat 100 % menggunakan  resource
prosesor tanpa memperhatikan berapa nilai pembagian yang diberikan. CPU  cycles
tidak akan pernah terbuang (Lageman, 2005, hal:17).






makalah sistem operasi solaris


Makalah Sistem Operasi
Sistem Operasi Solaris



Disusun oleh:




Endri Rahmawanto     (09018250)
Faqihuddin Al-Ansori (09018285)
Fitrayadi                      (09018237)



PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
2011

 OPEN SOLARIS
Definisi OpenSolaris
Solaris merupakan sebuah sistem operasi keluarga UNIX yang dikembangkan oleh Sun Microsystems Inc. Sedangkan OpenSolaris adalah Sun Solaris yang di Open Souce kan di bawah lisensi CDDL (Common Developer and Distribution Lisence). Open Solaris terdiri dari jutaan baris source code dalam puluhan ribu file.
Sejarah OpenSolaris
Pada tahun 1969, Ken Thompson di Lab AT&T Bell menulis versi pertama dari sistem operasi UNIX. UNIX dari awal memang dirancang untuk multitasking dan multiuser dengan interaktif shell yang masih terlihat akrab untuk pengguna UNIX dan Linux. Selama beberapa tahun, Ken Thompson dan Dennis Ritchie terus menyempurnakan UNIX yang umumnya digunakan di dalam Lab AT&T Bell. Namun pada pertengahan akhir tahun 1970-an, UNIX versi 6 dan 7 didistribusikan cukup banyak dan digunakan diberbagai instansi pemerintah dan akademik, termasuk Universitas California di Barkeley. Karena Lisensi yang ringan pada awal versi AT&T’s UNIX, Organisasi lainnya secara signifikan mulai mengubah dan ikut meningkatkan sistem operasi tersebut. Project inilah yang menyebabkan beberapa cabang utama UNIX, dan yang paling relevan dengan OpenSolaris adalah keluarg BSD ( Barkeley Software Distribution ).
Pada tahun 1978, Bill Joy dan rekan-rekannya di Barkeley menambahkan virtual memory, demand paging, dan lain-lain untuk UNIX versi 7 untuk menciptakan sebuah versi UNIX yang disebut 3BSD. Joy dan rekan-rekannya terus meningkatkan BSD UNIX selama beberapa tahun, menambahkan TCP / IP networking, C shell, editor VI dan fitur penting lainnya. Pada tahun 1982, Bill Joy mendirikan Sun Microsystems dan pada 1984 telah menggunakan UNIX BSD sebagai dasar bagi sistem operasi SunOS yang dijalankan di Sun workstation. Sementara it, AT&T terus mengembangkan lini UNIX, yang biasa disebut system V, dan perusahaan lain mngembangkan distro mereka sendiri, seperti Microsoft Xenix (yang kemudian menjadi SCO UNIX).
Pada akhir tahun 1980-an, Sun dan AT&T mulain mengerjakan sebuah proyek bersama untuk remerge beberapa varian popular UNIX untuk menciptakan System V Release  Hasilnya, selesai pada tahun 1990, berisi fitur terbaik dari AT&T’s sebelumnya System V Release 3, SunOS, 4.3BSD, dan Xenix 5, termasuk dukungan TCP / IP, Network File System (NFS), Unix File System (UFS), dan Virtual File System (VFS) interface. Selain itu System V Release 4 (SVR4) benar-benar dipenuhi standar Portable Operating System Interface (POSIX), yang mendefinisikan pemrograman aplikasi interface, utilitas dan aspek-aspek lain dari sistem operasi. Secara teori, sebuah program POSIX interface ditulis untuk dapat berjalan pada POSIX-compliant sistem operasi. Pada tahun 1992, SVR4 menjadi dasar dari Sun sistem operasi baru, Solaris 2.0.
Sejak saat itu, Sun terus-menerus memperkuat Solaris dengan fitur seperti kernel lab pengalokasian memori multithreaded kernel dan dukungan proses multithreaded, kernel 64-bit dan banyak lainnya. Rilis terbaru Solaris, Solaris 10, memperkenalkan beberapa fitur baru yang menarik seperti dynamic tracing facility (DTrace), Service Management Facility (SMF), zone, dan ZFS file system. Pada tahun 2005, Solaris menjadi sistem operasi proprietary pertama yang mau merilis versi opensource. Source code yang terbuka pada dasarnya adalah source untuk Solaris 10, yang telah pertama kali diliris sekitar lima bulan sebelumnya. Sejak saat itu, beberapa pengembangan aktif di OpenSolaris telah backported dan diliris di Solaris 10 pembaruan. Sangat penting untuk dicatat bahwa backports dari fitur OpenSolaris ke solaris 10 hanya dapat dilakukan oleh Sun Solaris 10 karena sumber kode ini tidak open source.
Fitur-fitur       Open   Solaris
OpenSolaris memiliki fitur banyak yang menjadikan OpenSolaris bisa digunakan untuk skala penggunaan yang besar, dari penggunaan untuk desktop atau laptop sampai ke penggunaan dalam skala enterprise untuk database dengan tingkat availability yang tinggi. Fitur-fitur OpenSolaris diantaranya :
* Mendukung multiple arsitektur hardware computer, termasuk SPARC dan 32-bit, 64-bit x86.
* Mempunyai tingkat skalabilitas yang tinggi. OpenSolaris dapat berjalan pada single prosesor maupun multiprosesor dengan ratusan CPU dan RAM dengan ukuran terabyte.
* Memiliki filesistem yang inovatif dan mendukung volume manager. Filesistem didalamnya ZFS, termasuk Solaris Volume Manager.
* Fitur networking sampai level kernel, TCP/IP stack,mendukung IPv6,IPsec,Network Auto-Magic (NWAM) untuk konfigurasi dan deteksi otomatis interface jaringan, IP Network Multipathing (IPMP) untuk toleransi kesalahan dan load balancing.
* Keamanan yang canggih, termasuk role-based access control (RBAC), privilege yang mudah di konfigurasi.
* Kaya akan tool observasi dan debugging, misal tool monitoring system, modular debugger (MDB), dynamic tracing (D-Trace)
* Tool untuk memprediksi dan memperbaiki error pada system sendiri dalam bentuk Fault Management Architecture (FMA) dan Service Management Facility (SMF). Keduanya bekerja sama untuk mendeteksi error pada perangkat keras dan perangkat lunak dan mengambil tindakan yang sesuai.
* 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.
* Bisa untuk 64-bit kernel. OpenSolaris kernel berbentuk modular, device driver dapat diinstall tanpa melakukan reboot system dan fitur dapat di konfigurasi tanpa mengkompilasi kernel.
*Mendukung
   aplikasi            64-bit -
* Integrasi AMP stack (Apache, MySQL, PHP) untuk menjalankan web server.
Arti      “Open”            diOpenSolaris
Dari kata “Open”, OpenSolaris adalah sistem operasi dengan kode terbuka / opensource. Arti umum dari opensource adalah kode sumber bisa didapatkan dan dilihat oleh setiap orang. Akan tetapi, opensource di OpenSolaris tidak sama persis seperti di Linux, Apache, MySQL, BSD, Perl, Java atau seperti software opensource yang familiar. Untuk lebih memahami tentang model opensource openSolaris, berikut ini ada beberapa review dan definisi dari dasar software opensource :
* Free redistribution : setiap orang bisa membeli atau memberikan secara bebas software tersebut oleh dirinya sendiri atau sebagai bagian dari kumpulan distributor
* Source Code : sumber / source harus tersedia untuk semua distribusi – Derived Works : setiap orang bisa mengubah kode dan mendistribusikan kembali
* No Discrimination : kode harus disediakan untuk seseorang untuk dikembangkan Lebih lengkap lagi bisa baca dari sini http://opensource.org/docs/osd. Ini penting untuk mengingat bahwa program opensouce, yang kadang-kadang disebut free software tidak selalu gratis atau ga bayar. Free disini adalah bebas untuk menggunakan, memodifikasi, dan mendistribusikannya. Dan disisi lain, individu atau perusahaan bisa menjual produk / program yang dikembangkan dari kode opensource tersebut.
Lisensi OpenSolaris
Sebagian besar dari kode sumber OpenSolaris dibawah Common Development and Distribution License (CDDL), yang biasa disebut “cuddle”. Di tetapkan oleh Sun secara eksplisit untuk OpenSolaris, lisensi ini sudah di setujui oleh Open Source Initiative (OSI) sebagai lisensi opensource yang sah.
Karena CDDL ini copyleft, maka perubahan pada kode sumber itu sendiri harus dibawah lisensi CDDL juga. Aspek ini yang memungkinkan fitur OpenSolaris (Dtrace, ZFS) dapat di porting ke sistem operasi lain seperti Mac OS X 10.5
— Note GPLv2 tidak compatible dengan CDDL kareana GPv2 menginginkan semua kode harus di lisensikan dibawah GPL. Oleh karena itu, proses porting fitur OpenSolaris kedalam Linux secara signifikan sangat komplikatif jika dibandingkan dengan sistem operasi yang lain. —
Dengan adaanya lisensi CDDL ini hasil proses pengembangan tidak diharuskan untuk men-share ke public. Artinya kita sebagai pengembang dapat menyimpan apa yang sudah dikembangin bahkan kita juga dapat menjual apa yang telah kita kembangkan tersebut.
Selain CDDL, OpenSolaris juga mempunyai lisensi yang lain yaitu OBL ( OpenSolaris Binary License ) artinya binary OpenSolaris free untuk di distribusikan, dan bisa juga di gunakan untuk menjalankan dan mengembangkan OpenSolaris.

Management Proses Solaris OS

Open Solaris merupakan suatu bentuk kemajuan besar dalam pengembangan dan penyebaran Sistem Operasi. Open Solaris mengkombinasikan dasar teknologi dan perlengkapan Solaris yang kuat dengan fitur dan aplikasi desktop moderen yang dikembangkan oleh komunitas open source seperti GNOME, Mozilla dan Free Software Foundation," kata Stephen Lau, anggota Open Solaris Governing Board.
Sistem Operasi OpenSolaris didesign sebagai platform bagi inovasi yang memungkinkan para pengembang untuk dapat dengan cepat mengembangkan, menguji, memecahkan masalah dan mengimplementasikan layanan web mereka yang baru, HPC dan aplikasi-aplikasi jaringan.
instalasi Live CD dan Open Solaris Image Packaging System (IPS) berbasis-jaringan yang baru menyederhanakan dan mempercepat instalasi dan integrasi dengan aplikasi pihak-ketiga. Open Solaris IPS meningkatkan kecepatan instalasi dan keakuratan dengan menyediakan kontrol aplikasi serta ketergantungan yang lebih baik dan menawarkan pengelolaan sistem yang mudah digunakan.
Sistem Operasi Open Solaris adalah Sistem Operasi Pertama yang memiliki ZFS sebagai sistem file default-nya, melindungi kerja dengan roll-back yang cepat dan kapabilitas check-summing yang terus-menerus untuk memungkinkan pengguna untuk menguji ide-ide. Fitur Dynamic Tracing (DTrace)-nya menyediakan kemampuan meneliti sistem produksi yang aman dan luas untuk mempercepat pengembangan aplikasi dan pengoptimalan tumpukan AMP/MARS.
Disamping itu Solaris Container memungkinkan pengguna untuk membangun aplikasi -virtualisasi yang dapat disebarkan pada lebih dari 1.000 sistem, dari sistem mesin tunggal sampai multi-CPU dan multi-core. tar
Proyek OpenSolaris diluncurkan pada tanggal 14 Juni 2005 untuk menghasilkan sebuah upaya membangun komunitas dengan menggunakan kode pemograman Solaris sebagai langkah awalnya. Proyek ini merupakan sebuah tempat dimana upaya pengembangan komunitas saling terkait, tempat dimana para kontributor dari Sun dan siapa pun dapat berkolaborasi demi perkembangan dan kemajuan teknologi Sistem Operasi. Ketersediaan kode pemograman OpenSolaris dapat dimanfaatkan untuk banyak hal antara lain sebagai dasar untuk versi mendatang produk Sistem OperasiSolaris, proyek-proyek Sistem Operasi lainnya, produk pabrikan pihak-ketiga dan distribusidistribusi aplikasi yang diminati oleh komunitas. Hingga saat ini, Sun Microsystems, Inc. Yang mensponsori proyek ini.
Hingga 2 tahun pertama, lebih dari 60.000 peserta telah terdaftar sebagai anggota. Komunitas para rekayasawan ini terus bertumbuh dan berubah untuk memenuhi kebutuhan para pengembang perangkat lunak, sistem administrator dan pengguna Sistem Operasi Solaris.
Komponen-komponen fungsional utama kernel di Solaris atau OpenSolaris adalah:
 Aplikasi dan Librari (Applications dan Libraries)
Terdiri dari semua kode tingkat pengguna, data dan librari. Di Solaris, seperti sistem lain berbasis-Unix, bagian ini terdiri dari shells, daemons, compilers, dan semua yang bisa dijalankan dari perintah baris atau di dalam skrip.
 Panggilan Sistem (System Call)/Trap Handling
Bagian ini adalah tergantung mesin. Terdiri dari kode untuk bertransisi antara pengguna dan kernel, kode yang menangani panggilan sistem dan kode yang menangani perangkap (traps), pengecualian (exceptions), dan kegagalan (faults).
 Manajemen Sumber Daya (Resource Management)
Kode ini menangani pembatasan-pembatasan penggunaan memori, CPU dan lebar-pita I/O.         
 Layanan-layanan Kernel (Kernel Services)
Kernel menyediakan berbagai layanan bagi aplikasi dan bagian-bagian lain dari Kernel sendiri. Terdapat beberapa layanan yang terkait pewaktuan (timers), yaitu pewaktuan resolusi tinggi (llihat clock_settime(3rt)), dan pewaktuan yang dapat-digunakan oleh program penggerak/driver usable timers (lihat timeout(9f)). Taskqs (lihat taskq(9f)) disediakan untuk memungkinkan program penggerak melakukan penjadwalan tugas asinkron.
Proses (Processes)
Program yang sedang berjalan. Setiap proses memiliki ruang alamat (address space) terproteksi dan satu atau lebih yang mengeksekusi kode.
 Threads
Entitas dasar penjadwalan di Solaris. Setiap proses setidaknya memiliki satu thread. Proses dengan hanya satu thread disebut "single-threaded", dengan lebih dari satu thread, "multi-threaded".
Penjadwal (Schedulers)
Hanya ada satu penjadwal di sistem, tapi setiap thread dimiliki oleh sebuah "kelas penjadwalan" yang akan menentukan jatah-waktu (time slice) dan prioritas thread tersebut. Saat ini, terdapat 6 kelas penjadwalan.
 Manajemen Memori (memori Management)
Kode dan struktur data yang digunakan Solaris untuk manajemen ruang alamat virtual proses dan Kernel sendiri.
Modul Spesifik Platform (Platform Specific Module, PSM)
Terdiri dari kode yang menangani interupsi (interrupt) tingkat bawah dan beberapa bagian saat sistem boot dan inisialisasi. Sesuai dengan namanya, kode-kodenya tergantung mesin.
 Translasi Alamat Perangkat Keras (Hardware Address Translation, HAT)
Bagian dari kode manajemen memori yang tergantung mesin. Bertugas menangani tabel halaman (page tables) dan struktur data spesifik perangkat keras dari segi manajemen memori.
 Antarmuka Vnode (Vnode Interface)
Juga disebut sebagai "virtual file system" atau VFS. Berupa lapisan abstraksi data yang memungkinkan aplikasi berusan dengan gagasan Unix yang disebut "files" tanpa mempedulikan spesifik-spesifik sistem file yang mendasarinya untuk sebuah file yang diberikan. Semua Sistem Operasi mirip-Unix memiliki ini atau abstraksi lain yang sangat mirip.
Spesifik-spesifik Sistem File (File System Specifics)
Terdapat lebih dari 10 tipe sistem file di Solaris, dan lebih dapat ditambahkan. Selain disisi administrasi, aplikasi tidak perlu mengetahui tentang tipe-tipe sistem file yang berbeda. Beberapa sistem file didokumentasikan di bagian 7fs halaman manual (coba ls -l /usr/man/man7fs) atau bagian 4 (lihat proc(4) untuk deskripsi procfs). Kita akan membahas secara singkat UFS dan ZFS, nanti di sesi ini.

 Jaringan (Networking)
Terdiri dari berbagai kerangka kerja (himpunan rutin-rutin dan struktur-struktur data) untuk mengimplementasikan layanan jaringan di Solaris, berupa protokol-protokol TCP/IP dan protokol lain. Jaringan tidak akan dibahas secara rinci di sini.
Program Penggerak Perangkat (Device Drivers)
Perangkat lunak yang bertanggung jawab menangani perangkat. Perangkat sendiri berupa perangkat keras atau perangkat "pseudo". Perangkat pseudo adalah perangkat yang secara keseluruhan diimplementasikan oleh program penggerak.
Modul-modul Kernel
Di OpenSolaris, semua modul kernel yang diperlukan oleh sistem secara dinamis dimuatkan (dynamically loaded). Sebagian besar modul kernel juga secara dinamis dibongkar-muatkan. Secara umum, kernel yang sedang berjalan hanya terdiri dari modul-modul yang diperlukan untuk sumber daya yang sedang digunakan saja. Contohnya: program penggerak perangkat bge hanya dimuatkan jika terdapat perangkat Broadcom BCM57xx di sistem. Bisa juga perangkat/sumber daya terpasang di sistem tetapi modulnya tidak dimuatkan karena perangkat/sumber daya tersebut tidak sedang digunakan. Contohnya: program penggerak pengontrol audio tidak karena perangkat audio tidak sedang digunakan.
Modul Kernel stdanarnya eksis di direktori /kernel, /usr/kernel, dan /platform/i86pc/kernel atau /platform/sun4u/kernel. Modul bisa juga eksis di direktori lain selama dispesifikasikan oleh file /etc/system atau dispesifikan langsung saat boot.
Tedapat dua keuntungan utama dari skema ini:
• Modul-modul yang tidak diperlukan tidak mengkonsumsi sumber daya (memori, dan waktu-cpu untuk thread sistem ketika menjalankan beberapa modul tertentu)
• Selama pengembangan dan pengetesan, modul dapat dibongkar-muatkan dan diganti dengan versi modifikasinya tanpa perlu mereboot sistem untuk melakukannya.
1. Modul unix dan genunix
Modul unix dan genunix dimuatkan oleh kode boot sistem. Ini adalah dua modul yang pertama kali dimuatkan. Kedua modul ini tidak dapat dibongkar-muatkan karena semua subsistem kernel tergantung pada kode dan data dari kedua modul ini. Meskipun, benar bahwa OpenSolaris berbasiskan kernel-mikro, kedua modul ini yang sebenarnya menjadi inti kernel. Semua modul-modul kernel yang lain dimuatkan secara dinamis setelah kedua modul ini dimuatkan.
Modul genunix terdiri dari kode "generic" dan struktur data yang sama yang diperlukan oleh semua platform perangkat keras yang menjalankan OpenSolaris. (Tentunya, modul-modul harus disusun "built" melalui pengkompilasi (compiler) untuk platform yang berbeda). Modul genunix ada di /kernel/genunix untuk 32-bit x86, /kernel/amd64/genunix untuk 64-bit x86, dan /kernel/sparcv9/genunix untuk SPARC.
Perintah nm(1) dapat digunakan untuk mengamati tabel simbol sebuah modul (juga aplikasi dapat-dieksekusi (executable application), librari berbagi ( shared library) dan kernel sendiri). Modul unix module terdiri dari rutin-rutin tingkat paling bawah, harus dimuatkan sebelum modul-modul kernel lain termasuk genunix. Rutin-rutin di modul ini adalah spesifik platform. Ini karena keterbatasan kinerja (contoh, rutin bcopy(9f) melakukan penyalinan memori ke memori) atau karena kebutuhan untuk mengeksekusi instruksi-instruksi tergantung mesin tertentu (contoh, fungsi() yang men-switch konteks antara therad. Rutin-rutin di modul ini secara mutlak digunakan oleh komponen-komponen lain di dalam kernel.
Contohnya, fungsi mutex_enter(9f) yang digunakan untuk pengunci mutual exclusion (mutexes) didefinisikan di dalam modul ini. Hampir semua di dalam sistem di beberapa titik memerlukan ini. Kodenya ditulis dalam assembler sebagai bahasa pemograman tercepat untuk perangkat keras dimana sistem berjalan (mutexes perlu penggunaan instruksin"test dan set" yang hanya bisa dilakukan di assembler (atau bahasa mesin). Catatan, tidak semua rutin-rutin assembler ada di sini. Masih terdapat kode dan data tergantung mesin lain yang tidak diperlukan sistem untuk berjalan, tetapi keberdaannya diperlukan untuk kinerja atau keterbatasan-keterbatasan perangkat keras di dalam modul-modul lain di sistem.
2. Module Penggerak Perangkat (Device Drivers)
Penggerak Perangkat adalah modul kernel yang dapat dimuatkan secara dinamis, digunakan untuk mengontrol interaksi dengan perangkat. Sebuah perangkat bisa berupa perangkat keras eksternal (artinya eksternal terhadap CPU dan memori), atau sebuah perangkat-pseudo (keseluruhannya diimplementasikan di perangkat lunak). Agar perangkat eksternal dapat digunakan, harus tersedia program penggerak (driver) untuknya. Perangkat-pseudo memungkinkan berbagai kemampuan hadir di sistem. Contohnya, penggerak memori yang menggerakan /dev/mem, /dev/kmem, /dev/null, dan /dev/zero. Dimana masing-masing adalah memori fisik, memori kernel, keranjang bit keluaran, dan sumber masukan NULLs (Lihat kmem(7d), null(7d), dan zero(7d) untuk informasi lebih lanjut). Banyak penggerak di sistem memiliki halaman manualnya di /usr/man/man7d.
Penggerak perangkat biasanya mendukung panggilan-panggilan sistem terkait I/O "stdanard" seperti read(2), write(2), open(2), close(2), ioctl(2), mmap(2), dll. Tidak semua penggerak mendukung semua panggilan sistem.
3. Modul Sistem File
Modul-modul Sistem File digunakan untuk mendukung tipe-tipe sistem file yang berbeda di Solaris. Lihat http://en.wikipedia.org/wiki/File_system untuk deskripsi umum sistem file. Sebuah sistem file terdiri dari himpunan rutin-rutin untuk mengimplementasikan antarmuka vnode (atau VFS – Virtual File System). Ini termasuk rutin-rutin yang dispesifikasikan oleh vnodeops_t dan vfsops_t, masing-masing didefinisikan di /usr/include/sys/vnode.h dan /usr/include/sys/vfsops.h. Catatan, sebuah sistem file tidak perlu mendukung semua rutin. Contohnya, sistem file /proc tidak mendukung titik masuk (entry point) vop_remove(). Ini artinya kita tidak dapat menggunakan rm(1) untuk menghapus file-file di /proc. Secara umum, vnodeops_t adalah untuk ruti-rutin yang bertindak terhadap file-file individual di dalam sistem file, dan vfsops_t adalah untuk rutin-rutin yang bertindak terhadap sistem file sebagai kesatuan. Jadi open(2) ditangani didalam vnodeops_t, sementara mount(2) ditangani didalam vfsops_t. Modul sistem file juga memiliki beberapa data privat terhadap masing-masing sistem file. Data ini biasanya terdiri dari informasi tentang lokasi data dari sebuah file di dalam sistem file, kepemilikan, catatan-waktu, dll. Struktur dan penggunaan data ini secara total tergantung sistem file. Sistem file yang berbeda memiliki secara keseluruhan memiliki data privat yang berbeda.
Untuk mengimplementasikan sebuah sistem file baru di Solaris juga melibatkan penulisan perintah-perintah administratif untuk mendukung sistem file tersebut. Perintah-perintah ini akan meliputi perintah mount dan unmount, juga perintah untuk menyusun/membuat sistem file baru sesuai tipe sistem filenya. Hingga sekarang, belum ada dokumentasi bagaimana mengimplementasikan sebuah tipe sistem file baru, maka kita harus langsung menggunakan kode pemograman sumbernya dan menyusunnya dari sana. Sistem File mungkin perlu juga berinteraksi dengan sistem manajemen memori. Khususnya, jika halaman-halaman dibaca/ditulis ke sistem file maka sistem file tersebut harus mendukung rutin-rutin vop_getpage() dan vop_putpage() vnodeops_t.
Selain sistem file yang terdiri dari data di disk (lokal atau jarak-jauh), Solaris memiliki beberapa sistem file dengan kegunaan khusus (disebut sistem file pseudo). Iini menyediakan sebuah model file Unix untuk mengakses berbagai sumber daya sistem. Dokumentasi tingkat-atas untuk beberapa sistem file yang didukung tersedia di halaman manual /usr/man/man7fs. Catatan, disini tidak terdapat halaman manual semua sistem file Solaris (beberapa sistem file memiliki halaman manual di /usr/man/man4 yang menjelaskan struktur sistem file bersangkutan.
Berikut adalah beberapa sistem file yang tersedia di OpenSolaris dan penjelasan singkatnya :
• UFS – Turunan dari "Fast File System" implementasi awalnya di Unix 4.2bsd, berbasiskan sistem file yang dikembangkan untuk Unix di Bell Labs. Lihat Fast File System for Unix, tersedia di http://www.cs.berkeley.edu/~brewer/cs262/FFS.pdf oleh McKusick, Joy, Leffler, dan Fabry untuk informasi detail implentasi orisinal UFS. Lihat juga http://en.wikipedia.org/wiki/Unix_File_System untuk informasi umum UFS.
• ZFS –Ini bisa menjadi sesuatu yang dapat diperdebatkan bahwa di masa mendatang, sistem file lain di-disk akan hanya diajarkan di kelas sejarah OS.
• NFS – Network File System awalnya dikembangkan oleh Sun Microsystems.
• Procfs – Memungkinkan proses diakses sebagai file. Berbagai perintah, yaitu ps(1) dan truss(1), menggunakan sistem file ini. Untuk tinjauan lihat proc(4).
• Specfs – Sistem file pseudo untuk mengakses perangkat. Akses file spesial blok dan karakter tersedia di sini
• Swapfs – Sistem file pseudo untuk merawat ruang memori anonim. Ruang memori anonim adalah ruang yang tidak memiliki sebuah nama di dalam sistem file. Terdiri dari, heap, stack, modified private data, dan shared memori.
• Tmpfs – Sistem file yang menggunakan swapfs untuk file-file temporer. • Hsfs – Sistem file High Sierra digunakan denganmCD-ROM.
Modul Kelas Penjadwalan
Di Solaris, tidak ada thread terpisah yang melakukan penjadwalan. Tetapi, terdapat rutin-rutin yang dipanggil oleh setiap thread ketika keputusan penjadwalan perlu diambil. Banyak pihak menyatakan bahwa rutin clock() adalah "penjadwalnya". Rutin clock() dieksekusi setiap 10 milliseconds dan menyesuaikan besarnya jatah-waktu untuk setiap thread yang berjalan.
Di banyak posisi dari siklus-hidup sebuah thread, keputusan penjadwalan perlu diambil. Contohnya, ketika thread perlu mem-block menunggu beberapa sumber daya atau sebuah kejadian, ketika thread di-preempted oleh thread lain, ketika thread tak-terblok, dan ketika thread keluar. Dari semua kasus ini, sebuah rutin tergantung kelas penjadwalan dipanggil. Setiap thread di sistem dimiliki oleh sebuah kelas penjadwalan setiap saat.
Terdapat enam kelas penjadwalan di Solaris hingga saat ini. Penambahan masih mungkin dilakukan. Keenam kelas penjadwalan ini adalah:
Time-Shared (TS)
Merupakan kelas default untuk thread/proses pengguna. Penjadwalan "Mean-time-to-wait" artinya bahwa thread di kelas ini semuanya menunggu jumlah waktu rata-rata yang sama untuk mendapatkan kesempatan berjalan. Kelas ini cocok untuk thread terikat I/O (I/O bound) dengan memberi mereka prioritas lebih tinggi (tapi jatah-waktu lebih pendek) daripada thread terikat CPU (CPU/compute bound).
Interactive (IA)
Kelas ini menggunakan sebagian besar rutin-rutin dan struktur data kelas TS. Thread IA dikontrol oleh server X. Thread yang berjalan di dalam jendela aktif diberikan peningkatan prioritas. Prioritas untuk thread yang berjalan di latar-belakang diturunkan. Efeknya adalah proses-proses yang terlihat di layar tampilan akan tampak berjalan lebih cepat.
Real-Time (RT)
Digunakan oleh thread waktu-nyata. Thread ini berjalan pada prioritas yang lebih tinggi daripada thread di kelas yang lainya kecuali interupsi. Thrad ini bisa mem-preempt thread yang sedang berjalan di lingkungan kernel. Informasi lebih lanjut tentang kelas waktu-nyata akan didiskusikan nanti di sesi ini.
System (SYS)
Digunakan untuk thread yang tidak berasal dari tingkat pengguna. Thread seperti meliputi, idle thread, thread interupsi, berbagai daemon kernel dan thread taskq. Kelas SYS merupakan kelas yang paling sederhana, tidak ada penjatahan waktu dan penyesuaian prioritas untuk thread di kelas ini.
Fixed (FS)
Threads di kelas ini memiliki prioritas yang sama seperti TS, IA, dan FSS, tetapi prioritasnya tidak disesuaikan secara dinamis. Kelas FX digunakan oleh nfsd(4).
Fair Share Scheduler (FSS)
Memungkinkan pengguna/administrator memiliki kontrol lebih baik terhadap prioritas penjadwalan dan jatah-waktu. Lihat FSS(7) untuk informasi lengkapnya.
Fitur-Fitur Utama Open Solaris
Tinjauan Fitur ZFS
ZFS menyajikan model penyimpan ter-pool yang secara lengkap menghilangkan konsep volume dan masalah-masalah terkaitnya seperti partisi, provisioning, lebar-pita yang terbuang dan penyimpan yang dan strdaned storage. Ribuan sistem file dapat dibuat dari pool penyimpan bersama, masing-masing sistem file mengkonsumsi hanya ruang yang dibutuhkannya saja. Lebar-pita gabungan semua perangkat di dalam pool tersedia untuk semua sistem file setiap saat. Semua metadata di disk secara dinamis dialokasikan.
ZFS menggunakan mekanisme "copy-on-write" untuk semua operasi I/O. Ini artinya, ketika dilakukan perubahan data, semua perubahan data (dan meta-data) disalin. Setelah penyalinan lengkap, perubahan yang dilakukan telah konsisten. Jika sistem mengalami kegagalan atau masalah, data orisinal masih dapat ditemukan. Ini meniadakan kebutuhan terhadap journalling/logging, dan menjalankan fsck. Untuk menjamin proteksi terhadap korupsi data, ZFS melakukan end-to-end in-memori checksumming. Checksum tidak disimpan bersama di dalam blok data, tetapi di dalam metadata yang menyimpan alamat-alamat blok data. Tentunya, metadata sendiri juga di- checksummed.
Pool ZFS dapat dibilas "scrubbed" (checksum semua data dan metadata diperiksa), ketika sedang digunakan untuk memeriksa kesalahan tersembunyi (silent errors) akibat cacat perangkat keras atau kegagalan disk. Untuk mereplikasi data, ZFS secara otomatis memperbaikai kesalahan.
"Snapshot" adalah versi hanya-dibaca dari sebuah sistem file atau volume. Volume adalah sebuah pool penyimpan-data yang terlihat sebagai perangkat block/karakter. Ketika snapshot diciptakan, tidak ada penyimpan-data yang digunakan. Selama perubahan dilakukan terhadap sistem file/volume orisinal, copy-on-write memungkinkan terjadinya perubahan tersebut, tetapi menyalin data orisinal ke snapshot. Ini menjadikan penciptaan snapshot terjadi sangat cepat. "Klon" adalah salinan dapat-ditulis sistem file atau volume. Klon tidak menggunakan penyimpan-data ketika diciptakan. Lagi, copy-on-write digunakan ketika perubahan-perubahan dilakukan terhadap orginal sistem file atau klon-nya.
ZFS backups dan restore menggunakan snapshots. Tidak ada pembatasan praktis banyaknya snapshot, file, sistem file, atribut file, direktori, perangkat, atau penyimpan data. (Terdapat limit, tetapi secara umum adalah 2**48 atau lebih). ZFS menggunakan teknik pipelining (mirip dengan CPU pipelining), caching, dan pre-fetching untuk meningkatkan parallelisme dan kinerja. Terdapat beberapa mekanisme kompresi di ZFS. Selain data, hampir semua metadata dikompresi. Hanya diperlukan 2 perintah, zfs(1M) dan zpool(1M) untuk administrasi ZFS.
Fitur DTrace
DTrace adalah piranti yang secara dinamis merunut aplikasi dan kernel. DTrace dapat merunut semua hal yang dilakukan oleh aplikasi, dari tingkat pengguna ke dalam kernel dan kembali ke tingkat pengguna.
DTrace dirancang sehingga dapat digunakan di lingkungan produksi. Ketika DTrace secara aktif digunakan, tidak ada beban-kerja tambahan di sistem. Tidak diperlukan juga penambahan instrumentasi (kode pemograman) tertentu di perangkat lunak aplikasi atau kernel agar dapat menggunakan Dtrace.
DTrace dapat digunakan untuk:
Debugging – Dengan DTrace, dapat diketahui rutin-rutin apa yang sedang dipanggil, argumen dan nilai balik dari setiap fungsi-fungsinya.
Analisa Kinerja– Dengan DTrace, dapat diamati dimana aplikasi banyak menggunakan waktunya dan berapa lama. Digunakan untuk menggali lebih dalam dan menemukan penyebab utama masalah kinerja.
Observabilitas – DTrace membantu pemahaman terhadap sistem. Dapat diketahui siapa yang memanggil sebuah fungsi dan fungsi-fungsi lain apa yang dipanggil oleh satu fungsi tertentu yang sedang dipanggil.
Jangkauan Kode (Code Coverage) – Sebagai piranti pengetes, DTrace digunakan untuk mengetahui apakah sebuah fungsi dipanggil dan dimana.
Manajemen Kegagalan
The Fault Management framework (FMA) adalah fitur baru Solaris yang memungkinkan sistem secara aktif mencegah, mendiagnosa, dan memulihkan dari kegagalan. Administrator disajikan interaksi terbimbing ketika campur-tangan diperlukan untuk menangani kegagalan. FMA juga mencoba mengisolasi masalah sehingga kegagalan tidak mempengaruhi keseluruhan sistem. Tersedia berbagai API program penggerak perangkat untuk penanganan kegagalan.
Zona (Zones)
Zona mengimplementasikan sebuah abstraksi sistem operasi yang memungkinkan beberapa aplikasi berjalan secara terisolasi satu dengan lainya di perangkat keras fisik yang sama. Misalnya, sebuah sistem dapat memiliki sebuah zona pengembangan, sebuah zona pengetesan dan sebuah zona produksi. Semua zona berjalan di satu kernel. Tidak ada kernel yang terpisah untuk setiap zona. Masalah di kernel dapat mempengaruhi semua zona. Satu zona disebut zona "global". Semuanya terlihat di dalam zona global. Aplikasi yang berjalan di dalam zona tidak akan terlihat oleh aplikasi lain di zona yang lain. Misalnya, perintah ps(1) di dalam sebuah zona hanya menampilkan proses-proses di dalam zona tersebut.
Zona yang digunakan bersama fasilitas manajemen sumber daya disebut "Containers". Biasanya, istilah zona dan container dapat dipertukarkan. Manajemen sumber daya memungkinkan administrator mengontrol berbagai sumber daya terdiri dari utilisasi CPU, lebarpita jaringan, batasan proses dan thread, utilisasi memori dan utilisasi HBA. Beban-kerja untuk menjalankan aplikasi di dalam zona biasanya kurang dari 1% CPU.
Zona Branded memungkinkan aplikasi yang berjalan di dalam zona memiliki lingkungan sistem operasi yang berbeda. Zona brdaned "lx" mengimplementasikan aplikasi-aplikasi linux berjalan di dalam zona.
Perbandingan OpenSolaris dengan Sistem Operasi Lain
* OpenSolaris vs Solaris –> OpenSolaris adalah opensource berdasarkan kode, komunitas dan distribusi. Sedangkan Solaris adalah software proprietary dari Sun Microsystems. OpenSolaris dikembangkan dari kode Solaris 10 yang di opensource-kan. OpenSolaris mirip Solaris, tetapi tidak sama.
* OpenSolaris vs Linux –> Linux dan OpenSolaris adalah diantara program opensource sistem operasi UNIX-Like. Mereka mendukung interface user seperti GNOME, dapat menjalan banyak program aplikasi seperti Apache, MySQL, Mozilla Firefox, dan OpenOffice, mendukung tool GNU seperti GNU compiler, Java, Perl, Phyton, Ruby dan yang lainnya. Masing-masing keduanya memiliki perbedaan yang mendasar dari sejarah, lisensi, model distribusinya dan implementasinya.
* OpenSolaris vs BSD –>Karena OpenSolaris based on Solaris, yang mana Solaris bagian dari BSD, OpenSolaris dan BSD mempunyai kemiripan dalam kode mereka. Tetepi juga memiliki perbedaan, pertama : BSD di kembangkan secara terbuka, seperti Linux. Yang sangat interesting, komunitas BSD mempunyai menjadi 3 kategori utama yaitu OpenBSD, NetBSD, FreeBSD. Kedua : BSD bukan berdasarkan SVR4. Sedangkan OpenSolaris merupakan hanya opensource UNIX System V Release 4.
 Pengalokasian Penggunaan Prosesor
Fair Share Scheduler (FSS) mengatur pengalokasian penggunaan  resource CPU
dengan menggunakan CPU-Shares. Kepentingan terhadap beban kerja ditunjukkan
dengan nilai dari pembagian yang dialokasikan terhadap sebuah project yang
menggambarkan beban kerja tersebut.

Fair Share Scheduler mengkalkulasi proporsi dari  resource  prosesor yang
dialokasikan kepada sebuah  project dengan membagi nilai bagian untuk project
dengan nilai total bagian dari semua project yang aktif. Sebuah project yang aktif
adalah project dengan paling sedikit satu buah proses yang menggunakan  resource
prosesor.
Sebagai contoh, misalnya project A,  B, dan C memiliki bagian 2, 1, dan 4
secara berturut-turut. Jika project A, B, dan C semuanya aktif, maka project A bernilai
2/7, project B bernilai 1/7, dan project C bernilai 4/7 dalam pembagian penggunaan
resource. Jika project A sedang tidak aktif, project B akan bernilai 1/5, dan project C
bernilai 4/5. Perhatikan bahwa walaupun secara aktual nilai penggunaan  resource
untuk project B dan C meningkatkan, namun proporsi penggunaan  resource antara
project B dan C tetap berbanding 1:4.
Perlu diperhatikan bahwa Fair Share Scheduler hanya membatasi penggunaan
prosesor jika ada kompetisi dalam penggunaan resource prosesor. Jika hanya ada satu
project yang aktif pada sistem, project  tersebut dapat 100 % menggunakan  resource
prosesor tanpa memperhatikan berapa nilai pembagian yang diberikan. CPU  cycles
tidak akan pernah terbuang (Lageman, 2005, hal:17).