June 7, 2019

Pengertian Singkat Sistem Operasi

Diartikel kali ini saya akan memberikan penjelasan "apa sih itu sistem operasi" pada komputer atau smartphone kalian, walaupun begitu banyak pengguna sistem operasi yang sangat populer sekarang itu Android, masih banyak yang belum tahun apa sih sistem operasi itu, mari kita simak baik -baik ya.

pengertian-singkat-sistem-operasi

Sistem Operasi (OS) adalah kumpulan software yang mengatur seluruh sumber daya di hardware komputer dan memberikan layanan bagi program komputer. Sistem Operasi adalah komponen penting dari sistem perangkat lunak dalam sebuah komputer. Program atau aplikasi biasanya membutuhkan sistem operasi untuk bisa berfungsi.
Sistem operasi time sharing menjadwal tugas agar dapat secara effisien menggunakan sistem. oleh karena itu hal ini termasuk menghitung alokasi biaya dari waktu processor, harddisk, printing dan berbagai sumber daya lainnya.
Untuk fungsi hardware seperti input dan output dan alokasi memory, sistem operasi berfungsi sebagai perantara antara program dengan komputer hardware. Meskipun demikian aplikasi dijalankan secara langsung oleh hardware dan biasanya akan melakukan sistem call ke fungsi di OS atau di interupsi oleh OS tersebut. Sistem operasi dapat di temukan di hampir semua alat yang mempunyai fungsi komputer mulai dari handphone, video game hingga super komputer dan web server.
Contoh-contoh sistem operasi modern termasuk Android, BSD, iOS, Linux, Mac OS X, Microsoft Windows, and IBM z/OS. Semuanya, kecuali Windows dan z/OS, mempunyai akar/turunan yang sama yaitu Unix

TIPE SISTEM OPERASI
1. Real-time
Sistem operasi real-time adalah sebuah sistem operasi multitasking yang ditujukan untuk menjalankan aplikasi real-time. Pada Sistem Operasi real-time biasanya menspesialisasikan pada algoritma scheduling (penjadwalan) sehingga mereka dapat mencapai perilaku yang deterministik. Tujuan utama sebuah sistem operasi real-time adalah respons yang cepat dan dapat di prediksi untuk berbagai kejadian. Sistem operasi ini di rancang berdasarkan event-driven atau time-sharing atau kedua-nya. Sebuah sistem event-driven melakukan switching antar task berdasarkan prioritas atau kejadian (event) dari luar, sementara sistem operasi time-sharing melakukan switching antar task berbasis pada interupsi clock.

2. Multi-user
Sistem operasi multi-user memungkinkan banyak pengguna untuk mengakses sistem komputer pada saat yang sama. Pada Sistem time-sharing dan server di Internet dapat dikategorikan sebagai sistem multi-user karena mereka memungkinkan banyak pengguna untuk mengakses komputer dengan cara berbagai waktu (sharing time). Sistem operasi single user hanya satu pengguna tapi dapat menjalankan multiple program pada saat yang sama.

3. Multi-tasking vs. single-tasking
Sebuah sistem operasi multi-tasking memungkinkan lebih dari satu program untuk berjalan pada satu saat, dilihat dari skala waktu manusia. Pada sistem single-tasking hanya dapat menjalankan satu program. Ada dua tipe Multi-tasking, yaitu: (1) pre-emptive dan (2) co-operative. Di pre-emptive multitasking, sistem operasi akan membagi CPU time dan mendedikasikan satu slot untuk setiap program. Di sistem operasi Unix-like, seperti, Solaris dan Linux, biasanya mendukung pre-emptive multitasking, seperti juga AmigaOS. Cooperative multitasking dapat dicapai dengan cara saling mengandalkan satu sama lain untuk memberikan waktu / slot time ke proses yang lain dengan aturan yang baku.

4. Sistem Terdistribusi
Sebuah sistem operasi terdistribusi mengatur sebuah kelompok dari komputer yang independen dan membuat mereka tampak seperti satu buah komputer. Dengan terus perkembangan jaringan komputer memungkinkan sambungan dan komunikasi satu sama lain untuk membangun distributed computing. Komputasi terdistribusi dilakukan oleh lebih dari satu mesin. Jika komputer dalam satu group bekerjasama, maka mereka akan membangun sebuah distributed system / sistem terdistribusi.

5. Sistem Embedded
Sistem operasi embedded di rancang untuk digunakan di sistem komputer embedded. Sistem operasi embedded di operasikan di mesin kecil seperti PDA. Sistem operasi ini dapat beroperasi dengan sumber daya yang sangat terbatas. Pada Sistem operasi ini di rancang agar sangat kecil dan sangat effisien. Contoh dari sistem operasi embedded ini adalah OpenWRT.

Komponen Sistem Operasi

Komponen sistem operasi semua ada untuk membuat bagian-bagian yang berbeda dari komputer bekerja sama. Semua perangkat lunak pengguna harus melalui sistem operasi untuk menggunakan perangkat keras, dan apakah itu sederhana seperti mouse atau keyboard atau serumit komponen internet.

