SEJARAH SISTEM OPERASI

10.04

Sistem operasi [dalam bahasa Inggris: operating system atau OS] adalah perangkat lunak pada komputer yang mengatur jalannya program yang berbeda yang menggunakan perangkat keras komputer tersebut, dan mengatur cara pengguna mengendalikan komputer. Sistem Operasi juga merupakan bidang studi dalam Ilmu Komputer Terapan. Sistem operasi ditemukan pada hampir semua perangkat yang berisi komputer dengan beberapa program — dari telepon seluler dan konsol video game sampai superkomputer dan server web. Sistem operasi adalah platform dua sisi, membawa konsumen (sisi pertama) dan pengembang program (sisi kedua) bersama-sama dalam satu pasar. Beberapa sistem operasi modern yang populer untuk komputer pribadi diantaranya Microsoft Windows, Mac OS X, dan Linux.

Ringkasan
Karena komputer-komputer terdahulu sering dibangun hanya satu tugas, seperti kalkulator, tidak terdapat sistem operasi pada bentuk mereka yang modern dan lebih kompleks sampai tahun 1960-an. Saat komputer berevolusi menjadi perangkat yang dapat menjalankan program yang berbeda berturut-turut, programer mulai memasukkan library dari program umum (dalam bentuk kode komputer) ke komputer untuk menghindari duplikasi dan mempercepat proses. Akhirnya, komputer mulai dibangun agar secara otomatis beralih dari satu tugas ke tugas berikutnya. Penciptaan library runtime untuk mengelola pemrosesan dan kecepatan pencetakan datang berikutnya, yang berevolusi menjadi program yang bisa menafsirkan berbagai jenis bahasa pemrograman menjadi kode mesin. Ketika komputer pribadi buatan perusahaan seperti Apple Inc, Atari, IBM dan Amiga menjadi populer pada 1980-an, vendor mulai menambahkan fitur seperti penjadwalan pemeliharaan perangkat lunak dan perangkat keras.

Suatu sistem operasi dapat dibagi menjadi beberapa bagian yang berbeda. Salah satu bagian yang paling penting adalah kernel, yang mengontrol proses tingkat rendah yang rata-rata pengguna biasanya tidak dapat melihatnya: mengendalikan bagaimana memori membaca dan menulis, urutan proses yang dijalankan, bagaimana informasi yang diterima dan dikirim oleh perangkat seperti monitor, keyboard dan mouse, dan memutuskan bagaimana menginterpretasikan informasi yang diterima oleh jaringan. User interface adalah bagian dari sistem operasi yang berinteraksi dengan pengguna komputer secara langsung, yang memungkinkan mereka untuk mengontrol dan menggunakan program. Antarmuka pengguna terkadang grafikal dengan ikon dan desktop, atau tekstual, dengan baris perintah. Fitur lain yang serupa adalah antarmuka pemrograman aplikasi, yang merupakan sebuah set layanan dan  kode library yang memungkinkan aplikasi berinteraksi satu sama lain, serta sistem operasi itu sendiri. Tergantung pada sistem operasi, banyak komponen tidak dapat dianggap sebagai bagian yang sebenarnya. Sebagai contoh, Windows menganggap antarmuka pengguna untuk menjadi bagian dari sistem operasi, sedangkan banyak versi Linux tidak.

Sejarah
Pada awal 1950-an, sebuah komputer hanya dapat mengeksekusi satu program pada satu waktu. Setiap user dapat menggunakan satu-satunya komputer dan akan tiba pada waktu yang terjadwal dengan program dan data pada kartu kertas dan tape berlubang. Program ini akan dimasukkan ke dalam mesin, dan mesin akan mulai bekerja sampai program selesai atau crash. Program umum bisa men-debug melalui panel depan beralih menggunakan switch dan lampu panel. Dikatakan bahwa Alan Turing adalah seorang master ini pada awal mesin Manchester Mark 1, dan ia sudah menurunkan konsepsi primitif dari suatu sistem operasi dari prinsip-prinsip dari mesin Turing Universal.

Kemudian mesin datang dengan library untuk software, yang akan dikaitkan dengan program user untuk membantu operasi seperti input dan output dan menghasilkan kode komputer dari  kode simbolis yang dapat dibaca manusia. Ini adalah asal mula dari sistem operasi modern. Namun, mesin tersebut masih menjalankan pekerjaan tunggal pada suatu waktu.
Gambar 1. Mark Manchester menjadi lebih dari sekedar kalkulator yang kompleks dengan membiarkan programmer menjalankan berbagai jenis proses, salah satu gagasan awal dari suatu sistem operasi.
(Perbesar)






Mainframes
Di tahun 1950-an, banyak fitur-fitur utama dirintis di bidang sistem operasi, termasuk pengolahan batch, input/output interrupt, buffering, multitasking, spooling, dan library runtime. Fitur-fitur tersebut disertakan atau tidak dalam perangkat lunak aplikasi terdapat pada opsi aplikasi pemrograman, bukan di sistem operasi terpisah yang digunakan oleh semua aplikasi. Pada tahun 1959 Sistem Operasi SHARE dirilis sebagai utilitas terpadu untuk mainframe IBM 704 dan IBM 709.

Konsep OS tunggal ini mencakup seluruh garis produk yang sangat penting bagi keberhasilan System/360 dan, pada kenyataannya, sistem operasi mainframe IBM saat ini adalah keturunan jauh dari sistem aslinya; aplikasi yang ditulis untuk OS/360 masih dapat berjalan pada mesin modern. Pada pertengahan 70-an, para MVS, keturunan OS/360 menawarkan implementasi pertama menggunakan RAM sebagai cache transparan untuk data.


Gambar 2. OS/360 diletakkan pada semua komputer mainframe IBM awal tahun 1964, termasuk komputer yang membantu NASA menempatkan manusia di bulan
(Perbesar)











OS/360 juga memelopori konsep bahwa sistem operasi melacak semua sumber daya sistem yang digunakan, termasuk program dan alokasi ruang data di memori utama dan ruang file dalam penyimpanan sekunder, dan penguncian file selama update. Ketika proses ini dihentikan karena alasan apapun, semua sumber daya tersebut kembali diklaim oleh sistem operasi.
Sebuah sistem alternatif CP-67 memulai keseluruhan baris sistem operasi yang difokuskan pada konsep mesin virtual.
Control Data Corporation mengembangkan sistem operasi SCOPE pada tahun 1960, untuk pemrosesan batch. Dalam kerjasamanya dengan Universitas Minnesota, KRONOS dan kemudian sistem operasi NOS tersebut dikembangkan selama tahun 1970-an, yang mendukung batch simultan dan penggunaan time sharing. Seperti banyak sistem time sharing komersial, antarmukanya adalah ekstensi dari sistem operasi Dartmouth BASIC, salah satu upaya merintis time sharing dan bahasa pemrograman. Pada akhir 1970-an, Control Data dan Universitas Illinois mengembangka sistem operasi PLATO, yang menggunakan panel display plasma dan jaringan time sharing jarak jauh. Plato sangat inovatif untuk saat itu, meliputi real-time chatting, dan game grafis multi-user. Burroughs Corporation memperkenalkan B5000 pada tahun 1961 dengan sistem operasi MCP (Master Control Program). B5000 adalah mesin stack yang dirancang untuk secara eksklusif mendukung bahasa tingkat tinggi tanpa bahasa mesin atau assembler, dan memang MCP adalah OS pertama yang ditulis secara khusus dalam bahasa tingkat tinggi – ESPOL , sebuah dialek dari ALGOL. MCP juga memperkenalkan banyak inovasi lainnya, seperti menjadi implementasi komersial pertama dari memori virtual. Selama pengembangan AS400, IBM melakukan pendekatan pada lisensi MCP Burroughs untuk dijalankan pada perangkat keras AS400. Proposal ini telah ditolak oleh manajemen Burroughs untuk melindungi produksi perangkat keras yang ada. MCP masih digunakan hari ini di Unisys ClearPath / garis komputer MCP.
UNIVAC, produsen komputer komersial pertama, menghasilkan serangkaian sistem operasi EXEC. Seperti semua sistem main-frame terdahulu, ini adalah sistem berorientasi batch yang mengatur drum magnetik, disk, pembaca kartu dan printer line. Pada tahun 1970-an, UNIVAC menghasilkan sistem Real-Time Basic (RTB) untuk mendukung time sharing skala besar, juga dipolakan setelah sistem Dartmouth BASIC.
General Electric dan MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS), yang memperkenalkan konsep ringed security privilege level. Setelah akuisisi oleh Honeywell namanya diubah menjadi General Comprehensive Operating System (GCOS).
Digital Equipment Corporation mengembangkan banyak sistem operasi untuk berbagai jalur komputer, termasuk sistem time sharing TOPS-10 dan TOPS-20 untuk sistem kelas 36-bit PDP-10. Sebelum penggunaan luas dari UNIX, TOPS-10 adalah sebuah sistem yang populer terutama di universitas, dan di komunitas ARPANET terdahulu.
Pada akhir tahun1960-an sampai akhir 1970-an, beberapa kemampuan perangkat keras berevolusi yang memungkinkan software yang mirip atau software port bekerja di lebih dari satu sistem. Sistem terdahulu sudah menggunakan microprogramming untuk mengimplementasikan fitur pada sistem mereka dalam rangka untuk memungkinkan arsitektur dasar yang berbeda muncul menjadi sama dengan arsitektur lain dalam satu rangkaian. Faktanya sebagian besar sistem 360 setelah 360/40 (kecuali 360/165 dan 360/168) telah mengimplementasi mikroprogram. Tapi beberapa saat kemudian lainnya mencapai kompatibilitas aplikasi yang terbukti lebih signifikan.
Investasi besar dalam perangkat lunak untuk sistem tersebut dibuat sejak tahun 1960-an menyebabkan sebagian besar produsen komputer asli untuk terus mengembangkan sistem operasi yang kompatibel dengan perangkat keras. Sistem operasi mainframe terkemuka yang mendukung mencakup:
  • Burroughs MCP – B5000, 1961 to Unisys Clearpath/MCP, present.
  • IBM OS/360 – IBM System/360, 1966 to IBM z/OS, present.
  • IBM CP-67 – IBM System/360, 1967 to IBM z/VM, present.
  • UNIVAC EXEC 8 – UNIVAC 1108, 1967, to OS 2200 Unisys Clearpath Dorado, present.

Mikrokomputer
Mikrokomputer pertama tidak memiliki kemampuan atau perlu sistem operasi rumit yang telah dikembangkan untuk mainframe dan mini; sistem operasi minimalis tersebut dikembangkan, terkadang diload dari ROM dan dikenal sebagai Monitor. Satu sistem operasi berbasis disk awal yang terkenal adalah CP/M, yang mendukung pada banyak microcomputers terdahulu dan yang telah ditiru di MS-DOS, yang menjadi sangat populer sebagai sistem operasi yang dipilih untuk PC IBM (versi IBM itu disebut IBM DOS atau PC DOS ), penerusnya membuat Microsoft. Apple Computer Inc tahun 80-an (sekarang Apple Inc) meninggalkan mikrokomputer seri Apple II yang populer untuk memperkenalkan komputer Apple Macintosh dengan Graphical User Interface (GUI)  yang inovatif ke Mac OS.
Gambar 3 (kiri). PC-DOS adalah OS awal untuk komputer pribadi yang menampilkan antarmuka baris perintah.
(Perbesar)

Gambar 4 (kanan). Mac OS oleh Apple Komputer menjadi OS luas pertama yang memiliki fitur GUI. Banyak fitur-fiturnya seperti jendela dan ikon kemudian akan menjadi biasa di GUI.

Pengenalan CPU chip Intel 80386 dengan arsitektur 32-bit dan kemampuan paging, menyediakan komputer pribadi dengan kemampuan untuk menjalankan sistem operasi multitasking seperti minicomputer dan mainframe yang terdahulu. Microsoft menanggapi kemajuan ini dengan mempekerjakan Dave Cutler, yang telah mengembangkan sistem operasi VMS untuk Digital Equipment Corporation. Dia akan memimpin pengembangan sistem operasi Windows NT, yang tetap menjadi dasar untuk garis sistem operasi Microsoft. Steve Jobs, rekan pendiri Apple Inc, memulai NeXT Computer Inc, yang mengembangkan sistem operasi NeXTSTEP mirip Unix. NeXTSTEP kemudian akan diakuisisi dan digunakan oleh Apple Inc, bersama dengan kode dari FreeBSD sebagai inti dari Mac OS X.
Proyek GNU dimulai oleh aktivis dan programmer Richard Stallman dengan tujuan mengganti perangkat lunak sempurna yang gratis menjadi sistem operasi UNIX. Saat proyek ini sangat sukses pada duplikasi fungsi berbagai bagian UNIX, pengembangan GNU Hurd kernel terbukti tidak produktif. Pada tahun 1991 mahasiswa ilmu komputer Finlandia, Linus Torvalds, dengan kerja sama dari relawan melalui Internet, merilis versi pertama dari kernel Linux. Kemudian bergabung dengan userland dan sistem perangkat lunak GNU untuk membentuk sebuah sistem operasi yang sempurna. Sejak itu, kombinasi dari dua komponen utama biasanya telah disebut sebagai "Linux" oleh industri perangkat lunak, sebuah konvensi penamaan yang mana Stallman dan Free Software Foundation tetap menentangnya, malahan lebih suka nama "GNU/Linux". Berkeley Software Distribution, yang dikenal sebagai BSD, adalah turunan UNIX yang didistribusikan oleh Universitas California, Berkeley, dimulai pada tahun 1970-an. Didistribusikan secara bebas dan porting untuk banyak minikomputer, akhirnya juga digunakan pada PC, sebagian besar sebagai FreeBSD, NetBSD, dan OpenBSD.

Sistem Operasi

Microsoft Windows
Microsoft Windows adalah keluarga milik sistem operasi yang paling umum digunakan di komputer pribadi. Ini adalah keluarga sistem operasi yang paling umum untuk komputer pribadi, dengan sekitar 90% dari pangsa pasar. Saat ini, sebagian besar keluarga Windows yang banyak digunakan adalah versi Windows XP, dirilis pada tanggal 25 Oktober 2001. Versi terbaru adalah Windows 7 untuk komputer pribadi dan Windows Server 2008 R2 untuk server.





Gambar 5. Sistem operasi Windows XP untuk komputer pribadi.
(Perbesar)






Berasal pada tahun 1981 sebagai add-on untuk sistem operasi tua MS-DOS untuk PC IBM. Dirilis pada tahun 1985, Microsoft mendominasi dunia bisnis komputer pribadi, dan melanjutkan untuk menetapkan sejumlah standar industri dan aplikasi biasa. Dimulai dengan Windows XP, semua versi modern didasarkan pada kernel Windows NT. Arus versi Windows berjalan pada prosesor x86 dan x86-64, meskipun versi lama kadang-kadang mendukung arsitektur lain.

