Sistem operasi
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 agar 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
[edit] Tipe Sistem Operasi
[edit] Real-time
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.
[edit] Multi-user
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.
[edit] 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.
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.
[edit] Sistem Terdistribusi
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.
[edit] 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.
[edit] Sejarah
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
perkenalkan 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.
[edit] Mainframe
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. Di 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.
[edit] 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 kala 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.
[edit] Contoh Sistem Operasi
[edit] Sistem Operasi UNIX dan UNIX-like
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.
[edit] BSD dan turunannya
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.
[edit] Linux and GNU
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.
[edit] 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.
[edit] Microsoft Windows
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.
[edit] Lainnya
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.
[edit] 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, apakah itu
sederhana seperti mouse atau keyboard atau serumit komponen internet.
[edit] Kernel
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.
[edit] 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. 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.
[edit] 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).
[edit] 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.
[edit] Memory Virtual
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.
[edit] 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. 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).
[edit] Akses Disk dan file system
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.
[edit] Device driver
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.
[edit] Networking
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).
[edit] Security
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.
[edit] 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
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.
[edit] Real-time Operating System
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.
[edit] 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, 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.
[edit] 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.
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.
[edit] Referensi
[edit] Pranala Menarik
[edit] Secara Umum
[edit] Instalasi Linux
[edit] Command Line Interface
[edit] Repository & Penggunaannya
[edit] Instalasi Aplikasi
[edit] Compile Kernel
[edit] Remaster Linux
[edit] Sistem Operasi untuk Embedded
[edit] Membuat Firmware Sendiri
[edit] Flash ke Device
[edit] Beberapa Tip
[edit] Tuning Kernel
[edit] Tuning Kernel Scheduler
[edit] Tuning I/O Scheduler
[edit] Tuning Manajemen Memory
[edit] Android
[edit] Membuat Kernel Module
[edit] Monitoring & Benchmark