1. Kernel
Kernel menghubungkan perangkat lunak aplikasi ke perangkat keras komputer. dan Dengan bantuan firmware device driver, kernel menyediakan tingkat yang paling dasar untuk mengontrol semua perangkat keras komputer. karnel mengatur akses memori untuk program di RAM, menentukan program mana yang mendapatkan akses ke sumber daya perangkat keras, kernel menset up atau me-reset kondisi operasi CPU agar beroperasi optimal setiap saat, dan mengatur penyimpanan data untuk jangka panjang pada penyimpanan non-volatile dengan sistem file pada media seperti disk, kaset, memori flash, dll.

2. Eksekusi Program
Sistem operasi menyediakan antarmuka antara program aplikasi dengan perangkat keras komputer, sehingga program aplikasi dapat berinteraksi dengan perangkat keras hanya dengan mematuhi peraturan dan prosedur yang sudah diprogram ke dalam sistem operasi. Sistem operasi juga merupakan satu set layanan yang menyederhanakan pengembangan dan eksekusi program-program aplikasi. Dan Eksekusi program aplikasi yang melibatkan proses pembuatan oleh kernel sistem operasi yang memberikan ruang memori dan sumber daya lainnya, menetapkan prioritas untuk proses multi-tasking sistem, memasukan program kode biner ke memori, dan memulai eksekusi program aplikasi yang kemudian berinteraksi dengan pengguna dan dengan perangkat keras.

3. Interupsi
Interupsi sangatlah penting untuk sistem operasi, karena menyediakan cara yang efisien untuk sistem operasi untuk berinteraksi dengan dan bereaksi terhadap lingkungannya. Pilihan lainnya - menggunakan sistem operasi "mengawasi" berbagai sumber input akan kejadian (polling) agar dilakukan tindakan - teknik ini dapat ditemukan di sistem lama dengan stack yang sangat kecil yaitu (50byte atau 60 byte) , teknik ini tidak biasa dalam sistem operasi modern dengan stack besar. Interupsi yang berbasis pemrograman langsung didukung oleh CPU paling modern. Interrupts memberikan komputer cara otomatis menyimpan konteks lokal register, dan menjalankan kode tertentu dalam menanggapi kejadian. Bahkan komputer yang sangat sederhana saat ini mendukung interupsi hardware, dan memungkinkan programmer untuk menentukan kode yang akan dijalankan ketika kejadian berlangsung.
Ketika perintah telah diterima, maka hardware pada perangkat komputer secara otomatis menunda semua program yang sedang dijalankan, statusnya disimpan, dan menjalankan kode komputer yang terkait dengan interupsi, hal ini analog dengan menempatkan penunjuk di buku sebagai tanggapan terhadap panggilan telepon. Dalam sistem operasi yang modern, interupsi ditangani oleh kernel sistem operasi. Interupsi dapat berasal dari baik perangkat keras komputer atau dari program berjalan.
Ketika sebuah perangkat keras memicu interupsi, kernel sistem operasi akan memutuskan bagaimana menangani kejadian ini, dengan menjalankan kode pemrosesan. Besarnya kode yang dijalankan tergantung pada prioritas interupsi (misalnya: orang biasanya akan merespon alarm detektor kebakaran sebelum menjawab telepon). Penanganan interupsi hardware biasanya didelegasikan ke perangkat lunak device driver , yang mungkin salah satu bagian dari kernel sistem operasi, atau bagian dari program lain, atau keduanya. Device driver kemudian dapat menyampaikan informasi ke program yang berjalan dengan berbagai cara.
Untuk Sebuah program mungkin juga untuk memicu interupsi kepada sistem operasi. Jika sebuah program ingin mengakses hardware misalnya, dia dapat menginterupsi kernel sistem operasi, yang menyebabkan kontrol untuk dikembalikan ke kernel. Kernel kemudian akan memproses permintaan tersebut. Jika sebuah program ingin sumber daya tambahan (atau ingin menumpahkan sumber daya) seperti memori, ia akan memicu interupsi untuk mendapatkan perhatian kernel.