Windows juga digunakan pada server, aplikasi pendukung seperti server web dan server database. Dalam beberapa tahun terakhir, Microsoft telah menghabiskan pemasaran yang signifikan serta uang penelitian & pengembangan untuk menunjukkan bahwa Windows mampu menjalankan aplikasi perusahaan, yang mengakibatkan harga/catatan kinerja yang konsisten dan penerimaan yang signifikan dalam pasar perusahaan. Namun, penggunaan di server tidak begitu luas seperti komputer pribadi, dan di sini Windows aktif bersaing dengan Linux dan BSD untuk pangsa pasar, sementara masih menangkap mayoritas oleh beberapa account.


Mac OS X
Mac OS X adalah sebuah garis dari sebagian sistem operasi grafis eksklusif yang dikembangkan, dipasarkan, dan dijual oleh Apple Inc, yang terakhir adalah pre-loaded pada saat pengiriman semua komputer Macintosh. Mac OS X adalah penerus asli Mac OS, yang telah menjadi sistem operasi primer Apple sejak tahun 1984. Tidak seperti pendahulunya, Mac OS X adalah sistem operasi UNIX yang dibangun di atas teknologi yang telah dikembangkan di NeXT melalui paruh kedua tahun 1980-an dan sampai Apple membeli perusahaan di awal 1997.

Gambar 6. Standar antarmuka pengguna Mac OS X
(Perbesar)








Sistem operasi ini pertama kali dirilis pada tahun 1999 bernama Mac OS X Server 1.0, dengan versi berorientasi desktop (Mac OS X v10.0) berikutnya di bulan Maret 2001. Sejak itu, enam edisi "klien" dan "server" Mac OS X yang lebih jelas telah dirilis, yang paling terakhir adalah Mac OS X v10.6 , yang pertama kali dibuat tersedia pada tanggal 28 Agustus 2009. Releasenya Mac OS X dinamai kucing besar; versi Mac OS X adalah "Snow Leopard".
Edisi server, Mac OS X Server, secara arsitektur identik dengan mitra desktopnya, tetapi biasanya berjalan pada garis hardware Macintosh server milik Apple. Mac OS X Server mencakup manajemen kerja kelompok dan perangkat lunak administrasi yang menyediakan akses simple ke layanan kunci jaringan, termasuk agen transfer mail, sebuah server Samba, sebuah LDAP server, sebuah nama domain server, dan lain-lain.


Unix dan sistem operasi serupa Unix
Ken Thompson menulis B, terutama berdasarkan BCPL, yang digunakan untuk menulis Unix, berdasarkan pengalamannya di proyek MULTICS. B digantikan oleh C, dan Unix berkembang menjadi kompleks, keluarga besar sistem operasi yang terkait yang telah berpengaruh dalam setiap sistem operasi modern. The keluarga mirip Unix (Unix-like) adalah beragam grup sistem operasi, dengan beberapa sub-kategori utama termasuk System V, BSD, dan GNU/Linux. Nama "UNIX" adalah merek dagang dari The Open Group yang perizinannya digunakan untuk sistem operasi yang telah terbukti sesuai dengan definisi mereka. "Unix-like" umumnya digunakan untuk merujuk ke set besar sistem operasi yang mirip Unix yang asli.

Gambar 7. Evolusi sistem Unix
(Perbesar)






Sistem yang serupa Unix berjalan pada berbagai arsitektur mesin. Mereka banyak digunakan untuk server dalam bisnis, serta workstation dalam bidang akademik dan lingkungan engineering. Unix varian gratis, seperti GNU/Linux dan BSD, adalah sistem operasi yang populer di daerah-daerah tersebut.
Beberapa varian Unix seperti HP UX dan AIX IBM yang dirancang untuk berjalan hanya pada hardware vendor itu. Lainnya, seperti Solaris, dapat berjalan di berbagai jenis hardware, termasuk x86 server dan PC. Apple Mac OS X, sebuah kernel hibrida berbasis varian BSD berasal dari NeXTSTEP, Mach, dan FreeBSD, telah menggantikan Apple Mac OS sebelumnya (non-Unix).
Interoperabilitas Unix dicari dengan mendirikan standar POSIX. Standar POSIX dapat diterapkan pada setiap sistem operasi, meskipun pada awalnya dibuat untuk berbagai varian Unix.


BSD dan keturunannya
Sebuah subkelompok dari keluarga Unix adalah keluarga Berkeley Software Distribution, yang termasuk FreeBSD, NetBSD, dan OpenBSD. Sistem-sistem operasi yang paling sering ditemukan pada webserver, meskipun mereka juga dapat berfungsi sebagai OS komputer pribadi. Internet berutang banyak atas keberadaan BSD, karena banyak protokol sekarang yang umum digunakan oleh komputer untuk melakukan koneksi, mengirim dan menerima data melalui jaringan yang diimplementasikan secara luas dan disempurnakan di BSD. WWW (World Wide Web) juga yang pertama menunjukkan pada sejumlah komputer yang menjalankan sebuah sistem operasi berbasis pada BSD yang disebut NextStep.

Gambar 8. Server pertama World Wide Web yang berjalan dalam NeXTSTEP, berbasis BSD.
(Perbesar)







BSD berakar pada Unix. Pada tahun 1974, Universitas California, Berkeley menginstall sistem Unix pertama. Seiring waktu, mahasiswa dan staf di departemen ilmu komputer di sana mulai menambahkan program baru untuk membuat sesuatu menjadi lebih mudah, seperti editor teks. Ketika Berkely menerima komputer VAX baru pada tahun 1978 dengan Unix yang telah terinstal, mahasiswa mengubah Unix lebih banyak untuk mengambil keuntungan dari kemungkinan hardware komputer. Defense Advanced Research Projects Agency dari Departemen Pertahanan Amerika memperhatikan, dan memutuskan untuk mendanai proyek tersebut. Banyak sekolah, perusahaan, dan organisasi pemerintah memperhatikan dan mulai untuk menggunakan versi Unix Berkeley, bukan yang resmi yang didistribusikan oleh AT&T. Steve Jobs, setelah meninggalkan Apple Inc pada tahun 1985, membentuk NeXT Inc, sebuah perusahaan yang memproduksi komputer high-end yang berjalan pada variasi BSD yang disebut NeXTSTEP. Salah satu komputer tersebut digunakan oleh Tim Berners-Lee sebagai server web pertama untuk menciptakan World Wide Web.
Pengembang seperti Keith Bostic mendorong proyek tersebut untuk mengganti kode non-free yang berasal dari Bell Labs. Setelah hal ini selesai dilakukan, AT&T menggugat. Akhirnya, setelah dua tahun sengketa hukum, proyek BSD maju, dan melahirkan sejumlah derivatif bebas, seperti FreeBSD dan NetBSD. Namun, penungguan dua tahun telah menyiapkan panggung untuk dua proyek yang akhirnya akan teratasi baik BSD dan Unix: GNU dan Linux.


Plan 9
Ken Thompson, Dennis Ritchie, dan Douglas McIlroy di Bell Labs merancang dan mengembangkan bahasa pemrograman C untuk membangun sistem operasi Unix. Programmer di Bell Labs melanjutkan untuk mengembangkan Plan 9 dan Inferno, yang dirancang untuk lingkungan terdistribusi modern. Plan 9 dirancang dari awal untuk menjadi sistem operasi jaringan, dan memiliki grafis built-in, tidak seperti Unix, yang menambahkan fitur ini untuk perancangan yang akan datang. Saat ini dirilis di bawah Lisensi Publik Lucent. Inferno dijual ke Vita Nuova Holdings dan telah dirilis di bawah lisensi GPL/MIT.

Gambar 9. Plan 9
Linux dan GNU
Linux adalah nama generik untuk anggota dalam keluarga sistem operasi yang dapat ditemukan mulai dari superkomputer sampai jam tangan. Karena komponennya adalah open source, siapa saja dapat membaca dan memodifikasi kodenya. Karena itu, telah dimodifikasi untuk berbagai macam elektronik. Hal ini hanya digunakan 0,5-2% dari semua jumlah komputer pribadi, tetapi merupakan raksasa diam di dunia ponsel, server, dan embedded system. Linux telah menggantikan Unix di banyak tempat, dan digunakan pada 10 superkomputer paling kuat di dunia.

Gambar 10. Ubuntu, distribusi umum desktop Linux
(Perbesar)




Proyek GNU merupakan kolaborasi massa programmer yang berusaha untuk menciptakan sebuah sistem operasi yang sepenuhnya bebas dan terbuka yang mirip dengan Unix namun dengan kode yang benar-benar asli. Dimulai pada tahun 1983 oleh Richard Stallman, dan bertanggung jawab atas sebagian besar bagian varian Linux. Untuk alasan ini, Linux sering disebut GNU/Linux. Ribuan buah perangkat lunak untuk hampir semua sistem operasi berlisensi di bawah GNU General Public License. Sementara itu, kernel Linux dimulai sebagai proyek sisi Linus Torvalds, seorang mahasiswa dari Finlandia. Pada tahun 1991, Torvalds mulai bekerja di atasnya, dan diposting informasi tentang proyek di newsgroup untuk siswa komputer dan programer. Ia menerima gelombang dukungan dan sukarelawan yang akhirnya menciptakan sebuah kernel penuh. Programmer dari GNU memperhatikannya, dan anggota dari kedua proyek bekerja untuk mengintegrasikan bagian GNU yang telah selesaiselesai dalam kernel linux untuk menciptakan sistem operasi penuh.


Sistem Operasi Google Chrome
Chrome adalah sebuah sistem operasi berbasis kernel Linux dan didesain oleh Google. Ini sedang dalam pengembangan, dan penggunaannya ditujukan ke arah tipe tertentu dari netbook. target pengguna komputer Chrome yang menghabiskan sebagian besar waktu mereka di internet-secara teknis hanya web browser tanpa aplikasi lain, dan bergantung pada aplikasi internet yang digunakan dalam web browser untuk menyelesaikan tugas-tugas seperti pengolah kata dan melihat media.


Gambar 11. Sebuah desain yang diharapkan dari Google Chrome OS
(Perbesar)




Lainnya
sistem operasi lama yang masih digunakan di ceruk pasar yaitu OS/2 dari IBM dan Microsoft; Mac OS, non-Unix prekursor ke Apple Mac OS X; BeOS; XTS-300. Beberapa, terutama RISC OS, MorphOS dan AmigaOS 4 terus dikembangkan sebagai platform minoritas bagi masyarakat antusias dan aplikasi spesialis. OpenVMS dibentuk dari DEC, masih dalam pengembangan aktif oleh Hewlett-Packard. Namun sistem operasi lain yang digunakan hampir secara eksklusif dalam dunia akademis, untuk sistem operasi pendidikan atau untuk melakukan penelitian tentang konsep sistem operasi. Sebuah contoh khas dari sistem yang memenuhi kedua peran tersebut adalah MINIX, sedangkan untuk contoh Singularity digunakan murni untuk penelitian.


Komponen
Komponen dari suatu sistem operasi semuanya ada untuk membuat bagian-bagian komputer yang berbeda bekerja bersama. Semua perangkat lunak — dari database keuangan sampai editor film — butuh sistem operasi untuk menggunakan perangkat keras, apakah itu sesederhana seperti mouse atau keyboard atau kompleks seperti koneksi internet.

Antarmuka pengguna (User Interface)
Setiap komputer yang menerima semacam input dari manusia membutuhkan user interface, yang memungkinkan seseorang untuk berinteraksi dengan komputer. Sementara perangkat seperti keyboard, mouse dan touchscreen adalah hardwarenya, user interface adalah perangkat lunak untuk itu. Dua bentuk yang paling umum dari user interface memiliki sejarah menjadi Command-line interface, di mana perintah komputer diketik baris demi baris, dan user interface grafikal, di mana lingkungan visual (paling sering dengan windows, tombol, dan ikon ) hadir saat ini.




Gambar 12. Sebuah contoh baris perintah. Setiap perintah diketik setelah 'prompt', dan kemudian outputnya muncul di bawah. Perintah prompt saat ini di bagian bawah.
(Perbesar)






Graphical User Interfaces (GUI)
Sebagian besar sistem komputer modern mendukung antarmuka pengguna grafikal/GUI, dan sering menyertakannya mereka. Dalam beberapa sistem komputer, seperti implementasi asli dari Microsoft Windows dan Mac OS, GUI diintegrasikan ke dalam kernel .

Meskipun secara teknis GUI bukan layanan sistem operasi, menggabungkan dukungan untuk semuanya di dalam kernel sistem operasi dapat memungkinkan GUI menjadi lebih responsif dengan mengurangi jumlah switch konteks yang diperlukan GUI untuk menjalankan fungsi outputnya. Sistem operasi lainnya adalah modular, memisahkan subsistem grafis dari kernel dan Sistem Operasi. Pada 1980-an UNIX, VMS dan sebagainya memiliki sistem operasi yang dibangun dengan cara ini. GNU/Linux dan Mac OS X juga dibangun dengan cara ini. Rilis Modern dari Microsoft Windows seperti Windows Vista menerapkan subsistem grafis yang sebagian besar dalam user-space, namun versi graphics drawing routines antara Windows NT 4.0 dan Windows Server 2003 sebagian besar ada dalam ruang kernel. Windows 9x memiliki sedikit perbedaan antara antarmuka dan kernel.


Gambar 13. Sebuah contoh dari GUI. Program mengambil bentuk gambar pada layar, dan file, folder, dan aplikasi berbentuk ikon dan simbol. Sebuah mouse digunakan sebagai navigasi komputer.
(Perbesar)




Banyak sistem operasi komputer yang memungkinkan pengguna untuk menginstal atau menciptakan user interface yang mereka inginkan. Sistem Window X dalam hubungannya dengan GNOME atau KDE biasanya adalah setup pada kebanyakan Unix dan sistem Unix-like (BSD, GNU/Linux, Solaris). Sejumlah pengganti shell Windows telah dirilis untuk Microsoft Windows, yang menawarkan alternatif termasuk shell Windows, tapi shell itu sendiri tidak dapat dipisahkan dari Windows.
Banyak GUI berbasis Unix telah eksis dari waktu ke waktu, sebagian besar berasal dari X11. Kompetisi di antara berbagai vendor Unix (HP, IBM, Sun) menyebabkan banyak fragmentasi, meskipun upaya untuk standarisasi pada 1990-an untuk COSE dan CDE gagal sebagian besar karena berbagai alasan, akhirnya redup oleh adopsi GNOME dan KDE. Sebelum toolkit berbasis perangkat lunak bebas yang dan lingkungan desktop, Motif merupakan kombinasi toolkit/desktop umum (dan merupakan dasar bagi CDE dikembangkan).
GUI berevolusi dari waktu ke waktu. Sebagai contoh, Windows telah merubah antarmuka pengguna mereka yang hampir setiap kali versi utama baru Windows dilepaskan, dan GUI Mac OS berubah secara dramatis dengan pengenalan Mac OS X pada tahun 1999.


Kernel
Dengan bantuan dari firmware dan driver perangkat , sistem operasi menyediakan tingkat yang paling dasar atas kontrol semua perangkat keras komputer. Ia mengatur akses memori untuk program-program di RAM, menentukan program mana yang mendapatkan akses ke sumber daya perangkat keras, men-setup atau mereset state operasi CPU untuk pengoperasian yang optimal setiap saat, dan mengatur data untuk penyimpanan non-volatile jangka panjang dengan sistem file pada media seperti disk, tape, flash memory, dll.


