Sebuah
sistem operasi (OS) adalah sekumpulan software
yang mengatur sumber daya di hardware komputer
dan memberikan layanan bagi program
komputer. Sistem
Operasi adalah komponen penting dari sistem perangkat
lunak dalam sebuah komputer.
Program aplikasi biasanya membutuhkan sistem operasi untuk bisa
berfungsi.
Sistem
operasi time sharing menjadwal tugas dapat secara effisien menggunakan sistem. 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 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 yang sama yaitu Unix
Sistem
operasi real-time adalah sebuah sistem operasi multitasking
yang ditujukan untuk menjalankan aplikasi real-time. 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.
Sistem operasi
multi-user memungkinkan banyak pengguna untuk mengakses sistem komputer
pada saat yang sama. 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.
Sebuah sistem operasi
multi-tasking memungkinkan lebih dari satu program untuk berjalan pada satu
saat, dilihat dari skala waktu manusia. Sebuah 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.
Sebuah sistem
operasi terdistribusi mengatur sebuah kelompok dari komputer
yang independen dan membuat mereka tampak seperti satu buah komputer.
Dengan 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.
·
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. Sistem operasi
ini di rancang agar sangat kecil dan sangat effisien. Contoh dari sistem
operasi embedded ini adalah OpenWRT.
Pada
awalnya komputer dibuat untuk menjalankan sekumpulan single task, seperti calculator. Sistem
operasi belum menampakan diri sampai awal 1960. Dasar fitur sistem operasi
mulai dikembangkan tahun 1950, seperti fungsi monitor yang dapat secara
automatis menjalankan program yang berbeda dalam rangka mempercepat processing.
Fitur hardware di tambahkan untuk membuka kemungkinan untuk menggunakan runtime
library, interrupsi, dan parallel processing. Pada saat PC menjadi populer di
tahun 1980-an, sistem operasi yang dibuat untuk PC secara konsep sama
dengan yang digunakan di komputer
yang besar.
Di tahun 1940-an,
sistem elektronik digital awal tidak mempunyai sistem operasi.Sistem
elektronik pada masa itu di program menggunakan sekumpulan switch mekanik atau
dengan kabel jumper di papan board. Sistem ini merupakan sistem
special-purpose, sebagai contoh, untuk membuat tabel balistik untuk militer
atau mengatur pencetakan slip gaji dari data di punch card. Sesudah komputer
aplikasi umum yang programmable dibuat, bahasa mesin (terdiri dari kalimat yang
terdiri dari digit 0 dan 1 di kartu punch card) di petkenalkan untuk
mempercepat proses programming. OS/360 digunakan pada sebagian besar komputer
mainframe IBM di awal tahun 1966, termasuk komputer yang menolong NASA untuk
menerbangkan manusia ke bulan.
Di awal tahun 1950,
sebuah komputer hanya dapat menjalankan satu program pada satu waktu. Setiap
pengguna menggunakan sendiri komputer
untuk waktu yang terbatas sesuai dengan jadwal waktu, dengan program dan data
yang ada di punch card atau punch tape. Program akan di load ke komputer, dan
komputer akan bekerja sampai program selesai atau crash. Program biasanya di
debug melalui panel di depan menggunakan switch dan lampu panel.
Belakangan
mesin-mesin ini dilengkapi dengan program library, yang di sambungkan (di link)
di program user untuk membantu operasi tertentu, seperti, input, output, dan
membuat kode komputer yang dapat dibaca manusia. Ini merupakan asal muasal
sistem operasi modern. Akan tetapi, mesin masih menjalankan single job pada
satu waktu.
Di tahun 1950, banyak
fitur di pelopori di bidang sistem operasi, termasuk proses batch, interupsi
input/output, buffering, multitasking, spooling, runtime library, link-loading,
dan program untuk mengurut catatan di file. Fitur ini tidak dimasukan dalam software
aplikasi sebagai pilihan bagi programmer, tapi dibuat sebagai sistem operasi
yang terpisah yang digunakan oleh semua aplikasi. Di tahun 1959, sistem
operasi SHARE di lepas sebagai utility integrated untuk IBM 704,
selanjutnya di mainframe 709 dan 7090 walaupun kemudian digantikan oleh
IBSYS/IBJOB di 709, 7090 dan 7094.
Selama tahun 1960,
IBM OS/360 memperkenalkan konsep sebuah OS untuk semua produk, yang menjadi
sangat penting untuk kesuksesan mesin System/360. Sistem operasi di mainframe
IBM saat ini adalah turunan dari sistem awal dan aplikasi yang ditulis untuk
OS/360 masih bisa berjalan di mesin yang modern.
OS/360 juga
memelopori konsep yang menentukan bahwa sistem operasi akan mencatat semua
penggunaan sumber daya, termasuk alokasi memori untuk program dan data, ruang
file di harddisk, penguncian file saat update. Jika proses ini di putuskan
karena berbagai alasan, semua sumber daya tersebut akan direklamasi oleh sistem
operasi.
Alternatif sistem
operasi CP-67 untuk S/360-67 memulai sebuah jalur pada sistem operasi IBM yang
memfokuskan diri pada mesin virtual. Sistem operasi lainnya yang digunakan di
seri mainframe IBM S/360 termasuk sistem yang dikembangkan sendiri oleh IBM:
COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System),
TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic
Operating System), dan ACP (Airline Control Program), termasuk beberapa sistem
non-IBM: MTS (Michigan Terminal System), MUSIC (Multi-User System for
Interactive Computing), dan ORVYL (Stanford Timesharing System).
Control Data
Corporation mengembangkan sistem operasi SCOPE di tahun 1960-an untuk batch
processing. Bekerjasama dengan University of Minnesota, sistem operasi Kronos
dan selanjutnya NOS dikembangkan pada tahun 1970-an, yang mendukung batch
secara simultan dan penggunaan timesharing. Seperti sistem timesharing
komersial lainnya, interfacenya merupakan extensi dari Dartmouth BASIC
operating systems, salah satu usaha rintisan dalam timesharing dan bahasa
pemrogramman. In akhir tahun 1970-an, Control Data dan University of Illinois
mengembangkan sistem operasi PLATO, yang menggunakan display plasma
panel dan jaringan time sharing jarak jauh. Plato termasuk cukup inovatif pada
masanya, fitur seperti real-time chat, dan game grafis multi-user. Burroughs
Corporation memperkenalkan B5000 di tahun 1961 dengan sistem operasi MCP,
(Master Control Program). B5000 di rancang sebagai stack machine untuk
mendukung bahasa tingkat tinggi tanpa bahasa mesin
atau assembler,
dan MCP adalah sistem operasi pertama yang ditulis secara exclusif dalam
bahasa tingkat tinggi - ESPOL, sebuah dialek dari ALGOL. MCP juga
memperkenalkan banyak innovasi baru, seperti implementasi komersial pertama
untuk memory virtual. Dalam masa pengembangan AS400, IBM sempat mendekati
Burroughs untuk membeli lisensi dari MCP agar dapat di jalankan di hardware
AS400. Proposal IBM di tolak oleh manajemen Burroughs untuk melindungi produksi
hardware mereka. MCP sampai hari ini masih digunakan di komputer
Unisys ClearPath/MCP.
UNIVAC, pembuat komputer
komersial pertama, memproduksi sistem operasi EXEC. Seperti halnya
sistem mainframe awal, EXEC adalah sistem yang berorientasi batch yang mengatur
drum magnetic, disk, card reader dan line printer. Di tahun 1970-an, UNIVAC
membuat Real-Time Basic (RTB) system untuk mendukung time sharing skala besar,
yang diturunkan Dartmouth BC system.
General Electric dan
MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS),
yang memperkenalkan konsep keamanan yang berlapis. Setelah di akusisi oleh
Honeywell, sistem operasi ini di beri nama General Comprehensive Operating
System (GCOS).
Digital Equipment
Corporation juga mengembangkan banyak sistem operasi untuk berbagai
komputernya, termasuk TOPS-10 dan TOPS-20 time sharing system untuk 36-bit
PDP-10 class system. Sebelum UNIX banyak digunakan, TOPS-10 adalah sistem
operasi yang paling populer di universitas, dan di komunitas awal ARPANET.
Di akhir tahun
1960-an hingga akhir 1970-an, kemampuan hardware
berevolusi juga software berhasil di porting agar berjalan di lebih dari satu
sistem. Sistem awal banyak menggunakan microprogramming
untuk mengimplementasi fitur pada sistem mereka untuk membuat arsitektur
komputer menjadi tampak sama seperti yang lain dari seri komputer lainnya.
Sebetulnya sebagian besar 360 sesudah 360/40 (kecuali 360/165 dan 360/168)
sebetulnya menggunakan implementasi microprogram. implementations. Selanjutnya
dipahami kompatibilitas aplikasi terbukti lebih penting.
Banyak sekali
investasi software
untuk sistem ini dilakukan sejak tahun 1960-an karena kebanyakan pembuat komputer
akan mengembangkan sistem operasi yang cocok untuk hardware-nya.
Beberapa sistem operasi yang mendukung mainframe
adalah:
- Burroughs MCP – B5000, 1961 hingga Unisys Clearpath/MCP, sekarang.
- IBM OS/360 – IBM System/360, 1966 hingga IBM z/OS, sekarang.
- IBM CP-67 – IBM System/360, 1967 hingga IBM z/VM, sekarang.
- UNIVAC EXEC 8 – UNIVAC 1108, 1967, hingga OS 2200 Unisys Clearpath Dorado, sekarang.
Ø Microcomputer
PC-DOS
adalah awal sistem operasi untuk personal komputer yang berupa command line
interface (CLI). Mac OS dari Apple
Computer menjadi sistem operasi pertama yang menggunakan Graphical User Interface (GUI). Banyak dari
fitur-nya seperti Windows dan Icon dikemudian hari menjadi ciri GUI.
Mikrokomputer
pertama tidak mempunyai kapasitas atau kebutuhan untuk menjalankan sistem
operasi yang rumit yang dikembangkan di mainframe atau mini. Sistem operasi
minimalistik di kembangkan, kadang kali dimasukan kedalam ROM yang dikenal sebagai
monitor. Salah satu sistem operasi awal yang cukup menonjol adalah CP/M,
yang di dukung oleh banyak mikrokomputer
awal dan sangat mirip dengan Microsoft MS-DOS, yang menjadi sangat populer
karena dipilih sebagai sistem operasi IBM PC (versi IBM dari MS-DOS dari
dikenal sebagai IBM DOS atau PC DOS). Di tahun 1980-an, Apple Computer Inc.
(sekarang Apple Inc.) meninggalkan seri Apple II yang popular untuk
memperkenalkan Apple Macintosh computer dengan innovative Graphical User
Interface (GUI) dengan Mac OS.
Dengan di
perkenalkannya CPU Intel 80386 dengan arsitektur 32-bit dan kemampuan paging,
komputer personal mempunyai kemampuan untuk menjalankan sistem operasi
multitasking seperti minikomputer dan mainframe yang awal. Microsoft meresponds
dengan mengambil Dave Cutler, yang mengembangkan sistem operasi VMS di Digital
Equipment Corporation. Dave memimpin pengembangkan sistem operasi Windows NT
yang menjadi dasar dari sistem operasi Microsoft. Steve Jobs, salah satu
pendiri Apple Inc., memulai NeXT Computer Inc., yang mengembangkan sistem
operasi NEXTSTEP. NEXTSTEP dikemudian hari di beli oleh Apple Inc. dan
digunakan, bersama dengan code dari FreeBSD sebagai inti dari Mac OS X.
GNU Project di
awali oleh seorang activis dan programmer Richard
Stallman dengan tujuan untuk membuat software
yang benar-benar free (bebas) sebagai pengganti dari sistem operasi UNIX
yang berhak cipta (proprietary). GNU Project
secara umum sangat sukses untuk menduplikasi fungsi berbagai hal dari UNIX,
tapi mengembangkan sistem operasi GNU Hurd kernel tampaknya kurang produktif.
Tahun 1991, seorang mahasiswa komputer science dari finland Linus Torvalds,
dengan di bantu oleh banyak relawan berkolaborasi melalui Internet, melepaskan
versi pertama kernel Linux.
Tak lama kemudian, merger dengan komponen GNU untuk membentuk sebuah sistem
operasi yang komplit. Sejak itu, kedua komponen tersebut biasanya di kenal
sebagai "Linux" oleh industri software, nama yang sangat di tentang
oleh Stallman maupun Free Software Foundation, mereka lebih suka dengan nama
GNU/Linux. Berkeley Software Distribution, dikenal sebagai BSD, adalah turunan UNIX
yang disebarkan oleh University of California, Berkeley, dimulai sekitar tahun
1970-an. BSD di sebarkan dengan bebas dan di porting ke banyak minikomputer.
BSD akhirnya memperoleh beberapa pengikut di PC, seperti, FreeBSD, NetBSD dan
OpenBSD.
Contoh Sistem Operasi
Unix awalnya ditulis
menggunakan bahasa assembler. Ken Thompson menulis bahasa B, berbasis pada
BCPL, berdasarkan pengalamannya di projek MULTICS. Bahasa B kemudian di ganti
oleh bahasa C, dan Unix, ditulis ulang dalam bahasa C, dikembangkan menjadi
keluarga sistem operasi yang besar, kompleks dan saling berhubungan yang
menjadi sangat berpengaruh pada semua sistem operasi modern.
Keluarga UNIX-like
adalah sebuah kelompok sistem operasi yang sangat besar, dengan beberapa
sub-kategori utama, termasuk, System V, BSD, dan Linux. Nama "UNIX"
adalah merek dagang dari The Open Group yang me-lisensi-kan untuk digunakan di
semua sistem operasi yang sesuai dengan definisi mereka. Nama
"UNIX-like" lebih sering digunakan untuk menyebutkan sistem operasi
yang mirip dengan UNIX yang orisinil.
Sistem Unix-like
berjalan di berbagai arsitektur komputer. Mereka banyak digunakan di server
untuk usaha / bisnis, juga di workstation untuk lingkungan akademik dan
engineering. Varian UNIX yang free, seperti Linux dan BSD, sangat populer di
wilayah ini.
Ada empat (4) sistem
operasi yang di sertifikasi oleh The Open Group (pemegang merek dagang UNIX)
sebagai Unix. Sistem Operasi tersebut adalah HP-UX dan IBM AIX keduanya adalah
turunan dari System V original dan hanya dapat di jalankan di hardware
masing-masing vendir tersebut. Sedangkan, Sistem Operasi Solaris dari Sun
Microsystem dapat dijalankan di berbagai hardware, termasuk x86 dan Sparc
server, dan PC. Apple OS X, yang merupakan pengganti dari Apple MacOS,
mempunyai kernel hybrid berbasis dari varian BSD yang diturunkan dari NeXTSTEP,
Mach, dan FreeBSD.
Unix interoperability
dilakukan melalui POSIX standard. POSIX standard dapat di terapkan ke sistem
operasi manapun, walaupun awalnya dikembangkan untuk varian Unix.
Subgroup dari
keluarga Unix adalah keluarga Berkeley Software Distribution (BSD), termasuk
FreeBSD, NetBSD, dan OpenBSD. Sistem operasi ini biasanya di temukan di web
server, walaupun mereka juga dapat ditemukan di PC. Keberadaan Internet berhutang
banyak pada BSD, karena banyak protokol yang banyak digunakan di komputer,
untuk saling mengirim dan menerima data melalui jaringan awalnya di
implementasi dan di perbaiki di BSD. Web pertama dijalankan di komputer dengan
sistem operasi berbasis BSD yaitu NextStep.
BSD berakar pada
Unix. Pada tahun 1974, University of California, Berkeley menginstal sistem
Unix pertama. Seiring dengan waktu, mahasiswa dan staf di departemen ilmu
komputer mulai menambahkan aplikasi baru untuk membuat semuanya menjadi lebih
mudah, seperti editor teks. Ketika Berkely menerima komputer VAX baru pada
tahun 1978 dengan sistem operasi Unix , mahasiswa memodifikasi Unix untuk dapat
mengambil keuntungan dari hardware komputer. Defense Advanced Research Projects
Agency dari Departemen Pertahanan AS tertarik, dan memutuskan untuk mendanai
proyek tersebut. Banyak sekolah, perusahaan, dan organisasi pemerintah tertarik
dan mulai menggunakan versi Berkeley Unix bukan versi resmi yang
didistribusikan oleh AT & T.
Steve Jobs, saat meninggalkan
Apple Inc pada tahun 1985, membentuk NeXT Inc, sebuah perusahaan yang
memproduksi komputer high-end menjalankan variasi BSD disebut NeXTSTEP. Salah
satu komputer tersebut digunakan oleh Tim Berners-Lee sebagai webserver pertama
untuk menciptakan World Wide Web.
Pengembang seperti
Keith Bostic mendorong proyek untuk mengganti kode non-bebas yang berasal dari
Bell Labs. Sayang sekali setelah ini dilakukan AT & T menggugat. Akhirnya,
setelah dua tahun sengketa hukum, proyek BSD lolos dan melahirkan sejumlah
derivatif bebas, seperti FreeBSD dan NetBSD.
OS X (sebelumnya
"Mac OS X") adalah sistem operasi open core grafis yang dikembangkan
dipasarkan dan dijual oleh Apple Inc., belakangan di install pada semua
komputer Macintosh saat pengiriman. OS X adalah penerus MacOS original, yang
menjadi sistem operasi utama Apple sejak tahun 1984. Tidak seperti
pendahulunya, OS X adalah sistem operasi UNIX yang dibangun pada teknologi yang
telah dikembangkan di NeXT mulai dari paruh kedua tahun 1980-an sampai Apple
membeli NeXT pada awal 1997. Sistem operasi ini pertama kali dirilis pada tahun
1999 sebagai Mac OS X Server 1.0 dengan versi desktop (Mac OS X v10.0
"Cheetah") mengikutinya pada Maret 2001. Sejak itu, ada enam
"klien" dan "server" edisi OS X telah dirilis, yang terbaru
OS X 10.8 "Mountain Lion" yang pertama kali tersedia pada tanggal 16
Februari 2012 untuk pengembang, dan kemudian dirilis untuk umum pada 25 Juli
2012. Rilis dari OS X diberi nama sesuai dengan "big cats".
Sebelum penggabungan
dengan OS X, server edition - OS X Server - secara arsitektur identik dengan
desktop dan biasanya berjalan di Apple Macintosh server hardware. OS X Server
mencakup work group manajemen dan perangkat lunak administrasi yang menyediakan
akses yang disederhanakan untuk layanan jaringan utama, termasuk transfer mail,
server Samba, server LDAP, server nama domain, dan lain-lain. Dengan MacOS X
v10.7 Lion, aspek server MacOS X telah terintegrasi ke dalam versi klien dan
produk rebranding "OS X" (membuang "MacOS" dari nama).
Server tool sekarang ditawarkan sebagai aplikasi.
Linux (atau GNU /
Linux) adalah sistem operasi Unix-like yang dikembangkan tanpa kode Unix asli
Unix-like , seperti BSD dan variannya. Linux dapat digunakan pada berbagai
perangkat dari superkomputer hingga jam tangan. Kernel Linux dirilis di bawah
lisensi open source, sehingga siapapun dapat membaca dan memodifikasi source
code-nya. Linux telah dimodifikasi untuk berjalan pada berbagai macam
elektronik. Perkiraan yang ada menunjukkan bahwa Linux digunakan pada 1,82%
dari semua komputer pribadi, telah banyak diadopsi untuk digunakan di server
hingga embedded system (seperti ponsel). Linux telah menggantikan Unix di
kebanyakan tempat, dan digunakan pada 10 superkomputer di dunia. Kernel Linux
yang digunakan dalam beberapa distro populer, seperti Red Hat, Debian, Ubuntu,
Linux Mint dan Google Android.
Proyek GNU merupakan
kolaborasi masal programmer yang berusaha untuk menciptakan sebuah sistem
operasi benar-benar bebas dan yang mirip Unix tapi dengan kodesendiri. Proyek
GNU dimulai pada tahun 1983 oleh Richard Stallman, dan bertanggung jawab untuk
banyak bagian dari varian Linux. Ribuan buah perangkat lunak untuk hampir
setiap sistem operasi berlisensi di bawah GNU General Public License. Sementara
itu, kernel Linux dimulai sebagai proyek sampingan dari Linus Torvalds, seorang
mahasiswa dari Finlandia. Pada tahun 1991, Torvalds mulai mengerjakan , dan
memposting informasi tentang proyek-nya di newsgroup untuk mahasiswa komputer
dan programer. Ia menerima banyak sekali dukungan dan sukarelawan yang akhirnya
menciptakan sebuah kernel yang utuh. Pemrogram dari GNU tertarik , dan anggota
kedua proyek bekerja sama untuk mengintegrasikan bagian dari GNU dengan kernel
Linux dalam rangka menciptakan sistem operasi yang utuh.
·
Google Chromium OS
Chromium adalah
sistem operasi berbasis kernel Linux dan didesain oleh Google. Karena Chromium
OS ditujukan untuk pengguna komputer yang menghabiskan sebagian besar waktu
mereka di Internet, dia banyak mengandalkan web browser dan tidak memiliki
kemampuan untuk menjalankan aplikasi lokal. Akan tetapi, dia bergantung pada
aplikasi internet (atau web apps ) yang digunakan dalam web browser untuk
menyelesaikan pekerjaan seperti pengolah kata dan melihat media, serta
penyimpanan online untuk menyimpan file.
Microsoft Windows
adalah keluarga sistem operasi proprietary yang dirancang oleh Microsoft
Corporation dan terutama ditargetkan untuk komputer berbasis arsitektur Intel,
dengan estimasi pangsa 88,9 persen dari total komputer yang terhubung web.
Versi terbaru adalah Windows 8 untuk workstation dan Windows Server 2012 untuk
server. Windows 7 baru-baru ini melampaui Windows XP sebagai OS yang paling
banyak digunakan.
Microsoft Windows
berawal pada tahun 1985 sebagai lingkungan operasi yang berjalan di atas
MS-DOS, yang merupakan sistem operasi standar dikirimkan pada kebanyakan
arsitektur komputer pribadi berbasis processor intel pada saat itu. Pada tahun
1995, Windows 95 dirilis yang hanya menggunakan MS-DOS sebagai bootstrap. Untuk
kompatibilitas ke belakang, Win9x bisa menjalankan real-mode MS-DOS dan 16
bit Windows 3.x driver. Windows ME, dirilis pada tahun 2000, adalah versi
terakhir dalam keluarga Win9x. Versi yang lebih baru semuanya telah didasarkan
pada kernel Windows NT. Versi terkini dari Windows berjalan pada mikroprosesor
IA-32 dan x86-64, meskipun Windows 8 akan mendukung arsitektur ARM. Di masa
lalu, Windows NT mendukung non-Intel arsitektur.
Edisi Server Windows
agak banyak digunakan. Dalam beberapa tahun terakhir, Microsoft telah
mengeluarkan modal yang signifikan dalam upaya untuk mempromosikan penggunaan
Windows sebagai sistem operasi server. Namun, pemakaian Windows pada server
tidak begitu luas seperti pada komputer pribadi, karena Windows bersaing dengan
Linux dan BSD untuk pangsa pasar server.
Ada banyak sistem
operasi yang signifikan pada zaman mereka tetapi tak lagi begitu sekarang,
seperti AmigaOS, OS / 2 dari IBM dan Microsoft, MacOS pendahulu non-Unix untuk
Apple Mac OS X, BeOS, XTS300; RISC OS, MorphOS dan FreeMint. Beberapa masih
digunakan di ceruk pasar dan terus dikembangkan sebagai platform minoritas bagi
mereka yang suka / antusias dan aplikasi khusus. OpenVMS sebelumnya dari DEC,
masih dalam pengembangan aktif oleh Hewlett-Packard. Namun sistem operasi lain
digunakan hampir secara eksklusif di akademisi, untuk pendidikan sistem operasi
atau melakukan penelitian pada konsep sistem operasi. Sebuah contoh yang khas
dari sistem yang memenuhi kedua peran adalah MINIX, sedangkan Singularity
digunakan murni untuk penelitian.
Sistem operasi lain
telah gagal untuk memenangkan pangsa pasar yang signifikan, namun telah
memperkenalkan inovasi yang telah mempengaruhi sistem operasi mainstream,
paling tidak Bell Labs Plan 9.
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, apakah itu sederhana seperti mouse atau keyboard
atau serumit komponen internet.
Kernel menghubungkan
perangkat lunak aplikasi ke perangkat keras komputer. Dengan bantuan firmware
device driver, kernel menyediakan tingkat yang paling dasar untuk mengontrol
semua perangkat keras komputer. Ia 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.
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. Eksekusi program aplikasi 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.
·
Interupsi
Interupsi sangat
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 (50 atau 60 byte) ,
teknik ini tidak biasa dalam sistem operasi modern dengan stack besar.
Interupsi 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 interupsi
diterima, hardware komputer secara otomatis menunda semua program yang sedang
berjalan, 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 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.
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.
Secara umum ada dua
mode, yaitu, Mode Protected dan Mode Supervisor.
Privilege ring untuk
x86 tersedia dalam protected mode . Sistem operasi menentukan proses mana yang
berjalan dalam masing-masing modus .
CPU modern mendukung
beberapa mode operasi. CPU dengan kemampuan 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.
Dalam mode protected,
program mungkin memiliki akses ke set instruksi CPU yang terbatas . Sebuah
program pengguna 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
"protected mode resource" 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).
·
Manajemen Memory
Antara lain, sebuah
kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola
semua sistem memori yang sedang digunakan oleh program. 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, digunakan oleh banyak awal sistem operasi, berasumsi bahwa semua
program menggunakan secara sukarela manajer memori kernel, dan tidak melebihi
alokasi memori mereka . Teknik 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. 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
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
dan paging, mode protected register tertentu di CPU akan menentukan alamat
memori yang harus diperbolehkan untuk di akses oleh sebuah program yang
berjalan . Upaya 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 adanya 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.
Banyak sistem operasi
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. Di UNIX interupsi jenis ini di sebut sebagai kesalahan halaman /
page fault.
Ketika kernel
mendeteksi kesalahan halaman umumnya akan menyesuaikan range virtual memori bagi
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" memberikan programmer maupun pengguna akan persepsi bahwa ada RAM
dalam jumlah yang jauh lebih besar dari RAM yang sebenarnya ada di komputer.
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. Dalam
model ini, ketika kendali 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
memperluas konsep 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 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 merupakan versi pertama dari Microsoft Windows yang menerapkan
preemptive multitasking, tetapi tidak mencapai pasar pengguna rumah sampai
Windows XP (sebab Windows NT ditujukan pada profesional).
Filesystem
memungkinkan pengguna dan program untuk menata dan mengatur file pada komputer,
biasanya melalui penggunaan direktori (atau "folder")
Akses 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.
Ketika 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 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 bervariasi pada 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 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.
Device Driver adalah
perangkat lunak spesifik pada komputer yang dikembangkan untuk memungkinkan
interaksi dengan perangkat keras. Biasanya 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 baru juga dikeluarkan oleh
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 lebih baru dari sistem operasi menggabungkan
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.
Saat ini sebagian
besar sistem operasi mendukung berbagai protokol jaringan, perangkat keras, dan
aplikasi untuk menggunakannya. Ini 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 dibuat secara bersama
/ terbuka oleh banyak pihak, dan dapat di akses melalui web dengan kata kunci "Request
For Comment" (RFC).
Sebuah komputer yang
aman tergantung pada sejumlah teknologi bekerja dengan baik. 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 internal, atau 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
adalah sistem operasi tidak menjalankan program pengguna sebagai native code,
melainkan mengemulasi prosesor atau menyediakan host untuk sistem berbasis code
seperti Java.
Keamanan 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.
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
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
Sebagian besar sistem
komputer
modern mendukung antarmuka
grafis (GUI) , dan sering
memasukan GUI
menjadi bagian dari sistem operasi tersebut. Dalam beberapa sistem komputer,
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. Beberapa sistem operasi bersifat modular, memisahkan
subsistem grafis dari kernel dan sistem operasi. Pada 1980-an UNIX, VMS
dan banyak lainnya membangun sistem operasi dengan cara ini. Linux
dan Mac OS X juga dibangun dengan cara ini. Rilis 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 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 dalam hubungannya 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.
Sebuah sistem
operasi real-time RTOS
adalah sistem operasi multitasking
yang ditujukan untuk aplikasi dengan tenggat 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 tenggat waktu tetap menggunakan sistem operasi
komputasi real-time seperti VxWorks, PikeOS, ecos, QNX, MontaVista Linux dan
RTLinux. Symbian OS juga memiliki kernel 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.
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,
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. 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 hobby termasuk ReactOS dan Syllable.
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.
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.


Tidak ada komentar:
Posting Komentar