4. Mode
Secara umum mode dibagi dua, yaitu, Mode Protected dan Mode Supervisor.
Privilege ring untuk type x86 tersedia dalam protected mode . Sistem operasi menentukan proses mana yang berjalan dalam masing-masing modus .
Untuk CPU modern mendukung beberapa mode operasi. CPU yang berkemampuan ini menggunakan setidaknya dua mode: mode dan supervisor mode. Supervisor mode digunakan oleh kernel sistem operasi untuk tugas-tugas tingkat rendah yang membutuhkan akses tidak terbatas ke perangkat keras, seperti mengendalikan bagaimana memori ditulis dan dihapus, dan komunikasi dengan perangkat seperti kartu grafis. Protected mode, sebaliknya, digunakan untuk hampir segala sesuatu yang lain. Aplikasi yang beroperasi dalam protected mode, akan hanya dapat menggunakan perangkat keras melalui komunikasi dengan kernel, yang mengontrol segala sesuatu dalam mode supervisor. CPU mungkin ada mode lain yang serupa dengan proteded mode , seperti mode virtual untuk mengemulasi jenis prosesor tua, seperti 16-bit prosesor pada 32-bit , atau 32-bit prosesor pada 64-bit.
Ketika komputer pertama kali dijalankan, maka secara otomatis berjalan dalam mode supervisor. Beberapa program pertama yang berjalan di komputer, sebagai BIOS atau EFI, bootloader, dan sistem operasi memiliki akses tak terbatas ke perangkat keras - dan ini diperlukan karena, menurut definisi, Memulai lingkungan terlindungi hanya dapat dilakukan di luar lingkungan tersebut. Namun, ketika sistem operasi melewati kontrol ke program lain, maka dia dapat menset CPU ke mode protected.
Pada mode protected, program mungkin memiliki akses ke set instruksi CPU yang terbatas . Sebuah program pengguna yang dapat meninggalkan mode protected hanya dengan memicu trigger, yang menyebabkan kontrol untuk diberikan kembali ke kernel. Dengan cara ini sistem operasi dapat mempertahankan kontrol eksklusif atas hal-hal seperti akses ke hardware dan memori.
Istilah pada "protected mode resource" yang biasanya merujuk kepada satu atau lebih register CPU, yang berisi informasi bahwa program berjalan tidak diperbolehkan untuk mengubah. Upaya untuk mengubah sumber daya ini umumnya menyebabkan berubah ke mode supervisor, dimana sistem operasi dapat menangani operasi program ilegal (misalnya, dengan membunuh program).

5. Manajemen Memory
Antara lain, sebuah kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola semua sistem memori yang sedang digunakan oleh program. untuk Hal ini memastikan bahwa program ini tidak terganggu dengan memori yang sudah digunakan oleh program lain. Karena program sharing waktu / time, setiap program harus memiliki akses independen ke memori.
Cooperative Memory Management, yang digunakan oleh banyak sistem operasi, berasumsi bahwa semua program menggunakan secara sukarela manajer memori kernel, dan tidak melebihi alokasi memori mereka . Teknik yang digunakan oleh sistem pengelolaan memori ini hampir tidak pernah terlihat lagi, karena sering berisi program bug yang dapat menyebabkan mereka untuk mengalokasikan memori melebihi alokasinya. Jika program gagal, dapat menyebabkan memori yang digunakan oleh program lain menjadi terpengaruh atau ditimpa. Pada program jahat atau virus sengaja dapat mengubah memori program lain, atau dapat mempengaruhi pengoperasian sistem operasi itu sendiri. Dengan cooperative memory manajgement , dibutuhkan cukup satu program yang tidak diinginkan untuk membuuat sistem crash.
Memori protection akan memungkinkan kernel untuk membatasi akses sebuah proses ke memori komputer. Ada berbagai metode memori protection , termasuk segmentasi memori dan paging. Semua metode memerlukan beberapa tingkat dukungan hardware (seperti 80286 MMU), yang tidak selalu ada di semua komputer.
Baik dalam segmentasi maupun paging, mode protected register tertentu di CPU akan menentukan alamat memori yang harus diperbolehkan untuk di akses oleh sebuah program yang berjalan . Upaya yang digunakan untuk mengakses alamat selain yang dialokasikan akan memicu interupsi yang akan menyebabkan CPU untuk memasukkan kembali mode supervisor, menjadikan kernel yang bertanggung jawab. Ini disebut pelanggaran segmentasi atau Seg-V untuk singkatnya, dan karena ini biasanya sulit untuk memperoleh hasil yang berarti dari operasi yang salah ini, oleh karena itu biasanya merupakan tanda bahwa ada program yang salah, kernel umumnya akan mengambil jalan untuk mengakhiri program, dan akan melaporkan kesalahan.
Di Windows, kesalahan segmentasi ini kadang akan muncul sebagai layar biru.

6. Memory Virtual
Banyak sistem operasi yang dapat "menipu" program dalam menggunakan memori tersebar di seluruh hard disk dan RAM seolah-olah itu adalah salah satu potongan kontinu memori , yang disebut memori virtual.
Penggunaan pengalamatan memori virtuall (seperti paging atau segmentasi) berarti kernel dapat memilih memori apa yang digunakan setiap program pada waktu tertentu, yang memungkinkan sistem operasi untuk menggunakan lokasi memori yang sama untuk berbagai keperluan.
Jika sebuah program mencoba mengakses memory yang tidak adalah dalam range memori yang dapat di akses , tapi tetap telah dialokasikan untuk program tersebut, kernel akan diinterupsi dengan cara yang sama jika ada program melebihi memori yang dialokasikan. Pada type UNIX interupsi jenis ini di sebut sebagai kesalahan halaman / page fault.
Jika kernel sudah mulai mendeteksi adanya kesalahan pada halaman, umumnya akan menyesuaikan range virtual memori untuk program yang memicunya, ia memberikan akses ke memori diminta. Hal ini memberikan kekuatan pada kernel untuk menentukan di mana memori dari aplikasi tertentu disimpan, atau apakah memori sudah dialoikasikan atau belum.
Dalam sistem operasi modern, memori yang diakses jarang diakses dapat disimpan sementara pada disk atau media lain untuk membuat ruang yang tersedia agar dapat digunakan oleh program lain. Ini disebut swapping, sebagai daerah memori yang dapat digunakan oleh beberapa program, dan isi memori di daerah tersebut dapat ditukar (swap) sesuai permintaan.
Virtual memory akan memberikan penjelasan kepada penggunanya tentang persepsi bahwa adanya RAM dalam jumlah yang jauh lebih besar dari pada RAM yang sebenarnya ada di komputer.