Gambar 14. Kernel menghubungkan perangkat lunak aplikasi dengan perangkat keras komputer.
(Perbesar)






Eksekusi Program
Sistem operasi bertindak sebagai interface antara aplikasi dan perangkat keras. Pengguna berinteraksi dengan perangkat keras dari "sisi lain". Sistem operasi adalah satu set layanan yang menyederhanakan pengembangan aplikasi. Mengeksekusi program melibatkan penciptaan suatu proses oleh sistem operasi. Kernel menciptakan sebuah proses dengan menetapkan memori dan sumber daya lainnya, menetapkan prioritas untuk proses tersebut (dalam sistem multi-tasking), loading kode program ke dalam memori, dan melaksanakan program. Program ini kemudian berinteraksi dengan pengguna dan/atau perangkat lain dan melakukan fungsi yang ditujukan.


Interupsi (Interrupts)
Interupsi adalah pusat untuk sistem operasi, karena memberikan cara yang efisien untuk sistem operasi untuk berinteraksi dan bereaksi terhadap lingkungannya. Alternatifnya —sistem operasi "mengamati" berbagai sumber masukan bagi kegiatan (polling) yang memerlukan tindakan — dapat ditemukan dalam sistem yang lebih tua dengan tumpukan yang sangat kecil (50 atau 60 byte), tetapi tidak biasa dalam sistem modern dengan tumpukan cukup besar. Pemrograman berbasis interrupt secara langsung didukung oleh CPU yang paling modern. Interupsi memberikan sebuah komputer dengan cara menyimpan secara otomatis konteks register lokal, dan menjalankan kode tertentu dalam menanggapi event. Bahkan dasar komputer sangat mendukung hardware interrupts, dan memungkinkan programmer untuk menentukan kode yang dapat dijalankan ketika event terjadi.

Ketika interrupt diterima, hardware komputer secara otomatis menghentikan program apa pun yang sedang berjalan, menyimpan statusnya, dan menjalankan kode komputer sebelumnya yang terkait dengan interupsi; ini dapat disamakan dengan menempatkan bookmark dalam sebuah buku saat merespon panggilan telepon. Dalam sistem operasi modern, interrupt dihandel oleh kernel sistem operasi. Interupsi dapat berasal dari salah satu perangkat keras komputer atau dari program yang sedang bekerja.
Ketika sebuah perangkat keras memicu interupsi, kernel sistem operasi memutuskan bagaimana menangani event ini, secara umum dengan menjalankan beberapa kode pengolahan. Jumlah kode yang berjalan bergantung pada prioritas interrupt (misalnya: seseorang biasanya menanggapi alarm detektor asap sebelum menjawab telepon). Pengolahan interupsi perangkat keras adalah tugas yang biasanya didelegasikan kepada perangkat lunak yang disebut driver perangkat (device driver), yang dapat berupa bagian dari kernel sistem operasi, bagian dari program lain, atau keduanya. Device driver kemudian dapat menyampaikan informasi untuk sebuah program yang sedang berjalan dengan berbagai cara.
Program juga bisa memicu interrupt pada sistem operasi. Jika sebuah program ingin mengakses hardware misalnya, dapat meng-interrupt kernel sistem operasi, yang menyebabkan kontrol kembali ke kernel. Kernel kemudian akan memproses permintaan tersebut. Jika sebuah program ingin sumber daya tambahan (atau ingin memberikan sumber daya) seperti memori, ia akan memicu interrupt untuk mendapatkan perhatian kernel.


Mode terproteksi, modus supervisor, dan virtual mode
CPU Modern mendukung beberapa mode operasi. CPU yang memiliki kemampuan ini menggunakan setidaknya dua mode: modus terproteksi dan mode supervisor. Mode supervisor digunakan oleh kernel sistem operasi tingkat rendah untuk tugas-tugas yang membutuhkan akses tidak terlarang terhadap perangkat keras, seperti mengendalikan bagaimana memori ditulis dan dihapus, dan komunikasi dengan perangkat seperti kartu grafis. Modus proteksi, sebaliknya, digunakan untuk hampir segala sesuatu yang lain. Aplikasi beroperasi dalam modus terproteksi, dan hanya dapat menggunakan perangkat keras dengan berkomunikasi dengan kernel, yang mengendalikan segala sesuatu dalam mode supervisor. CPU mungkin memiliki cara lain yang serupa dengan modus yang dilindungi juga, seperti mode virtual untuk meniru jenis prosesor yang lebih tua, seperti sebagai prosesor 16-bit pada 32-bit prosesor, atau prosesor 32-bit pada 64-bit.



Gambar 15. Cincin privilege untuk x86 yang tersedia dalam modus terproteksi. Sistem operasi menentukan proses mana yang berjalan dalam modus masing-masing.
(Perbesar)






Ketika komputer pertama kali dijalankan, maka secara otomatis akan berjalan dalam mode supervisor. Beberapa program pertama berjalan di komputer, sebagai BIOS, bootloader dan sistem operasi memiliki akses tak terbatas ke perangkat keras - dan ini diperlukan karena, menurut definisi, menginisialisasi lingkungan yang dilindungi hanya dapat dilakukan di luar. Namun, ketika sistem operasi melewati kontrol ke program lain, hal itu menempatkan CPU ke dalam modus terproteksi.
Dalam modus terproteksi, program mungkin memiliki akses terbatas ke set instruksi CPU. Sebuah program pengguna dapat meninggalkan modus terproteksi hanya karena dipicu interrupt, menyebabkan kontrol untuk kembali ke kernel. Dengan cara ini sistem operasi dapat mempertahankan kontrol eksklusif atas hal-hal seperti perangkat keras dan akses ke memori.
Istilah "protected mode resource" biasanya merujuk kepada satu atau lebih register CPU, yang berisi informasi bahwa program yang berjalan tidak diperkenankan untuk mengubahnya. Usaha-usaha untuk mengubah sumber daya ini biasanya menyebabkan beralihnya ke modus supervisor, dimana sistem operasi dapat menangani percobaan operasi ilegal program ini (misalnya, dengan menutup program tersebut).


Manajemen Memori
sebuah kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola seluruh sistem memori yang sedang digunakan oleh program. Hal ini untuk memastikan bahwa program tidak mengganggu memori yang sudah digunakan oleh program lain. Ketika time share program, setiap program harus memiliki akses independen ke memori.

Manajemen memori kooperatif, digunakan oleh banyak sistem operasi terdahulu yang mengasumsikan bahwa semua program menggunakan manajemen memori kernel secara sukarela, dan tidak melebihi memori yang dialokasikan untuk mereka. Sistem manajemen memori ini hampir tidak pernah terlihat lagi, karena program sering mengandung bug yang dapat menyebabkan mereka melebihi batas penggunaan jatah memori yang dialokasikan. Jika suatu program gagal dapat menyebabkan memori yang digunakan oleh satu program atau lebih akan terpengaruh atau di-overwrite. Program jahat, atau virus dapat dengan sengaja mengubah memori program lain atau mungkin mempengaruhi operasi dari sistem operasi itu sendiri. Dengan manajemen memori kooperatif, hanya dibutuhkan satu program berbuat jahat untuk membuat sistem crash.
Perlindungan memori memungkinkan kernel untuk membatasi proses mengakses ke memori komputer. Berbagai metode perlindungan memori mulai eksis, termasuk segmentasi memori dan paging. Semua metode membutuhkan beberapa tingkat dari dukungan perangkat keras (seperti 80286 MMU) yang tidak ada di semua komputer.
Dalam kedua segmentasi dan paging, mode protektif tertentu meregister spesifikasi ke CPU alamat memori apa yang harus dapat diakses oleh program yang sedang berjalan. Upaya untuk mengakses alamat lain akan memicu interrupt yang akan menyebabkan CPU untuk memasukkan kembali modus supervisor, menempatkan kernel dalam komando. Ini disebut pelanggaran segmentasi atau seg-V untuk singkatnya, dan karena keduanya sulit untuk menentukan hasil yang bermakna untuk operasi semacam itu, dan karena biasanya merupakan tanda program yang jahat, kernel secara umum akan berusaha untuk mengakhiri program yang menyerang itu, dan akan melaporkan errornya.
Windows 3.1-Me memiliki beberapa tingkat perlindungan memori, namun program-program dengan mudah bisa menghindari kebutuhan untuk menggunakannya. Sebuah kesalahan perlindungan umum yang diproduksi menunjukkan pelanggaran segmentasi telah terjadi, namun sistem akan sering crash juga.


Memori virtual 
Penggunaan alamat memori virtual (seperti paging atau segmentasi) berarti kernel dapat memilih memori apa yang masing-masing program dapat menggunakan pada waktu tertentu, yang memungkinkan sistem operasi untuk menggunakan lokasi memori yang sama untuk banyak tugas.

Jika sebuah program mencoba mengakses memori maka tidak dalam jangkauan memori yang dapat diakses saat ini, tapi tetap saja telah dialokasikan untuk itu, kernel akan diinterupsi dengan cara yang sama saat program ini melebihi memori yang dialokasikan. Dalam UNIX, interupsi semacam ini disebut sebagai page fault.





Gambar 16. Banyak sistem operasi dapat "menipu" program menggunakan memori tersebar di seluruh hard disk dan RAM seolah-olah itu adalah salah satu potongan lanjutan memori yang disebut memori virtual.
(Perbesar)










Ketika kernel mendeteksi page fault umumnya akan menyesuaikan rentang memori virtual dari program yang dipicu itu, memberikan akses ke memori yang diminta. Hal ini memberikan kernel kuasa kebebasan lebih dimana memori aplikasi tertentu disimpan, atau bahkan apakah ia telah benar-benar telah dialokasikan.

Dalam sistem operasi modern, memori yang lebih jarang diakses dapat disimpan sementara pada disk atau media lain untuk membuat ruang yang disediakan untuk digunakan oleh program lain. Ini disebut swapping, sebagai daerah memori yang dapat digunakan oleh beberapa program, dan isi area memori dapat ditukarkan atau dipertukarkan tergantung permintaan.


Multitasking
Multitasking mengacu pada menjalankan beberapa program komputer independen pada komputer yang sama, memberikan kesan bahwa itu adalah melaksanakan tugas pada waktu yang sama. Karena kebanyakan komputer dapat melakukan paling banyak satu atau dua hal pada satu waktu, ini biasanya dilakukan melalui time-sharing, yang berarti bahwa setiap program menggunakan pembagian waktu komputer untuk mengeksekusi.

Sebuah kernel sistem operasi berisi bagian dari perangkat lunak yang disebut scheduler yang menentukan berapa banyak waktu yang akan digunakan untuk mengeksekusi setiap program, dan di mana urutan kontrol eksekusi harus dilalui program tersebut. Kontrol akan diteruskan ke proses oleh kernel, yang memungkinkan program untuk akses ke CPU dan memori. Kemudian, kontrol dikembalikan ke kernel melalui beberapa mekanisme, sehingga program lain diperbolehkan untuk menggunakan CPU. Ini disebut passing of control antara kernel dan aplikasi yang disebut context switch.
Sebuah model sebelumnya yang mana mengatur alokasi waktu untuk program yang disebut multitasking kooperatif. Dalam model ini, ketika kontrol akan diteruskan ke program oleh kernel, hal tersebut mengeksekusi selama yang diinginkan sebelum secara eksplisit mengembalikan kontrol ke kernel. Ini berarti bahwa program yang berbahaya atau tidak berfungsi tidak hanya mencegah program lain untuk menggunakan CPU, tetapi bisa membuat hang seluruh sistem jika memasuki sebuah loop tak terbatas.
Sistem operasi modern memperluas konsep hak permintaan aplikasi (preemptive) untuk device driver dan kode kernel, sehingga sistem operasi memiliki kontrol permintaan terlebih dahulu atas internal run-times.
Filosofi tersebut mengatur multitasking permintaan untuk memastikan semua program diberikan waktu yang teratur pada CPU. Ini berarti bahwa semua program harus dibatasi dalam berapa banyak waktu yang diizinkan untuk menggunakan CPU tanpa ada gangguan. Untuk mencapai hal ini, kernel sistem operasi modern menggunakan waktu interrupsinya. Sebuah timer modus proteksi diatur oleh kernel yang memicu kembali ke modus supervisor setelah waktu yang ditentukan telah berlalu.
Pada banyak sistem operasi single user, multitasking kooperatif sangatlah cukup, komputer rumah umumnya menjalankan sejumlah kecil program yang telah diuji dengan baik. Windows NT merupakan versi pertama Microsoft Windows yang menegaskan multitasking preemptive, tapi tidak mencapai pasar home user sampai Windows XP, (karena Windows NT ditargetkan pada para profesional.)


Akses disk dan sistem file
Akses ke data yang disimpan pada disk adalah fitur utama dari semua sistem operasi. Komputer menyimpan data pada disk menggunakan file, yang terstruktur dengan cara tertentu untuk memungkinkan akses lebih cepat, keandalan yang lebih tinggi, dan membuat penggunaan lebih baik dari ruang drive yang tersedia. Cara khusus di mana file tersebut disimpan pada disk yang disebut sistem berkas (file system), dan yang memungkinkan file memiliki nama dan atribut. Hal ini juga memungkinkan mereka untuk disimpan dalam hirarki direktori atau folder  yang diatur dalam sebuah pohon direktori.

Sistem operasi terdahulu umumnya mendukung satu jenis disk drive dan hanya satu jenis sistem file. File sistem sebelumnya sangat terbatas dalam kapasitas mereka, kecepatan, dan dalam jenis nama file dan struktur direktori yang bisa mereka gunakan. Keterbatasan ini sering mencerminkan keterbatasan dalam sistem operasi yang mereka rancang, sehingga sangat sulit bagi sebuah sistem operasi untuk mendukung lebih dari satu sistem file.


Gambar 17. Filesystem memungkinkan pengguna dan program untuk mengatur dan menyortir file di komputer, seringkali melalui penggunaan direktori (atau "folder")
(Perbesar)