7. Multitasking
Multitasking adalah menjalankan beberapa program komputer independen pada komputer yang sama, memberikan kesan bahwa komputer melakukan tugas pada waktu yang sama. Karena kebanyakan komputer hanya dapat melakukan paling banyak satu atau dua hal pada satu waktu, multitasking biasanya dilakukan menggunakan time-sharing, yang berarti bahwa setiap program menggunakan sebagian dari waktu komputer saat dieksekusi.
Sebuah kernel sistem operasi berisi software yang disebut scheduler yang menentukan berapa banyak waktu setiap program yang dapat digunakan saat eksekusi, yang mana perintah untuk kontrol eksekusi harus diberikan ke program. Kontrol diberikan ke sebuah process oleh kernel, yang mengijinkan program untuk mengakses CPU atau memory. Kemudian, kontrol dikembalikan ke kernel melalui sebuah mekanisme, sehingga program lain dapat diijinkan untuk menggunakan CPU. Proses pemberian kontrol antara kernel dengan aplikasi biasanya di sebut sebagai context switch.
Model awal yang diatur alokasi waktu untuk program disebut cooperative multitasking. Pada model ini, apabila kendali yang akan diberikan ke program oleh kernel, program dapat dijalankan selama program inginkan sebelum secara eksplisit mengembalikan kontrol ke kernel. Ini berarti bahwa program jahat atau program yang tidak berfungsi tidak hanya mencegah program lain dari penggunaan CPU, tetapi bisa menggantung seluruh sistem jika memasuki infinite loop.
Sistem operasi modern juga akan pasti memperbanyak konsep yaitu preemption aplikasi ke device driver dan kode kernel, sehingga sistem operasi memiliki kontrol preemptive atas internal run-time juga.
Filosofi mengatur preemptive multitasking adalah untuk memastikan bahwa semua program yang diberi waktu di CPU. Ini menunjukkan bahwa semua program harus dibatasi dalam berapa banyak waktu mereka diizinkan untuk dihabiskan di CPU tanpa di interupsi. Untuk mencapai hal ini, kernel yang ada pada sistem operasi modern menggunakan sebuah interupsi berjangka. Sebuah protected mode timer diatur oleh kernel yang memicu untuk kembali ke mode supervisor setelah waktu yang ditentukan telah berlalu.
Pada banyak sistem operasi single user cooperative multitasking cukup memadai, karena umumnya home komputer (PC) menjalankan sejumlah program teruji baik. AmigaOS adalah pengecualian, karena menggunakan pre-emptive multitasking dari versi pertama. Windows NT adalah versi pertama dari Microsoft Windows yang menerapkan preemptive multitasking, tetapi tidak mencapai pasar pengguna rumah sampai Windows XP (sebab Windows NT ditujukan pada profesional).