Sementara banyak sistem operasi sederhana mendukung jangkauan yang terbatas pada pilihan untuk mengakses sistem penyimpanan, sistem operasi seperti UNIX dan GNU/Linux mendukung teknologi yang dikenal sebagai sistem file virtual atau VFS (virtual file system). Suatu sistem operasi seperti UNIX mendukung beragam perangkat penyimpanan, tanpa memperhatikan rancangan atau sistem file mereka yang akan diakses melalui antarmuka pemrograman aplikasi (API/application programming interface) umum. Hal ini membuat program tidak perlu untuk memiliki pengetahuan tentang perangkat yang mereka akses. sebuah VFS memungkinkan sistem operasi untuk menyediakan program dengan akses yang tidak terbatas pada jumlah perangkat dengan berbagai sistem berkas yang tak terbatas yang terinstall melalui penggunaan device driver dan file driver sistem khusus.
Sebuah perangkat penyimpanan yang terhubung seperti hard drive diakses melalui device driver. Driver perangkat memahami bahasa khusus drive dan mampu menerjemahkan bahasa tersebut menjadi bahasa standar yang digunakan oleh sistem operasi untuk mengakses semua drive disk. Pada UNIX, ini adalah bahasa block device.
Ketika kernel memiliki driver yang tepat di tempatnya, kemudian dapat mengakses isi dari disk drive dalam format baku, yang mungkin berisi satu sistem file atau lebih. Sebuah driver sistem file digunakan untuk menerjemahkan perintah yang digunakan untuk mengakses setiap sistem file tertentu ke dalam satu set perintah standar yang dapat digunakan sistem operasi untuk berbicara dengan semua sistem file. Program kemudian dapat menangani sistem file berdasarkan nama file, dan direktori/folder, yang terkandung dalam struktur hirarkis. Mereka dapat membuat, menghapus, terbuka, dan menutup file, serta mengumpulkan berbagai informasi tentangnya, termasuk hak akses, ukuran, ruang kosong, dan tanggal penciptaan dan modifikasi.
Berbagai perbedaan antara file sistem membuat dukungan semua sistem file menjadi sulit. Memperbolehkan karakter di nama file, case sensitive, dan adanya berbagai jenis atribut file membuat implementasi antarmuka tunggal untuk setiap sistem berkas menjadi tugas yang menakutkan. Sistem operasi cenderung merekomendasikan menggunakan (dan juga dukungan native) sistem file yang khusus dirancang untuk mereka, misalnya, NTFS pada Windows dan ext3 dan ReiserFS di GNU/Linux. Namun, dalam prakteknya, drive pihak ketiga biasanya tersedia untuk memberikan dukungan untuk file yang paling banyak digunakan di sebagian besar sistem operasi sistem umum (misalnya, NTFS tersedia di GNU/Linux melalui NTFS-3g, dan ext2/3 dan ReiserFS tersedia dalam Windows melalui FS-driver dan rfstool ).
Dukungan untuk sistem file sangat bervariasi di antara sistem operasi yang modern meskipun ada beberapa sistem file umum yang hampir semua sistem operasi mendukung dan mencakup drivernya. Sistem operasi bervariasi pada dukungan sistem berkas dan pada format disk yang dapat mereka instal. Dalam Windows setiap sistem file biasanya terbatas dalam aplikasi pada media tertentu, misalnya untuk CD harus menggunakan ISO9660 atau UDF, dan juga pada Windows Vista, NTFS adalah file system yang hanya dapat diinstal pada sistem operasi tersebut. Hal ini memungkinkan menginstal GNU/Linux ke berbagai jenis sistem file. Tidak seperti sistem operasi lain, GNU/Linux dan UNIX memungkinkan sistem file apa saja dapat digunakan tanpa memperhatikan media tempat menyimpannya, apakah itu hard drive, disk (CD, DVD...), USB key, atau bahkan terkandung dalam file yang terletak di sistem file lain.


Driver perangkat (device drivers)
Sebuah driver perangkat / device driver adalah jenis khusus perangkat lunak komputer yang dikembangkan untuk memungkinkan interaksi dengan perangkat keras. Biasanya ini merupakan sebuah antarmuka untuk berkomunikasi dengan perangkat, melalui bus komputer tertentu atau komunikasi subsistem perangkat keras yang terhubung, memberikan perintah kepada dan/atau menerima data dari perangkat, dan di ujung lain, diperlukan antarmuka untuk operasi sistem dan aplikasi perangkat lunak. Ini adalah program hardware-dependent komputer khusus yang mana juga membuat sistem operasi menentukan program lain yang dijalankan, biasanya sistem operasi atau paket aplikasi perangkat lunak atau program komputer yang berjalan dibawah kernel sistem operasi, untuk berinteraksi secara transparan dengan perangkat keras, dan biasanya menyediakan syarat kebutuhan penanganan interupsi untuk kebutuhan antarmuka perangkat keras time-dependent yang asinkron.

Tujuan kunci desain dari driver perangkat adalaha abstraksi. Setiap model perangkat keras (bahkan dalam kelas perangkat yang sama) adalah berbeda. model yang lebih baru juga dirilis oleh produsen yang memberikan performa yang lebih handal atau lebih baik dan model-model baru sering dikontrol dengan cara yang berbeda. Komputer dan sistem operasi mereka tidak dapat diharapkan untuk mengetahui bagaimana mengontrol setiap perangkat, baik sekarang dan di masa depan. Untuk mengatasi masalah ini, sistem operasi dasarnya mendikte bagaimana setiap jenis perangkat harus dikontrol. Fungsi driver perangkat ini kemudian menerjemahkan perintah fungsi panggilan sistem operasi ke panggilan perangkat tertentu. Dalam teori perangkat baru, yang mana dikendalikan dengan cara baru, harus berfungsi dengan benar jika driver yang cocok tersedia. Driver baru ini akan memastikan bahwa perangkat muncul untuk beroperasi seperti biasa dari sudut pandang sistem operasi.
Dalam versi Windows sebelum Vista dan versi Linux sebelum 2.6, semua eksekusi driver adalah kooperatif, yang berarti bahwa jika driver memasuki infinite loop akan membekukan sistem. revisi lebih baru dari sistem operasi ini menggabungkan kernel preemption, dimana kernel menginterrupt driver untuk memberikan tugas, dan kemudian memisahkan diri dari proses sampai menerima respons dari device driver, atau memberinya lebih banyak tugas untuk dilakukan.


Jaringan
Saat ini sebagian besar sistem operasi mendukung berbagai protokol, perangkat keras, dan aplikasi jaringan untuk mereka gunakan. Ini berarti bahwa komputer yang menjalankan sistem operasi berbeda dapat berpartisipasi dalam jaringan umum untuk berbagi sumber daya seperti komputer, file, printer, dan scanner baik menggunakan koneksi kabel atau nirkabel. Jaringan pada dasarnya dapat memungkinkan sistem operasi komputer untuk mengakses sumber daya dari komputer remote untuk mendukung fungsi yang sama jika sumber daya tersebut terhubung langsung ke komputer lokal. Ini mencakup semuanya mulai dari komunikasi sederhana, untuk menggunakan sistem file jaringan atau bahkan berbagi grafis atau perangkat keras suara komputer lain. Beberapa layanan jaringan mengizinkan sumber daya dari komputer untuk diakses secara transparan, seperti SSH yang memungkinkan pengguna jaringan mengakses langsung ke antarmuka baris perintah komputer.

Jaringan klien/server melibatkan sebuah program pada komputer di suatu tempat yang terhubung melalui jaringan ke komputer lain, yang disebut server. Server menawarkan (atau host) berbagai layanan untuk komputer dan pengguna jaringan lainnya. Layanan ini biasanya diberikan melalui port atau access point yang telah dinomori melewati alamat jaringan server. Setiap nomor port biasanya dihubungkan dengan maksimum satu program yang berjalank, yang bertanggung jawab untuk menangani permintaan ke port tersebut. Sebuah daemon, saat menjadi program pengguna, pada gilirannya dapat mengakses sumber daya perangkat keras lokal pada komputer tersebut dengan mengirimkan permintaan ke kernel sistem operasi.
Banyak sistem operasi mendukung satu vendor tertentu atau lebih atau protokol jaringan terbuka, misalnya, SNA pada IBM sistem, DECnet pada sistem dari Digital Equipment Corporation, dan protokol khusus Microsoft (SMB) pada Windows. Protokol khusus untuk tugas-tugas tertentu mungkin juga didukung seperti NFS untuk mengakses file. Protokol seperti ESound, atau esd dapat dengan mudah diperluas melalui jaringan untuk menyediakan suara dari aplikasi lokal, pada sound hardware sebuah sistem remote.


Keamanan
Sebuah komputer yang aman tergantung pada beberapa teknologi yang bekerja sebagaimana mestinya. 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 diizinkan untuk diproses, dan lain-lain yang tidak boleh diproses. Sementara beberapa sistem hanya dapat membedakan antara "hak istimewa" dan " hak non-istimewa", sistem umumnya memiliki bentuk identitas pemohon, seperti nama pengguna. Untuk membuat identitas mungkin ada proses otentikasi. Seringkali nama pengguna harus dikutip, dan masing-masing username memiliki sebuah password. Metode lainnya untuk otentikasi, seperti kartu magnetik atau data biometrik, mungkin digunakan sebagai gantinya. Dalam beberapa kasus, khususnya koneksi dari jaringan, sumber daya dapat diakses tanpa otentikasi sama sekali (seperti membaca file melalui network share). Juga tercakup oleh konsep identitas pemohon yakni otorisasi; pelayanan dan sumber daya tertentu yang dapat diakses oleh pemohon saat login ke sistem yang terikat pada akun user pemohon atau pada berbagai kelompok konfigurasi user yang dimiliki pemohon.
Tambahannya untuk mengizinkan/melarang model keamanan, sistem dengan tingkat keamanan yang tinggi juga akan menawarkan pilihan audit. Hal ini akan memungkinkan pelacakan permintaan untuk akses terhadap sumber daya (seperti, "siapa yang telah membaca file ini?"). Keamanan internal, atau keamanan dari program yang sudah berjalan hanya memungkinkan jika semua permintaan yang mungkin berbahaya harus dilakukan melalui interupsi ke kernel sistem operasi. Jika program dapat mengakses hardware secara langsung dan sumber daya, mereka tidak dapat dijamin aman.
Keamanan eksternal melibatkan permintaan dari luar komputer, seperti login di konsol yang terhubung atau beberapa jenis koneksi jaringan. Permintaan eksternal sering melewati device driver ke kernel sistem operasi, di mana mereka dapat dikirimkan ke aplikasi, atau dilakukan secara langsung. Keamanan sistem operasi telah lama menjadi perhatian karena data yang sangat sensitif berada pada komputer, baik yang bersifat komersial dan militer. Departemen Pertahanan Amerika Serikat (Department of Defense / DoD) menciptakan Trusted Computer System Evaluation Criteria (TCSEC) yang merupakan standar yang menetapkan persyaratan dasar untuk menilai efektivitas keamanan. Hal ini menjadi sangat penting untuk para pembuat sistem operasi, karena TCSEC digunakan untuk mengevaluasi, mengklasifikasi dan memilih sistem komputer yang dipertimbangkan untuk pengolahan, penyimpanan dan pengambilan informasi sensitif atau rahasia.
Layanan jaringan meliputi penawaran seperti file sharing, layanan cetak, email, situs web, dan file transfer protokol (FTP), sebagian besar yang dapat membahayakan keamanan. Di garis depan keamanan adalah perangkat keras yang dikenal sebagai firewall atau sistem intrusi deteksi/pencegahan. Pada tingkat sistem operasi, ada sejumlah firewall perangkat lunak yang tersedia, serta sistem intrusi deteksi/pencegahan. Sebagian besar sistem operasi modern menyediakan perangkat lunak firewall, yang diaktifkan secara default. Sebuah perangkat lunak firewall dapat dikonfigurasi untuk mengizinkan atau menolak lalu lintas jaringan ke atau dari layanan atau aplikasi yang berjalan pada sistem operasi. Oleh karena itu, seseorang dapat menginstal dan menjalankan layanan yang tidak aman, seperti Telnet atau FTP, dan tidak harus terancam oleh suatu pelanggaran keamanan karena firewall akan menolak semua lalu lintas yang mencoba untuk menyambung ke layanan pada port tersebut.
Strategi alternatif, dan hanya strategi sandbox yang tersedia dalam sistem yang tidak memenuhi persyaratan virtualisasi Popek dan Goldberg, adalah sistem operasi yang tidak menjalankan program-program pengguna sebagai kode native, tapi mengemulasikan prosesor atau menyediakan host untuk sistem berbasis kode-p seperti Java.
Keamanan internal sangat relevan untuk sistem multi-user, yang memungkinkan setiap pengguna sistem untuk memiliki file pribadi yang mana pengguna lain tidak dapat merusak atau membacanya. Keamanan internal juga penting jika audit digunakan, karena program bisa berpotensi mem-bypass sistem operasi, termasuk melewati audit.

Sistem operasi real-time
Sebuah sistem operasi real-time / waktu nyata (RTOS) adalah sistem operasi multitasking yang ditujukan untuk aplikasi dengan tenggat waktu tetap (komputasi real-time). aplikasi tersebut termasuk beberapa sistem embedded kecil, mesin pengendali mobil, robot industri, pesawat ruang angkasa, kontrol industri, dan beberapa sistem komputasi skala-besar.
Contoh sistem operasi real-time skala besar sebelumnya adalah sebuah Fasilitas Pengolahan Transaksi yang dikembangkan oleh American Airlines dan IBM untuk Sistem Reservasi Sabre Airline.
Sistem embedded memiliki tenggat waktu yang tetap menggunakan sistem operasi real-time seperti VxWorks, PikeOS, eCos, QNX, MontaVista Linux dan RTLinux. Windows CE adalah sistem operasi real-time yang membagi API yang mirip untuk desktop Windows, tetapi tidak membagi basis kode desktop Windows.
Beberapa sistem embedded menggunakan sistem operasi seperti Symbian OS, Palm OS, BSD, dan GNU/Linux, walaupun sistem operasi tersebut tidak mendukung komputasi real-time.

Pengembangan hobi
Pengembangan sistem operasi adalah salah satu dari banyak pilihan terlibat dan teknis untuk hobi komputasi. Sebuah sistem operasi hobi diklasifikasikan sebagai salah satu yang telah ditulis dari awal (tidak didasarkan pada sistem yang lain) dan memiliki beberapa pengembang yang bekerja di waktu luang mereka. Pembangunan biasanya dimulai dengan sistem operasi yang ada. Hobi adalah pengembangan mereka sendiri, atau mereka berinteraksi dalam sebuah kelompok individu yang relatif kecil dan tidak terstruktur yang memiliki semua kesamaan situasi dengan basis kode yang sama. Contoh sebuah sistem operasi hobi termasuk Syllable dan ReactOS.

Keanekaragaman sistem operasi dan portabilitas
Perangkat lunak aplikasi umumnya ditulis untuk digunakan pada sistem operasi tertentu, dan kadang-kadang bahkan untuk hardware tertentu. Ketika port aplikasi berjalan di OS lain, fungsi yang dibutuhkan oleh aplikasi tersebut mungkin diimplementasikan secara berbeda oleh OS (nama-nama fungsi, makna argumen, dll) yang membutuhkan aplikasi untuk disesuaikan, diubah, atau dipertahankan.
Biaya dalam mendukung keragaman sistem operasi dapat dihindari dengan menulis aplikasi terhadap platform perangkat lunak seperti Java, atau Qt untuk web browser. Abstraksi ini telah menanggung biaya adaptasi terhadap sistem operasi tertentu dan sistem library mereka.
Pendekatan lain adalah untuk vendor sistem operasi untuk mengadopsi standar. Misalnya, POSIX dan lapisan abstraksi OS menyediakan kesamaan yang mengurangi biaya port.



VSistem operasi [dalam bahasa Inggris: operating system atau OS] adalah perangkat lunak pada komputer yang mengatur jalannya program yang berbeda yang menggunakan perangkat keras komputer tersebut, dan mengatur cara pengguna mengendalikan komputer. Sistem Operasi juga merupakan bidang studi dalam Ilmu Komputer Terapan. Sistem operasi ditemukan pada hampir semua perangkat yang berisi komputer dengan beberapa program — dari telepon seluler dan konsol video game sampai superkomputer dan server web. Sistem operasi adalah platform dua sisi, membawa konsumen (sisi pertama) dan pengembang program (sisi kedua) bersama-sama dalam satu pasar. Beberapa sistem operasi modern yang populer untuk komputer pribadi diantaranya Microsoft Windows, Mac OS X, dan Linux.

Ringkasan
Karena komputer-komputer terdahulu sering dibangun hanya satu tugas, seperti kalkulator, tidak terdapat sistem operasi pada bentuk mereka yang modern dan lebih kompleks sampai tahun 1960-an. Saat komputer berevolusi menjadi perangkat yang dapat menjalankan program yang berbeda berturut-turut, programer mulai memasukkan library dari program umum (dalam bentuk kode komputer) ke komputer untuk menghindari duplikasi dan mempercepat proses. Akhirnya, komputer mulai dibangun agar secara otomatis beralih dari satu tugas ke tugas berikutnya. Penciptaan library runtime untuk mengelola pemrosesan dan kecepatan pencetakan datang berikutnya, yang berevolusi menjadi program yang bisa menafsirkan berbagai jenis bahasa pemrograman menjadi kode mesin. Ketika komputer pribadi buatan perusahaan seperti Apple Inc, Atari, IBM dan Amiga menjadi populer pada 1980-an, vendor mulai menambahkan fitur seperti penjadwalan pemeliharaan perangkat lunak dan perangkat keras.

Suatu sistem operasi dapat dibagi menjadi beberapa bagian yang berbeda. Salah satu bagian yang paling penting adalah kernel, yang mengontrol proses tingkat rendah yang rata-rata pengguna biasanya tidak dapat melihatnya: mengendalikan bagaimana memori membaca dan menulis, urutan proses yang dijalankan, bagaimana informasi yang diterima dan dikirim oleh perangkat seperti monitor, keyboard dan mouse, dan memutuskan bagaimana menginterpretasikan informasi yang diterima oleh jaringan. User interface adalah bagian dari sistem operasi yang berinteraksi dengan pengguna komputer secara langsung, yang memungkinkan mereka untuk mengontrol dan menggunakan program. Antarmuka pengguna terkadang grafikal dengan ikon dan desktop, atau tekstual, dengan baris perintah. Fitur lain yang serupa adalah antarmuka pemrograman aplikasi, yang merupakan sebuah set layanan dan  kode library yang memungkinkan aplikasi berinteraksi satu sama lain, serta sistem operasi itu sendiri. Tergantung pada sistem operasi, banyak komponen tidak dapat dianggap sebagai bagian yang sebenarnya. Sebagai contoh, Windows menganggap antarmuka pengguna untuk menjadi bagian dari sistem operasi, sedangkan banyak versi Linux tidak.

Sejarah
Pada awal 1950-an, sebuah komputer hanya dapat mengeksekusi satu program pada satu waktu. Setiap user dapat menggunakan satu-satunya komputer dan akan tiba pada waktu yang terjadwal dengan program dan data pada kartu kertas dan tape berlubang. Program ini akan dimasukkan ke dalam mesin, dan mesin akan mulai bekerja sampai program selesai atau crash. Program umum bisa men-debug melalui panel depan beralih menggunakan switch dan lampu panel. Dikatakan bahwa Alan Turing adalah seorang master ini pada awal mesin Manchester Mark 1, dan ia sudah menurunkan konsepsi primitif dari suatu sistem operasi dari prinsip-prinsip dari mesin Turing Universal.

Kemudian mesin datang dengan library untuk software, yang akan dikaitkan dengan program user untuk membantu operasi seperti input dan output dan menghasilkan kode komputer dari  kode simbolis yang dapat dibaca manusia. Ini adalah asal mula dari sistem operasi modern. Namun, mesin tersebut masih menjalankan pekerjaan tunggal pada suatu waktu.
Gambar 1. Mark Manchester menjadi lebih dari sekedar kalkulator yang kompleks dengan membiarkan programmer menjalankan berbagai jenis proses, salah satu gagasan awal dari suatu sistem operasi.
(Perbesar)






Mainframes
Di tahun 1950-an, banyak fitur-fitur utama dirintis di bidang sistem operasi, termasuk pengolahan batch, input/output interrupt, buffering, multitasking, spooling, dan library runtime. Fitur-fitur tersebut disertakan atau tidak dalam perangkat lunak aplikasi terdapat pada opsi aplikasi pemrograman, bukan di sistem operasi terpisah yang digunakan oleh semua aplikasi. Pada tahun 1959 Sistem Operasi SHARE dirilis sebagai utilitas terpadu untuk mainframe IBM 704 dan IBM 709.

Konsep OS tunggal ini mencakup seluruh garis produk yang sangat penting bagi keberhasilan System/360 dan, pada kenyataannya, sistem operasi mainframe IBM saat ini adalah keturunan jauh dari sistem aslinya; aplikasi yang ditulis untuk OS/360 masih dapat berjalan pada mesin modern. Pada pertengahan 70-an, para MVS, keturunan OS/360 menawarkan implementasi pertama menggunakan RAM sebagai cache transparan untuk data.


Gambar 2. OS/360 diletakkan pada semua komputer mainframe IBM awal tahun 1964, termasuk komputer yang membantu NASA menempatkan manusia di bulan
(Perbesar)











OS/360 juga memelopori konsep bahwa sistem operasi melacak semua sumber daya sistem yang digunakan, termasuk program dan alokasi ruang data di memori utama dan ruang file dalam penyimpanan sekunder, dan penguncian file selama update. Ketika proses ini dihentikan karena alasan apapun, semua sumber daya tersebut kembali diklaim oleh sistem operasi.
Sebuah sistem alternatif CP-67 memulai keseluruhan baris sistem operasi yang difokuskan pada konsep mesin virtual.
Control Data Corporation mengembangkan sistem operasi SCOPE pada tahun 1960, untuk pemrosesan batch. Dalam kerjasamanya dengan Universitas Minnesota, KRONOS dan kemudian sistem operasi NOS tersebut dikembangkan selama tahun 1970-an, yang mendukung batch simultan dan penggunaan time sharing. Seperti banyak sistem time sharing komersial, antarmukanya adalah ekstensi dari sistem operasi Dartmouth BASIC, salah satu upaya merintis time sharing dan bahasa pemrograman. Pada akhir 1970-an, Control Data dan Universitas Illinois mengembangka sistem operasi PLATO, yang menggunakan panel display plasma dan jaringan time sharing jarak jauh. Plato sangat inovatif untuk saat itu, meliputi real-time chatting, dan game grafis multi-user. Burroughs Corporation memperkenalkan B5000 pada tahun 1961 dengan sistem operasi MCP (Master Control Program). B5000 adalah mesin stack yang dirancang untuk secara eksklusif mendukung bahasa tingkat tinggi tanpa bahasa mesin atau assembler, dan memang MCP adalah OS pertama yang ditulis secara khusus dalam bahasa tingkat tinggi – ESPOL , sebuah dialek dari ALGOL. MCP juga memperkenalkan banyak inovasi lainnya, seperti menjadi implementasi komersial pertama dari memori virtual. Selama pengembangan AS400, IBM melakukan pendekatan pada lisensi MCP Burroughs untuk dijalankan pada perangkat keras AS400. Proposal ini telah ditolak oleh manajemen Burroughs untuk melindungi produksi perangkat keras yang ada. MCP masih digunakan hari ini di Unisys ClearPath / garis komputer MCP.
UNIVAC, produsen komputer komersial pertama, menghasilkan serangkaian sistem operasi EXEC. Seperti semua sistem main-frame terdahulu, ini adalah sistem berorientasi batch yang mengatur drum magnetik, disk, pembaca kartu dan printer line. Pada tahun 1970-an, UNIVAC menghasilkan sistem Real-Time Basic (RTB) untuk mendukung time sharing skala besar, juga dipolakan setelah sistem Dartmouth BASIC.
General Electric dan MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS), yang memperkenalkan konsep ringed security privilege level. Setelah akuisisi oleh Honeywell namanya diubah menjadi General Comprehensive Operating System (GCOS).
Digital Equipment Corporation mengembangkan banyak sistem operasi untuk berbagai jalur komputer, termasuk sistem time sharing TOPS-10 dan TOPS-20 untuk sistem kelas 36-bit PDP-10. Sebelum penggunaan luas dari UNIX, TOPS-10 adalah sebuah sistem yang populer terutama di universitas, dan di komunitas ARPANET terdahulu.
Pada akhir tahun1960-an sampai akhir 1970-an, beberapa kemampuan perangkat keras berevolusi yang memungkinkan software yang mirip atau software port bekerja di lebih dari satu sistem. Sistem terdahulu sudah menggunakan microprogramming untuk mengimplementasikan fitur pada sistem mereka dalam rangka untuk memungkinkan arsitektur dasar yang berbeda muncul menjadi sama dengan arsitektur lain dalam satu rangkaian. Faktanya sebagian besar sistem 360 setelah 360/40 (kecuali 360/165 dan 360/168) telah mengimplementasi mikroprogram. Tapi beberapa saat kemudian lainnya mencapai kompatibilitas aplikasi yang terbukti lebih signifikan.
Investasi besar dalam perangkat lunak untuk sistem tersebut dibuat sejak tahun 1960-an menyebabkan sebagian besar produsen komputer asli untuk terus mengembangkan sistem operasi yang kompatibel dengan perangkat keras. Sistem operasi mainframe terkemuka yang mendukung mencakup:
  • Burroughs MCP – B5000, 1961 to Unisys Clearpath/MCP, present.
  • IBM OS/360 – IBM System/360, 1966 to IBM z/OS, present.
  • IBM CP-67 – IBM System/360, 1967 to IBM z/VM, present.
  • UNIVAC EXEC 8 – UNIVAC 1108, 1967, to OS 2200 Unisys Clearpath Dorado, present.

Mikrokomputer
Mikrokomputer pertama tidak memiliki kemampuan atau perlu sistem operasi rumit yang telah dikembangkan untuk mainframe dan mini; sistem operasi minimalis tersebut dikembangkan, terkadang diload dari ROM dan dikenal sebagai Monitor. Satu sistem operasi berbasis disk awal yang terkenal adalah CP/M, yang mendukung pada banyak microcomputers terdahulu dan yang telah ditiru di MS-DOS, yang menjadi sangat populer sebagai sistem operasi yang dipilih untuk PC IBM (versi IBM itu disebut IBM DOS atau PC DOS ), penerusnya membuat Microsoft. Apple Computer Inc tahun 80-an (sekarang Apple Inc) meninggalkan mikrokomputer seri Apple II yang populer untuk memperkenalkan komputer Apple Macintosh dengan Graphical User Interface (GUI)  yang inovatif ke Mac OS.
Gambar 3 (kiri). PC-DOS adalah OS awal untuk komputer pribadi yang menampilkan antarmuka baris perintah.
(Perbesar)

Gambar 4 (kanan). Mac OS oleh Apple Komputer menjadi OS luas pertama yang memiliki fitur GUI. Banyak fitur-fiturnya seperti jendela dan ikon kemudian akan menjadi biasa di GUI.

Pengenalan CPU chip Intel 80386 dengan arsitektur 32-bit dan kemampuan paging, menyediakan komputer pribadi dengan kemampuan untuk menjalankan sistem operasi multitasking seperti minicomputer dan mainframe yang terdahulu. Microsoft menanggapi kemajuan ini dengan mempekerjakan Dave Cutler, yang telah mengembangkan sistem operasi VMS untuk Digital Equipment Corporation. Dia akan memimpin pengembangan sistem operasi Windows NT, yang tetap menjadi dasar untuk garis sistem operasi Microsoft. Steve Jobs, rekan pendiri Apple Inc, memulai NeXT Computer Inc, yang mengembangkan sistem operasi NeXTSTEP mirip Unix. NeXTSTEP kemudian akan diakuisisi dan digunakan oleh Apple Inc, bersama dengan kode dari FreeBSD sebagai inti dari Mac OS X.
Proyek GNU dimulai oleh aktivis dan programmer Richard Stallman dengan tujuan mengganti perangkat lunak sempurna yang gratis menjadi sistem operasi UNIX. Saat proyek ini sangat sukses pada duplikasi fungsi berbagai bagian UNIX, pengembangan GNU Hurd kernel terbukti tidak produktif. Pada tahun 1991 mahasiswa ilmu komputer Finlandia, Linus Torvalds, dengan kerja sama dari relawan melalui Internet, merilis versi pertama dari kernel Linux. Kemudian bergabung dengan userland dan sistem perangkat lunak GNU untuk membentuk sebuah sistem operasi yang sempurna. Sejak itu, kombinasi dari dua komponen utama biasanya telah disebut sebagai "Linux" oleh industri perangkat lunak, sebuah konvensi penamaan yang mana Stallman dan Free Software Foundation tetap menentangnya, malahan lebih suka nama "GNU/Linux". Berkeley Software Distribution, yang dikenal sebagai BSD, adalah turunan UNIX yang didistribusikan oleh Universitas California, Berkeley, dimulai pada tahun 1970-an. Didistribusikan secara bebas dan porting untuk banyak minikomputer, akhirnya juga digunakan pada PC, sebagian besar sebagai FreeBSD, NetBSD, dan OpenBSD.

Sistem Operasi

Microsoft Windows
Microsoft Windows adalah keluarga milik sistem operasi yang paling umum digunakan di komputer pribadi. Ini adalah keluarga sistem operasi yang paling umum untuk komputer pribadi, dengan sekitar 90% dari pangsa pasar. Saat ini, sebagian besar keluarga Windows yang banyak digunakan adalah versi Windows XP, dirilis pada tanggal 25 Oktober 2001. Versi terbaru adalah Windows 7 untuk komputer pribadi dan Windows Server 2008 R2 untuk server.





Gambar 5. Sistem operasi Windows XP untuk komputer pribadi.
(Perbesar)






Berasal pada tahun 1981 sebagai add-on untuk sistem operasi tua MS-DOS untuk PC IBM. Dirilis pada tahun 1985, Microsoft mendominasi dunia bisnis komputer pribadi, dan melanjutkan untuk menetapkan sejumlah standar industri dan aplikasi biasa. Dimulai dengan Windows XP, semua versi modern didasarkan pada kernel Windows NT. Arus versi Windows berjalan pada prosesor x86 dan x86-64, meskipun versi lama kadang-kadang mendukung arsitektur lain.

Windows juga digunakan pada server, aplikasi pendukung seperti server web dan server database. Dalam beberapa tahun terakhir, Microsoft telah menghabiskan pemasaran yang signifikan serta uang penelitian & pengembangan untuk menunjukkan bahwa Windows mampu menjalankan aplikasi perusahaan, yang mengakibatkan harga/catatan kinerja yang konsisten dan penerimaan yang signifikan dalam pasar perusahaan. Namun, penggunaan di server tidak begitu luas seperti komputer pribadi, dan di sini Windows aktif bersaing dengan Linux dan BSD untuk pangsa pasar, sementara masih menangkap mayoritas oleh beberapa account.