8. Akses Disk dan file system
Filesystem memungkinkan pengguna dan program untuk menata dan mengatur file pada komputer, biasanya melalui penggunaan direktori (atau "folder")
untuk mengakses ke data yang tersimpan pada disk adalah fitur utama dari semua sistem operasi. Komputer menyimpan data pada disk menggunakan file, yang terstruktur dengan cara tertentu agar memungkinkan untuk mengakses dengan cepat, keandalan yang lebih tinggi, dan untuk memaksimalkan penggunaan ruang yang tersedia pada disk. Cara khusus di mana file tersebut disimpan pada disk yang disebut sistem file, dan memungkinkan file untuk memiliki nama dan atribut. Hal ini juga memungkinkan mereka untuk disimpan dalam hirarki direktori atau folder yang diatur dalam struktur direktori.
Sistem operasi awal umumnya mendukung satu jenis disk drive dan hanya satu jenis sistem file. File System awal terbatas dalam kapasitas mereka, kecepatan, dan dalam jenis nama file dan struktur direktori bisa mereka gunakan. Keterbatasan ini sering tercermin keterbatasan dalam sistem operasi yang dirancang, sehingga sangat sulit bagi sebuah sistem operasi untuk mendukung lebih dari satu sistem file.
Sementara banyak sistem operasi sederhana mendukung berbagai pilihan terbatas untuk mengakses sistem penyimpanan, sistem operasi seperti UNIX dan Linux mendukung teknologi yang dikenal sebagai Virtual File System atau VFS. Sebuah sistem operasi seperti UNIX mendukung beragam perangkat penyimpanan, terlepas dari desain atau File System, yang memungkinkan mereka untuk dapat diakses melalui Application Programming Interface (API) yang sama. Hal ini membuatnya tidak perlu untuk program untuk memiliki pengetahuan tentang perangkat mereka mengakses. Sebuah VFS memungkinkan sistem operasi untuk menyediakan program dengan akses jumlah perangkat yang tidak terbatas dengan berbagai file sistem terinstall yang tidak terbatas pada mereka, melalui penggunaan driver perangkat tertentu dan driver sistem file.
Sebuah perangkat penyimpanan yang tersambung, seperti hard drive, diakses melalui device driver yang sama. Driver driver memahami cara berkomunikasi dengan drive dan mampu menterjemahkan bahasa yang menjadi bahasa standar yang digunakan oleh sistem operasi untuk mengakses semua disk drive yang sama. Pada UNIX, ini adalah bahasa dari block device.
Disaat kernel memiliki driver driver yang tepat , maka ia dapat mengakses isi disk drive dalam format mentah, yang mungkin berisi satu atau lebih File System. Sebuah driver sistem file digunakan untuk menterjemahkan perintah yang digunakan untuk mengakses setiap sistem file tertentu ke dalam satu set standar perintah yang sistem operasi dapat digunakan untuk berbicara dengan semua file system. Program kemudian dapat menangani sistem file ini berdasarkan nama file, dan direktori / folder, yang berada dalam struktur hirarkis. Mereka dapat membuat, menghapus, membuka, dan menutup file, serta mengumpulkan berbagai informasi tentang mereka, termasuk hak akses, ukuran, ruang bebas, dan tanggal pembuatan dan tanggal modifikasi.
Berbagai perbedaan antara File System membuat dukungan untuk semua File System menjadi sulit. Karakter yang diperbolehkan dalam nama file, huruf besar / huruf kecil, dan adanya berbagai jenis atribut berkas membuat implementasi satu antarmuka untuk setiap file system menjadi tugas yang menyulitkan. Sistem operasi cenderung untuk merekomendasikan menggunakan (dan begitu mendukung native) file sistem yang dirancang khusus untuk mereka, misalnya, NTFS di Windows dan ext3 dan ReiserFS di Linux. Namun, dalam prakteknya, ada pihak ketiga yang menyediakan driver untuk memberikan dukungan untuk sistem file yang paling banyak digunakan di sebagian besar sistem operasi (misalnya, NTFS tersedia di Linux melalui NTFS-3g, dan ext2 / 3 dan ReiserFS tersedia di Windows melalui perangkat lunak pihak ketiga).
Dukungan yang tersedia untuk sistem file sangat bervariasi di antara sistem operasi modern, meskipun ada beberapa file system yang sama di hampir semua sistem operasi termasuk dukungan dan driver. Sistem operasi sangat bervariasi kepada dukungan file sistem dan pada format disk tempat mereka dapat diinstal. Pada Windows, setiap sistem berkas biasanya terbatas dalam aplikasi untuk media tertentu, misalnya, CD harus menggunakan ISO 9660 atau UDF, dan pada Windows Vista, NTFS adalah file system dimana sistem operasi dapat diinstal. Berbeda dengan Windows, sangat mungkin untuk menginstal Linux ke berbagai jenis file sistem . Tidak sama seperti sistem operasi lain, Linux dan UNIX membiarkan sistem berkas untuk digunakan terlepas dari media yang disimpan dalam, apakah itu hard drive, disk (CD, DVD ...), USB flash drive, atau bahkan berada dalam file terletak di sistem berkas lain.

9. Device driver
Device Driver adalah perangkat lunak spesifik pada komputer yang dikembangkan untuk memungkinkan interaksi dengan perangkat keras. ini merupakan sebuah antarmuka untuk berkomunikasi dengan perangkat, melalui bus komputer tertentu atau subsistem komunikasi yang terhubung ke hardware , memberikan perintah untuk dan / atau menerima data dari perangkat, dan di ujung lain, interface yang diperlukan untuk operasi sistem dan aplikasi perangkat lunak. Ini adalah program komputer khusus yang tergantung hardware yang juga untuk sistem operasi yang spesifik yang memungkinkan program lain, biasanya sistem operasi atau aplikasi / perangkat lunak / program komputer yang berjalan dibawah kernel sistem operasi, untuk berinteraksi secara transparan dengan perangkat keras, dan biasanya menyediakan penanganan interupsi yang diperlukan yang diperlukan untuk hardware yang asinkroin dan time-dependent.
Tujuan utama desain device driver adalah abstraksi. Setiap model perangkat keras (bahkan dalam kelas perangkat yang sama ) berbeda. Model-model yang baru dikeluarkan oleh setiap produsen yang memberikan performa yang lebih handal / lebih baik dan model-model lebih baru sering berbeda cara mengontrolnya . Komputer dan sistem operasi tidak dapat diharapkan untuk mengetahui bagaimana untuk mengontrol setiap perangkat, baik sekarang maupun di masa depan. Untuk mengatasi masalah ini, sistem operasi pada dasarnya akan mendikte bagaimana cara setiap jenis perangkat harus dikontrol. Fungsi dari device driver untuk menterjemahkan amanat dari sistem operasi menjadi fungsi panggilan untuk perangkat tertentu. Dalam teori seharusnya perangkat baru, yang dikendalikan dengan cara baru, harus berfungsi dengan benar jika driver yang cocok tersedia. Driver baru ini akan memastikan bahwa perangkat yang baru muncul beroperasi seperti biasa dilihat dari sudut pandang sistem operasi.
Pada versi Windows sebelum Vista dan versi Linux sebelum 2.6, semua eksekusi driver sifatnya adalah co-operative, yang berarti bahwa jika driver memasuki infinite loop akan mem-freeze sistem. Revisi yang lebih baru dari sistem operasi menggabungkan sebuah preemption kernel, dimana kernel menginterupsi driver untuk memberikan tugas, dan kemudian melepaskan diri dari proses sampai menerima tanggapan dari device driver, atau memberi lebih banyak tugas yang dapat dilakukan.