Mac OS X
Mac OS X adalah sebuah garis dari sebagian sistem operasi grafis eksklusif yang dikembangkan, dipasarkan, dan dijual oleh Apple Inc, yang terakhir adalah pre-loaded pada saat pengiriman semua komputer Macintosh. Mac OS X adalah penerus asli Mac OS, yang telah menjadi sistem operasi primer Apple sejak tahun 1984. Tidak seperti pendahulunya, Mac OS X adalah sistem operasi UNIX yang dibangun di atas teknologi yang telah dikembangkan di NeXT melalui paruh kedua tahun 1980-an dan sampai Apple membeli perusahaan di awal 1997.

Gambar 6. Standar antarmuka pengguna Mac OS X
(Perbesar)








Sistem operasi ini pertama kali dirilis pada tahun 1999 bernama Mac OS X Server 1.0, dengan versi berorientasi desktop (Mac OS X v10.0) berikutnya di bulan Maret 2001. Sejak itu, enam edisi "klien" dan "server" Mac OS X yang lebih jelas telah dirilis, yang paling terakhir adalah Mac OS X v10.6 , yang pertama kali dibuat tersedia pada tanggal 28 Agustus 2009. Releasenya Mac OS X dinamai kucing besar; versi Mac OS X adalah "Snow Leopard".
Edisi server, Mac OS X Server, secara arsitektur identik dengan mitra desktopnya, tetapi biasanya berjalan pada garis hardware Macintosh server milik Apple. Mac OS X Server mencakup manajemen kerja kelompok dan perangkat lunak administrasi yang menyediakan akses simple ke layanan kunci jaringan, termasuk agen transfer mail, sebuah server Samba, sebuah LDAP server, sebuah nama domain server, dan lain-lain.


Unix dan sistem operasi serupa Unix
Ken Thompson menulis B, terutama berdasarkan BCPL, yang digunakan untuk menulis Unix, berdasarkan pengalamannya di proyek MULTICS. B digantikan oleh C, dan Unix berkembang menjadi kompleks, keluarga besar sistem operasi yang terkait yang telah berpengaruh dalam setiap sistem operasi modern. The keluarga mirip Unix (Unix-like) adalah beragam grup sistem operasi, dengan beberapa sub-kategori utama termasuk System V, BSD, dan GNU/Linux. Nama "UNIX" adalah merek dagang dari The Open Group yang perizinannya digunakan untuk sistem operasi yang telah terbukti sesuai dengan definisi mereka. "Unix-like" umumnya digunakan untuk merujuk ke set besar sistem operasi yang mirip Unix yang asli.

Gambar 7. Evolusi sistem Unix
(Perbesar)






Sistem yang serupa Unix berjalan pada berbagai arsitektur mesin. Mereka banyak digunakan untuk server dalam bisnis, serta workstation dalam bidang akademik dan lingkungan engineering. Unix varian gratis, seperti GNU/Linux dan BSD, adalah sistem operasi yang populer di daerah-daerah tersebut.
Beberapa varian Unix seperti HP UX dan AIX IBM yang dirancang untuk berjalan hanya pada hardware vendor itu. Lainnya, seperti Solaris, dapat berjalan di berbagai jenis hardware, termasuk x86 server dan PC. Apple Mac OS X, sebuah kernel hibrida berbasis varian BSD berasal dari NeXTSTEP, Mach, dan FreeBSD, telah menggantikan Apple Mac OS sebelumnya (non-Unix).
Interoperabilitas Unix dicari dengan mendirikan standar POSIX. Standar POSIX dapat diterapkan pada setiap sistem operasi, meskipun pada awalnya dibuat untuk berbagai varian Unix.


BSD dan keturunannya
Sebuah subkelompok dari keluarga Unix adalah keluarga Berkeley Software Distribution, yang termasuk FreeBSD, NetBSD, dan OpenBSD. Sistem-sistem operasi yang paling sering ditemukan pada webserver, meskipun mereka juga dapat berfungsi sebagai OS komputer pribadi. Internet berutang banyak atas keberadaan BSD, karena banyak protokol sekarang yang umum digunakan oleh komputer untuk melakukan koneksi, mengirim dan menerima data melalui jaringan yang diimplementasikan secara luas dan disempurnakan di BSD. WWW (World Wide Web) juga yang pertama menunjukkan pada sejumlah komputer yang menjalankan sebuah sistem operasi berbasis pada BSD yang disebut NextStep.

Gambar 8. Server pertama World Wide Web yang berjalan dalam NeXTSTEP, berbasis BSD.
(Perbesar)







BSD berakar pada Unix. Pada tahun 1974, Universitas California, Berkeley menginstall sistem Unix pertama. Seiring waktu, mahasiswa dan staf di departemen ilmu komputer di sana mulai menambahkan program baru untuk membuat sesuatu menjadi lebih mudah, seperti editor teks. Ketika Berkely menerima komputer VAX baru pada tahun 1978 dengan Unix yang telah terinstal, mahasiswa mengubah Unix lebih banyak untuk mengambil keuntungan dari kemungkinan hardware komputer. Defense Advanced Research Projects Agency dari Departemen Pertahanan Amerika memperhatikan, dan memutuskan untuk mendanai proyek tersebut. Banyak sekolah, perusahaan, dan organisasi pemerintah memperhatikan dan mulai untuk menggunakan versi Unix Berkeley, bukan yang resmi yang didistribusikan oleh AT&T. Steve Jobs, setelah meninggalkan Apple Inc pada tahun 1985, membentuk NeXT Inc, sebuah perusahaan yang memproduksi komputer high-end yang berjalan pada variasi BSD yang disebut NeXTSTEP. Salah satu komputer tersebut digunakan oleh Tim Berners-Lee sebagai server web pertama untuk menciptakan World Wide Web.
Pengembang seperti Keith Bostic mendorong proyek tersebut untuk mengganti kode non-free yang berasal dari Bell Labs. Setelah hal ini selesai dilakukan, AT&T menggugat. Akhirnya, setelah dua tahun sengketa hukum, proyek BSD maju, dan melahirkan sejumlah derivatif bebas, seperti FreeBSD dan NetBSD. Namun, penungguan dua tahun telah menyiapkan panggung untuk dua proyek yang akhirnya akan teratasi baik BSD dan Unix: GNU dan Linux.


Plan 9
Ken Thompson, Dennis Ritchie, dan Douglas McIlroy di Bell Labs merancang dan mengembangkan bahasa pemrograman C untuk membangun sistem operasi Unix. Programmer di Bell Labs melanjutkan untuk mengembangkan Plan 9 dan Inferno, yang dirancang untuk lingkungan terdistribusi modern. Plan 9 dirancang dari awal untuk menjadi sistem operasi jaringan, dan memiliki grafis built-in, tidak seperti Unix, yang menambahkan fitur ini untuk perancangan yang akan datang. Saat ini dirilis di bawah Lisensi Publik Lucent. Inferno dijual ke Vita Nuova Holdings dan telah dirilis di bawah lisensi GPL/MIT.

Gambar 9. Plan 9
Linux dan GNU
Linux adalah nama generik untuk anggota dalam keluarga sistem operasi yang dapat ditemukan mulai dari superkomputer sampai jam tangan. Karena komponennya adalah open source, siapa saja dapat membaca dan memodifikasi kodenya. Karena itu, telah dimodifikasi untuk berbagai macam elektronik. Hal ini hanya digunakan 0,5-2% dari semua jumlah komputer pribadi, tetapi merupakan raksasa diam di dunia ponsel, server, dan embedded system. Linux telah menggantikan Unix di banyak tempat, dan digunakan pada 10 superkomputer paling kuat di dunia.

Gambar 10. Ubuntu, distribusi umum desktop Linux
(Perbesar)




Proyek GNU merupakan kolaborasi massa programmer yang berusaha untuk menciptakan sebuah sistem operasi yang sepenuhnya bebas dan terbuka yang mirip dengan Unix namun dengan kode yang benar-benar asli. Dimulai pada tahun 1983 oleh Richard Stallman, dan bertanggung jawab atas sebagian besar bagian varian Linux. Untuk alasan ini, Linux sering disebut GNU/Linux. Ribuan buah perangkat lunak untuk hampir semua sistem operasi berlisensi di bawah GNU General Public License. Sementara itu, kernel Linux dimulai sebagai proyek sisi Linus Torvalds, seorang mahasiswa dari Finlandia. Pada tahun 1991, Torvalds mulai bekerja di atasnya, dan diposting informasi tentang proyek di newsgroup untuk siswa komputer dan programer. Ia menerima gelombang dukungan dan sukarelawan yang akhirnya menciptakan sebuah kernel penuh. Programmer dari GNU memperhatikannya, dan anggota dari kedua proyek bekerja untuk mengintegrasikan bagian GNU yang telah selesaiselesai dalam kernel linux untuk menciptakan sistem operasi penuh.


Sistem Operasi Google Chrome
Chrome adalah sebuah sistem operasi berbasis kernel Linux dan didesain oleh Google. Ini sedang dalam pengembangan, dan penggunaannya ditujukan ke arah tipe tertentu dari netbook. target pengguna komputer Chrome yang menghabiskan sebagian besar waktu mereka di internet-secara teknis hanya web browser tanpa aplikasi lain, dan bergantung pada aplikasi internet yang digunakan dalam web browser untuk menyelesaikan tugas-tugas seperti pengolah kata dan melihat media.


Gambar 11. Sebuah desain yang diharapkan dari Google Chrome OS
(Perbesar)




Lainnya
sistem operasi lama yang masih digunakan di ceruk pasar yaitu OS/2 dari IBM dan Microsoft; Mac OS, non-Unix prekursor ke Apple Mac OS X; BeOS; XTS-300. Beberapa, terutama RISC OS, MorphOS dan AmigaOS 4 terus dikembangkan sebagai platform minoritas bagi masyarakat antusias dan aplikasi spesialis. OpenVMS dibentuk dari DEC, masih dalam pengembangan aktif oleh Hewlett-Packard. Namun sistem operasi lain yang digunakan hampir secara eksklusif dalam dunia akademis, untuk sistem operasi pendidikan atau untuk melakukan penelitian tentang konsep sistem operasi. Sebuah contoh khas dari sistem yang memenuhi kedua peran tersebut adalah MINIX, sedangkan untuk contoh Singularity digunakan murni untuk penelitian.


Komponen
Komponen dari suatu sistem operasi semuanya ada untuk membuat bagian-bagian komputer yang berbeda bekerja bersama. Semua perangkat lunak — dari database keuangan sampai editor film — butuh sistem operasi untuk menggunakan perangkat keras, apakah itu sesederhana seperti mouse atau keyboard atau kompleks seperti koneksi internet.

Antarmuka pengguna (User Interface)
Setiap komputer yang menerima semacam input dari manusia membutuhkan user interface, yang memungkinkan seseorang untuk berinteraksi dengan komputer. Sementara perangkat seperti keyboard, mouse dan touchscreen adalah hardwarenya, user interface adalah perangkat lunak untuk itu. Dua bentuk yang paling umum dari user interface memiliki sejarah menjadi Command-line interface, di mana perintah komputer diketik baris demi baris, dan user interface grafikal, di mana lingkungan visual (paling sering dengan windows, tombol, dan ikon ) hadir saat ini.




Gambar 12. Sebuah contoh baris perintah. Setiap perintah diketik setelah 'prompt', dan kemudian outputnya muncul di bawah. Perintah prompt saat ini di bagian bawah.
(Perbesar)






Graphical User Interfaces (GUI)
Sebagian besar sistem komputer modern mendukung antarmuka pengguna grafikal/GUI, dan sering menyertakannya mereka. Dalam beberapa sistem komputer, seperti implementasi asli dari Microsoft Windows dan Mac OS, GUI diintegrasikan ke dalam kernel .

Meskipun secara teknis GUI bukan layanan sistem operasi, menggabungkan dukungan untuk semuanya di dalam kernel sistem operasi dapat memungkinkan GUI menjadi lebih responsif dengan mengurangi jumlah switch konteks yang diperlukan GUI untuk menjalankan fungsi outputnya. Sistem operasi lainnya adalah modular, memisahkan subsistem grafis dari kernel dan Sistem Operasi. Pada 1980-an UNIX, VMS dan sebagainya memiliki sistem operasi yang dibangun dengan cara ini. GNU/Linux dan Mac OS X juga dibangun dengan cara ini. Rilis Modern dari Microsoft Windows seperti Windows Vista menerapkan subsistem grafis yang sebagian besar dalam user-space, namun versi graphics drawing routines antara Windows NT 4.0 dan Windows Server 2003 sebagian besar ada dalam ruang kernel. Windows 9x memiliki sedikit perbedaan antara antarmuka dan kernel.


Gambar 13. Sebuah contoh dari GUI. Program mengambil bentuk gambar pada layar, dan file, folder, dan aplikasi berbentuk ikon dan simbol. Sebuah mouse digunakan sebagai navigasi komputer.
(Perbesar)




Banyak sistem operasi komputer yang memungkinkan pengguna untuk menginstal atau menciptakan user interface yang mereka inginkan. Sistem Window X dalam hubungannya dengan GNOME atau KDE biasanya adalah setup pada kebanyakan Unix dan sistem Unix-like (BSD, GNU/Linux, Solaris). Sejumlah pengganti shell Windows telah dirilis untuk Microsoft Windows, yang menawarkan alternatif termasuk shell Windows, tapi shell itu sendiri tidak dapat dipisahkan dari Windows.
Banyak GUI berbasis Unix telah eksis dari waktu ke waktu, sebagian besar berasal dari X11. Kompetisi di antara berbagai vendor Unix (HP, IBM, Sun) menyebabkan banyak fragmentasi, meskipun upaya untuk standarisasi pada 1990-an untuk COSE dan CDE gagal sebagian besar karena berbagai alasan, akhirnya redup oleh adopsi GNOME dan KDE. Sebelum toolkit berbasis perangkat lunak bebas yang dan lingkungan desktop, Motif merupakan kombinasi toolkit/desktop umum (dan merupakan dasar bagi CDE dikembangkan).
GUI berevolusi dari waktu ke waktu. Sebagai contoh, Windows telah merubah antarmuka pengguna mereka yang hampir setiap kali versi utama baru Windows dilepaskan, dan GUI Mac OS berubah secara dramatis dengan pengenalan Mac OS X pada tahun 1999.


Kernel
Dengan bantuan dari firmware dan driver perangkat , sistem operasi menyediakan tingkat yang paling dasar atas kontrol semua perangkat keras komputer. Ia mengatur akses memori untuk program-program di RAM, menentukan program mana yang mendapatkan akses ke sumber daya perangkat keras, men-setup atau mereset state operasi CPU untuk pengoperasian yang optimal setiap saat, dan mengatur data untuk penyimpanan non-volatile jangka panjang dengan sistem file pada media seperti disk, tape, flash memory, dll.