10. Networking
Saat ini sebagian besar sistem operasi mendukung berbagai protokol jaringan, perangkat keras, dan aplikasi untuk menggunakannya. Itu berarti bahwa komputer yang menjalankan sistem operasi berbeda dapat berpartisipasi dalam jaringan komputer untuk berbagi sumber daya seperti komputasi, file, printer, dan scanner menggunakan koneksi kabel atau wireless. Jaringan komputer pada dasarnya dapat memungkinkan sistem operasi komputer untuk mengakses sumber daya dari komputer remote untuk mendukung fungsi yang sama seperti jika sumber daya tersebut dihubungkan langsung ke komputer lokal. Ini mencakup segala sesuatu dari komunikasi sederhana, hingga menggunakan file system jaringan atau bahkan sharing grafis komputer lain atau perangkat keras suara. Beberapa layanan jaringan mengizinkan sumber daya dari komputer yang akan diakses transparan, seperti SSH yang memungkinkan pengguna jaringan akses langsung ke antarmuka baris text di komputer remote.
Jaringan client / server memungkinkan sebuah program pada komputer, yang disebut klien, untuk berhubungan melalui jaringan ke komputer lain, yang disebut server. Server menawarkan (atau host) berbagai layanan untuk komputer jaringan lainnya dan pengguna. Layanan ini biasanya diberikan melalui port atau nomor jalur akses selain alamat jaringan dari server. Setiap nomor port biasanya dikaitkan dengan satu program / aplikasi, yang bertanggung jawab untuk menangani permintaan untuk port tersebut. Daemon, adalah program yang jalan di server, pada saatnya dapat mengakses sumber daya perangkat keras lokal komputer yang dengan melewatkan permintaan ke kernel sistem operasi.
Banyak sistem operasi mendukung satu atau lebih protokol jaringan milik vendor maupun yang terbuka / open, misalnya, SNA untuk IBM sistem, DECnet pada sistem dari Digital Equipment Corporation, dan Microsoft-spesifik protokol (SMB) pada Windows. Protokol khusus untuk tugas-tugas tertentu mungkin juga didukung seperti NFS untuk akses file. Protokol seperti esound, atau esd dapat dengan mudah diperluas melalui jaringan untuk menyediakan suara dari aplikasi lokal, pada hardware sound sistem remote.
Internet adalah salah satu jenis protokol jaringan yang mempunyai standard terbuka yang dapat dijalankan di berbagai sistem operasi. Standard Internet yang dibuat secara bersama-sama / terbuka oleh banyak pihak, dan dapat di akses melalui web dengan kata kunci "Request For Comment" (RFC).

11. Security
Sebuah komputer yang aman tergantung pada sejumlah teknologi bekerja dengan baik. untuk sebuah sistem operasi modern menyediakan akses ke sejumlah sumber daya yang tersedia untuk perangkat lunak yang berjalan pada sistem, dan perangkat eksternal seperti jaringan melalui kernel.
Sistem operasi harus mampu membedakan antara permintaan yang harus diperbolehkan untuk diproses, dan lain-lain yang tidak harus diproses. Sementara beberapa sistem mungkin hanya membedakan antara "previleged / istimewa" dan "non-privileged", sistem umumnya memiliki bentuk identitas pemohon, seperti nama pengguna. Untuk menentukan identitas mungkin ada proses authentikasi. Seringkali nama pengguna harus dikutip, dan username masing-masing mungkin punya password. Metode authentikasi lain , seperti kartu magnetik atau data biometric, mungkin digunakan sebagai gantinya. Dalam beberapa kasus, khususnya koneksi dari jaringan, sumber daya dapat diakses tanpa authentikasi sama sekali (seperti membaca file melalui sharing jaringan). Juga dicakup oleh konsep identitas pemohon adalah authorisasi; layanan tertentu dan sumber daya diakses oleh pemohon sekali login ke sistem terikat ke salah satu akun pengguna pemohon atau ke grup yang di konfigurasi terkait ke account pengguna tersebut.
Selain model keamanan yang berbentuk mengijinkan / melarang , sebuah sistem dengan tingkat keamanan yang tinggi juga akan menawarkan pilihan audit. Ini akan memungkinkan pelacakan permintaan akses ke sumber daya (seperti, "siapa yang telah membaca file ini?"). Keamanan secara internal, atau sesuai dengan keamanan dari program yang sedang berjalan hanya mungkin jika semua permintaan yang mungkin berbahaya harus dilakukan melalui interupsi ke kernel sistem operasi. Jika program langsung dapat mengakses hardware dan sumber daya, mereka tidak bisa diamankan.
Keamanan eksternal melibatkan permintaan dari luar komputer, seperti login di konsol atau beberapa jenis koneksi jaringan. Permintaan eksternal sering melewati device driver ke kernel sistem operasi, di mana mereka dapat diteruskan ke aplikasi, maupun dilakukan secara langsung. Keamanan sistem operasi telah lama menjadi perhatian karena data sangat sensitif yang ada di komputer, baik yang bersifat komersial dan militer. Pemerintah Amerika Serikat Departemen Pertahanan (DoD) mengusulkan Trusted Computer Kriteria Evaluasi Sistem (TCSEC) yang merupakan standar yang menetapkan persyaratan dasar untuk menilai efektivitas keamanan. Hal ini menjadi sangat penting bagi para pembuat sistem operasi, karena TCSEC ini digunakan untuk mengevaluasi, mengklasifikasi dan memilih sistem operasi yang dipercaya untuk dipertimbangkan untuk penyimpanan, pengolahan dan pengambilan informasi sensitif atau rahasia.
Layanan jaringan meliputi banyak hal seperti file sharing, layanan printing, email, situs web, dan protokol transfer file (FTP), sebagian besar yang dapat membahayakan keamanan. Di garis depan keamanan perangkat keras yang dikenal sebagai firewall maupun intrusion detection / prevention systems. Pada tingkat sistem operasi, ada sejumlah firewall perangkat lunak yang tersedia, serta intrusion detection / prevention system. Sebagian besar sistem operasi modern memasukan perangkat lunak firewall , yang diaktifkan secara default. Sebuah perangkat lunak firewall dapat dikonfigurasi untuk mengizinkan atau menolak lalu lintas jaringan ke atau dari suatu layanan atau aplikasi yang berjalan pada sistem operasi. Oleh karena itu, seseorang dapat menginstal dan menjalankan layanan yang tidak aman, seperti Telnet maupun FTP, dan tidak harus terancam oleh suatu pelanggaran keamanan karena firewall akan menolak semua lalu lintas mencoba untuk terhubung ke layanan pada port tersebut.
Strategi alternatif merupakah sistem operasi tidak akan menjalankan program pengguna sebagai native code, melainkan mengemulasi prosesor atau menyediakan host untuk sistem berbasis code seperti Java.
Keamanan pada sistem internal sangat relevan untuk sistem multi-user, yang memungkinkan setiap pengguna sistem untuk memiliki file pribadi yang mana pengguna lain tidak bisa mengutak-atik atau membaca. Keamanan internal juga penting jika audit akan digunakan, karena program berpotensi dapat melewati sistem operasi, termasuk melewati audit.

12. User interface
screenshot Bourne Again Shell command line. setiap perintah di tulis sesudah 'prompt', dan output akan tampak di layar di bawahnya. Command prompt akan tampak dibagian bawah

screenshot Bourne Again Shell command line. Pada setiap perintah di tulis sesudah 'prompt', dan output akan tampak di layar di bawahnya. Command prompt akan tampak dibagian bawah
Setiap komputer yang akan dioperasikan oleh seorang individu memerlukan antarmuka pengguna. Antarmuka pengguna biasanya disebut sebagai shell dan penting jika akan mendukung interaksi dengan manusia . User interface melihat pada struktur direktori dan layanan permintaan dari sistem operasi yang akan memperoleh data dari perangkat keras input, seperti card reader, keyboard, mouse, dan permintaan layanan sistem operasi untuk menampilkan prompt, pesan status, dan pada perangkat hardware output, seperti monitor video atau printer. Dua bentuk yang paling umum dari antarmuka pengguna secara historis command line interface (CLI), di mana perintah komputer mengetik baris demi baris, dan antarmuka grafis (GUI) yang menampilkan tampilan visual.
screenshot dari Unity Interface pada Ubuntu. Program akan tampak sebagai gambar pada layar, dan file, folder (directori), dan aplikasi tampak sebagai icon dan simbol. Mouse digunakan untuk melakukan navigasi di komputer