Gambar 14. Kernel menghubungkan perangkat lunak aplikasi dengan perangkat keras komputer.
(Perbesar)






Eksekusi Program
Sistem operasi bertindak sebagai interface antara aplikasi dan perangkat keras. Pengguna berinteraksi dengan perangkat keras dari "sisi lain". Sistem operasi adalah satu set layanan yang menyederhanakan pengembangan aplikasi. Mengeksekusi program melibatkan penciptaan suatu proses oleh sistem operasi. Kernel menciptakan sebuah proses dengan menetapkan memori dan sumber daya lainnya, menetapkan prioritas untuk proses tersebut (dalam sistem multi-tasking), loading kode program ke dalam memori, dan melaksanakan program. Program ini kemudian berinteraksi dengan pengguna dan/atau perangkat lain dan melakukan fungsi yang ditujukan.


Interupsi (Interrupts)
Interupsi adalah pusat untuk sistem operasi, karena memberikan cara yang efisien untuk sistem operasi untuk berinteraksi dan bereaksi terhadap lingkungannya. Alternatifnya —sistem operasi "mengamati" berbagai sumber masukan bagi kegiatan (polling) yang memerlukan tindakan — dapat ditemukan dalam sistem yang lebih tua dengan tumpukan yang sangat kecil (50 atau 60 byte), tetapi tidak biasa dalam sistem modern dengan tumpukan cukup besar. Pemrograman berbasis interrupt secara langsung didukung oleh CPU yang paling modern. Interupsi memberikan sebuah komputer dengan cara menyimpan secara otomatis konteks register lokal, dan menjalankan kode tertentu dalam menanggapi event. Bahkan dasar komputer sangat mendukung hardware interrupts, dan memungkinkan programmer untuk menentukan kode yang dapat dijalankan ketika event terjadi.

Ketika interrupt diterima, hardware komputer secara otomatis menghentikan program apa pun yang sedang berjalan, menyimpan statusnya, dan menjalankan kode komputer sebelumnya yang terkait dengan interupsi; ini dapat disamakan dengan menempatkan bookmark dalam sebuah buku saat merespon panggilan telepon. Dalam sistem operasi modern, interrupt dihandel oleh kernel sistem operasi. Interupsi dapat berasal dari salah satu perangkat keras komputer atau dari program yang sedang bekerja.
Ketika sebuah perangkat keras memicu interupsi, kernel sistem operasi memutuskan bagaimana menangani event ini, secara umum dengan menjalankan beberapa kode pengolahan. Jumlah kode yang berjalan bergantung pada prioritas interrupt (misalnya: seseorang biasanya menanggapi alarm detektor asap sebelum menjawab telepon). Pengolahan interupsi perangkat keras adalah tugas yang biasanya didelegasikan kepada perangkat lunak yang disebut driver perangkat (device driver), yang dapat berupa bagian dari kernel sistem operasi, bagian dari program lain, atau keduanya. Device driver kemudian dapat menyampaikan informasi untuk sebuah program yang sedang berjalan dengan berbagai cara.
Program juga bisa memicu interrupt pada sistem operasi. Jika sebuah program ingin mengakses hardware misalnya, dapat meng-interrupt kernel sistem operasi, yang menyebabkan kontrol kembali ke kernel. Kernel kemudian akan memproses permintaan tersebut. Jika sebuah program ingin sumber daya tambahan (atau ingin memberikan sumber daya) seperti memori, ia akan memicu interrupt untuk mendapatkan perhatian kernel.


Mode terproteksi, modus supervisor, dan virtual mode
CPU Modern mendukung beberapa mode operasi. CPU yang memiliki kemampuan ini menggunakan setidaknya dua mode: modus terproteksi dan mode supervisor. Mode supervisor digunakan oleh kernel sistem operasi tingkat rendah untuk tugas-tugas yang membutuhkan akses tidak terlarang terhadap perangkat keras, seperti mengendalikan bagaimana memori ditulis dan dihapus, dan komunikasi dengan perangkat seperti kartu grafis. Modus proteksi, sebaliknya, digunakan untuk hampir segala sesuatu yang lain. Aplikasi beroperasi dalam modus terproteksi, dan hanya dapat menggunakan perangkat keras dengan berkomunikasi dengan kernel, yang mengendalikan segala sesuatu dalam mode supervisor. CPU mungkin memiliki cara lain yang serupa dengan modus yang dilindungi juga, seperti mode virtual untuk meniru jenis prosesor yang lebih tua, seperti sebagai prosesor 16-bit pada 32-bit prosesor, atau prosesor 32-bit pada 64-bit.



Gambar 15. Cincin privilege untuk x86 yang tersedia dalam modus terproteksi. Sistem operasi menentukan proses mana yang berjalan dalam modus masing-masing.
(Perbesar)






Ketika komputer pertama kali dijalankan, maka secara otomatis akan berjalan dalam mode supervisor. Beberapa program pertama berjalan di komputer, sebagai BIOS, bootloader dan sistem operasi memiliki akses tak terbatas ke perangkat keras - dan ini diperlukan karena, menurut definisi, menginisialisasi lingkungan yang dilindungi hanya dapat dilakukan di luar. Namun, ketika sistem operasi melewati kontrol ke program lain, hal itu menempatkan CPU ke dalam modus terproteksi.
Dalam modus terproteksi, program mungkin memiliki akses terbatas ke set instruksi CPU. Sebuah program pengguna dapat meninggalkan modus terproteksi hanya karena dipicu interrupt, menyebabkan kontrol untuk kembali ke kernel. Dengan cara ini sistem operasi dapat mempertahankan kontrol eksklusif atas hal-hal seperti perangkat keras dan akses ke memori.
Istilah "protected mode resource" biasanya merujuk kepada satu atau lebih register CPU, yang berisi informasi bahwa program yang berjalan tidak diperkenankan untuk mengubahnya. Usaha-usaha untuk mengubah sumber daya ini biasanya menyebabkan beralihnya ke modus supervisor, dimana sistem operasi dapat menangani percobaan operasi ilegal program ini (misalnya, dengan menutup program tersebut).


Manajemen Memori
sebuah kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola seluruh sistem memori yang sedang digunakan oleh program. Hal ini untuk memastikan bahwa program tidak mengganggu memori yang sudah digunakan oleh program lain. Ketika time share program, setiap program harus memiliki akses independen ke memori.

Manajemen memori kooperatif, digunakan oleh banyak sistem operasi terdahulu yang mengasumsikan bahwa semua program menggunakan manajemen memori kernel secara sukarela, dan tidak melebihi memori yang dialokasikan untuk mereka. Sistem manajemen memori ini hampir tidak pernah terlihat lagi, karena program sering mengandung bug yang dapat menyebabkan mereka melebihi batas penggunaan jatah memori yang dialokasikan. Jika suatu program gagal dapat menyebabkan memori yang digunakan oleh satu program atau lebih akan terpengaruh atau di-overwrite. Program jahat, atau virus dapat dengan sengaja mengubah memori program lain atau mungkin mempengaruhi operasi dari sistem operasi itu sendiri. Dengan manajemen memori kooperatif, hanya dibutuhkan satu program berbuat jahat untuk membuat sistem crash.
Perlindungan memori memungkinkan kernel untuk membatasi proses mengakses ke memori komputer. Berbagai metode perlindungan memori mulai eksis, termasuk segmentasi memori dan paging. Semua metode membutuhkan beberapa tingkat dari dukungan perangkat keras (seperti 80286 MMU) yang tidak ada di semua komputer.
Dalam kedua segmentasi dan paging, mode protektif tertentu meregister spesifikasi ke CPU alamat memori apa yang harus dapat diakses oleh program yang sedang berjalan. Upaya untuk mengakses alamat lain akan memicu interrupt yang akan menyebabkan CPU untuk memasukkan kembali modus supervisor, menempatkan kernel dalam komando. Ini disebut pelanggaran segmentasi atau seg-V untuk singkatnya, dan karena keduanya sulit untuk menentukan hasil yang bermakna untuk operasi semacam itu, dan karena biasanya merupakan tanda program yang jahat, kernel secara umum akan berusaha untuk mengakhiri program yang menyerang itu, dan akan melaporkan errornya.
Windows 3.1-Me memiliki beberapa tingkat perlindungan memori, namun program-program dengan mudah bisa menghindari kebutuhan untuk menggunakannya. Sebuah kesalahan perlindungan umum yang diproduksi menunjukkan pelanggaran segmentasi telah terjadi, namun sistem akan sering crash juga.


Memori virtual 
Penggunaan alamat memori virtual (seperti paging atau segmentasi) berarti kernel dapat memilih memori apa yang masing-masing program dapat menggunakan pada waktu tertentu, yang memungkinkan sistem operasi untuk menggunakan lokasi memori yang sama untuk banyak tugas.

Jika sebuah program mencoba mengakses memori maka tidak dalam jangkauan memori yang dapat diakses saat ini, tapi tetap saja telah dialokasikan untuk itu, kernel akan diinterupsi dengan cara yang sama saat program ini melebihi memori yang dialokasikan. Dalam UNIX, interupsi semacam ini disebut sebagai page fault.





Gambar 16. Banyak sistem operasi dapat "menipu" program menggunakan memori tersebar di seluruh hard disk dan RAM seolah-olah itu adalah salah satu potongan lanjutan memori yang disebut memori virtual.
(Perbesar)










Ketika kernel mendeteksi page fault umumnya akan menyesuaikan rentang memori virtual dari program yang dipicu itu, memberikan akses ke memori yang diminta. Hal ini memberikan kernel kuasa kebebasan lebih dimana memori aplikasi tertentu disimpan, atau bahkan apakah ia telah benar-benar telah dialokasikan.

Dalam sistem operasi modern, memori yang lebih jarang diakses dapat disimpan sementara pada disk atau media lain untuk membuat ruang yang disediakan untuk digunakan oleh program lain. Ini disebut swapping, sebagai daerah memori yang dapat digunakan oleh beberapa program, dan isi area memori dapat ditukarkan atau dipertukarkan tergantung permintaan.


Multitasking
Multitasking mengacu pada menjalankan beberapa program komputer independen pada komputer yang sama, memberikan kesan bahwa itu adalah melaksanakan tugas pada waktu yang sama. Karena kebanyakan komputer dapat melakukan paling banyak satu atau dua hal pada satu waktu, ini biasanya dilakukan melalui time-sharing, yang berarti bahwa setiap program menggunakan pembagian waktu komputer untuk mengeksekusi.

Sebuah kernel sistem operasi berisi bagian dari perangkat lunak yang disebut scheduler yang menentukan berapa banyak waktu yang akan digunakan untuk mengeksekusi setiap program, dan di mana urutan kontrol eksekusi harus dilalui program tersebut. Kontrol akan diteruskan ke proses oleh kernel, yang memungkinkan program untuk akses ke CPU dan memori. Kemudian, kontrol dikembalikan ke kernel melalui beberapa mekanisme, sehingga program lain diperbolehkan untuk menggunakan CPU. Ini disebut passing of control antara kernel dan aplikasi yang disebut context switch.
Sebuah model sebelumnya yang mana mengatur alokasi waktu untuk program yang disebut multitasking kooperatif. Dalam model ini, ketika kontrol akan diteruskan ke program oleh kernel, hal tersebut mengeksekusi selama yang diinginkan sebelum secara eksplisit mengembalikan kontrol ke kernel. Ini berarti bahwa program yang berbahaya atau tidak berfungsi tidak hanya mencegah program lain untuk menggunakan CPU, tetapi bisa membuat hang seluruh sistem jika memasuki sebuah loop tak terbatas.
Sistem operasi modern memperluas konsep hak permintaan aplikasi (preemptive) untuk device driver dan kode kernel, sehingga sistem operasi memiliki kontrol permintaan terlebih dahulu atas internal run-times.
Filosofi tersebut mengatur multitasking permintaan untuk memastikan semua program diberikan waktu yang teratur pada CPU. Ini berarti bahwa semua program harus dibatasi dalam berapa banyak waktu yang diizinkan untuk menggunakan CPU tanpa ada gangguan. Untuk mencapai hal ini, kernel sistem operasi modern menggunakan waktu interrupsinya. Sebuah timer modus proteksi diatur oleh kernel yang memicu kembali ke modus supervisor setelah waktu yang ditentukan telah berlalu.
Pada banyak sistem operasi single user, multitasking kooperatif sangatlah cukup, komputer rumah umumnya menjalankan sejumlah kecil program yang telah diuji dengan baik. Windows NT merupakan versi pertama Microsoft Windows yang menegaskan multitasking preemptive, tapi tidak mencapai pasar home user sampai Windows XP, (karena Windows NT ditargetkan pada para profesional.)


Akses disk dan sistem file
Akses ke data yang disimpan pada disk adalah fitur utama dari semua sistem operasi. Komputer menyimpan data pada disk menggunakan file, yang terstruktur dengan cara tertentu untuk memungkinkan akses lebih cepat, keandalan yang lebih tinggi, dan membuat penggunaan lebih baik dari ruang drive yang tersedia. Cara khusus di mana file tersebut disimpan pada disk yang disebut sistem berkas (file system), dan yang memungkinkan file memiliki nama dan atribut. Hal ini juga memungkinkan mereka untuk disimpan dalam hirarki direktori atau folder  yang diatur dalam sebuah pohon direktori.

Sistem operasi terdahulu umumnya mendukung satu jenis disk drive dan hanya satu jenis sistem file. File sistem sebelumnya sangat terbatas dalam kapasitas mereka, kecepatan, dan dalam jenis nama file dan struktur direktori yang bisa mereka gunakan. Keterbatasan ini sering mencerminkan keterbatasan dalam sistem operasi yang mereka rancang, sehingga sangat sulit bagi sebuah sistem operasi untuk mendukung lebih dari satu sistem file.


Gambar 17. Filesystem memungkinkan pengguna dan program untuk mengatur dan menyortir file di komputer, seringkali melalui penggunaan direktori (atau "folder")
(Perbesar)




Sementara banyak sistem operasi sederhana mendukung jangkauan yang terbatas pada pilihan untuk mengakses sistem penyimpanan, sistem operasi seperti UNIX dan GNU/Linux mendukung teknologi yang dikenal sebagai sistem file virtual atau VFS (virtual file system). Suatu sistem operasi seperti UNIX mendukung beragam perangkat penyimpanan, tanpa memperhatikan rancangan atau sistem file mereka yang akan diakses melalui antarmuka pemrograman aplikasi (API/application programming interface) umum. Hal ini membuat program tidak perlu untuk memiliki pengetahuan tentang perangkat yang mereka akses. sebuah VFS memungkinkan sistem operasi untuk menyediakan program dengan akses yang tidak terbatas pada jumlah perangkat dengan berbagai sistem berkas yang tak terbatas yang terinstall melalui penggunaan device driver dan file driver sistem khusus.
Sebuah perangkat penyimpanan yang terhubung seperti hard drive diakses melalui device driver. Driver perangkat memahami bahasa khusus drive dan mampu menerjemahkan bahasa tersebut menjadi bahasa standar yang digunakan oleh sistem operasi untuk mengakses semua drive disk. Pada UNIX, ini adalah bahasa block device.
Ketika kernel memiliki driver yang tepat di tempatnya, kemudian dapat mengakses isi dari disk drive dalam format baku, yang mungkin berisi satu sistem file atau lebih. Sebuah driver sistem file digunakan untuk menerjemahkan perintah yang digunakan untuk mengakses setiap sistem file tertentu ke dalam satu set perintah standar yang dapat digunakan sistem operasi untuk berbicara dengan semua sistem file. Program kemudian dapat menangani sistem file berdasarkan nama file, dan direktori/folder, yang terkandung dalam struktur hirarkis. Mereka dapat membuat, menghapus, terbuka, dan menutup file, serta mengumpulkan berbagai informasi tentangnya, termasuk hak akses, ukuran, ruang kosong, dan tanggal penciptaan dan modifikasi.
Berbagai perbedaan antara file sistem membuat dukungan semua sistem file menjadi sulit. Memperbolehkan karakter di nama file, case sensitive, dan adanya berbagai jenis atribut file membuat implementasi antarmuka tunggal untuk setiap sistem berkas menjadi tugas yang menakutkan. Sistem operasi cenderung merekomendasikan menggunakan (dan juga dukungan native) sistem file yang khusus dirancang untuk mereka, misalnya, NTFS pada Windows dan ext3 dan ReiserFS di GNU/Linux. Namun, dalam prakteknya, drive pihak ketiga biasanya tersedia untuk memberikan dukungan untuk file yang paling banyak digunakan di sebagian besar sistem operasi sistem umum (misalnya, NTFS tersedia di GNU/Linux melalui NTFS-3g, dan ext2/3 dan ReiserFS tersedia dalam Windows melalui FS-driver dan rfstool ).
Dukungan untuk sistem file sangat bervariasi di antara sistem operasi yang modern meskipun ada beberapa sistem file umum yang hampir semua sistem operasi mendukung dan mencakup drivernya. Sistem operasi bervariasi pada dukungan sistem berkas dan pada format disk yang dapat mereka instal. Dalam Windows setiap sistem file biasanya terbatas dalam aplikasi pada media tertentu, misalnya untuk CD harus menggunakan ISO9660 atau UDF, dan juga pada Windows Vista, NTFS adalah file system yang hanya dapat diinstal pada sistem operasi tersebut. Hal ini memungkinkan menginstal GNU/Linux ke berbagai jenis sistem file. Tidak seperti sistem operasi lain, GNU/Linux dan UNIX memungkinkan sistem file apa saja dapat digunakan tanpa memperhatikan media tempat menyimpannya, apakah itu hard drive, disk (CD, DVD...), USB key, atau bahkan terkandung dalam file yang terletak di sistem file lain.


Driver perangkat (device drivers)
Sebuah driver perangkat / device driver adalah jenis khusus perangkat lunak komputer yang dikembangkan untuk memungkinkan interaksi dengan perangkat keras. Biasanya ini merupakan sebuah antarmuka untuk berkomunikasi dengan perangkat, melalui bus komputer tertentu atau komunikasi subsistem perangkat keras yang terhubung, memberikan perintah kepada dan/atau menerima data dari perangkat, dan di ujung lain, diperlukan antarmuka untuk operasi sistem dan aplikasi perangkat lunak. Ini adalah program hardware-dependent komputer khusus yang mana juga membuat sistem operasi menentukan program lain yang dijalankan, biasanya sistem operasi atau paket aplikasi perangkat lunak atau program komputer yang berjalan dibawah kernel sistem operasi, untuk berinteraksi secara transparan dengan perangkat keras, dan biasanya menyediakan syarat kebutuhan penanganan interupsi untuk kebutuhan antarmuka perangkat keras time-dependent yang asinkron.

Tujuan kunci desain dari driver perangkat adalaha abstraksi. Setiap model perangkat keras (bahkan dalam kelas perangkat yang sama) adalah berbeda. model yang lebih baru juga dirilis oleh produsen yang memberikan performa yang lebih handal atau lebih baik dan model-model baru sering dikontrol dengan cara yang berbeda. Komputer dan sistem operasi mereka tidak dapat diharapkan untuk mengetahui bagaimana mengontrol setiap perangkat, baik sekarang dan di masa depan. Untuk mengatasi masalah ini, sistem operasi dasarnya mendikte bagaimana setiap jenis perangkat harus dikontrol. Fungsi driver perangkat ini kemudian menerjemahkan perintah fungsi panggilan sistem operasi ke panggilan perangkat tertentu. Dalam teori perangkat baru, yang mana dikendalikan dengan cara baru, harus berfungsi dengan benar jika driver yang cocok tersedia. Driver baru ini akan memastikan bahwa perangkat muncul untuk beroperasi seperti biasa dari sudut pandang sistem operasi.
Dalam versi Windows sebelum Vista dan versi Linux sebelum 2.6, semua eksekusi driver adalah kooperatif, yang berarti bahwa jika driver memasuki infinite loop akan membekukan sistem. revisi lebih baru dari sistem operasi ini menggabungkan kernel preemption, dimana kernel menginterrupt driver untuk memberikan tugas, dan kemudian memisahkan diri dari proses sampai menerima respons dari device driver, atau memberinya lebih banyak tugas untuk dilakukan.


Jaringan
Saat ini sebagian besar sistem operasi mendukung berbagai protokol, perangkat keras, dan aplikasi jaringan untuk mereka gunakan. Ini berarti bahwa komputer yang menjalankan sistem operasi berbeda dapat berpartisipasi dalam jaringan umum untuk berbagi sumber daya seperti komputer, file, printer, dan scanner baik menggunakan koneksi kabel atau nirkabel. Jaringan pada dasarnya dapat memungkinkan sistem operasi komputer untuk mengakses sumber daya dari komputer remote untuk mendukung fungsi yang sama jika sumber daya tersebut terhubung langsung ke komputer lokal. Ini mencakup semuanya mulai dari komunikasi sederhana, untuk menggunakan sistem file jaringan atau bahkan berbagi grafis atau perangkat keras suara komputer lain. Beberapa layanan jaringan mengizinkan sumber daya dari komputer untuk diakses secara transparan, seperti SSH yang memungkinkan pengguna jaringan mengakses langsung ke antarmuka baris perintah komputer.

Jaringan klien/server melibatkan sebuah program pada komputer di suatu tempat yang terhubung melalui jaringan ke komputer lain, yang disebut server. Server menawarkan (atau host) berbagai layanan untuk komputer dan pengguna jaringan lainnya. Layanan ini biasanya diberikan melalui port atau access point yang telah dinomori melewati alamat jaringan server. Setiap nomor port biasanya dihubungkan dengan maksimum satu program yang berjalank, yang bertanggung jawab untuk menangani permintaan ke port tersebut. Sebuah daemon, saat menjadi program pengguna, pada gilirannya dapat mengakses sumber daya perangkat keras lokal pada komputer tersebut dengan mengirimkan permintaan ke kernel sistem operasi.
Banyak sistem operasi mendukung satu vendor tertentu atau lebih atau protokol jaringan terbuka, misalnya, SNA pada IBM sistem, DECnet pada sistem dari Digital Equipment Corporation, dan protokol khusus Microsoft (SMB) pada Windows. Protokol khusus untuk tugas-tugas tertentu mungkin juga didukung seperti NFS untuk mengakses file. Protokol seperti ESound, atau esd dapat dengan mudah diperluas melalui jaringan untuk menyediakan suara dari aplikasi lokal, pada sound hardware sebuah sistem remote.


Keamanan
Sebuah komputer yang aman tergantung pada beberapa teknologi yang bekerja sebagaimana mestinya. 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 diizinkan untuk diproses, dan lain-lain yang tidak boleh diproses. Sementara beberapa sistem hanya dapat membedakan antara "hak istimewa" dan " hak non-istimewa", sistem umumnya memiliki bentuk identitas pemohon, seperti nama pengguna. Untuk membuat identitas mungkin ada proses otentikasi. Seringkali nama pengguna harus dikutip, dan masing-masing username memiliki sebuah password. Metode lainnya untuk otentikasi, seperti kartu magnetik atau data biometrik, mungkin digunakan sebagai gantinya. Dalam beberapa kasus, khususnya koneksi dari jaringan, sumber daya dapat diakses tanpa otentikasi sama sekali (seperti membaca file melalui network share). Juga tercakup oleh konsep identitas pemohon yakni otorisasi; pelayanan dan sumber daya tertentu yang dapat diakses oleh pemohon saat login ke sistem yang terikat pada akun user pemohon atau pada berbagai kelompok konfigurasi user yang dimiliki pemohon.
Tambahannya untuk mengizinkan/melarang model keamanan, sistem dengan tingkat keamanan yang tinggi juga akan menawarkan pilihan audit. Hal ini akan memungkinkan pelacakan permintaan untuk akses terhadap sumber daya (seperti, "siapa yang telah membaca file ini?"). Keamanan internal, atau keamanan dari program yang sudah berjalan hanya memungkinkan jika semua permintaan yang mungkin berbahaya harus dilakukan melalui interupsi ke kernel sistem operasi. Jika program dapat mengakses hardware secara langsung dan sumber daya, mereka tidak dapat dijamin aman.
Keamanan eksternal melibatkan permintaan dari luar komputer, seperti login di konsol yang terhubung atau beberapa jenis koneksi jaringan. Permintaan eksternal sering melewati device driver ke kernel sistem operasi, di mana mereka dapat dikirimkan ke aplikasi, atau dilakukan secara langsung. Keamanan sistem operasi telah lama menjadi perhatian karena data yang sangat sensitif berada pada komputer, baik yang bersifat komersial dan militer. Departemen Pertahanan Amerika Serikat (Department of Defense / DoD) menciptakan Trusted Computer System Evaluation Criteria (TCSEC) yang merupakan standar yang menetapkan persyaratan dasar untuk menilai efektivitas keamanan. Hal ini menjadi sangat penting untuk para pembuat sistem operasi, karena TCSEC digunakan untuk mengevaluasi, mengklasifikasi dan memilih sistem komputer yang dipertimbangkan untuk pengolahan, penyimpanan dan pengambilan informasi sensitif atau rahasia.
Layanan jaringan meliputi penawaran seperti file sharing, layanan cetak, email, situs web, dan file transfer protokol (FTP), sebagian besar yang dapat membahayakan keamanan. Di garis depan keamanan adalah perangkat keras yang dikenal sebagai firewall atau sistem intrusi deteksi/pencegahan. Pada tingkat sistem operasi, ada sejumlah firewall perangkat lunak yang tersedia, serta sistem intrusi deteksi/pencegahan. Sebagian besar sistem operasi modern menyediakan perangkat lunak firewall, yang diaktifkan secara default. Sebuah perangkat lunak firewall dapat dikonfigurasi untuk mengizinkan atau menolak lalu lintas jaringan ke atau dari layanan atau aplikasi yang berjalan pada sistem operasi. Oleh karena itu, seseorang dapat menginstal dan menjalankan layanan yang tidak aman, seperti Telnet atau FTP, dan tidak harus terancam oleh suatu pelanggaran keamanan karena firewall akan menolak semua lalu lintas yang mencoba untuk menyambung ke layanan pada port tersebut.
Strategi alternatif, dan hanya strategi sandbox yang tersedia dalam sistem yang tidak memenuhi persyaratan virtualisasi Popek dan Goldberg, adalah sistem operasi yang tidak menjalankan program-program pengguna sebagai kode native, tapi mengemulasikan prosesor atau menyediakan host untuk sistem berbasis kode-p seperti Java.
Keamanan internal sangat relevan untuk sistem multi-user, yang memungkinkan setiap pengguna sistem untuk memiliki file pribadi yang mana pengguna lain tidak dapat merusak atau membacanya. Keamanan internal juga penting jika audit digunakan, karena program bisa berpotensi mem-bypass sistem operasi, termasuk melewati audit.

Sistem operasi real-time
Sebuah sistem operasi real-time / waktu nyata (RTOS) adalah sistem operasi multitasking yang ditujukan untuk aplikasi dengan tenggat waktu tetap (komputasi real-time). aplikasi tersebut termasuk beberapa sistem embedded kecil, mesin pengendali mobil, robot industri, pesawat ruang angkasa, kontrol industri, dan beberapa sistem komputasi skala-besar.
Contoh sistem operasi real-time skala besar sebelumnya adalah sebuah Fasilitas Pengolahan Transaksi yang dikembangkan oleh American Airlines dan IBM untuk Sistem Reservasi Sabre Airline.
Sistem embedded memiliki tenggat waktu yang tetap menggunakan sistem operasi real-time seperti VxWorks, PikeOS, eCos, QNX, MontaVista Linux dan RTLinux. Windows CE adalah sistem operasi real-time yang membagi API yang mirip untuk desktop Windows, tetapi tidak membagi basis kode desktop Windows.
Beberapa sistem embedded menggunakan sistem operasi seperti Symbian OS, Palm OS, BSD, dan GNU/Linux, walaupun sistem operasi tersebut tidak mendukung komputasi real-time.

Pengembangan hobi
Pengembangan sistem operasi adalah salah satu dari banyak pilihan terlibat dan teknis untuk hobi komputasi. Sebuah sistem operasi hobi diklasifikasikan sebagai salah satu yang telah ditulis dari awal (tidak didasarkan pada sistem yang lain) dan memiliki beberapa pengembang yang bekerja di waktu luang mereka. Pembangunan biasanya dimulai dengan sistem operasi yang ada. Hobi adalah pengembangan mereka sendiri, atau mereka berinteraksi dalam sebuah kelompok individu yang relatif kecil dan tidak terstruktur yang memiliki semua kesamaan situasi dengan basis kode yang sama. Contoh sebuah sistem operasi hobi termasuk Syllable dan ReactOS.

Keanekaragaman sistem operasi dan portabilitas
Perangkat lunak aplikasi umumnya ditulis untuk digunakan pada sistem operasi tertentu, dan kadang-kadang bahkan untuk hardware tertentu. Ketika port aplikasi berjalan di OS lain, fungsi yang dibutuhkan oleh aplikasi tersebut mungkin diimplementasikan secara berbeda oleh OS (nama-nama fungsi, makna argumen, dll) yang membutuhkan aplikasi untuk disesuaikan, diubah, atau dipertahankan.
Biaya dalam mendukung keragaman sistem operasi dapat dihindari dengan menulis aplikasi terhadap platform perangkat lunak seperti Java, atau Qt untuk web browser. Abstraksi ini telah menanggung biaya adaptasi terhadap sistem operasi tertentu dan sistem library mereka.
Pendekatan lain adalah untuk vendor sistem operasi untuk mengadopsi standar. Misalnya, POSIX dan lapisan abstraksi OS menyediakan kesamaan yang mengurangi biaya port.


Previous
Next Post »

1 komentar

  1. You need to be a part of a contest for one of tһe highest
    quality websites on the net. Ӏ am goіng tօ recommend thіs blog!

    helpful rеsources : How To Learn To Lock Files Just 10 Minutes
    A Day

    BalasHapus