screenshot dari Unity Interface pada Ubuntu. Program akan tampak sebagai gambar pada layar, dan file, folder (directori), dan aplikasi tampak sebagai icon dan simbol. Mouse digunakan untuk melakukan navigasi di komputer
Sebagian besar sistem komputer modern mendukung antarmuka grafis (GUI) , dan sering memasukan GUI menjadi bagian dari sistem operasi tersebut. Dalam beberapa sistem komputer, yaitu seperti implementasi semula dari Mac OS, GUI terintegrasi ke dalam kernel.
Secara teknis antarmuka grafis (GUI) bukan merupakan layanan sistem operasi, menggabungkan dukungan untuk sebuah GUI ke kernel sistem operasi dapat membuka kemungkinan agar GUI untuk lebih responsif dengan mengurangi jumlah konteks switch yang diperlukan GUI untuk menjalankan fungsi tampilannya. ada beberapa sistem operasi yang bersifat modular, memisahkan subsistem grafis dari kernel dan sistem operasi. Pada tahun 1980-an UNIX, VMS dan banyak lainnya membangun sistem operasi dengan cara tersebut. Linux dan Mac OS X juga dibangun dengan cara ini. Cara merilis Modern Microsoft Windows seperti Windows Vista menerapkan subsistem grafis sebagian besar di user-space, namun subroutine menggambar grafis dalam versi antara Windows NT 4.0 dan Windows Server 2003 ada sebagian besar dalam kernel. Windows 9x juga memiliki perbedaan yang sangat sedikit antara interface dan kernel.
Banyak sistem operasi komputer memungkinkan pengguna untuk menginstal atau membuat antarmuka pengguna yang mereka inginkan. The X Window System ada hubungan dengan GNOME maupun KDE Plasma Desktop adalah setup yang umum ditemukan pada kebanyakan sistem GUI di Unix dan GUI di Unix-like (BSD, Linux, Solaris). Sejumlah pengganti shell Windows telah dirilis untuk Microsoft Windows, yang menawarkan alternatif untuk shell Windows , tapi shell itu sendiri tidak dapat dipisahkan dari Windows.
Banyak GUI di Unix berkembang dari waktu ke waktu, sebagian besar berasal dari X11. Persaingan di antara berbagai vendor Unix (HP, IBM, Sun) menyebabkan fragmentasi yang lebar, upaya untuk membakukan pada 1990-an menuju COSE dan CDE gagal karena berbagai alasan, dan akhirnya dikalahkan dengan di-adopsinya GNOME dan K Desktop Environment. Sebelum adanya toolkit & lingkungan desktop berbasis free software, Motif digunakan sebagai toolkit / desktop (yang merupakan dasar bagi pengembangan CDE).
Graphical User Interface berkembang dari waktu ke waktu. Sebagai contoh, Windows telah mengubah antarmuka pengguna nyaris setiap kali versi baru dari Windows keluar, dan di samping itu, Mac OS GUI berubah secara dramatis dengan pengenalan Mac OS X pada tahun 1999.

13. Real-time Operating System
Sistem operasi real-time RTOS adalah sistem operasi multitasking yang ditujukan untuk aplikasi dengan waktu tetap (komputasi real-time). Aplikasi ini mencakup beberapa sistem embedded kecil, pengendal mesin mobil , robot industri, pesawat ruang angkasa, kontrol industri, dan beberapa sistem komputasi berskala besar.
Sebuah contoh awal dari sebuah sistem operasi komputasi real-time berskala besar adalah fasilitas pemrosesan transaksi yang dikembangkan oleh American Airlines dan IBM untuk Sistem Reservasi Sabre Airline. Embedded system yang memiliki waktu tetap menggunakan sistem operasi komputasi real-time seperti VxWorks, PikeOS, ecos, QNX, MontaVista Linux dan RTLinux. Symbian OS juga memiliki kernel bernama RTOS (EKA2) dimulai dengan versi 8.0b.
Beberapa embedded sistem menggunakan sistem operasi seperti Palm OS, BSD, dan Linux, meskipun sistem operasi tersebut tidak mendukung komputasi real-time.

14. Pengembangan Sistem Operasi sebagai Hobby
Pengembangan sistem operasi merupakan salah satu kegiatan yang paling rumit yang akan melibatkan penggemar kegiatan komputasi. Sebuah sistem operasi dapat diklasifikasikan sebagai sistem operasi hobi jika source code-nya tidak secara langsung di turunkan dari sistem operasi yang ada, dan memiliki beberapa pengguna dan pengembang yang aktif.
Dalam beberapa kasus yang terjadi, pengembangan sistem operasi hobi untuk mendukung perangkat komputasi "homebrew" , misalnya, satu board komputersederhana menggunakan mikroprosesor 6502. Atau, pengembangan untuk arsitektur yang mungkin sudah digunakan secara luas. Setiap Pengembangan sistem operasi mungkin saja berasal dari konsep-konsep yang sama sekali baru, maupun bisa digantikan dengan pemodelan sistem operasi yang ada. Dalam kedua kasus, si hobbyist mungkin saja jadi pengembang sendiri, maupun berinteraksi dengan sebuah kelompok kecil dan kadang-kadang sekumpulan individu yang tidak terstruktur yang memiliki ketertarikan yang sama.
Contoh dari sistem operasi yang hobby termasuk ReactOS dan Syllable.

15. Keanekaragaman Sistem Operasi dan portabilitas
Aplikasi perangkat lunak umumnya ditulis untuk digunakan pada sistem operasi tertentu, dan kadang-kadang bahkan untuk hardware tertentu. Ketika porting aplikasi untuk berjalan di OS lain, fungsionalitas yang dibutuhkan oleh aplikasi yang dapat diimplementasikan secara berbeda oleh OS itu (nama-nama fungsi, makna argumen, dll) membutuhkan aplikasi yang akan disesuaikan, diubah, atau dipertahankan.
Untuk biaya dalam mendukung keragaman sistem operasi dapat dihindari dengan cara menulis aplikasi pada platform perangkat lunak seperti Java atau Qt. Abstraksi ini yang telah menanggung beban adaptasi terhadap sstem operasi tertentu dan sistem library-nya.
Pendekatan lain adalah bagi vendor sistem operasi untuk mengadopsi standar. Misalnya, POSIX dan lapisan abstraksi OS agar memberikan kesamaan yang mengurangi biaya porting.

Note :
Artikel ini di rangkum dalam beberapa kutipan & sumber yang berbeda.

BERITA LENGKAP DI HALAMAN BERIKUTNYA

Halaman Berikutnya