Difference between revisions of "Sistem operasi"

From OnnoWiki
Jump to navigation Jump to search
 
(171 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
===Real-time===
 
===Real-time===
Sistem operasi real-time adalah sebuah sistem operasi multitasking yang ditujukan untuk menjalankan aplikasi real-time. Sistem Operasi real-time biasanya menspesialisasikan pada algoritma scheduling (penjadwalan) sehingga mereka dapat mencapai perilaku yang deterministik. Tujuan utama sebuah sistem operasi real-time adalah respons yang cepat dan dapat di prediksi untuk berbagai kejadian. Sistem operasi ini di rancang berdasarkan event-driven atau time-sharing atau kedua-nya. Sebuah sistem event-driven melakukan switching antar task berdasarkan prioritas atau kejadian (event) dari luar, sementara sistem operasi time-sharing melakukan switching antar task berbasis pada interupsi clock.
+
[[Sistem operasi]] real-time adalah sebuah [[sistem operasi]] [[multitasking]] yang ditujukan untuk menjalankan aplikasi real-time. [[Sistem Operasi]] [[real-time]] biasanya menspesialisasikan pada algoritma scheduling (penjadwalan) sehingga mereka dapat mencapai perilaku yang deterministik. Tujuan utama sebuah sistem operasi real-time adalah respons yang cepat dan dapat di prediksi untuk berbagai kejadian. [[Sistem operasi]] ini di rancang berdasarkan event-driven atau time-sharing atau kedua-nya. Sebuah sistem event-driven melakukan switching antar task berdasarkan prioritas atau kejadian (event) dari luar, sementara [[sistem operasi]] time-sharing melakukan switching antar task berbasis pada interupsi clock.
  
 
===Multi-user===
 
===Multi-user===
Line 17: Line 17:
  
 
===Multi-tasking vs. single-tasking===
 
===Multi-tasking vs. single-tasking===
Sebuah sistem operasi multi-tasking memungkinkan lebih dari satu program untuk berjalan pada satu saat, dilihat dari skala waktu manusia. Sebuah sistem single-tasking hanya dapat menjalankan satu program. Ada dua tipe Multi-tasking, yaitu: (1) pre-emptive dan (2) co-operative. Di pre-emptive multitasking, sistem operasi akan membagi CPU time dan mendedikasikan satu slot untuk setiap program. Di [[sistem operasi]] Unix-like, seperti, Solaris dan Linux, biasanya mendukung pre-emptive multitasking, seperti juga AmigaOS. Cooperative multitasking dapat dicapai dengan cara saling mengandalkan satu sama lain untuk memberikan waktu / slot time ke proses yang lain dengan aturan yang baku.  
+
Sebuah sistem operasi multi-tasking memungkinkan lebih dari satu program untuk berjalan pada satu saat, dilihat dari skala waktu manusia. Sebuah sistem single-tasking hanya dapat menjalankan satu program. Ada dua tipe Multi-tasking, yaitu: (1) pre-emptive dan (2) co-operative. Di pre-emptive multitasking, sistem operasi akan membagi [[CPU]] time dan mendedikasikan satu slot untuk setiap program. Di [[sistem operasi]] Unix-like, seperti, Solaris dan Linux, biasanya mendukung pre-emptive multitasking, seperti juga AmigaOS. Cooperative multitasking dapat dicapai dengan cara saling mengandalkan satu sama lain untuk memberikan waktu / slot time ke proses yang lain dengan aturan yang baku.  
  
  
Line 23: Line 23:
 
===Sistem Terdistribusi===
 
===Sistem Terdistribusi===
  
Sebuah sistem operasi terdistribusi mengatur sebuah kelompok dari komputer yang independen dan membuat mereka tampak seperti satu buah komputer. Dengan perkembangan jaringan komputer memungkinkan sambungan dan komunikasi satu sama lain untuk membangun distributed computing. Komputasi terdistribusi dilakukan oleh lebih dari satu mesin. Jika komputer dalam satu group bekerjasama, maka mereka akan membangun sebuah distributed system / sistem terdistribusi.
+
Sebuah [[sistem operasi]] terdistribusi mengatur sebuah kelompok dari [[komputer]] yang independen dan membuat mereka tampak seperti satu buah [[komputer]]. Dengan perkembangan jaringan komputer memungkinkan sambungan dan komunikasi satu sama lain untuk membangun [[distributed computing]]. [[Komputasi terdistribusi]] dilakukan oleh lebih dari satu mesin. Jika komputer dalam satu group bekerjasama, maka mereka akan membangun sebuah distributed system / sistem terdistribusi.
  
 
===Sistem Embedded===
 
===Sistem Embedded===
  
Sistem operasi embedded di rancang untuk digunakan di sistem komputer embedded. Sistem operasi embedded di operasikan di mesin kecil seperti PDA. Sistem operasi ini dapat beroperasi dengan sumber daya yang sangat terbatas. Sistem operasi ini di rancang agar sangat kecil dan sangat effisien. Contoh dari sistem operasi embedded ini adalah OpenWRT.
+
[[Sistem operasi]] embedded di rancang untuk digunakan di sistem komputer embedded. [[Sistem operasi]] embedded di operasikan di mesin kecil seperti [[PDA]]. [[Sistem operasi]] ini dapat beroperasi dengan sumber daya yang sangat terbatas. [[Sistem operasi]] ini di rancang agar sangat kecil dan sangat effisien. Contoh dari [[sistem operasi]] embedded ini adalah [[OpenWRT]].
  
 
==Sejarah==
 
==Sejarah==
  
Pada awalnya komputer dibuat untuk menjalankan sekumpulan single task, seperti [[calculator]]. [[Sistem operasi]] belum menampakan diri sampai awal 1960. Dasar fitur sistem operasi mulai dikembangkan tahun 1950, seperti fungsi monitor yang dapat secara automatis menjalankan program yang berbeda dalam rangka mempercepat processing. Fitur hardware di tambahkan untuk membuka kemungkinan untuk menggunakan runtime library, interrupsi, dan parallel processing. Pada saat PC menjadi populer di tahun 1980-an, sistem operasi yang dibuat untuk PC secara konsep sama dengan yang digunakan di komputer yang besar.
+
Pada awalnya komputer dibuat untuk menjalankan sekumpulan single task, seperti [[calculator]]. [[Sistem operasi]] belum menampakan diri sampai awal 1960. Dasar fitur sistem operasi mulai dikembangkan tahun 1950, seperti fungsi monitor yang dapat secara automatis menjalankan program yang berbeda dalam rangka mempercepat processing. Fitur hardware di tambahkan untuk membuka kemungkinan untuk menggunakan runtime library, interrupsi, dan parallel processing. Pada saat [[PC]] menjadi populer di tahun 1980-an, [[sistem operasi]] yang dibuat untuk [[PC]] secara konsep sama dengan yang digunakan di [[komputer]] yang besar.
  
Di tahun 1940-an, sistem elektronik digital awal tidak mempunyai sistem operasi.Sistem elektronik pada masa itu di program menggunakan sekumpulan switch mekanik atau dengan kabel jumper di papan board. Sistem ini merupakan sistem special-purpose, sebagai contoh, untuk membuat tabel balistik untuk militer atau mengatur pencetakan slip gaji dari data di punch card. Sesudah komputer aplikasi umum yang programmable dibuat, bahasa mesin (terdiri dari kalimat yang terdiri dari digit 0 dan 1 di kartu punch card) di petkenalkan untuk mempercepat proses programming. OS/360 digunakan pada sebagian besar komputer mainframe IBM di awal tahun 1966, termasuk komputer yang menolong NASA untuk menerbangkan manusia ke bulan.
+
Di tahun 1940-an, sistem elektronik digital awal tidak mempunyai [[sistem operasi]].Sistem elektronik pada masa itu di program menggunakan sekumpulan switch mekanik atau dengan kabel jumper di papan board. Sistem ini merupakan sistem special-purpose, sebagai contoh, untuk membuat tabel balistik untuk militer atau mengatur pencetakan slip gaji dari data di punch card. Sesudah [[komputer]] aplikasi umum yang programmable dibuat, bahasa mesin (terdiri dari kalimat yang terdiri dari digit 0 dan 1 di kartu punch card) di perkenalkan untuk mempercepat proses programming. OS/360 digunakan pada sebagian besar komputer mainframe IBM di awal tahun 1966, termasuk komputer yang menolong NASA untuk menerbangkan manusia ke bulan.
  
 
Di awal tahun 1950, sebuah komputer hanya dapat menjalankan satu program pada satu waktu. Setiap pengguna menggunakan sendiri [[komputer]] untuk waktu yang terbatas sesuai dengan jadwal waktu, dengan program dan data yang ada di punch card atau punch tape. Program akan di load ke komputer, dan komputer akan bekerja sampai program selesai atau crash. Program biasanya di debug melalui panel di depan menggunakan switch dan lampu panel.
 
Di awal tahun 1950, sebuah komputer hanya dapat menjalankan satu program pada satu waktu. Setiap pengguna menggunakan sendiri [[komputer]] untuk waktu yang terbatas sesuai dengan jadwal waktu, dengan program dan data yang ada di punch card atau punch tape. Program akan di load ke komputer, dan komputer akan bekerja sampai program selesai atau crash. Program biasanya di debug melalui panel di depan menggunakan switch dan lampu panel.
Line 45: Line 45:
 
Selama tahun 1960, IBM OS/360 memperkenalkan konsep sebuah OS untuk semua produk, yang menjadi sangat penting untuk kesuksesan mesin System/360. Sistem operasi di mainframe IBM saat ini adalah turunan dari sistem awal dan aplikasi yang ditulis untuk OS/360 masih bisa berjalan di mesin yang modern.
 
Selama tahun 1960, IBM OS/360 memperkenalkan konsep sebuah OS untuk semua produk, yang menjadi sangat penting untuk kesuksesan mesin System/360. Sistem operasi di mainframe IBM saat ini adalah turunan dari sistem awal dan aplikasi yang ditulis untuk OS/360 masih bisa berjalan di mesin yang modern.
  
OS/360 juga memelopori konsep yang menentukan bahwa sistem operasi akan mencatat semua penggunaan sumber daya, termasuk alokasi memori untuk program dan data, ruang file di harddisk, penguncian file saat update. Jika proses ini di putuskan karena berbagai alasan, semua sumber daya tersebut akan direklamasi oleh [[sisten operasi]].
+
OS/360 juga memelopori konsep yang menentukan bahwa sistem operasi akan mencatat semua penggunaan sumber daya, termasuk alokasi memori untuk program dan data, ruang file di harddisk, penguncian file saat update. Jika proses ini di putuskan karena berbagai alasan, semua sumber daya tersebut akan direklamasi oleh [[sistem operasi]].
  
 
Alternatif sistem operasi CP-67 untuk S/360-67 memulai sebuah jalur pada sistem operasi IBM yang memfokuskan diri pada mesin virtual. Sistem operasi lainnya yang digunakan di seri mainframe IBM S/360 termasuk sistem yang dikembangkan sendiri oleh IBM: COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System), dan ACP (Airline Control Program), termasuk beberapa sistem non-IBM: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing), dan ORVYL (Stanford Timesharing System).
 
Alternatif sistem operasi CP-67 untuk S/360-67 memulai sebuah jalur pada sistem operasi IBM yang memfokuskan diri pada mesin virtual. Sistem operasi lainnya yang digunakan di seri mainframe IBM S/360 termasuk sistem yang dikembangkan sendiri oleh IBM: COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System), dan ACP (Airline Control Program), termasuk beberapa sistem non-IBM: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing), dan ORVYL (Stanford Timesharing System).
  
Control Data Corporation mengembangkan sistem operasi SCOPE di tahun 1960-an untuk batch processing. Bekerjasama dengan University of Minnesota, sistem operasi Kronos dan selanjutnya NOS dikembangkan pada tahun 1970-an, yang mendukung batch secara simultan dan penggunaan timesharing. Seperti sistem timesharing komersial lainnya, interfacenya merupakan extensi dari Dartmouth BASIC operating systems, salah satu usaha rintisan dalam timesharing dan bahasa pemrogramman. In akhir tahun 1970-an, Control Data dan University of Illinois mengembangkan sistem operasi PLATO, yang menggunakan display plasma panel dan jaringan time sharing jarak jauh. Plato termasuk cukup inovatif pada masanya, fitur seperti real-time chat, dan game grafis multi-user. Burroughs Corporation memperkenalkan B5000 di tahun 1961 dengan sistem operasi MCP, (Master Control Program). B5000 di rancang sebagai stack machine untuk mendukung bahasa tingkat tinggi tanpa bahasa mesin atau assembler, dan MCP adalah sistem operasi pertama yang ditulis secara exclusif dalam bahasa tingkat tinggi - ESPOL, sebuah dialek dari ALGOL. MCP juga memperkenalkan banyak innovasi baru, seperti implementasi komersial pertama untuk memory virtual. Dalam masa pengembangan AS400, IBM sempat mendekati Burroughs untuk membeli lisensi dari MCP agar dapat di jalankan di hardware AS400. Proposal IBM di tolak oleh manajemen Burroughs untuk melindungi produksi hardware mereka. MCP sampai hari ini masih digunakan di komputer Unisys ClearPath/MCP.
+
Control Data Corporation mengembangkan sistem operasi SCOPE di tahun 1960-an untuk batch processing. Bekerjasama dengan University of Minnesota, sistem operasi Kronos dan selanjutnya NOS dikembangkan pada tahun 1970-an, yang mendukung batch secara simultan dan penggunaan timesharing. Seperti sistem timesharing komersial lainnya, interfacenya merupakan extensi dari Dartmouth BASIC operating systems, salah satu usaha rintisan dalam timesharing dan bahasa pemrogramman. Di akhir tahun 1970-an, Control Data dan University of Illinois mengembangkan [[sistem operasi]] PLATO, yang menggunakan display plasma panel dan jaringan time sharing jarak jauh. Plato termasuk cukup inovatif pada masanya, fitur seperti real-time chat, dan game grafis multi-user. Burroughs Corporation memperkenalkan B5000 di tahun 1961 dengan sistem operasi MCP, (Master Control Program). B5000 di rancang sebagai stack machine untuk mendukung bahasa tingkat tinggi tanpa [[bahasa mesin]] atau [[assembler]], dan MCP adalah [[sistem operasi]] pertama yang ditulis secara exclusif dalam bahasa tingkat tinggi - ESPOL, sebuah dialek dari ALGOL. MCP juga memperkenalkan banyak innovasi baru, seperti implementasi komersial pertama untuk memory virtual. Dalam masa pengembangan AS400, IBM sempat mendekati Burroughs untuk membeli lisensi dari MCP agar dapat di jalankan di hardware AS400. Proposal IBM di tolak oleh manajemen Burroughs untuk melindungi produksi hardware mereka. MCP sampai hari ini masih digunakan di [[komputer]] Unisys ClearPath/MCP.
  
UNIVAC, pembuat komputer komersial pertama, memproduksi sistem operasi EXEC. Seperti halnya sistem mainframe awal, EXEC adalah sistem yang berorientasi batch yang mengatur drum magnetic, disk, card reader dan line printer. Di tahun 1970-an, UNIVAC membuat Real-Time Basic (RTB) system untuk mendukung time sharing skala besar, yang diturunkan Dartmouth BC system.
+
UNIVAC, pembuat [[komputer]] komersial pertama, memproduksi [[sistem operasi]] EXEC. Seperti halnya sistem mainframe awal, EXEC adalah sistem yang berorientasi batch yang mengatur drum magnetic, disk, card reader dan line printer. Di tahun 1970-an, UNIVAC membuat Real-Time Basic (RTB) system untuk mendukung time sharing skala besar, yang diturunkan Dartmouth BC system.
  
 
General Electric dan MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS), yang memperkenalkan konsep keamanan yang berlapis. Setelah di akusisi oleh Honeywell, sistem operasi ini di beri nama General Comprehensive Operating System (GCOS).
 
General Electric dan MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS), yang memperkenalkan konsep keamanan yang berlapis. Setelah di akusisi oleh Honeywell, sistem operasi ini di beri nama General Comprehensive Operating System (GCOS).
Line 57: Line 57:
 
Digital Equipment Corporation juga mengembangkan banyak sistem operasi untuk berbagai komputernya, termasuk TOPS-10 dan TOPS-20 time sharing system untuk 36-bit PDP-10 class system. Sebelum UNIX banyak digunakan, TOPS-10 adalah sistem operasi yang paling populer di universitas, dan di komunitas awal ARPANET.
 
Digital Equipment Corporation juga mengembangkan banyak sistem operasi untuk berbagai komputernya, termasuk TOPS-10 dan TOPS-20 time sharing system untuk 36-bit PDP-10 class system. Sebelum UNIX banyak digunakan, TOPS-10 adalah sistem operasi yang paling populer di universitas, dan di komunitas awal ARPANET.
  
Di akhir tahun 1960-an hingga akhir 1970-an, kemampuan hardware berevolusi juga software berhasil di porting agar berjalan di lebih dari satu sistem. Sistem awal banyak menggunakan microprogramming untuk mengimplementasi fitur pada sistem mereka untuk membuat arsitektur komputer menjadi tampak sama seperti yang lain dari seri komputer lainnya. Sebetulnya sebagian besar 360 sesudah 360/40 (kecuali 360/165 dan 360/168) sebetulnya menggunakan implementasi microprogram.  implementations. Selanjutnya dipahami kompatibilitas aplikasi terbukti lebih penting.
+
Di akhir tahun 1960-an hingga akhir 1970-an, kemampuan [[hardware]] berevolusi juga software berhasil di porting agar berjalan di lebih dari satu sistem. Sistem awal banyak menggunakan [[microprogramming]] untuk mengimplementasi fitur pada sistem mereka untuk membuat arsitektur komputer menjadi tampak sama seperti yang lain dari seri komputer lainnya. Sebetulnya sebagian besar 360 sesudah 360/40 (kecuali 360/165 dan 360/168) sebetulnya menggunakan implementasi microprogram.  implementations. Selanjutnya dipahami kompatibilitas aplikasi terbukti lebih penting.
  
Banyak sekali investasi software untuk sistem ini dilakukan sejak tahun 1960-an karena kebanyakan pembuat komputer akan mengembangkan sistem operasi yang cocok untuk hardwarenya. Beberapa sistem operasi yang mendukung mainframe adalah:
+
Banyak sekali investasi [[software]] untuk sistem ini dilakukan sejak tahun 1960-an karena kebanyakan pembuat [[komputer]] akan mengembangkan [[sistem operasi]] yang cocok untuk [[hardware]]-nya. Beberapa [[sistem operasi]] yang mendukung [[mainframe]] adalah:
  
 
* Burroughs MCP – B5000, 1961 hingga Unisys Clearpath/MCP, sekarang.
 
* Burroughs MCP – B5000, 1961 hingga Unisys Clearpath/MCP, sekarang.
Line 68: Line 68:
 
==Microcomputer==
 
==Microcomputer==
  
PC-DOS adalah awal sistem operasi untuk personal komputer yang berupa command line interface (CLI). Mac OS dari Apple Computer menjadi sistem operasi pertama yang menggunakan Graphical User Interface (GUI). Banyak dari fitur-nya seperti Windows dan Icon dikemudian hari menjadi ciri GUI.
+
PC-DOS adalah awal [[sistem operasi]] untuk personal komputer yang berupa [[command line interface]] ([[CLI]]). Mac OS dari Apple Computer menjadi [[sistem operasi]] pertama yang menggunakan [[Graphical User Interface]] ([[GUI]]). Banyak dari fitur-nya seperti Windows dan Icon dikemudian hari menjadi ciri GUI.
  
Mikrokomputer pertama tidak mempunyai kapasitas atau kebutuhan untuk menjalankan sistem operasi yang rumit yang dikembangkan di mainframe atau mini. Sistem operasi minimalistik di kembangkan, kadang kali dimasukan kedalam ROM yang dikenal sebagai monitor. Salah satu sistem operasi awal yang cukup menonjol adalah CP/M, yang di dukung oleh banyak mikrokomputer awal dan sangat mirip dengan Microsoft MS-DOS, yang menjadi sangat populer karena dipilih sebagai sistem operasi IBM PC (versi IBM dari MS-DOS dari dikenal sebagai IBM DOS atau PC DOS). Di tahun 1980-an, Apple Computer Inc. (sekarang Apple Inc.) meninggalkan seri Apple II yang popular untuk memperkenalkan Apple Macintosh computer dengan innovative Graphical User Interface (GUI) dengan Mac OS.
+
Mikrokomputer pertama tidak mempunyai kapasitas atau kebutuhan untuk menjalankan [[sistem operasi]] yang rumit yang dikembangkan di mainframe atau mini. Sistem operasi minimalistik di kembangkan, kadang kala dimasukan kedalam [[ROM]] yang dikenal sebagai monitor. Salah satu [[sistem operasi]] awal yang cukup menonjol adalah CP/M, yang di dukung oleh banyak [[mikrokomputer]] awal dan sangat mirip dengan Microsoft MS-DOS, yang menjadi sangat populer karena dipilih sebagai [[sistem operasi]] IBM PC (versi IBM dari MS-DOS dari dikenal sebagai IBM DOS atau PC DOS). Di tahun 1980-an, Apple Computer Inc. (sekarang Apple Inc.) meninggalkan seri Apple II yang popular untuk memperkenalkan Apple Macintosh computer dengan innovative Graphical User Interface (GUI) dengan Mac OS.
  
Dengan di perkenalkannya CPU Intel 80386 dengan arsitektur 32-bit dan kemampuan paging, komputer personal mempunyai kemampuan untuk menjalankan sistem operasi multitasking seperti minikomputer dan mainframe yang awal. Microsoft meresponds dengan mengambil Dave Cutler, yang mengembangkan sistem operasi VMS di Digital Equipment Corporation. Dave memimpin pengembangkan sistem operasi Windows NT yang menjadi dasar dari sistem operasi Microsoft. Steve Jobs, salah satu pendiri Apple Inc., memulai NeXT Computer Inc., yang mengembangkan sistem operasi NEXTSTEP. NEXTSTEP dikemudian hari di beli oleh Apple Inc. dan digunakan, bersama dengan code dari FreeBSD sebagai inti dari Mac OS X.
+
Dengan di perkenalkannya CPU Intel 80386 dengan arsitektur 32-bit dan kemampuan paging, komputer personal mempunyai kemampuan untuk menjalankan sistem operasi multitasking seperti minikomputer dan mainframe yang awal. Microsoft meresponds dengan mengambil Dave Cutler, yang mengembangkan sistem operasi VMS di Digital Equipment Corporation. Dave memimpin pengembangkan sistem operasi Windows NT yang menjadi dasar dari [[sistem operasi]] Microsoft. Steve Jobs, salah satu pendiri Apple Inc., memulai NeXT Computer Inc., yang mengembangkan sistem operasi NEXTSTEP. NEXTSTEP dikemudian hari di beli oleh Apple Inc. dan digunakan, bersama dengan code dari FreeBSD sebagai inti dari Mac OS X.
  
GNU Project di awali oleh seorang was activis dan programmer Richard Stallman dengan tujuan untuk membuat software yang benar-benar free (bebas) sebagai pengganti dari sistem operasi UNIX yang berhak cipta (proprietary). GNU Project secara umum sangat sukses untuk menduplikasi fungsi berbagai hal dari UNIX, tapi mengembangkan sistem operasi GNU Hurd kernel tampaknya kurang produktif. Tahun 1991, seorang mahasiswa komputer science dari finland Linus Torvalds, dengan di bantu oleh banyak relawan berkolaborasi melalui Internet, melepaskan versi pertama kernel Linux. Tak lama kemudian, merger dengan komponen GNU untuk membentuk sebuah sistem operasi yang komplit. Sejak itu, kedua komponen tersebut biasanya di kenal sebagai "Linux" oleh industri software, nama yang sangat di tentang oleh Stallman maupun Free Software Foundation, mereka lebih suka dengan nama GNU/Linux. Berkeley Software Distribution, dikenal sebagai BSD, adalah turunan UNIX yang disebarkan oleh University of California, Berkeley, dimulai sekitar tahun 1970-an. BSD di sebarkan dengan bebbas dan di porting ke banyak minikomputer. BSD akhirnya memperoleh beberapa pengikut di PC, seperti, FreeBSD, NetBSD dan OpenBSD.
+
[[GNU Project]] di awali oleh seorang activis dan programmer [[Richard Stallman]] dengan tujuan untuk membuat [[software]] yang benar-benar free (bebas) sebagai pengganti dari [[sistem operasi]] [[UNIX]] yang berhak cipta (proprietary). [[GNU Project]] secara umum sangat sukses untuk menduplikasi fungsi berbagai hal dari [[UNIX]], tapi mengembangkan sistem operasi GNU Hurd kernel tampaknya kurang produktif. Tahun 1991, seorang mahasiswa komputer science dari finland Linus Torvalds, dengan di bantu oleh banyak relawan berkolaborasi melalui Internet, melepaskan versi pertama [[kernel]] [[Linux]]. Tak lama kemudian, merger dengan komponen GNU untuk membentuk sebuah sistem operasi yang komplit. Sejak itu, kedua komponen tersebut biasanya di kenal sebagai "Linux" oleh industri software, nama yang sangat di tentang oleh Stallman maupun Free Software Foundation, mereka lebih suka dengan nama GNU/Linux. Berkeley Software Distribution, dikenal sebagai BSD, adalah turunan [[UNIX]] yang disebarkan oleh University of California, Berkeley, dimulai sekitar tahun 1970-an. BSD di sebarkan dengan bebas dan di porting ke banyak [[minikomputer]]. BSD akhirnya memperoleh beberapa pengikut di PC, seperti, FreeBSD, NetBSD dan OpenBSD.
  
 
==Contoh Sistem Operasi==
 
==Contoh Sistem Operasi==
Line 94: Line 94:
 
Subgroup dari keluarga Unix adalah keluarga Berkeley Software Distribution (BSD), termasuk FreeBSD, NetBSD, dan OpenBSD. Sistem operasi ini biasanya di temukan di web server, walaupun mereka juga dapat ditemukan di PC. Keberadaan Internet berhutang banyak pada BSD, karena banyak protokol yang banyak digunakan di komputer, untuk saling mengirim dan menerima data melalui jaringan awalnya di implementasi dan di perbaiki di BSD. Web pertama dijalankan di komputer dengan sistem operasi berbasis BSD yaitu NextStep.
 
Subgroup dari keluarga Unix adalah keluarga Berkeley Software Distribution (BSD), termasuk FreeBSD, NetBSD, dan OpenBSD. Sistem operasi ini biasanya di temukan di web server, walaupun mereka juga dapat ditemukan di PC. Keberadaan Internet berhutang banyak pada BSD, karena banyak protokol yang banyak digunakan di komputer, untuk saling mengirim dan menerima data melalui jaringan awalnya di implementasi dan di perbaiki di BSD. Web pertama dijalankan di komputer dengan sistem operasi berbasis BSD yaitu NextStep.
  
BSD has its roots in Unix. In 1974, University of California, Berkeley installed its first Unix system. Over time, students and staff in the computer science department there began adding new programs to make things easier, such as text editors. When Berkely received new VAX computers in 1978 with Unix installed, the school's undergraduates modified Unix even more in order to take advantage of the computer's hardware possibilities. The Defense Advanced Research Projects Agency of the US Department of Defense took interest, and decided to fund the project. Many schools, corporations, and government organizations took notice and started to use Berkeley's version of Unix instead of the official one distributed by AT&T.
+
BSD berakar pada Unix. Pada tahun 1974, University of California, Berkeley menginstal sistem Unix pertama. Seiring dengan waktu, mahasiswa dan staf di departemen ilmu komputer mulai menambahkan aplikasi baru untuk membuat semuanya menjadi lebih mudah, seperti editor teks. Ketika Berkely menerima komputer VAX baru pada tahun 1978 dengan sistem operasi Unix , mahasiswa memodifikasi Unix untuk dapat mengambil keuntungan dari hardware komputer. Defense Advanced Research Projects Agency dari Departemen Pertahanan AS tertarik, dan memutuskan untuk mendanai proyek tersebut. Banyak sekolah, perusahaan, dan organisasi pemerintah tertarik dan mulai menggunakan versi Berkeley Unix bukan versi resmi yang didistribusikan oleh AT & T.
  
Steve Jobs, upon leaving Apple Inc. in 1985, formed NeXT Inc., a company that manufactured high-end computers running on a variation of BSD called NeXTSTEP. One of these computers was used by Tim Berners-Lee as the first webserver to create the World Wide Web.
+
Steve Jobs, saat meninggalkan Apple Inc pada tahun 1985, membentuk NeXT Inc, sebuah perusahaan yang memproduksi komputer high-end menjalankan variasi BSD disebut NeXTSTEP. Salah satu komputer tersebut digunakan oleh Tim Berners-Lee sebagai webserver pertama untuk menciptakan World Wide Web.
  
Developers like Keith Bostic encouraged the project to replace any non-free code that originated with Bell Labs. Once this was done, however, AT&T sued. Eventually, after two years of legal disputes, the BSD project came out ahead and spawned a number of free derivatives, such as FreeBSD and NetBSD.
+
Pengembang seperti Keith Bostic mendorong proyek untuk mengganti kode non-bebas yang berasal dari Bell Labs. Sayang sekali setelah ini dilakukan AT & T menggugat. Akhirnya, setelah dua tahun sengketa hukum, proyek BSD lolos dan melahirkan sejumlah derivatif bebas, seperti FreeBSD dan NetBSD.
  
 
===OS X===
 
===OS X===
Main article: OS X
 
The standard user interface of OS X
 
  
OS X (formerly "Mac OS X") is a line of open core graphical operating systems developed, marketed, and sold by Apple Inc., the latest of which is pre-loaded on all currently shipping Macintosh computers. OS X is the successor to the original Mac OS, which had been Apple's primary operating system since 1984. Unlike its predecessor, OS X is a UNIX operating system built on technology that had been developed at NeXT through the second half of the 1980s and up until Apple purchased the company in early 1997. The operating system was first released in 1999 as Mac OS X Server 1.0, with a desktop-oriented version (Mac OS X v10.0 "Cheetah") following in March 2001. Since then, six more distinct "client" and "server" editions of OS X have been released, the most recent being OS X 10.8 "Mountain Lion", which was first made available on February 16, 2012 for developers, and was then released to the public on July 25, 2012. Releases of OS X are named after big cats.
+
OS X (sebelumnya "Mac OS X") adalah sistem operasi open core grafis yang dikembangkan dipasarkan dan dijual oleh Apple Inc., belakangan di install pada semua komputer Macintosh saat pengiriman. OS X adalah penerus MacOS original, yang menjadi sistem operasi utama Apple sejak tahun 1984. Tidak seperti pendahulunya, OS X adalah sistem operasi UNIX yang dibangun pada teknologi yang telah dikembangkan di NeXT mulai dari paruh kedua tahun 1980-an sampai Apple membeli NeXT pada awal 1997. Sistem operasi ini pertama kali dirilis pada tahun 1999 sebagai Mac OS X Server 1.0 dengan versi desktop (Mac OS X v10.0 "Cheetah") mengikutinya pada Maret 2001. Sejak itu, ada enam "klien" dan "server" edisi OS X telah dirilis, yang terbaru OS X 10.8 "Mountain Lion" yang pertama kali tersedia pada tanggal 16 Februari 2012 untuk pengembang, dan kemudian dirilis untuk umum pada 25 Juli 2012. Rilis dari OS X diberi nama sesuai dengan "big cats".
  
Prior to its merging with OS X, the server edition - OS X Server - was architecturally identical to its desktop counterpart and usually ran on Apple's line of Macintosh server hardware. OS X Server included work group management and administration software tools that provide simplified access to key network services, including a mail transfer agent, a Samba server, an LDAP server, a domain name server, and others. With Mac OS X v10.7 Lion, all server aspects of Mac OS X Server have been integrated into the client version and the product re-branded as "OS X" (dropping "Mac" from the name). The server tools are now offered as an application.[6]
+
Sebelum penggabungan dengan OS X, server edition - OS X Server - secara arsitektur identik dengan desktop dan biasanya berjalan di Apple Macintosh server hardware. OS X Server mencakup work group manajemen dan perangkat lunak administrasi yang menyediakan akses yang disederhanakan untuk layanan jaringan utama, termasuk transfer mail, server Samba, server LDAP, server nama domain, dan lain-lain. Dengan MacOS X v10.7 Lion, aspek server MacOS X telah terintegrasi ke dalam versi klien dan produk rebranding "OS X" (membuang "MacOS" dari nama). Server tool sekarang ditawarkan sebagai aplikasi.
  
 
===Linux and GNU===
 
===Linux and GNU===
Main articles: GNU, Linux, and Linux kernel
 
Ubuntu, desktop Linux distribution
 
Android, a popular mobile operating system using the Linux kernel
 
  
Linux (or GNU/Linux) is a Unix-like operating system that was developed without any actual Unix code, unlike BSD and its variants. Linux can be used on a wide range of devices from supercomputers to wristwatches. The Linux kernel is released under an open source license, so anyone can read and modify its code. It has been modified to run on a large variety of electronics. Although estimates suggest that Linux is used on 1.82% of all personal computers,[7][8] it has been widely adopted for use in servers[9] and embedded systems[10] (such as cell phones). Linux has superseded Unix in most places[which?], and is used on the 10 most powerful supercomputers in the world.[11] The Linux kernel is used in some popular distributions, such as Red Hat, Debian, Ubuntu, Linux Mint and Google's Android.
+
Linux (atau GNU / Linux) adalah sistem operasi Unix-like yang dikembangkan tanpa kode Unix asli Unix-like , seperti BSD dan variannya. Linux dapat digunakan pada berbagai perangkat dari superkomputer hingga jam tangan. Kernel Linux dirilis di bawah lisensi open source, sehingga siapapun dapat membaca dan memodifikasi source code-nya. Linux telah dimodifikasi untuk berjalan pada berbagai macam elektronik. Perkiraan yang ada menunjukkan bahwa Linux digunakan pada 1,82% dari semua komputer pribadi, telah banyak diadopsi untuk digunakan di server hingga embedded system (seperti ponsel). Linux telah menggantikan Unix di kebanyakan tempat, dan digunakan pada 10 superkomputer di dunia. Kernel Linux yang digunakan dalam beberapa distro populer, seperti Red Hat, Debian, Ubuntu, Linux Mint dan Google Android.
  
The GNU project is a mass collaboration of programmers who seek to create a completely free and open operating system that was similar to Unix but with completely original code. It was started in 1983 by Richard Stallman, and is responsible for many of the parts of most Linux variants. Thousands of pieces of software for virtually every operating system are licensed under the GNU General Public License. Meanwhile, the Linux kernel began as a side project of Linus Torvalds, a university student from Finland. In 1991, Torvalds began work on it, and posted information about his project on a newsgroup for computer students and programmers. He received a wave of support and volunteers who ended up creating a full-fledged kernel. Programmers from GNU took notice, and members of both projects worked to integrate the finished GNU parts with the Linux kernel in order to create a full-fledged operating system.
+
Proyek GNU merupakan kolaborasi masal programmer yang berusaha untuk menciptakan sebuah sistem operasi benar-benar bebas dan yang mirip Unix tapi dengan kodesendiri. Proyek GNU dimulai pada tahun 1983 oleh Richard Stallman, dan bertanggung jawab untuk banyak bagian dari varian Linux. Ribuan buah perangkat lunak untuk hampir setiap sistem operasi berlisensi di bawah GNU General Public License. Sementara itu, kernel Linux dimulai sebagai proyek sampingan dari Linus Torvalds, seorang mahasiswa dari Finlandia. Pada tahun 1991, Torvalds mulai mengerjakan , dan memposting informasi tentang proyek-nya di newsgroup untuk mahasiswa komputer dan programer. Ia menerima banyak sekali dukungan dan sukarelawan yang akhirnya menciptakan sebuah kernel yang utuh. Pemrogram dari GNU tertarik , dan anggota kedua proyek bekerja sama untuk mengintegrasikan bagian dari GNU dengan kernel Linux dalam rangka menciptakan sistem operasi yang utuh.
  
 
===Google Chromium OS===
 
===Google Chromium OS===
Main article: Google Chromium OS
 
  
Chromium is an operating system based on the Linux kernel and designed by Google. Since Chromium OS targets computer users who spend most of their time on the Internet, it is mainly a web browser with no ability to run local applications. Instead, it relies on Internet applications (or Web apps) used in the web browser to accomplish tasks such as word processing and media viewing, as well as online storage for storing most files.
+
Chromium adalah sistem operasi berbasis kernel Linux dan didesain oleh Google. Karena Chromium OS ditujukan untuk pengguna komputer yang menghabiskan sebagian besar waktu mereka di Internet, dia banyak mengandalkan web browser dan tidak memiliki kemampuan untuk menjalankan aplikasi lokal. Akan tetapi, dia bergantung pada aplikasi internet (atau web apps ) yang digunakan dalam web browser untuk menyelesaikan pekerjaan seperti pengolah kata dan melihat media, serta penyimpanan online untuk menyimpan file.
Microsoft Windows
 
Main article: Microsoft Windows
 
Bootable Windows To Go USB flash drive
 
Microsoft Windows 7 Desktop
 
  
Microsoft Windows is a family of proprietary operating systems designed by Microsoft Corporation and primarily targeted to Intel architecture based computers, with an estimated 88.9 percent total usage share on Web connected computers.[8][12][13][14] The newest version is Windows 8 for workstations and Windows Server 2012 for servers. Windows 7 recently overtook Windows XP as most used OS.[15][16][17]
+
===Microsoft Windows===
  
Microsoft Windows originated in 1985 as an operating environment running on top of MS-DOS, which was the standard operating system shipped on most Intel architecture personal computers at the time. In 1995, Windows 95 was released which only used MS-DOS as a bootstrap. For backwards compatibility, Win9x could run real-mode MS-DOS[18][19] and 16 bits Windows 3.x[20] drivers. Windows ME, released in 2000, was the last version in the Win9x family. Later versions have all been based on the Windows NT kernel. Current versions of Windows run on IA-32 and x86-64 microprocessors, although Windows 8 will support ARM architecture. In the past, Windows NT supported non-Intel architectures.
+
Microsoft Windows adalah keluarga sistem operasi proprietary yang dirancang oleh Microsoft Corporation dan terutama ditargetkan untuk komputer berbasis arsitektur Intel, dengan estimasi pangsa 88,9 persen dari total komputer yang terhubung web. Versi terbaru adalah Windows 8 untuk workstation dan Windows Server 2012 untuk server. Windows 7 baru-baru ini melampaui Windows XP sebagai OS yang paling banyak digunakan.
  
Server editions of Windows are widely used. In recent years, Microsoft has expended significant capital in an effort to promote the use of Windows as a server operating system. However, Windows' usage on servers is not as widespread as on personal computers, as Windows competes against Linux and BSD for server market share.[21][22]
+
Microsoft Windows berawal pada tahun 1985 sebagai lingkungan operasi yang berjalan di atas MS-DOS, yang merupakan sistem operasi standar dikirimkan pada kebanyakan arsitektur komputer pribadi berbasis processor intel pada saat itu. Pada tahun 1995, Windows 95 dirilis yang hanya menggunakan MS-DOS sebagai bootstrap. Untuk kompatibilitas ke belakang, Win9x bisa menjalankan real-mode MS-​​DOS dan 16 bit Windows 3.x driver. Windows ME, dirilis pada tahun 2000, adalah versi terakhir dalam keluarga Win9x. Versi yang lebih baru semuanya telah didasarkan pada kernel Windows NT. Versi terkini dari Windows berjalan pada mikroprosesor IA-32 dan x86-64, meskipun Windows 8 akan mendukung arsitektur ARM. Di masa lalu, Windows NT mendukung non-Intel arsitektur.
 +
 
 +
Edisi Server Windows agak banyak digunakan. Dalam beberapa tahun terakhir, Microsoft telah mengeluarkan modal yang signifikan dalam upaya untuk mempromosikan penggunaan Windows sebagai sistem operasi server. Namun, pemakaian Windows pada server tidak begitu luas seperti pada komputer pribadi, karena Windows bersaing dengan Linux dan BSD untuk pangsa pasar server.
  
 
===Lainnya===
 
===Lainnya===
  
There have been many operating systems that were significant in their day but are no longer so, such as AmigaOS; OS/2 from IBM and Microsoft; Mac OS, the non-Unix precursor to Apple's Mac OS X; BeOS; XTS-300; RISC OS; MorphOS and FreeMint. Some are still used in niche markets and continue to be developed as minority platforms for enthusiast communities and specialist applications. OpenVMS formerly from DEC, is still under active development by Hewlett-Packard. Yet other operating systems are used almost exclusively in academia, for operating systems education or to do research on operating system concepts. A typical example of a system that fulfills both roles is MINIX, while for example Singularity is used purely for research.
+
Ada banyak sistem operasi yang signifikan pada zaman mereka tetapi tak lagi begitu sekarang, seperti AmigaOS, OS / 2 dari IBM dan Microsoft, MacOS pendahulu non-Unix untuk Apple Mac OS X, BeOS, XTS300; RISC OS, MorphOS dan FreeMint. Beberapa masih digunakan di ceruk pasar dan terus dikembangkan sebagai platform minoritas bagi mereka yang suka / antusias dan aplikasi khusus. OpenVMS sebelumnya dari DEC, masih dalam pengembangan aktif oleh Hewlett-Packard. Namun sistem operasi lain digunakan hampir secara eksklusif di akademisi, untuk pendidikan sistem operasi atau melakukan penelitian pada konsep sistem operasi. Sebuah contoh yang khas dari sistem yang memenuhi kedua peran adalah MINIX, sedangkan Singularity digunakan murni untuk penelitian.
  
Other operating systems have failed to win significant market share, but have introduced innovations that have influenced mainstream operating systems, not least Bell Labs' Plan 9.
+
Sistem operasi lain telah gagal untuk memenangkan pangsa pasar yang signifikan, namun telah memperkenalkan inovasi yang telah mempengaruhi sistem operasi mainstream, paling tidak Bell Labs Plan 9.
  
==Components==
+
==Komponen Sistem Operasi==
  
The components of an operating system all exist in order to make the different parts of a computer work together. All user software needs to go through the operating system in order to use any of the hardware, whether it be as simple as a mouse or keyboard or as complex as an Internet component.
+
Komponen sistem operasi semua ada untuk membuat bagian-bagian yang berbeda dari komputer bekerja sama. Semua perangkat lunak pengguna harus melalui sistem operasi untuk menggunakan perangkat keras, apakah itu sederhana seperti mouse atau keyboard atau serumit komponen internet.
  
 
===Kernel===
 
===Kernel===
A kernel connects the application software to the hardware of a computer.
 
Main article: Kernel (computing)
 
  
With the aid of the firmware and device drivers, the kernel provides the most basic level of control over all of the computer's hardware devices. It manages memory access for programs in the RAM, it determines which programs get access to which hardware resources, it sets up or resets the CPU's operating states for optimal operation at all times, and it organizes the data for long-term non-volatile storage with file systems on such media as disks, tapes, flash memory, etc.
+
Kernel menghubungkan perangkat lunak aplikasi ke perangkat keras komputer. Dengan bantuan firmware device driver, kernel menyediakan tingkat yang paling dasar untuk mengontrol semua perangkat keras komputer. Ia mengatur akses memori untuk program di RAM, menentukan program mana yang mendapatkan akses ke sumber daya perangkat keras, kernel menset up atau me-reset kondisi operasi CPU agar beroperasi optimal setiap saat, dan mengatur penyimpanan data untuk jangka panjang pada penyimpanan non-volatile dengan sistem file pada media seperti disk, kaset, memori flash, dll.
 +
 
 +
===Eksekusi Program===
 +
 
 +
Sistem operasi menyediakan antarmuka antara program aplikasi dengan perangkat keras komputer, sehingga program aplikasi dapat berinteraksi dengan perangkat keras hanya dengan mematuhi peraturan dan prosedur yang sudah diprogram ke dalam sistem operasi. Sistem operasi juga merupakan satu set layanan yang menyederhanakan pengembangan dan eksekusi program-program aplikasi. Eksekusi program aplikasi melibatkan proses pembuatan oleh kernel sistem operasi yang memberikan ruang memori dan sumber daya lainnya, menetapkan prioritas untuk proses multi-tasking sistem, memasukan program kode biner ke memori, dan memulai eksekusi program aplikasi yang kemudian berinteraksi dengan pengguna dan dengan perangkat keras.
 +
 
 +
===Interupsi===
  
===Program execution===
+
Interupsi sangat penting untuk sistem operasi, karena menyediakan cara yang efisien untuk sistem operasi untuk berinteraksi dengan dan bereaksi terhadap lingkungannya. Pilihan lainnya - menggunakan sistem operasi "mengawasi" berbagai sumber input akan kejadian (polling) agar dilakukan tindakan - teknik ini dapat ditemukan di sistem lama dengan stack yang sangat kecil (50 atau 60 byte) , teknik ini tidak biasa dalam sistem operasi modern dengan stack besar. Interupsi berbasis pemrograman langsung didukung oleh CPU paling modern. Interrupts memberikan komputer cara otomatis menyimpan konteks lokal register, dan menjalankan kode tertentu dalam menanggapi kejadian. Bahkan komputer yang sangat sederhana saat ini mendukung interupsi hardware, dan memungkinkan programmer untuk menentukan kode yang akan dijalankan ketika kejadian berlangsung.
Main article: Process (computing)
 
  
The operating system provides an interface between an application program and the computer hardware, so that an application program can interact with the hardware only by obeying rules and procedures programmed into the operating system. The operating system is also a set of services which simplify development and execution of application programs. Executing an application program involves the creation of a process by the operating system kernel which assigns memory space and other resources, establishes a priority for the process in multi-tasking systems, loads program binary code into memory, and initiates execution of the application program which then interacts with the user and with hardware devices.
+
Ketika interupsi diterima, hardware komputer secara otomatis menunda semua program yang sedang berjalan, statusnya disimpan, dan menjalankan kode komputer yang terkait dengan interupsi, hal ini analog dengan menempatkan penunjuk di buku sebagai tanggapan terhadap panggilan telepon. Dalam sistem operasi modern, interupsi ditangani oleh kernel sistem operasi. Interupsi dapat berasal dari baik perangkat keras komputer atau dari program berjalan.
  
===Interrupts===
+
Ketika sebuah perangkat keras memicu interupsi, kernel sistem operasi akan memutuskan bagaimana menangani kejadian ini, dengan menjalankan kode pemrosesan. Besarnya kode yang dijalankan tergantung pada prioritas interupsi (misalnya: orang biasanya akan merespon alarm detektor kebakaran sebelum menjawab telepon). Penanganan interupsi hardware biasanya didelegasikan ke perangkat lunak device driver , yang mungkin salah satu bagian dari kernel sistem operasi, atau bagian dari program lain, atau keduanya. Device driver kemudian dapat menyampaikan informasi ke program yang berjalan dengan berbagai cara.
Main article: Interrupt
 
  
Interrupts are central to operating systems, as they provide an efficient way for the operating system to interact with and react to its environment. The alternative — having the operating system "watch" the various sources of input for events (polling) that require action — can be found in older systems with very small stacks (50 or 60 bytes) but are unusual in modern systems with large stacks. Interrupt-based programming is directly supported by most modern CPUs. Interrupts provide a computer with a way of automatically saving local register contexts, and running specific code in response to events. Even very basic computers support hardware interrupts, and allow the programmer to specify code which may be run when that event takes place.
+
Sebuah program mungkin juga untuk memicu interupsi kepada sistem operasi. Jika sebuah program ingin mengakses hardware misalnya, dia dapat menginterupsi kernel sistem operasi, yang menyebabkan kontrol untuk dikembalikan ke kernel. Kernel kemudian akan memproses permintaan tersebut. Jika sebuah program ingin sumber daya tambahan (atau ingin menumpahkan sumber daya) seperti memori, ia akan memicu interupsi untuk mendapatkan perhatian kernel.
  
When an interrupt is received, the computer's hardware automatically suspends whatever program is currently running, saves its status, and runs computer code previously associated with the interrupt; this is analogous to placing a bookmark in a book in response to a phone call. In modern operating systems, interrupts are handled by the operating system's kernel. Interrupts may come from either the computer's hardware or from the running program.
+
===Mode===
  
When a hardware device triggers an interrupt, the operating system's kernel decides how to deal with this event, generally by running some processing code. The amount of code being run depends on the priority of the interrupt (for example: a person usually responds to a smoke detector alarm before answering the phone). The processing of hardware interrupts is a task that is usually delegated to software called device driver, which may be either part of the operating system's kernel, part of another program, or both. Device drivers may then relay information to a running program by various means.
+
Secara umum ada dua mode, yaitu, Mode Protected dan Mode Supervisor.
  
A program may also trigger an interrupt to the operating system. If a program wishes to access hardware for example, it may interrupt the operating system's kernel, which causes control to be passed back to the kernel. The kernel will then process the request. If a program wishes additional resources (or wishes to shed resources) such as memory, it will trigger an interrupt to get the kernel's attention.
+
Privilege ring untuk x86 tersedia dalam protected mode . Sistem operasi menentukan proses mana yang berjalan dalam masing-masing modus .
  
===Modes===
+
CPU modern mendukung beberapa mode operasi. CPU dengan kemampuan ini menggunakan setidaknya dua mode: mode dan supervisor mode. Supervisor mode digunakan oleh kernel sistem operasi untuk tugas-tugas tingkat rendah yang membutuhkan akses tidak terbatas ke perangkat keras, seperti mengendalikan bagaimana memori ditulis dan dihapus, dan komunikasi dengan perangkat seperti kartu grafis. Protected mode, sebaliknya, digunakan untuk hampir segala sesuatu yang lain. Aplikasi yang beroperasi dalam protected mode, akan hanya dapat menggunakan perangkat keras melalui komunikasi dengan kernel, yang mengontrol segala sesuatu dalam mode supervisor. CPU mungkin ada mode lain yang serupa dengan proteded mode , seperti mode virtual untuk mengemulasi jenis prosesor tua, seperti 16-bit prosesor pada 32-bit , atau 32-bit prosesor pada 64-bit.
Main articles: Protected mode and Supervisor mode
 
Privilege rings for the x86 available in protected mode. Operating systems determine which processes run in each mode.
 
  
Modern CPUs support multiple modes of operation. CPUs with this capability use at least two modes: protected mode and supervisor mode. The supervisor mode is used by the operating system's kernel for low level tasks that need unrestricted access to hardware, such as controlling how memory is written and erased, and communication with devices like graphics cards. Protected mode, in contrast, is used for almost everything else. Applications operate within protected mode, and can only use hardware by communicating with the kernel, which controls everything in supervisor mode. CPUs might have other modes similar to protected mode as well, such as the virtual modes in order to emulate older processor types, such as 16-bit processors on a 32-bit one, or 32-bit processors on a 64-bit one.
+
Ketika komputer pertama kali dijalankan, maka secara otomatis berjalan dalam mode supervisor. Beberapa program pertama yang berjalan di komputer, sebagai BIOS atau EFI, bootloader, dan sistem operasi memiliki akses tak terbatas ke perangkat keras - dan ini diperlukan karena, menurut definisi, Memulai lingkungan terlindungi hanya dapat dilakukan di luar lingkungan tersebut. Namun, ketika sistem operasi melewati kontrol ke program lain, maka dia dapat menset CPU ke mode protected.
  
When a computer first starts up, it is automatically running in supervisor mode. The first few programs to run on the computer, being the BIOS or EFI, bootloader, and the operating system have unlimited access to hardware – and this is required because, by definition, initializing a protected environment can only be done outside of one. However, when the operating system passes control to another program, it can place the CPU into protected mode.
+
Dalam mode protected, program mungkin memiliki akses ke set instruksi CPU yang terbatas . Sebuah program pengguna dapat meninggalkan mode protected hanya dengan memicu trigger, yang menyebabkan kontrol untuk diberikan kembali ke kernel. Dengan cara ini sistem operasi dapat mempertahankan kontrol eksklusif atas hal-hal seperti akses ke hardware dan memori.
  
In protected mode, programs may have access to a more limited set of the CPU's instructions. A user program may leave protected mode only by triggering an interrupt, causing control to be passed back to the kernel. In this way the operating system can maintain exclusive control over things like access to hardware and memory.
+
Istilah "protected mode resource" biasanya merujuk kepada satu atau lebih register CPU, yang berisi informasi bahwa program berjalan tidak diperbolehkan untuk mengubah. Upaya untuk mengubah sumber daya ini umumnya menyebabkan berubah ke mode supervisor, dimana sistem operasi dapat menangani operasi program ilegal (misalnya, dengan membunuh program).
  
The term "protected mode resource" generally refers to one or more CPU registers, which contain information that the running program isn't allowed to alter. Attempts to alter these resources generally causes a switch to supervisor mode, where the operating system can deal with the illegal operation the program was attempting (for example, by killing the program).
+
===Manajemen Memory===
  
===Memory management===
+
Antara lain, sebuah kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola semua sistem memori yang sedang digunakan oleh program. Hal ini memastikan bahwa program ini tidak terganggu dengan memori yang sudah digunakan oleh program lain. Karena program sharing waktu / time, setiap program harus memiliki akses independen ke memori.
Main article: Memory management
 
  
Among other things, a multiprogramming operating system kernel must be responsible for managing all system memory which is currently in use by programs. This ensures that a program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory.
+
Cooperative Memory Management, digunakan oleh banyak awal sistem operasi, berasumsi bahwa semua program menggunakan secara sukarela manajer memori kernel, dan tidak melebihi alokasi memori mereka . Teknik sistem pengelolaan memori ini hampir tidak pernah terlihat lagi, karena sering berisi program bug yang dapat menyebabkan mereka untuk mengalokasikan memori melebihi alokasinya. Jika program gagal, dapat menyebabkan memori yang digunakan oleh program lain menjadi terpengaruh atau ditimpa. Program jahat atau virus sengaja dapat mengubah memori program lain, atau dapat mempengaruhi pengoperasian sistem operasi itu sendiri. Dengan cooperative memory manajgement , dibutuhkan cukup satu program yang tidak diinginkan untuk membuuat sistem crash.
  
Cooperative memory management, used by many early operating systems, assumes that all programs make voluntary use of the kernel's memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen any more, since programs often contain bugs which can cause them to exceed their allocated memory. If a program fails, it may cause memory used by one or more other programs to be affected or overwritten. Malicious programs or viruses may purposefully alter another program's memory, or may affect the operation of the operating system itself. With cooperative memory management, it takes only one misbehaved program to crash the system.
+
Memori protection memungkinkan kernel untuk membatasi akses sebuah proses ke memori komputer. Ada berbagai metode memori protection , termasuk segmentasi memori dan paging. Semua metode memerlukan beberapa tingkat dukungan hardware (seperti 80286 MMU), yang tidak selalu ada di semua komputer.
  
Memory protection enables the kernel to limit a process' access to the computer's memory. Various methods of memory protection exist, including memory segmentation and paging. All methods require some level of hardware support (such as the 80286 MMU), which doesn't exist in all computers.
+
Baik dalam segmentasi dan paging, mode protected register tertentu di CPU akan menentukan alamat memori yang harus diperbolehkan untuk di akses oleh sebuah program yang berjalan . Upaya untuk mengakses alamat selain yang dialokasikan akan memicu interupsi yang akan menyebabkan CPU untuk memasukkan kembali mode supervisor, menjadikan kernel yang bertanggung jawab. Ini disebut pelanggaran segmentasi atau Seg-V untuk singkatnya, dan karena ini biasanya sulit untuk memperoleh hasil yang berarti dari operasi yang salah ini, oleh karena itu biasanya merupakan tanda adanya program yang salah, kernel umumnya akan mengambil jalan untuk mengakhiri program, dan akan melaporkan kesalahan.
  
In both segmentation and paging, certain protected mode registers specify to the CPU what memory address it should allow a running program to access. Attempts to access other addresses will trigger an interrupt which will cause the CPU to re-enter supervisor mode, placing the kernel in charge. This is called a segmentation violation or Seg-V for short, and since it is both difficult to assign a meaningful result to such an operation, and because it is usually a sign of a misbehaving program, the kernel will generally resort to terminating the offending program, and will report the error.
+
Di Windows, kesalahan segmentasi ini kadang akan muncul sebagai layar biru.
  
Windows 3.1-Me had some level of memory protection, but programs could easily circumvent the need to use it. A general protection fault would be produced, indicating a segmentation violation had occurred; however, the system would often crash anyway.
+
===Memory Virtual===
  
===Virtual memory===
+
Banyak sistem operasi dapat "menipu" program dalam menggunakan memori tersebar di seluruh hard disk dan RAM seolah-olah itu adalah salah satu potongan kontinu memori , yang disebut memori virtual.
Main article: Virtual memory
 
Further information: Page fault
 
Many operating systems can "trick" programs into using memory scattered around the hard disk and RAM as if it is one continuous chunk of memory, called virtual memory.
 
  
The use of virtual memory addressing (such as paging or segmentation) means that the kernel can choose what memory each program may use at any given time, allowing the operating system to use the same memory locations for multiple tasks.
+
Penggunaan pengalamatan memori virtuall (seperti paging atau segmentasi) berarti kernel dapat memilih memori apa yang digunakan setiap program pada waktu tertentu, yang memungkinkan sistem operasi untuk menggunakan lokasi memori yang sama untuk berbagai keperluan.
  
If a program tries to access memory that isn't in its current range of accessible memory, but nonetheless has been allocated to it, the kernel will be interrupted in the same way as it would if the program were to exceed its allocated memory. (See section on memory management.) Under UNIX this kind of interrupt is referred to as a page fault.
+
Jika sebuah program mencoba mengakses memory yang tidak adalah dalam range memori yang dapat di akses , tapi tetap telah dialokasikan untuk program tersebut, kernel akan diinterupsi dengan cara yang sama jika ada program melebihi memori yang dialokasikan. Di UNIX interupsi jenis ini di sebut sebagai kesalahan halaman / page fault.
  
When the kernel detects a page fault it will generally adjust the virtual memory range of the program which triggered it, granting it access to the memory requested. This gives the kernel discretionary power over where a particular application's memory is stored, or even whether or not it has actually been allocated yet.
+
Ketika kernel mendeteksi kesalahan halaman umumnya akan menyesuaikan range virtual memori bagi program yang memicunya, ia memberikan akses ke memori diminta. Hal ini memberikan kekuatan pada kernel untuk menentukan di mana memori dari aplikasi tertentu disimpan, atau apakah memori sudah dialoikasikan atau belum.
  
In modern operating systems, memory which is accessed less frequently can be temporarily stored on disk or other media to make that space available for use by other programs. This is called swapping, as an area of memory can be used by multiple programs, and what that memory area contains can be swapped or exchanged on demand.
+
Dalam sistem operasi modern, memori yang diakses jarang diakses dapat disimpan sementara pada disk atau media lain untuk membuat ruang yang tersedia agar dapat digunakan oleh program lain. Ini disebut swapping, sebagai daerah memori yang dapat digunakan oleh beberapa program, dan isi memori di daerah tersebut dapat ditukar (swap) sesuai permintaan.
  
"Virtual memory" provides the programmer or the user with the perception that there is a much larger amount of RAM in the computer than is really there.[23]
+
"Virtual memory" memberikan programmer maupun pengguna akan persepsi bahwa ada RAM dalam jumlah yang jauh lebih besar dari RAM yang sebenarnya ada di komputer.
  
 
===Multitasking===
 
===Multitasking===
Main articles: Computer multitasking and Process management (computing)
 
Further information: Context switch, Preemptive multitasking, and Cooperative multitasking
 
  
Multitasking refers to the running of multiple independent computer programs on the same computer; giving the appearance that it is performing the tasks at the same time. Since most computers can do at most one or two things at one time, this is generally done via time-sharing, which means that each program uses a share of the computer's time to execute.
+
Multitasking adalah menjalankan beberapa program komputer independen pada komputer yang sama, memberikan kesan bahwa komputer melakukan tugas pada waktu yang sama. Karena kebanyakan komputer hanya dapat melakukan paling banyak satu atau dua hal pada satu waktu, multitasking biasanya dilakukan menggunakan time-sharing, yang berarti bahwa setiap program menggunakan sebagian dari waktu komputer saat dieksekusi.
  
An operating system kernel contains a piece of software called a scheduler which determines how much time each program will spend executing, and in which order execution control should be passed to programs. Control is passed to a process by the kernel, which allows the program access to the CPU and memory. Later, control is returned to the kernel through some mechanism, so that another program may be allowed to use the CPU. This so-called passing of control between the kernel and applications is called a context switch.
+
Sebuah kernel sistem operasi berisi software yang disebut scheduler yang menentukan berapa banyak waktu setiap program yang dapat digunakan saat eksekusi, yang mana perintah untuk kontrol eksekusi harus diberikan ke program. Kontrol diberikan ke sebuah process oleh kernel, yang mengijinkan program untuk mengakses CPU atau memory. Kemudian, kontrol dikembalikan ke kernel melalui sebuah mekanisme, sehingga program lain dapat diijinkan untuk menggunakan CPU. Proses pemberian kontrol antara kernel dengan aplikasi biasanya di sebut sebagai context switch.
  
An early model which governed the allocation of time to programs was called cooperative multitasking. In this model, when control is passed to a program by the kernel, it may execute for as long as it wants before explicitly returning control to the kernel. This means that a malicious or malfunctioning program may not only prevent any other programs from using the CPU, but it can hang the entire system if it enters an infinite loop.
+
Model awal yang diatur alokasi waktu untuk program disebut cooperative multitasking. Dalam model ini, ketika kendali diberikan ke program oleh kernel, program dapat dijalankan selama program inginkan sebelum secara eksplisit mengembalikan kontrol ke kernel. Ini berarti bahwa program jahat atau program yang tidak berfungsi tidak hanya mencegah program lain dari penggunaan CPU, tetapi bisa menggantung seluruh sistem jika memasuki infinite loop.
  
Modern operating systems extend the concepts of application preemption to device drivers and kernel code, so that the operating system has preemptive control over internal run-times as well.
+
Sistem operasi modern memperluas konsep preemption aplikasi ke device driver dan kode kernel, sehingga sistem operasi memiliki kontrol preemptive atas internal run-time juga.
  
The philosophy governing preemptive multitasking is that of ensuring that all programs are given regular time on the CPU. This implies that all programs must be limited in how much time they are allowed to spend on the CPU without being interrupted. To accomplish this, modern operating system kernels make use of a timed interrupt. A protected mode timer is set by the kernel which triggers a return to supervisor mode after the specified time has elapsed. (See above sections on Interrupts and Dual Mode Operation.)
+
Filosofi mengatur preemptive multitasking adalah untuk memastikan bahwa semua program yang diberi waktu di CPU. Ini menunjukkan bahwa semua program harus dibatasi dalam berapa banyak waktu mereka diizinkan untuk dihabiskan di CPU tanpa di interupsi. Untuk mencapai hal ini, kernel sistem operasi modern menggunakan sebuah interupsi berjangka. Sebuah protected mode timer diatur oleh kernel yang memicu untuk kembali ke mode supervisor setelah waktu yang ditentukan telah berlalu.
  
On many single user operating systems cooperative multitasking is perfectly adequate, as home computers generally run a small number of well tested programs. The AmigaOS is an exception, having pre-emptive multitasking from its very first version. Windows NT was the first version of Microsoft Windows which enforced preemptive multitasking, but it didn't reach the home user market until Windows XP (since Windows NT was targeted at professionals).
+
Pada banyak sistem operasi single user cooperative multitasking cukup memadai, karena umumnya home komputer (PC) menjalankan sejumlah program teruji baik. AmigaOS adalah pengecualian, karena menggunakan pre-emptive multitasking dari versi pertama. Windows NT merupakan versi pertama dari Microsoft Windows yang menerapkan preemptive multitasking, tetapi tidak mencapai pasar pengguna rumah sampai Windows XP (sebab Windows NT ditujukan pada profesional).
  
===Disk access and file systems===
+
===Akses Disk dan file system===
Main article: Virtual file system
 
Filesystems allow users and programs to organize and sort files on a computer, often through the use of directories (or "folders")
 
  
Access to data stored on disks is a central feature of all operating systems. Computers store data on disks using files, which are structured in specific ways in order to allow for faster access, higher reliability, and to make better use out of the drive's available space. The specific way in which files are stored on a disk is called a file system, and enables files to have names and attributes. It also allows them to be stored in a hierarchy of directories or folders arranged in a directory tree.
+
Filesystem memungkinkan pengguna dan program untuk menata dan mengatur file pada komputer, biasanya melalui penggunaan direktori (atau "folder")
  
Early operating systems generally supported a single type of disk drive and only one kind of file system. Early file systems were limited in their capacity, speed, and in the kinds of file names and directory structures they could use. These limitations often reflected limitations in the operating systems they were designed for, making it very difficult for an operating system to support more than one file system.
+
Akses ke data yang tersimpan pada disk adalah fitur utama dari semua sistem operasi. Komputer menyimpan data pada disk menggunakan file, yang terstruktur dengan cara tertentu agar memungkinkan untuk mengakses dengan cepat, keandalan yang lebih tinggi, dan untuk memaksimalkan penggunaan ruang yang tersedia pada disk. Cara khusus di mana file tersebut disimpan pada disk yang disebut sistem file, dan memungkinkan file untuk memiliki nama dan atribut. Hal ini juga memungkinkan mereka untuk disimpan dalam hirarki direktori atau folder yang diatur dalam struktur direktori.
  
While many simpler operating systems support a limited range of options for accessing storage systems, operating systems like UNIX and Linux support a technology known as a virtual file system or VFS. An operating system such as UNIX supports a wide array of storage devices, regardless of their design or file systems, allowing them to be accessed through a common application programming interface (API). This makes it unnecessary for programs to have any knowledge about the device they are accessing. A VFS allows the operating system to provide programs with access to an unlimited number of devices with an infinite variety of file systems installed on them, through the use of specific device drivers and file system drivers.
+
Sistem operasi awal umumnya mendukung satu jenis disk drive dan hanya satu jenis sistem file. File System awal terbatas dalam kapasitas mereka, kecepatan, dan dalam jenis nama file dan struktur direktori bisa mereka gunakan. Keterbatasan ini sering tercermin keterbatasan dalam sistem operasi yang dirancang, sehingga sangat sulit bagi sebuah sistem operasi untuk mendukung lebih dari satu sistem file.
  
A connected storage device, such as a hard drive, is accessed through a device driver. The device driver understands the specific language of the drive and is able to translate that language into a standard language used by the operating system to access all disk drives. On UNIX, this is the language of block devices.
+
Sementara banyak sistem operasi sederhana mendukung berbagai pilihan terbatas untuk mengakses sistem penyimpanan, sistem operasi seperti UNIX dan Linux mendukung teknologi yang dikenal sebagai Virtual File System atau VFS. Sebuah sistem operasi seperti UNIX mendukung beragam perangkat penyimpanan, terlepas dari desain atau File System, yang memungkinkan mereka untuk dapat diakses melalui Application Programming Interface (API) yang sama. Hal ini membuatnya tidak perlu untuk program untuk memiliki pengetahuan tentang perangkat mereka mengakses. Sebuah VFS memungkinkan sistem operasi untuk menyediakan program dengan akses jumlah perangkat yang tidak terbatas dengan berbagai file sistem terinstall yang tidak terbatas pada mereka, melalui penggunaan driver perangkat tertentu dan driver sistem file.
  
When the kernel has an appropriate device driver in place, it can then access the contents of the disk drive in raw format, which may contain one or more file systems. A file system driver is used to translate the commands used to access each specific file system into a standard set of commands that the operating system can use to talk to all file systems. Programs can then deal with these file systems on the basis of filenames, and directories/folders, contained within a hierarchical structure. They can create, delete, open, and close files, as well as gather various information about them, including access permissions, size, free space, and creation and modification dates.
+
Sebuah perangkat penyimpanan yang tersambung, seperti hard drive, diakses melalui device driver yang sama. Driver driver memahami cara berkomunikasi dengan drive dan mampu menterjemahkan bahasa yang menjadi bahasa standar yang digunakan oleh sistem operasi untuk mengakses semua disk drive yang sama. Pada UNIX, ini adalah bahasa dari block device.
  
Various differences between file systems make supporting all file systems difficult. Allowed characters in file names, case sensitivity, and the presence of various kinds of file attributes makes the implementation of a single interface for every file system a daunting task. Operating systems tend to recommend using (and so support natively) file systems specifically designed for them; for example, NTFS in Windows and ext3 and ReiserFS in Linux. However, in practice, third party drives are usually available to give support for the most widely used file systems in most general-purpose operating systems (for example, NTFS is available in Linux through NTFS-3g, and ext2/3 and ReiserFS are available in Windows through third-party software).
+
Ketika kernel memiliki driver driver yang tepat , maka ia dapat mengakses isi disk drive dalam format mentah, yang mungkin berisi satu atau lebih File System. Sebuah driver sistem file digunakan untuk menterjemahkan perintah yang digunakan untuk mengakses setiap sistem file tertentu ke dalam satu set standar perintah yang sistem operasi dapat digunakan untuk berbicara dengan semua file system. Program kemudian dapat menangani sistem file ini berdasarkan nama file, dan direktori / folder, yang berada dalam struktur hirarkis. Mereka dapat membuat, menghapus, membuka, dan menutup file, serta mengumpulkan berbagai informasi tentang mereka, termasuk hak akses, ukuran, ruang bebas, dan tanggal pembuatan dan tanggal modifikasi.
  
Support for file systems is highly varied among modern operating systems, although there are several common file systems which almost all operating systems include support and drivers for. Operating systems vary on file system support and on the disk formats they may be installed on. Under Windows, each file system is usually limited in application to certain media; for example, CDs must use ISO 9660 or UDF, and as of Windows Vista, NTFS is the only file system which the operating system can be installed on. It is possible to install Linux onto many types of file systems. Unlike other operating systems, Linux and UNIX allow any file system to be used regardless of the media it is stored in, whether it is a hard drive, a disc (CD,DVD...), a USB flash drive, or even contained within a file located on another file system.
+
Berbagai perbedaan antara File System membuat dukungan untuk semua File System menjadi sulit. Karakter yang diperbolehkan dalam nama file, huruf besar / huruf kecil, dan adanya berbagai jenis atribut berkas membuat implementasi satu antarmuka untuk setiap file system menjadi tugas yang menyulitkan. Sistem operasi cenderung untuk merekomendasikan menggunakan (dan begitu mendukung native) file sistem yang dirancang khusus untuk mereka, misalnya, NTFS di Windows dan ext3 dan ReiserFS di Linux. Namun, dalam prakteknya, ada pihak ketiga yang menyediakan driver untuk memberikan dukungan untuk sistem file yang paling banyak digunakan di sebagian besar sistem operasi (misalnya, NTFS tersedia di Linux melalui NTFS-3g, dan ext2 / 3 dan ReiserFS tersedia di Windows melalui perangkat lunak pihak ketiga).
  
 +
Dukungan untuk sistem file sangat bervariasi di antara sistem operasi modern, meskipun ada beberapa file system yang sama di hampir semua sistem operasi termasuk dukungan dan driver. Sistem operasi bervariasi pada dukungan file sistem dan pada format disk tempat mereka dapat diinstal. Pada Windows, setiap sistem berkas biasanya terbatas dalam aplikasi untuk media tertentu, misalnya, CD harus menggunakan ISO 9660 atau UDF, dan pada Windows Vista, NTFS adalah file system dimana sistem operasi dapat diinstal. Berbeda dengan Windows, sangat mungkin untuk menginstal Linux ke berbagai jenis file sistem . Tidak seperti sistem operasi lain, Linux dan UNIX membiarkan sistem berkas untuk digunakan terlepas dari media yang disimpan dalam, apakah itu hard drive, disk (CD, DVD ...), USB flash drive, atau bahkan berada dalam file terletak di sistem berkas lain.
  
===Device drivers===
+
===Device driver===
Main article: Device driver
 
  
A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. It is a specialized hardware-dependent computer program which is also operating system specific that enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs.
+
Device Driver adalah perangkat lunak spesifik pada komputer yang dikembangkan untuk memungkinkan interaksi dengan perangkat keras. Biasanya ini merupakan sebuah antarmuka untuk berkomunikasi dengan perangkat, melalui bus komputer tertentu atau subsistem komunikasi yang terhubung ke hardware , memberikan perintah untuk dan / atau menerima data dari perangkat, dan di ujung lain, interface yang diperlukan untuk operasi sistem dan aplikasi perangkat lunak. Ini adalah program komputer khusus yang tergantung hardware yang juga untuk sistem operasi yang spesifik yang memungkinkan program lain, biasanya sistem operasi atau aplikasi / perangkat lunak / program komputer yang berjalan dibawah kernel sistem operasi, untuk berinteraksi secara transparan dengan perangkat keras, dan biasanya menyediakan penanganan interupsi yang diperlukan yang diperlukan untuk hardware yang asinkroin dan time-dependent.
  
The key design goal of device drivers is abstraction. Every model of hardware (even within the same class of device) is different. Newer models also are released by manufacturers that provide more reliable or better performance and these newer models are often controlled differently. Computers and their operating systems cannot be expected to know how to control every device, both now and in the future. To solve this problem, operating systems essentially dictate how every type of device should be controlled. The function of the device driver is then to translate these operating system mandated function calls into device specific calls. In theory a new device, which is controlled in a new manner, should function correctly if a suitable driver is available. This new driver will ensure that the device appears to operate as usual from the operating system's point of view.
+
Tujuan utama desain device driver adalah abstraksi. Setiap model perangkat keras (bahkan dalam kelas perangkat yang sama ) berbeda. Model-model baru juga dikeluarkan oleh produsen yang memberikan performa yang lebih handal / lebih baik dan model-model lebih baru sering berbeda cara mengontrolnya . Komputer dan sistem operasi tidak dapat diharapkan untuk mengetahui bagaimana untuk mengontrol setiap perangkat, baik sekarang maupun di masa depan. Untuk mengatasi masalah ini, sistem operasi pada dasarnya akan mendikte bagaimana cara setiap jenis perangkat harus dikontrol. Fungsi dari device driver untuk menterjemahkan amanat dari sistem operasi menjadi fungsi panggilan untuk perangkat tertentu. Dalam teori seharusnya perangkat baru, yang dikendalikan dengan cara baru, harus berfungsi dengan benar jika driver yang cocok tersedia. Driver baru ini akan memastikan bahwa perangkat yang baru muncul beroperasi seperti biasa dilihat dari sudut pandang sistem operasi.
  
Under versions of Windows before Vista and versions of Linux before 2.6, all driver execution was co-operative, meaning that if a driver entered an infinite loop it would freeze the system. More recent revisions of these operating systems incorporate kernel preemption, where the kernel interrupts the driver to give it tasks, and then separates itself from the process until it receives a response from the device driver, or gives it more tasks to do.
+
Pada versi Windows sebelum Vista dan versi Linux sebelum 2.6, semua eksekusi driver sifatnya adalah co-operative, yang berarti bahwa jika driver memasuki infinite loop akan mem-freeze sistem. Revisi lebih baru dari sistem operasi menggabungkan preemption kernel, dimana kernel menginterupsi driver untuk memberikan tugas, dan kemudian melepaskan diri dari proses sampai menerima tanggapan dari device driver, atau memberi lebih banyak tugas yang dapat dilakukan.
  
 
===Networking===
 
===Networking===
Main article: Computer network
 
  
Currently most operating systems support a variety of networking protocols, hardware, and applications for using them. This means that computers running dissimilar operating systems can participate in a common network for sharing resources such as computing, files, printers, and scanners using either wired or wireless connections. Networks can essentially allow a computer's operating system to access the resources of a remote computer to support the same functions as it could if those resources were connected directly to the local computer. This includes everything from simple communication, to using networked file systems or even sharing another computer's graphics or sound hardware. Some network services allow the resources of a computer to be accessed transparently, such as SSH which allows networked users direct access to a computer's command line interface.
+
Saat ini sebagian besar sistem operasi mendukung berbagai protokol jaringan, perangkat keras, dan aplikasi untuk menggunakannya. Ini berarti bahwa komputer yang menjalankan sistem operasi berbeda dapat berpartisipasi dalam jaringan komputer untuk berbagi sumber daya seperti komputasi, file, printer, dan scanner menggunakan koneksi kabel atau wireless. Jaringan komputer pada dasarnya dapat memungkinkan sistem operasi komputer untuk mengakses sumber daya dari komputer remote untuk mendukung fungsi yang sama seperti jika sumber daya tersebut dihubungkan langsung ke komputer lokal. Ini mencakup segala sesuatu dari komunikasi sederhana, hingga menggunakan file system jaringan atau bahkan sharing grafis komputer lain atau perangkat keras suara. Beberapa layanan jaringan mengizinkan sumber daya dari komputer yang akan diakses transparan, seperti SSH yang memungkinkan pengguna jaringan akses langsung ke antarmuka baris text di komputer remote.
  
Client/server networking allows a program on a computer, called a client, to connect via a network to another computer, called a server. Servers offer (or host) various services to other network computers and users. These services are usually provided through ports or numbered access points beyond the server's network address. Each port number is usually associated with a maximum of one running program, which is responsible for handling requests to that port. A daemon, being a user program, can in turn access the local hardware resources of that computer by passing requests to the operating system kernel.
+
Jaringan client / server memungkinkan sebuah program pada komputer, yang disebut klien, untuk berhubungan melalui jaringan ke komputer lain, yang disebut server. Server menawarkan (atau host) berbagai layanan untuk komputer jaringan lainnya dan pengguna. Layanan ini biasanya diberikan melalui port atau nomor jalur akses selain alamat jaringan dari server. Setiap nomor port biasanya dikaitkan dengan satu program / aplikasi, yang bertanggung jawab untuk menangani permintaan untuk port tersebut. Daemon, adalah program yang jalan di server, pada saatnya dapat mengakses sumber daya perangkat keras lokal komputer yang dengan melewatkan permintaan ke kernel sistem operasi.
  
Many operating systems support one or more vendor-specific or open networking protocols as well, for example, SNA on IBM systems, DECnet on systems from Digital Equipment Corporation, and Microsoft-specific protocols (SMB) on Windows. Specific protocols for specific tasks may also be supported such as NFS for file access. Protocols like ESound, or esd can be easily extended over the network to provide sound from local applications, on a remote system's sound hardware.
+
Banyak sistem operasi mendukung satu atau lebih protokol jaringan milik vendor maupun yang terbuka / open, misalnya, SNA untuk IBM sistem, DECnet pada sistem dari Digital Equipment Corporation, dan Microsoft-spesifik protokol (SMB) pada Windows. Protokol khusus untuk tugas-tugas tertentu mungkin juga didukung seperti NFS untuk akses file. Protokol seperti esound, atau esd dapat dengan mudah diperluas melalui jaringan untuk menyediakan suara dari aplikasi lokal, pada hardware sound sistem remote.
 +
 
 +
Internet adalah salah satu jenis protokol jaringan yang mempunyai standard terbuka yang dapat dijalankan di berbagai sistem operasi. Standard Internet dibuat secara bersama / terbuka oleh banyak pihak, dan dapat di akses melalui web dengan kata kunci "Request For Comment" (RFC).
  
 
===Security===
 
===Security===
Main article: Computer security
 
  
A computer being secure depends on a number of technologies working properly. A modern operating system provides access to a number of resources, which are available to software running on the system, and to external devices like networks via the kernel.
+
Sebuah komputer yang aman tergantung pada sejumlah teknologi bekerja dengan baik. Sebuah sistem operasi modern menyediakan akses ke sejumlah sumber daya yang tersedia untuk perangkat lunak yang berjalan pada sistem, dan perangkat eksternal seperti jaringan melalui kernel.
  
The operating system must be capable of distinguishing between requests which should be allowed to be processed, and others which should not be processed. While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester identity, such as a user name. To establish identity there may be a process of authentication. Often a username must be quoted, and each username may have a password. Other methods of authentication, such as magnetic cards or biometric data, might be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all (such as reading files over a network share). Also covered by the concept of requester identity is authorization; the particular services and resources accessible by the requester once logged into a system are tied to either the requester's user account or to the variously configured groups of users to which the requester belongs.
+
Sistem operasi harus mampu membedakan antara permintaan yang harus diperbolehkan untuk diproses, dan lain-lain yang tidak harus diproses. Sementara beberapa sistem mungkin hanya membedakan antara "previleged / istimewa" dan "non-privileged", sistem umumnya memiliki bentuk identitas pemohon, seperti nama pengguna. Untuk menentukan identitas mungkin ada proses authentikasi. Seringkali nama pengguna harus dikutip, dan username masing-masing mungkin punya password. Metode authentikasi lain , seperti kartu magnetik atau data biometric, mungkin digunakan sebagai gantinya. Dalam beberapa kasus, khususnya koneksi dari jaringan, sumber daya dapat diakses tanpa authentikasi sama sekali (seperti membaca file melalui sharing jaringan). Juga dicakup oleh konsep identitas pemohon adalah authorisasi; layanan tertentu dan sumber daya diakses oleh pemohon sekali login ke sistem terikat ke salah satu akun pengguna pemohon atau ke grup yang di konfigurasi terkait ke account pengguna tersebut.
  
In addition to the allow/disallow model of security, a system with a high level of security will also offer auditing options. These would allow tracking of requests for access to resources (such as, "who has been reading this file?"). Internal security, or security from an already running program is only possible if all possibly harmful requests must be carried out through interrupts to the operating system kernel. If programs can directly access hardware and resources, they cannot be secured.
+
Selain model keamanan yang berbentuk mengijinkan / melarang , sebuah sistem dengan tingkat keamanan yang tinggi juga akan menawarkan pilihan audit. Ini akan memungkinkan pelacakan permintaan akses ke sumber daya (seperti, "siapa yang telah membaca file ini?"). Keamanan internal, atau keamanan dari program yang sedang berjalan hanya mungkin jika semua permintaan yang mungkin berbahaya harus dilakukan melalui interupsi ke kernel sistem operasi. Jika program langsung dapat mengakses hardware dan sumber daya, mereka tidak bisa diamankan.
  
External security involves a request from outside the computer, such as a login at a connected console or some kind of network connection. External requests are often passed through device drivers to the operating system's kernel, where they can be passed onto applications, or carried out directly. Security of operating systems has long been a concern because of highly sensitive data held on computers, both of a commercial and military nature. The United States Government Department of Defense (DoD) created the Trusted Computer System Evaluation Criteria (TCSEC) which is a standard that sets basic requirements for assessing the effectiveness of security. This became of vital importance to operating system makers, because the TCSEC was used to evaluate, classify and select trusted operating systems being considered for the processing, storage and retrieval of sensitive or classified information.
+
Keamanan eksternal melibatkan permintaan dari luar komputer, seperti login di konsol atau beberapa jenis koneksi jaringan. Permintaan eksternal sering melewati device driver ke kernel sistem operasi, di mana mereka dapat diteruskan ke aplikasi, maupun dilakukan secara langsung. Keamanan sistem operasi telah lama menjadi perhatian karena data sangat sensitif yang ada di komputer, baik yang bersifat komersial dan militer. Pemerintah Amerika Serikat Departemen Pertahanan (DoD) mengusulkan Trusted Computer Kriteria Evaluasi Sistem (TCSEC) yang merupakan standar yang menetapkan persyaratan dasar untuk menilai efektivitas keamanan. Hal ini menjadi sangat penting bagi para pembuat sistem operasi, karena TCSEC ini digunakan untuk mengevaluasi, mengklasifikasi dan memilih sistem operasi yang dipercaya untuk dipertimbangkan untuk penyimpanan, pengolahan dan pengambilan informasi sensitif atau rahasia.
  
Network services include offerings such as file sharing, print services, email, web sites, and file transfer protocols (FTP), most of which can have compromised security. At the front line of security are hardware devices known as firewalls or intrusion detection/prevention systems. At the operating system level, there are a number of software firewalls available, as well as intrusion detection/prevention systems. Most modern operating systems include a software firewall, which is enabled by default. A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system. Therefore, one can install and be running an insecure service, such as Telnet or FTP, and not have to be threatened by a security breach because the firewall would deny all traffic trying to connect to the service on that port.
+
Layanan jaringan meliputi banyak hal seperti file sharing, layanan printing, email, situs web, dan protokol transfer file (FTP), sebagian besar yang dapat membahayakan keamanan. Di garis depan keamanan perangkat keras yang dikenal sebagai firewall maupun intrusion detection / prevention systems. Pada tingkat sistem operasi, ada sejumlah firewall perangkat lunak yang tersedia, serta intrusion detection / prevention system. Sebagian besar sistem operasi modern memasukan perangkat lunak firewall , yang diaktifkan secara default. Sebuah perangkat lunak firewall dapat dikonfigurasi untuk mengizinkan atau menolak lalu lintas jaringan ke atau dari suatu layanan atau aplikasi yang berjalan pada sistem operasi. Oleh karena itu, seseorang dapat menginstal dan menjalankan layanan yang tidak aman, seperti Telnet maupun FTP, dan tidak harus terancam oleh suatu pelanggaran keamanan karena firewall akan menolak semua lalu lintas mencoba untuk terhubung ke layanan pada port tersebut.
  
An alternative strategy, and the only sandbox strategy available in systems that do not meet the Popek and Goldberg virtualization requirements, is the operating system not running user programs as native code, but instead either emulates a processor or provides a host for a p-code based system such as Java.
+
Strategi alternatif adalah sistem operasi tidak menjalankan program pengguna sebagai native code, melainkan mengemulasi prosesor atau menyediakan host untuk sistem berbasis code seperti Java.
  
Internal security is especially relevant for multi-user systems; it allows each user of the system to have private files that the other users cannot tamper with or read. Internal security is also vital if auditing is to be of any use, since a program can potentially bypass the operating system, inclusive of bypassing auditing.
+
Keamanan internal sangat relevan untuk sistem multi-user, yang memungkinkan setiap pengguna sistem untuk memiliki file pribadi yang mana pengguna lain tidak bisa mengutak-atik atau membaca. Keamanan internal juga penting jika audit akan digunakan, karena program berpotensi dapat melewati sistem operasi, termasuk melewati audit.
  
 
===User interface===
 
===User interface===
A screenshot of the Bourne Again Shell command line. Each command is typed out after the 'prompt', and then its output appears below, working its way down the screen. The current command prompt is at the bottom.
 
Main article: Operating system user interface
 
  
Every computer that is to be operated by an individual requires a user interface. The user interface is usually referred to as a shell and is essential if human interaction is to be supported. The user interface views the directory structure and requests services from the operating system that will acquire data from input hardware devices, such as a keyboard, mouse or credit card reader, and requests operating system services to display prompts, status messages and such on output hardware devices, such as a video monitor or printer. The two most common forms of a user interface have historically been the command-line interface, where computer commands are typed out line-by-line, and the graphical user interface, where a visual environment (most commonly a WIMP) is present.
+
[[Image:CLI.png|right|200px|thumb|screenshot Bourne Again Shell command line. setiap perintah di tulis sesudah 'prompt', dan output akan tampak di layar di bawahnya. Command prompt akan tampak dibagian bawah]]
Graphical user interfaces
+
 
A screenshot of the KDE Plasma Desktop graphical user interface. Programs take the form of images on the screen, and the files, folders (directories), and applications take the form of icons and symbols. A mouse is used to navigate the computer.
+
Setiap komputer yang akan dioperasikan oleh seorang individu memerlukan antarmuka pengguna. Antarmuka pengguna biasanya disebut sebagai [[shell]] dan penting jika akan mendukung interaksi dengan manusia . User interface melihat pada struktur direktori dan layanan permintaan dari [[sistem operasi]] yang akan memperoleh data dari perangkat keras input, seperti [[card reader]], [[keyboard]], [[mouse]], dan permintaan layanan [[sistem operasi]] untuk menampilkan prompt, pesan status, dan pada perangkat [[hardware]] output, seperti monitor video atau [[printer]]. Dua bentuk yang paling umum dari antarmuka pengguna secara historis [[command line interface]] ([[CLI]]), di mana perintah komputer mengetik baris demi baris, dan [[antarmuka grafis]] ([[GUI]]) yang menampilkan tampilan visual.
 +
 
 +
[[Image:GUI.png|right|200px|thumb|screenshot dari Unity Interface pada Ubuntu. Program akan tampak sebagai gambar pada layar, dan file, folder (directori), dan aplikasi tampak sebagai icon dan simbol. Mouse digunakan untuk melakukan navigasi di komputer]]
  
Most of the modern computer systems support graphical user interfaces (GUI), and often include them. In some computer systems, such as the original implementation of Mac OS, the GUI is integrated into the kernel.
+
Sebagian besar sistem [[komputer]] modern mendukung [[antarmuka grafis]] ([[GUI]]) , dan sering memasukan [[GUI]] menjadi bagian dari [[sistem operasi]] tersebut. Dalam beberapa sistem [[komputer]], seperti implementasi semula dari Mac OS, [[GUI]] terintegrasi ke dalam [[kernel]].
  
While technically a graphical user interface is not an operating system service, incorporating support for one into the operating system kernel can allow the GUI to be more responsive by reducing the number of context switches required for the GUI to perform its output functions. Other operating systems are modular, separating the graphics subsystem from the kernel and the Operating System. In the 1980s UNIX, VMS and many others had operating systems that were built this way. Linux and Mac OS X are also built this way. Modern releases of Microsoft Windows such as Windows Vista implement a graphics subsystem that is mostly in user-space; however the graphics drawing routines of versions between Windows NT 4.0 and Windows Server 2003 exist mostly in kernel space. Windows 9x had very little distinction between the interface and the kernel.
+
Secara teknis [[antarmuka grafis]] ([[GUI]]) bukan merupakan layanan [[sistem operasi]], menggabungkan dukungan untuk sebuah [[GUI]] ke [[kernel]] [[sistem operasi]] dapat membuka kemungkinan agar GUI untuk lebih responsif dengan mengurangi jumlah konteks switch yang diperlukan GUI untuk menjalankan fungsi tampilannya. Beberapa [[sistem operasi]] bersifat modular, memisahkan subsistem grafis dari kernel dan [[sistem operasi]]. Pada 1980-an UNIX, VMS dan banyak lainnya membangun sistem operasi dengan cara ini. [[Linux]] dan Mac OS X juga dibangun dengan cara ini. Rilis Modern Microsoft Windows seperti Windows Vista menerapkan subsistem grafis sebagian besar di user-space, namun subroutine menggambar grafis dalam versi antara Windows NT 4.0 dan Windows Server 2003 ada sebagian besar dalam kernel. Windows 9x memiliki perbedaan yang sangat sedikit antara [[interface]] dan [[kernel]].
  
Many computer operating systems allow the user to install or create any user interface they desire. The X Window System in conjunction with GNOME or KDE Plasma Desktop is a commonly found setup on most Unix and Unix-like (BSD, Linux, Solaris) systems. A number of Windows shell replacements have been released for Microsoft Windows, which offer alternatives to the included Windows shell, but the shell itself cannot be separated from Windows.
+
Banyak [[sistem operasi]] [[komputer]] memungkinkan pengguna untuk menginstal atau membuat antarmuka pengguna yang mereka inginkan. The X Window System dalam hubungannya dengan GNOME maupun KDE Plasma Desktop adalah setup yang umum ditemukan pada kebanyakan sistem GUI di Unix dan GUI di Unix-like (BSD, Linux, Solaris). Sejumlah pengganti shell Windows telah dirilis untuk Microsoft Windows, yang menawarkan alternatif untuk shell Windows , tapi shell itu sendiri tidak dapat dipisahkan dari Windows.
  
Numerous Unix-based GUIs have existed over time, most derived from X11. Competition among the various vendors of Unix (HP, IBM, Sun) led to much fragmentation, though an effort to standardize in the 1990s to COSE and CDE failed for various reasons, and were eventually eclipsed by the widespread adoption of GNOME and K Desktop Environment. Prior to free software-based toolkits and desktop environments, Motif was the prevalent toolkit/desktop combination (and was the basis upon which CDE was developed).
+
Banyak GUI di Unix berkembang dari waktu ke waktu, sebagian besar berasal dari X11. Persaingan di antara berbagai vendor Unix (HP, IBM, Sun) menyebabkan fragmentasi yang lebar, upaya untuk membakukan pada 1990-an menuju COSE dan CDE gagal karena berbagai alasan, dan akhirnya dikalahkan dengan di-adopsinya GNOME dan K Desktop Environment. Sebelum adanya toolkit & lingkungan desktop berbasis free software, Motif digunakan sebagai toolkit / desktop (yang merupakan dasar bagi pengembangan CDE).
  
Graphical user interfaces evolve over time. For example, Windows has modified its user interface almost every time a new major version of Windows is released, and the Mac OS GUI changed dramatically with the introduction of Mac OS X in 1999.[24]
+
[[Graphical User Interface]] berkembang dari waktu ke waktu. Sebagai contoh, Windows telah mengubah antarmuka pengguna nyaris setiap kali versi baru dari Windows keluar, dan di samping itu, Mac OS GUI berubah secara dramatis dengan pengenalan Mac OS X pada tahun 1999.
  
===Real-time operating systems===
+
===Real-time Operating System===
Main article: Real-time operating system
 
  
A real-time operating system (RTOS) is a multitasking operating system intended for applications with fixed deadlines (real-time computing). Such applications include some small embedded systems, automobile engine controllers, industrial robots, spacecraft, industrial control, and some large-scale computing systems.
+
Sebuah [[sistem operasi]] [[real-time]] [[RTOS]] adalah [[sistem operasi]] [[multitasking]] yang ditujukan untuk aplikasi dengan tenggat waktu tetap ([[komputasi real-time]]). Aplikasi ini mencakup beberapa sistem embedded kecil, pengendal mesin mobil , robot industri, pesawat ruang angkasa, kontrol industri, dan beberapa sistem komputasi berskala besar.
  
An early example of a large-scale real-time operating system was Transaction Processing Facility developed by American Airlines and IBM for the Sabre Airline Reservations System.
+
Sebuah contoh awal dari sebuah [[sistem operasi]] [[komputasi real-time]] berskala besar adalah fasilitas pemrosesan transaksi yang dikembangkan oleh American Airlines dan IBM untuk Sistem Reservasi Sabre Airline.
 +
Embedded system yang memiliki tenggat waktu tetap menggunakan sistem operasi komputasi real-time seperti VxWorks, PikeOS, ecos, QNX, MontaVista Linux dan RTLinux. Symbian OS juga memiliki kernel RTOS (EKA2) dimulai dengan versi 8.0b.
  
Embedded systems that have fixed deadlines use a real-time operating system such as VxWorks, PikeOS, eCos, QNX, MontaVista Linux and RTLinux. Windows CE is a real-time operating system that shares similar APIs to desktop Windows but shares none of desktop Windows' codebase.[citation needed] Symbian OS also has an RTOS kernel (EKA2) starting with version 8.0b.
+
Beberapa embedded sistem menggunakan sistem operasi seperti Palm OS, BSD, dan [[Linux]], meskipun [[sistem operasi]] tersebut tidak mendukung komputasi real-time.
  
Some embedded systems use operating systems such as Palm OS, BSD, and Linux, although such operating systems do not support real-time computing.
+
===Pengembangan Sistem Operasi sebagai Hobby===
  
===Operating system development as a hobby===
+
Pengembangan sistem operasi merupakan salah satu kegiatan yang paling rumit yang akan melibatkan penggemar kegiatan komputasi. Sebuah sistem operasi dapat diklasifikasikan sebagai sistem operasi hobi jika source code-nya tidak secara langsung di turunkan dari sistem operasi yang ada, dan memiliki beberapa pengguna dan pengembang yang aktif.
See also: Hobbyist operating system development
 
  
Operating system development is one of the most complicated activities in which a computing hobbyist may engage. A hobby operating system may be classified as one whose code has not been directly derived from an existing operating system, and has few users and active developers. [25]
+
Dalam beberapa kasus, pengembangan sistem operasi hobi untuk mendukung perangkat komputasi "homebrew" , misalnya, satu board komputersederhana menggunakan mikroprosesor 6502. Atau, pengembangan untuk arsitektur yang mungkin sudah digunakan secara luas. Pengembangan sistem operasi mungkin saja berasal dari konsep-konsep yang sama sekali baru, maupun bisa digantikan dengan pemodelan sistem operasi yang ada. Dalam kedua kasus, si hobbyist mungkin saja jadi pengembang sendiri, maupun berinteraksi dengan sebuah kelompok kecil dan kadang-kadang sekumpulan individu yang tidak terstruktur yang memiliki ketertarikan yang sama.
  
In some cases, hobby development is in support of a "homebrew" computing device, for example, a simple single-board computer powered by a 6502 microprocessor. Or, development may be for an architecture already in widespread use. Operating system development may come from entirely new concepts, or may commence by modeling an existing operating system. In either case, the hobbyist is his/her own developer, or may interact with a small and sometimes unstructured group of individuals who have like interests.
+
Contoh dari sistem operasi hobby termasuk ReactOS dan Syllable.
  
Examples of a hobby operating system include ReactOS and Syllable.
+
===Keanekaragaman Sistem Operasi dan portabilitas===
Diversity of operating systems and portability
 
  
Application software is generally written for use on a specific operating system, and sometimes even for specific hardware. When porting the application to run on another OS, the functionality required by that application may be implemented differently by that OS (the names of functions, meaning of arguments, etc.) requiring the application to be adapted, changed, or otherwise maintained.
+
Aplikasi [[perangkat lunak]] umumnya ditulis untuk digunakan pada [[sistem operasi]] tertentu, dan kadang-kadang bahkan untuk [[hardware]] tertentu. Ketika porting aplikasi untuk berjalan di [[OS]] lain, fungsionalitas yang dibutuhkan oleh aplikasi yang dapat diimplementasikan secara berbeda oleh OS itu (nama-nama fungsi, makna argumen, dll) membutuhkan aplikasi yang akan disesuaikan, diubah, atau dipertahankan.
  
This cost in supporting operating systems diversity can be avoided by instead writing applications against software platforms like Java or Qt. These abstractions have already borne the cost of adaptation to specific operating systems and their system libraries.
+
Biaya dalam mendukung keragaman sistem operasi dapat dihindari dengan cara menulis aplikasi pada platform [[perangkat lunak]] seperti [[Java]] atau Qt. Abstraksi ini yang telah menanggung beban adaptasi terhadap sstem operasi tertentu dan sistem library-nya.
  
Another approach is for operating system vendors to adopt standards. For example, POSIX and OS abstraction layers provide commonalities that reduce porting costs.
+
Pendekatan lain adalah bagi vendor sistem operasi untuk mengadopsi standar. Misalnya, POSIX dan lapisan abstraksi OS agar memberikan kesamaan yang mengurangi biaya porting.
  
 
==Referensi==
 
==Referensi==
Line 323: Line 305:
 
* http://en.wikipedia.org/wiki/Operating_system
 
* http://en.wikipedia.org/wiki/Operating_system
 
* http://www.mui.or.id/konten/fatwa-mui/fatwa-tentang-hak-kekayaan-intelektual - Haram Membajak Software!
 
* http://www.mui.or.id/konten/fatwa-mui/fatwa-tentang-hak-kekayaan-intelektual - Haram Membajak Software!
 +
* http://www.dsm.fordham.edu/~mathai/linux.html
  
 
==Pranala Menarik==
 
==Pranala Menarik==
Line 328: Line 311:
 
* [[Linux]]
 
* [[Linux]]
 
* [[Ubuntu]]
 
* [[Ubuntu]]
 +
* [[Buku Sistem Operasi]]
 +
 +
===Secara Umum===
 +
 +
* [[Sistem Operasi]]
 +
 +
===Instalasi Linux===
 +
 +
* [[Linux: Skema Partisi di Linux]]
 +
* [[Linux: Mengenali Beberapa perintah file system]]
 +
* [[Linux: Instalasi Sistem Operasi]]
 +
* [[Linux: Membackup Harddisk Laptop ke USB harddisk]]
 +
 +
===Command Line Interface===
 +
 +
* [[Linux: CLI untuk Survival]]
 +
* [[Linux: Membuat Shell Script]]
 +
* [[Pengantar Pemrograman Bash Shell di Linux]]
 +
 +
====Repository & Penggunaannya====
 +
 +
* [[Repository]]
 +
* [[Membuat Repository Ubuntu Lokal menggunakan debmirror]]
 +
* [[Contoh isi file /etc/sources.list di Ubuntu]]
 +
* [[OS: Penggunaan apt-get]]
 +
 +
====Instalasi Aplikasi====
 +
 +
* [[SQLite]]
 +
* [[SQLite: Instalasi menggunakan apt-get]]
 +
* [[SQLite: Compile dari source]]
 +
* [[SQLite: Cara Cepat Menggunakan SQLite]]
 +
* [[SQLite: Command Line Shell]]
 +
 +
===Compile Kernel===
 +
 +
* [[Kernel]]
 +
* [[Kernel Linux]]
 +
* [[OS: Linux Kernel]]
 +
* [[Kernel: Anatomi Kernel Source]]
 +
* [[Compile Kernel]]
 +
* [[Compile Kernel: Konfigurasi Kernel]]
 +
* [[OS: Membuat Versi Lokal]]
 +
 +
===Remaster Linux===
 +
 +
* [[Cara Cepat Melakukan Remastering Ubuntu]]
 +
* [[Remaster Ubuntu menggunakan GUI]]
 +
* [[OS: Linux Buatan Indonesia]]
 +
 +
===Sistem Operasi untuk Embedded===
 +
 +
* [[OpenWRT]]
 +
* [[OpenWRT: Download Firmware yang sudah jadi]]
 +
* [[OpenWRT: Source Repository Download]]
 +
* [[OpenWRT: Melihat Daftar Package]]
 +
 +
====Membuat Firmware Sendiri====
 +
 +
* [[OpenWRT: Build Firmware]]
 +
* [[OpenWRT: Build Firmware Buffalo WZRHPG450H]]
 +
* [[OpenWRT: Build Firmware Buffalo WZRHPG300N]]
 +
* [[OpenWRT: Build Firmware Ubiquiti NanoStation2]]
 +
* [[OpenWRT: Build Firmware Mikrotik RB433]]
 +
* [[OpenWRT: Build Firmware Linksys WRT160NL]]
 +
* [[OpenWRT: Build Firmware Linksys WRT54GL]]
 +
 +
====Flash ke Device====
 +
 +
* [[OpenWRT: Flash Linksys WRT54GL]]
 +
* [[OpenWRT: Flash Buffalo WZRHP450H]]
 +
* [[OpenWRT: Flash Buffalo WZRHP300N]]
 +
 +
====Beberapa Tip====
 +
 +
* [[OpenWRT: Mikrotik RB433]]
 +
* [[OpenWRT: 3G modem]]
 +
* [[OpenWRT: Build Firmware dengan 3G Modem Support]]
 +
* [[OpenWRT: Setup Firewall]]
 +
* [[OpenWRT: Konfigurasi UBNT NanoStation2 tanpa WebGUI]]
 +
 +
===Tuning Kernel===
 +
 +
* [[OS: Parameter Kernel Default]]
 +
 +
====Tuning Kernel Scheduler====
 +
 +
* [[OS: Kernel Scheduler]]
 +
* [[OS: Tuning Kernel Scheduler]]
 +
* [[OS: Tuning Completely Fair scheduler CFS]]
 +
* [[OS: Complete Teori Tuning Kernel Scheduler]]
 +
 +
====Tuning I/O Scheduler====
 +
 +
* [[OS: Tuning Completely Fair Queueing CFQ I/O scheduler]]
 +
* [[OS: Complete Teori Tuning I/O Performance]]
 +
 +
====Tuning Manajemen Memory====
 +
 +
* [[OS: Tuning Manajemen Memory]]
 +
 +
===Android===
 +
 +
* [[Pemrograman Java]]
 +
* [[Pemrograman Android]]
 +
* [[Android: Aplikasi Menarik]]
 +
* [[Android: Download APK]]
 +
* [[Android]]
 +
* [[Pemrogramman Android]]
 +
* [[OS: Android - Mempersiapkan Development Environment]]
 +
* [[OS: Android - Memeriksa Spesifikasi Handphone yang digunakan]]
 +
* [[OS: Android - Membuat Mirror Source]]
 +
* [[OS: Android - Download]]
 +
* [[OS: Android - Download Source Untuk Device CyanogenMod]]
 +
* [[OS: Android - Sumber ROM yang sudah jadi]]
 +
* [[OS: Android - Membuat Folder untuk Bekerja]]
 +
* [[OS: Android - Mirror Source]]
 +
* [[OS: Android - Mirror Source AOKP]]
 +
* [[OS: Android - Mirror Source CyanogenMod]]
 +
* [[OS: Android - Build]]
 +
* [[OS: Android - Build CyanogenMod]]
 +
* [[OS: Android - Build AOSP]]
 +
* [[OS: Android - Build Untuk Motorola]]
 +
* [[OS: Android - Modifikasi build.prop]]
 +
* [[OS: Android - Porting Android]]
 +
* [[OS: Android - Membuka Lock]]
 +
* [[OS: Android - Android Studio]]
 +
* [[OS: Android - ADT Bundle]]
 +
* [[OS: Android - x86]]
 +
* [[OS: Android - driver]]
 +
* [[OS: Android - Rooting]]
 +
* [[OS: Android - Download ROM CyanogenMod yang sudah jadi]]
 +
* [[OS: Android - Flash Device]]
 +
* [[OS: Android - LG Optimus G Pro]]
 +
* [[OS: Android - bootloop dan recovery]]
 +
* [[OS: Android - Memperbaiki IMEI yang rusak]]
 +
 +
===Membuat Kernel Module===
 +
 +
* [[OS: Pengertian Kernel Modul]]
 +
* [[OS: Mengerti System Call]]
 +
* [[OS: Membuat Kernel Modul]]
 +
* [[OS: Kernel Modul]]
 +
* http://www.tldp.org/LDP/lkmpg/2.6/html/index.html
 +
 +
===Monitoring & Benchmark===
 +
 +
* [[OS: Build in Monitoring Tool]]
 +
* [[Linux Benchmarking]]
 +
* [[OS: Benchmarking menggunakan UnixBench]]
 +
* [[OS: Benchmarking menggunakan LLCBench]]
 +
* [[OS: iotop]]
 +
 +
===Lainnya===
 +
 +
* [[Buku Aplikasi Android]]
 +
* [[Buku ROM Android]]

Latest revision as of 19:16, 20 November 2017

Sebuah sistem operasi (OS) adalah sekumpulan software yang mengatur sumber daya di hardware komputer dan memberikan layanan bagi program komputer. Sistem Operasi adalah komponen penting dari sistem perangkat lunak dalam sebuah komputer. Program aplikasi biasanya membutuhkan sistem operasi untuk bisa berfungsi.

Sistem operasi time sharing menjadwal tugas agar dapat secara effisien menggunakan sistem. Hal ini termasuk menghitung alokasi biaya dari waktu processor, harddisk, printing dan berbagai sumber daya lainnya.

Untuk fungsi hardware seperti input dan output dan alokasi memory, sistem operasi berfungsi sebagai perantara antara program dengan komputer hardware. Meskipun demikian aplikasi dijalankan secara langsung oleh hardware dan biasanya akan melakukan sistem call ke fungsi di OS atau di interupsi oleh OS tersebut. Sistem operasi dapat di temukan di hampir semua alat yang mempunyai fungsi komputer mulai dari handphone, video game hingga super komputer dan web server.

Contoh sistem operasi modern termasuk Android, BSD, iOS, Linux, Mac OS X, Microsoft Windows, and IBM z/OS. Semuanya, kecuali Windows dan z/OS, mempunyai akar yang sama yaitu Unix

Tipe Sistem Operasi

Real-time

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

Multi-user

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


Multi-tasking vs. single-tasking

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


Sistem Terdistribusi

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

Sistem Embedded

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

Sejarah

Pada awalnya komputer dibuat untuk menjalankan sekumpulan single task, seperti calculator. Sistem operasi belum menampakan diri sampai awal 1960. Dasar fitur sistem operasi mulai dikembangkan tahun 1950, seperti fungsi monitor yang dapat secara automatis menjalankan program yang berbeda dalam rangka mempercepat processing. Fitur hardware di tambahkan untuk membuka kemungkinan untuk menggunakan runtime library, interrupsi, dan parallel processing. Pada saat PC menjadi populer di tahun 1980-an, sistem operasi yang dibuat untuk PC secara konsep sama dengan yang digunakan di komputer yang besar.

Di tahun 1940-an, sistem elektronik digital awal tidak mempunyai sistem operasi.Sistem elektronik pada masa itu di program menggunakan sekumpulan switch mekanik atau dengan kabel jumper di papan board. Sistem ini merupakan sistem special-purpose, sebagai contoh, untuk membuat tabel balistik untuk militer atau mengatur pencetakan slip gaji dari data di punch card. Sesudah komputer aplikasi umum yang programmable dibuat, bahasa mesin (terdiri dari kalimat yang terdiri dari digit 0 dan 1 di kartu punch card) di perkenalkan untuk mempercepat proses programming. OS/360 digunakan pada sebagian besar komputer mainframe IBM di awal tahun 1966, termasuk komputer yang menolong NASA untuk menerbangkan manusia ke bulan.

Di awal tahun 1950, sebuah komputer hanya dapat menjalankan satu program pada satu waktu. Setiap pengguna menggunakan sendiri komputer untuk waktu yang terbatas sesuai dengan jadwal waktu, dengan program dan data yang ada di punch card atau punch tape. Program akan di load ke komputer, dan komputer akan bekerja sampai program selesai atau crash. Program biasanya di debug melalui panel di depan menggunakan switch dan lampu panel.

Belakangan mesin-mesin ini dilengkapi dengan program library, yang di sambungkan (di link) di program user untuk membantu operasi tertentu, seperti, input, output, dan membuat kode komputer yang dapat dibaca manusia. Ini merupakan asal muasal sistem operasi modern. Akan tetapi, mesin masih menjalankan single job pada satu waktu.

Mainframe

Di tahun 1950, banyak fitur di pelopori di bidang sistem operasi, termasuk proses batch, interupsi input/output, buffering, multitasking, spooling, runtime library, link-loading, dan program untuk mengurut catatan di file. Fitur ini tidak dimasukan dalam software aplikasi sebagai pilihan bagi programmer, tapi dibuat sebagai sistem operasi yang terpisah yang digunakan oleh semua aplikasi. Di tahun 1959, sistem operasi SHARE di lepas sebagai utility integrated untuk IBM 704, selanjutnya di mainframe 709 dan 7090 walaupun kemudian digantikan oleh IBSYS/IBJOB di 709, 7090 dan 7094.

Selama tahun 1960, IBM OS/360 memperkenalkan konsep sebuah OS untuk semua produk, yang menjadi sangat penting untuk kesuksesan mesin System/360. Sistem operasi di mainframe IBM saat ini adalah turunan dari sistem awal dan aplikasi yang ditulis untuk OS/360 masih bisa berjalan di mesin yang modern.

OS/360 juga memelopori konsep yang menentukan bahwa sistem operasi akan mencatat semua penggunaan sumber daya, termasuk alokasi memori untuk program dan data, ruang file di harddisk, penguncian file saat update. Jika proses ini di putuskan karena berbagai alasan, semua sumber daya tersebut akan direklamasi oleh sistem operasi.

Alternatif sistem operasi CP-67 untuk S/360-67 memulai sebuah jalur pada sistem operasi IBM yang memfokuskan diri pada mesin virtual. Sistem operasi lainnya yang digunakan di seri mainframe IBM S/360 termasuk sistem yang dikembangkan sendiri oleh IBM: COS/360 (Compatibility Operating System), DOS/360 (Disk Operating System), TSS/360 (Time Sharing System), TOS/360 (Tape Operating System), BOS/360 (Basic Operating System), dan ACP (Airline Control Program), termasuk beberapa sistem non-IBM: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing), dan ORVYL (Stanford Timesharing System).

Control Data Corporation mengembangkan sistem operasi SCOPE di tahun 1960-an untuk batch processing. Bekerjasama dengan University of Minnesota, sistem operasi Kronos dan selanjutnya NOS dikembangkan pada tahun 1970-an, yang mendukung batch secara simultan dan penggunaan timesharing. Seperti sistem timesharing komersial lainnya, interfacenya merupakan extensi dari Dartmouth BASIC operating systems, salah satu usaha rintisan dalam timesharing dan bahasa pemrogramman. Di akhir tahun 1970-an, Control Data dan University of Illinois mengembangkan sistem operasi PLATO, yang menggunakan display plasma panel dan jaringan time sharing jarak jauh. Plato termasuk cukup inovatif pada masanya, fitur seperti real-time chat, dan game grafis multi-user. Burroughs Corporation memperkenalkan B5000 di tahun 1961 dengan sistem operasi MCP, (Master Control Program). B5000 di rancang sebagai stack machine untuk mendukung bahasa tingkat tinggi tanpa bahasa mesin atau assembler, dan MCP adalah sistem operasi pertama yang ditulis secara exclusif dalam bahasa tingkat tinggi - ESPOL, sebuah dialek dari ALGOL. MCP juga memperkenalkan banyak innovasi baru, seperti implementasi komersial pertama untuk memory virtual. Dalam masa pengembangan AS400, IBM sempat mendekati Burroughs untuk membeli lisensi dari MCP agar dapat di jalankan di hardware AS400. Proposal IBM di tolak oleh manajemen Burroughs untuk melindungi produksi hardware mereka. MCP sampai hari ini masih digunakan di komputer Unisys ClearPath/MCP.

UNIVAC, pembuat komputer komersial pertama, memproduksi sistem operasi EXEC. Seperti halnya sistem mainframe awal, EXEC adalah sistem yang berorientasi batch yang mengatur drum magnetic, disk, card reader dan line printer. Di tahun 1970-an, UNIVAC membuat Real-Time Basic (RTB) system untuk mendukung time sharing skala besar, yang diturunkan Dartmouth BC system.

General Electric dan MIT mengembangkan General Electric Comprehensive Operating Supervisor (GECOS), yang memperkenalkan konsep keamanan yang berlapis. Setelah di akusisi oleh Honeywell, sistem operasi ini di beri nama General Comprehensive Operating System (GCOS).

Digital Equipment Corporation juga mengembangkan banyak sistem operasi untuk berbagai komputernya, termasuk TOPS-10 dan TOPS-20 time sharing system untuk 36-bit PDP-10 class system. Sebelum UNIX banyak digunakan, TOPS-10 adalah sistem operasi yang paling populer di universitas, dan di komunitas awal ARPANET.

Di akhir tahun 1960-an hingga akhir 1970-an, kemampuan hardware berevolusi juga software berhasil di porting agar berjalan di lebih dari satu sistem. Sistem awal banyak menggunakan microprogramming untuk mengimplementasi fitur pada sistem mereka untuk membuat arsitektur komputer menjadi tampak sama seperti yang lain dari seri komputer lainnya. Sebetulnya sebagian besar 360 sesudah 360/40 (kecuali 360/165 dan 360/168) sebetulnya menggunakan implementasi microprogram. implementations. Selanjutnya dipahami kompatibilitas aplikasi terbukti lebih penting.

Banyak sekali investasi software untuk sistem ini dilakukan sejak tahun 1960-an karena kebanyakan pembuat komputer akan mengembangkan sistem operasi yang cocok untuk hardware-nya. Beberapa sistem operasi yang mendukung mainframe adalah:

  • Burroughs MCP – B5000, 1961 hingga Unisys Clearpath/MCP, sekarang.
  • IBM OS/360 – IBM System/360, 1966 hingga IBM z/OS, sekarang.
  • IBM CP-67 – IBM System/360, 1967 hingga IBM z/VM, sekarang.
  • UNIVAC EXEC 8 – UNIVAC 1108, 1967, hingga OS 2200 Unisys Clearpath Dorado, sekarang.

Microcomputer

PC-DOS adalah awal sistem operasi untuk personal komputer yang berupa command line interface (CLI). Mac OS dari Apple Computer menjadi sistem operasi pertama yang menggunakan Graphical User Interface (GUI). Banyak dari fitur-nya seperti Windows dan Icon dikemudian hari menjadi ciri GUI.

Mikrokomputer pertama tidak mempunyai kapasitas atau kebutuhan untuk menjalankan sistem operasi yang rumit yang dikembangkan di mainframe atau mini. Sistem operasi minimalistik di kembangkan, kadang kala dimasukan kedalam ROM yang dikenal sebagai monitor. Salah satu sistem operasi awal yang cukup menonjol adalah CP/M, yang di dukung oleh banyak mikrokomputer awal dan sangat mirip dengan Microsoft MS-DOS, yang menjadi sangat populer karena dipilih sebagai sistem operasi IBM PC (versi IBM dari MS-DOS dari dikenal sebagai IBM DOS atau PC DOS). Di tahun 1980-an, Apple Computer Inc. (sekarang Apple Inc.) meninggalkan seri Apple II yang popular untuk memperkenalkan Apple Macintosh computer dengan innovative Graphical User Interface (GUI) dengan Mac OS.

Dengan di perkenalkannya CPU Intel 80386 dengan arsitektur 32-bit dan kemampuan paging, komputer personal mempunyai kemampuan untuk menjalankan sistem operasi multitasking seperti minikomputer dan mainframe yang awal. Microsoft meresponds dengan mengambil Dave Cutler, yang mengembangkan sistem operasi VMS di Digital Equipment Corporation. Dave memimpin pengembangkan sistem operasi Windows NT yang menjadi dasar dari sistem operasi Microsoft. Steve Jobs, salah satu pendiri Apple Inc., memulai NeXT Computer Inc., yang mengembangkan sistem operasi NEXTSTEP. NEXTSTEP dikemudian hari di beli oleh Apple Inc. dan digunakan, bersama dengan code dari FreeBSD sebagai inti dari Mac OS X.

GNU Project di awali oleh seorang activis dan programmer Richard Stallman dengan tujuan untuk membuat software yang benar-benar free (bebas) sebagai pengganti dari sistem operasi UNIX yang berhak cipta (proprietary). GNU Project secara umum sangat sukses untuk menduplikasi fungsi berbagai hal dari UNIX, tapi mengembangkan sistem operasi GNU Hurd kernel tampaknya kurang produktif. Tahun 1991, seorang mahasiswa komputer science dari finland Linus Torvalds, dengan di bantu oleh banyak relawan berkolaborasi melalui Internet, melepaskan versi pertama kernel Linux. Tak lama kemudian, merger dengan komponen GNU untuk membentuk sebuah sistem operasi yang komplit. Sejak itu, kedua komponen tersebut biasanya di kenal sebagai "Linux" oleh industri software, nama yang sangat di tentang oleh Stallman maupun Free Software Foundation, mereka lebih suka dengan nama GNU/Linux. Berkeley Software Distribution, dikenal sebagai BSD, adalah turunan UNIX yang disebarkan oleh University of California, Berkeley, dimulai sekitar tahun 1970-an. BSD di sebarkan dengan bebas dan di porting ke banyak minikomputer. BSD akhirnya memperoleh beberapa pengikut di PC, seperti, FreeBSD, NetBSD dan OpenBSD.

Contoh Sistem Operasi

Sistem Operasi UNIX dan UNIX-like

Unix awalnya ditulis menggunakan bahasa assembler. Ken Thompson menulis bahasa B, berbasis pada BCPL, berdasarkan pengalamannya di projek MULTICS. Bahasa B kemudian di ganti oleh bahasa C, dan Unix, ditulis ulang dalam bahasa C, dikembangkan menjadi keluarga sistem operasi yang besar, kompleks dan saling berhubungan yang menjadi sangat berpengaruh pada semua sistem operasi modern.

Keluarga UNIX-like adalah sebuah kelompok sistem operasi yang sangat besar, dengan beberapa sub-kategori utama, termasuk, System V, BSD, dan Linux. Nama "UNIX" adalah merek dagang dari The Open Group yang me-lisensi-kan untuk digunakan di semua sistem operasi yang sesuai dengan definisi mereka. Nama "UNIX-like" lebih sering digunakan untuk menyebutkan sistem operasi yang mirip dengan UNIX yang orisinil.

Sistem Unix-like berjalan di berbagai arsitektur komputer. Mereka banyak digunakan di server untuk usaha / bisnis, juga di workstation untuk lingkungan akademik dan engineering. Varian UNIX yang free, seperti Linux dan BSD, sangat populer di wilayah ini.

Ada empat (4) sistem operasi yang di sertifikasi oleh The Open Group (pemegang merek dagang UNIX) sebagai Unix. Sistem Operasi tersebut adalah HP-UX dan IBM AIX keduanya adalah turunan dari System V original dan hanya dapat di jalankan di hardware masing-masing vendir tersebut. Sedangkan, Sistem Operasi Solaris dari Sun Microsystem dapat dijalankan di berbagai hardware, termasuk x86 dan Sparc server, dan PC. Apple OS X, yang merupakan pengganti dari Apple MacOS, mempunyai kernel hybrid berbasis dari varian BSD yang diturunkan dari NeXTSTEP, Mach, dan FreeBSD.

Unix interoperability dilakukan melalui POSIX standard. POSIX standard dapat di terapkan ke sistem operasi manapun, walaupun awalnya dikembangkan untuk varian Unix.

BSD dan turunannya

Subgroup dari keluarga Unix adalah keluarga Berkeley Software Distribution (BSD), termasuk FreeBSD, NetBSD, dan OpenBSD. Sistem operasi ini biasanya di temukan di web server, walaupun mereka juga dapat ditemukan di PC. Keberadaan Internet berhutang banyak pada BSD, karena banyak protokol yang banyak digunakan di komputer, untuk saling mengirim dan menerima data melalui jaringan awalnya di implementasi dan di perbaiki di BSD. Web pertama dijalankan di komputer dengan sistem operasi berbasis BSD yaitu NextStep.

BSD berakar pada Unix. Pada tahun 1974, University of California, Berkeley menginstal sistem Unix pertama. Seiring dengan waktu, mahasiswa dan staf di departemen ilmu komputer mulai menambahkan aplikasi baru untuk membuat semuanya menjadi lebih mudah, seperti editor teks. Ketika Berkely menerima komputer VAX baru pada tahun 1978 dengan sistem operasi Unix , mahasiswa memodifikasi Unix untuk dapat mengambil keuntungan dari hardware komputer. Defense Advanced Research Projects Agency dari Departemen Pertahanan AS tertarik, dan memutuskan untuk mendanai proyek tersebut. Banyak sekolah, perusahaan, dan organisasi pemerintah tertarik dan mulai menggunakan versi Berkeley Unix bukan versi resmi yang didistribusikan oleh AT & T.

Steve Jobs, saat meninggalkan Apple Inc pada tahun 1985, membentuk NeXT Inc, sebuah perusahaan yang memproduksi komputer high-end menjalankan variasi BSD disebut NeXTSTEP. Salah satu komputer tersebut digunakan oleh Tim Berners-Lee sebagai webserver pertama untuk menciptakan World Wide Web.

Pengembang seperti Keith Bostic mendorong proyek untuk mengganti kode non-bebas yang berasal dari Bell Labs. Sayang sekali setelah ini dilakukan AT & T menggugat. Akhirnya, setelah dua tahun sengketa hukum, proyek BSD lolos dan melahirkan sejumlah derivatif bebas, seperti FreeBSD dan NetBSD.

OS X

OS X (sebelumnya "Mac OS X") adalah sistem operasi open core grafis yang dikembangkan dipasarkan dan dijual oleh Apple Inc., belakangan di install pada semua komputer Macintosh saat pengiriman. OS X adalah penerus MacOS original, yang menjadi sistem operasi utama Apple sejak tahun 1984. Tidak seperti pendahulunya, OS X adalah sistem operasi UNIX yang dibangun pada teknologi yang telah dikembangkan di NeXT mulai dari paruh kedua tahun 1980-an sampai Apple membeli NeXT pada awal 1997. Sistem operasi ini pertama kali dirilis pada tahun 1999 sebagai Mac OS X Server 1.0 dengan versi desktop (Mac OS X v10.0 "Cheetah") mengikutinya pada Maret 2001. Sejak itu, ada enam "klien" dan "server" edisi OS X telah dirilis, yang terbaru OS X 10.8 "Mountain Lion" yang pertama kali tersedia pada tanggal 16 Februari 2012 untuk pengembang, dan kemudian dirilis untuk umum pada 25 Juli 2012. Rilis dari OS X diberi nama sesuai dengan "big cats".

Sebelum penggabungan dengan OS X, server edition - OS X Server - secara arsitektur identik dengan desktop dan biasanya berjalan di Apple Macintosh server hardware. OS X Server mencakup work group manajemen dan perangkat lunak administrasi yang menyediakan akses yang disederhanakan untuk layanan jaringan utama, termasuk transfer mail, server Samba, server LDAP, server nama domain, dan lain-lain. Dengan MacOS X v10.7 Lion, aspek server MacOS X telah terintegrasi ke dalam versi klien dan produk rebranding "OS X" (membuang "MacOS" dari nama). Server tool sekarang ditawarkan sebagai aplikasi.

Linux and GNU

Linux (atau GNU / Linux) adalah sistem operasi Unix-like yang dikembangkan tanpa kode Unix asli Unix-like , seperti BSD dan variannya. Linux dapat digunakan pada berbagai perangkat dari superkomputer hingga jam tangan. Kernel Linux dirilis di bawah lisensi open source, sehingga siapapun dapat membaca dan memodifikasi source code-nya. Linux telah dimodifikasi untuk berjalan pada berbagai macam elektronik. Perkiraan yang ada menunjukkan bahwa Linux digunakan pada 1,82% dari semua komputer pribadi, telah banyak diadopsi untuk digunakan di server hingga embedded system (seperti ponsel). Linux telah menggantikan Unix di kebanyakan tempat, dan digunakan pada 10 superkomputer di dunia. Kernel Linux yang digunakan dalam beberapa distro populer, seperti Red Hat, Debian, Ubuntu, Linux Mint dan Google Android.

Proyek GNU merupakan kolaborasi masal programmer yang berusaha untuk menciptakan sebuah sistem operasi benar-benar bebas dan yang mirip Unix tapi dengan kodesendiri. Proyek GNU dimulai pada tahun 1983 oleh Richard Stallman, dan bertanggung jawab untuk banyak bagian dari varian Linux. Ribuan buah perangkat lunak untuk hampir setiap sistem operasi berlisensi di bawah GNU General Public License. Sementara itu, kernel Linux dimulai sebagai proyek sampingan dari Linus Torvalds, seorang mahasiswa dari Finlandia. Pada tahun 1991, Torvalds mulai mengerjakan , dan memposting informasi tentang proyek-nya di newsgroup untuk mahasiswa komputer dan programer. Ia menerima banyak sekali dukungan dan sukarelawan yang akhirnya menciptakan sebuah kernel yang utuh. Pemrogram dari GNU tertarik , dan anggota kedua proyek bekerja sama untuk mengintegrasikan bagian dari GNU dengan kernel Linux dalam rangka menciptakan sistem operasi yang utuh.

Google Chromium OS

Chromium adalah sistem operasi berbasis kernel Linux dan didesain oleh Google. Karena Chromium OS ditujukan untuk pengguna komputer yang menghabiskan sebagian besar waktu mereka di Internet, dia banyak mengandalkan web browser dan tidak memiliki kemampuan untuk menjalankan aplikasi lokal. Akan tetapi, dia bergantung pada aplikasi internet (atau web apps ) yang digunakan dalam web browser untuk menyelesaikan pekerjaan seperti pengolah kata dan melihat media, serta penyimpanan online untuk menyimpan file.

Microsoft Windows

Microsoft Windows adalah keluarga sistem operasi proprietary yang dirancang oleh Microsoft Corporation dan terutama ditargetkan untuk komputer berbasis arsitektur Intel, dengan estimasi pangsa 88,9 persen dari total komputer yang terhubung web. Versi terbaru adalah Windows 8 untuk workstation dan Windows Server 2012 untuk server. Windows 7 baru-baru ini melampaui Windows XP sebagai OS yang paling banyak digunakan.

Microsoft Windows berawal pada tahun 1985 sebagai lingkungan operasi yang berjalan di atas MS-DOS, yang merupakan sistem operasi standar dikirimkan pada kebanyakan arsitektur komputer pribadi berbasis processor intel pada saat itu. Pada tahun 1995, Windows 95 dirilis yang hanya menggunakan MS-DOS sebagai bootstrap. Untuk kompatibilitas ke belakang, Win9x bisa menjalankan real-mode MS-​​DOS dan 16 bit Windows 3.x driver. Windows ME, dirilis pada tahun 2000, adalah versi terakhir dalam keluarga Win9x. Versi yang lebih baru semuanya telah didasarkan pada kernel Windows NT. Versi terkini dari Windows berjalan pada mikroprosesor IA-32 dan x86-64, meskipun Windows 8 akan mendukung arsitektur ARM. Di masa lalu, Windows NT mendukung non-Intel arsitektur.

Edisi Server Windows agak banyak digunakan. Dalam beberapa tahun terakhir, Microsoft telah mengeluarkan modal yang signifikan dalam upaya untuk mempromosikan penggunaan Windows sebagai sistem operasi server. Namun, pemakaian Windows pada server tidak begitu luas seperti pada komputer pribadi, karena Windows bersaing dengan Linux dan BSD untuk pangsa pasar server.

Lainnya

Ada banyak sistem operasi yang signifikan pada zaman mereka tetapi tak lagi begitu sekarang, seperti AmigaOS, OS / 2 dari IBM dan Microsoft, MacOS pendahulu non-Unix untuk Apple Mac OS X, BeOS, XTS300; RISC OS, MorphOS dan FreeMint. Beberapa masih digunakan di ceruk pasar dan terus dikembangkan sebagai platform minoritas bagi mereka yang suka / antusias dan aplikasi khusus. OpenVMS sebelumnya dari DEC, masih dalam pengembangan aktif oleh Hewlett-Packard. Namun sistem operasi lain digunakan hampir secara eksklusif di akademisi, untuk pendidikan sistem operasi atau melakukan penelitian pada konsep sistem operasi. Sebuah contoh yang khas dari sistem yang memenuhi kedua peran adalah MINIX, sedangkan Singularity digunakan murni untuk penelitian.

Sistem operasi lain telah gagal untuk memenangkan pangsa pasar yang signifikan, namun telah memperkenalkan inovasi yang telah mempengaruhi sistem operasi mainstream, paling tidak Bell Labs Plan 9.

Komponen Sistem Operasi

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

Kernel

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

Eksekusi Program

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

Interupsi

Interupsi sangat penting untuk sistem operasi, karena menyediakan cara yang efisien untuk sistem operasi untuk berinteraksi dengan dan bereaksi terhadap lingkungannya. Pilihan lainnya - menggunakan sistem operasi "mengawasi" berbagai sumber input akan kejadian (polling) agar dilakukan tindakan - teknik ini dapat ditemukan di sistem lama dengan stack yang sangat kecil (50 atau 60 byte) , teknik ini tidak biasa dalam sistem operasi modern dengan stack besar. Interupsi berbasis pemrograman langsung didukung oleh CPU paling modern. Interrupts memberikan komputer cara otomatis menyimpan konteks lokal register, dan menjalankan kode tertentu dalam menanggapi kejadian. Bahkan komputer yang sangat sederhana saat ini mendukung interupsi hardware, dan memungkinkan programmer untuk menentukan kode yang akan dijalankan ketika kejadian berlangsung.

Ketika interupsi diterima, hardware komputer secara otomatis menunda semua program yang sedang berjalan, statusnya disimpan, dan menjalankan kode komputer yang terkait dengan interupsi, hal ini analog dengan menempatkan penunjuk di buku sebagai tanggapan terhadap panggilan telepon. Dalam sistem operasi modern, interupsi ditangani oleh kernel sistem operasi. Interupsi dapat berasal dari baik perangkat keras komputer atau dari program berjalan.

Ketika sebuah perangkat keras memicu interupsi, kernel sistem operasi akan memutuskan bagaimana menangani kejadian ini, dengan menjalankan kode pemrosesan. Besarnya kode yang dijalankan tergantung pada prioritas interupsi (misalnya: orang biasanya akan merespon alarm detektor kebakaran sebelum menjawab telepon). Penanganan interupsi hardware biasanya didelegasikan ke perangkat lunak device driver , yang mungkin salah satu bagian dari kernel sistem operasi, atau bagian dari program lain, atau keduanya. Device driver kemudian dapat menyampaikan informasi ke program yang berjalan dengan berbagai cara.

Sebuah program mungkin juga untuk memicu interupsi kepada sistem operasi. Jika sebuah program ingin mengakses hardware misalnya, dia dapat menginterupsi kernel sistem operasi, yang menyebabkan kontrol untuk dikembalikan ke kernel. Kernel kemudian akan memproses permintaan tersebut. Jika sebuah program ingin sumber daya tambahan (atau ingin menumpahkan sumber daya) seperti memori, ia akan memicu interupsi untuk mendapatkan perhatian kernel.

Mode

Secara umum ada dua mode, yaitu, Mode Protected dan Mode Supervisor.

Privilege ring untuk x86 tersedia dalam protected mode . Sistem operasi menentukan proses mana yang berjalan dalam masing-masing modus .

CPU modern mendukung beberapa mode operasi. CPU dengan kemampuan ini menggunakan setidaknya dua mode: mode dan supervisor mode. Supervisor mode digunakan oleh kernel sistem operasi untuk tugas-tugas tingkat rendah yang membutuhkan akses tidak terbatas ke perangkat keras, seperti mengendalikan bagaimana memori ditulis dan dihapus, dan komunikasi dengan perangkat seperti kartu grafis. Protected mode, sebaliknya, digunakan untuk hampir segala sesuatu yang lain. Aplikasi yang beroperasi dalam protected mode, akan hanya dapat menggunakan perangkat keras melalui komunikasi dengan kernel, yang mengontrol segala sesuatu dalam mode supervisor. CPU mungkin ada mode lain yang serupa dengan proteded mode , seperti mode virtual untuk mengemulasi jenis prosesor tua, seperti 16-bit prosesor pada 32-bit , atau 32-bit prosesor pada 64-bit.

Ketika komputer pertama kali dijalankan, maka secara otomatis berjalan dalam mode supervisor. Beberapa program pertama yang berjalan di komputer, sebagai BIOS atau EFI, bootloader, dan sistem operasi memiliki akses tak terbatas ke perangkat keras - dan ini diperlukan karena, menurut definisi, Memulai lingkungan terlindungi hanya dapat dilakukan di luar lingkungan tersebut. Namun, ketika sistem operasi melewati kontrol ke program lain, maka dia dapat menset CPU ke mode protected.

Dalam mode protected, program mungkin memiliki akses ke set instruksi CPU yang terbatas . Sebuah program pengguna dapat meninggalkan mode protected hanya dengan memicu trigger, yang menyebabkan kontrol untuk diberikan kembali ke kernel. Dengan cara ini sistem operasi dapat mempertahankan kontrol eksklusif atas hal-hal seperti akses ke hardware dan memori.

Istilah "protected mode resource" biasanya merujuk kepada satu atau lebih register CPU, yang berisi informasi bahwa program berjalan tidak diperbolehkan untuk mengubah. Upaya untuk mengubah sumber daya ini umumnya menyebabkan berubah ke mode supervisor, dimana sistem operasi dapat menangani operasi program ilegal (misalnya, dengan membunuh program).

Manajemen Memory

Antara lain, sebuah kernel sistem operasi multiprogramming harus bertanggung jawab untuk mengelola semua sistem memori yang sedang digunakan oleh program. Hal ini memastikan bahwa program ini tidak terganggu dengan memori yang sudah digunakan oleh program lain. Karena program sharing waktu / time, setiap program harus memiliki akses independen ke memori.

Cooperative Memory Management, digunakan oleh banyak awal sistem operasi, berasumsi bahwa semua program menggunakan secara sukarela manajer memori kernel, dan tidak melebihi alokasi memori mereka . Teknik sistem pengelolaan memori ini hampir tidak pernah terlihat lagi, karena sering berisi program bug yang dapat menyebabkan mereka untuk mengalokasikan memori melebihi alokasinya. Jika program gagal, dapat menyebabkan memori yang digunakan oleh program lain menjadi terpengaruh atau ditimpa. Program jahat atau virus sengaja dapat mengubah memori program lain, atau dapat mempengaruhi pengoperasian sistem operasi itu sendiri. Dengan cooperative memory manajgement , dibutuhkan cukup satu program yang tidak diinginkan untuk membuuat sistem crash.

Memori protection memungkinkan kernel untuk membatasi akses sebuah proses ke memori komputer. Ada berbagai metode memori protection , termasuk segmentasi memori dan paging. Semua metode memerlukan beberapa tingkat dukungan hardware (seperti 80286 MMU), yang tidak selalu ada di semua komputer.

Baik dalam segmentasi dan paging, mode protected register tertentu di CPU akan menentukan alamat memori yang harus diperbolehkan untuk di akses oleh sebuah program yang berjalan . Upaya untuk mengakses alamat selain yang dialokasikan akan memicu interupsi yang akan menyebabkan CPU untuk memasukkan kembali mode supervisor, menjadikan kernel yang bertanggung jawab. Ini disebut pelanggaran segmentasi atau Seg-V untuk singkatnya, dan karena ini biasanya sulit untuk memperoleh hasil yang berarti dari operasi yang salah ini, oleh karena itu biasanya merupakan tanda adanya program yang salah, kernel umumnya akan mengambil jalan untuk mengakhiri program, dan akan melaporkan kesalahan.

Di Windows, kesalahan segmentasi ini kadang akan muncul sebagai layar biru.

Memory Virtual

Banyak sistem operasi dapat "menipu" program dalam menggunakan memori tersebar di seluruh hard disk dan RAM seolah-olah itu adalah salah satu potongan kontinu memori , yang disebut memori virtual.

Penggunaan pengalamatan memori virtuall (seperti paging atau segmentasi) berarti kernel dapat memilih memori apa yang digunakan setiap program pada waktu tertentu, yang memungkinkan sistem operasi untuk menggunakan lokasi memori yang sama untuk berbagai keperluan.

Jika sebuah program mencoba mengakses memory yang tidak adalah dalam range memori yang dapat di akses , tapi tetap telah dialokasikan untuk program tersebut, kernel akan diinterupsi dengan cara yang sama jika ada program melebihi memori yang dialokasikan. Di UNIX interupsi jenis ini di sebut sebagai kesalahan halaman / page fault.

Ketika kernel mendeteksi kesalahan halaman umumnya akan menyesuaikan range virtual memori bagi program yang memicunya, ia memberikan akses ke memori diminta. Hal ini memberikan kekuatan pada kernel untuk menentukan di mana memori dari aplikasi tertentu disimpan, atau apakah memori sudah dialoikasikan atau belum.

Dalam sistem operasi modern, memori yang diakses jarang diakses dapat disimpan sementara pada disk atau media lain untuk membuat ruang yang tersedia agar dapat digunakan oleh program lain. Ini disebut swapping, sebagai daerah memori yang dapat digunakan oleh beberapa program, dan isi memori di daerah tersebut dapat ditukar (swap) sesuai permintaan.

"Virtual memory" memberikan programmer maupun pengguna akan persepsi bahwa ada RAM dalam jumlah yang jauh lebih besar dari RAM yang sebenarnya ada di komputer.

Multitasking

Multitasking adalah menjalankan beberapa program komputer independen pada komputer yang sama, memberikan kesan bahwa komputer melakukan tugas pada waktu yang sama. Karena kebanyakan komputer hanya dapat melakukan paling banyak satu atau dua hal pada satu waktu, multitasking biasanya dilakukan menggunakan time-sharing, yang berarti bahwa setiap program menggunakan sebagian dari waktu komputer saat dieksekusi.

Sebuah kernel sistem operasi berisi software yang disebut scheduler yang menentukan berapa banyak waktu setiap program yang dapat digunakan saat eksekusi, yang mana perintah untuk kontrol eksekusi harus diberikan ke program. Kontrol diberikan ke sebuah process oleh kernel, yang mengijinkan program untuk mengakses CPU atau memory. Kemudian, kontrol dikembalikan ke kernel melalui sebuah mekanisme, sehingga program lain dapat diijinkan untuk menggunakan CPU. Proses pemberian kontrol antara kernel dengan aplikasi biasanya di sebut sebagai context switch.

Model awal yang diatur alokasi waktu untuk program disebut cooperative multitasking. Dalam model ini, ketika kendali diberikan ke program oleh kernel, program dapat dijalankan selama program inginkan sebelum secara eksplisit mengembalikan kontrol ke kernel. Ini berarti bahwa program jahat atau program yang tidak berfungsi tidak hanya mencegah program lain dari penggunaan CPU, tetapi bisa menggantung seluruh sistem jika memasuki infinite loop.

Sistem operasi modern memperluas konsep preemption aplikasi ke device driver dan kode kernel, sehingga sistem operasi memiliki kontrol preemptive atas internal run-time juga.

Filosofi mengatur preemptive multitasking adalah untuk memastikan bahwa semua program yang diberi waktu di CPU. Ini menunjukkan bahwa semua program harus dibatasi dalam berapa banyak waktu mereka diizinkan untuk dihabiskan di CPU tanpa di interupsi. Untuk mencapai hal ini, kernel sistem operasi modern menggunakan sebuah interupsi berjangka. Sebuah protected mode timer diatur oleh kernel yang memicu untuk kembali ke mode supervisor setelah waktu yang ditentukan telah berlalu.

Pada banyak sistem operasi single user cooperative multitasking cukup memadai, karena umumnya home komputer (PC) menjalankan sejumlah program teruji baik. AmigaOS adalah pengecualian, karena menggunakan pre-emptive multitasking dari versi pertama. Windows NT merupakan versi pertama dari Microsoft Windows yang menerapkan preemptive multitasking, tetapi tidak mencapai pasar pengguna rumah sampai Windows XP (sebab Windows NT ditujukan pada profesional).

Akses Disk dan file system

Filesystem memungkinkan pengguna dan program untuk menata dan mengatur file pada komputer, biasanya melalui penggunaan direktori (atau "folder")

Akses ke data yang tersimpan pada disk adalah fitur utama dari semua sistem operasi. Komputer menyimpan data pada disk menggunakan file, yang terstruktur dengan cara tertentu agar memungkinkan untuk mengakses dengan cepat, keandalan yang lebih tinggi, dan untuk memaksimalkan penggunaan ruang yang tersedia pada disk. Cara khusus di mana file tersebut disimpan pada disk yang disebut sistem file, dan memungkinkan file untuk memiliki nama dan atribut. Hal ini juga memungkinkan mereka untuk disimpan dalam hirarki direktori atau folder yang diatur dalam struktur direktori.

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

Sementara banyak sistem operasi sederhana mendukung berbagai pilihan terbatas untuk mengakses sistem penyimpanan, sistem operasi seperti UNIX dan Linux mendukung teknologi yang dikenal sebagai Virtual File System atau VFS. Sebuah sistem operasi seperti UNIX mendukung beragam perangkat penyimpanan, terlepas dari desain atau File System, yang memungkinkan mereka untuk dapat diakses melalui Application Programming Interface (API) yang sama. Hal ini membuatnya tidak perlu untuk program untuk memiliki pengetahuan tentang perangkat mereka mengakses. Sebuah VFS memungkinkan sistem operasi untuk menyediakan program dengan akses jumlah perangkat yang tidak terbatas dengan berbagai file sistem terinstall yang tidak terbatas pada mereka, melalui penggunaan driver perangkat tertentu dan driver sistem file.

Sebuah perangkat penyimpanan yang tersambung, seperti hard drive, diakses melalui device driver yang sama. Driver driver memahami cara berkomunikasi dengan drive dan mampu menterjemahkan bahasa yang menjadi bahasa standar yang digunakan oleh sistem operasi untuk mengakses semua disk drive yang sama. Pada UNIX, ini adalah bahasa dari block device.

Ketika kernel memiliki driver driver yang tepat , maka ia dapat mengakses isi disk drive dalam format mentah, yang mungkin berisi satu atau lebih File System. Sebuah driver sistem file digunakan untuk menterjemahkan perintah yang digunakan untuk mengakses setiap sistem file tertentu ke dalam satu set standar perintah yang sistem operasi dapat digunakan untuk berbicara dengan semua file system. Program kemudian dapat menangani sistem file ini berdasarkan nama file, dan direktori / folder, yang berada dalam struktur hirarkis. Mereka dapat membuat, menghapus, membuka, dan menutup file, serta mengumpulkan berbagai informasi tentang mereka, termasuk hak akses, ukuran, ruang bebas, dan tanggal pembuatan dan tanggal modifikasi.

Berbagai perbedaan antara File System membuat dukungan untuk semua File System menjadi sulit. Karakter yang diperbolehkan dalam nama file, huruf besar / huruf kecil, dan adanya berbagai jenis atribut berkas membuat implementasi satu antarmuka untuk setiap file system menjadi tugas yang menyulitkan. Sistem operasi cenderung untuk merekomendasikan menggunakan (dan begitu mendukung native) file sistem yang dirancang khusus untuk mereka, misalnya, NTFS di Windows dan ext3 dan ReiserFS di Linux. Namun, dalam prakteknya, ada pihak ketiga yang menyediakan driver untuk memberikan dukungan untuk sistem file yang paling banyak digunakan di sebagian besar sistem operasi (misalnya, NTFS tersedia di Linux melalui NTFS-3g, dan ext2 / 3 dan ReiserFS tersedia di Windows melalui perangkat lunak pihak ketiga).

Dukungan untuk sistem file sangat bervariasi di antara sistem operasi modern, meskipun ada beberapa file system yang sama di hampir semua sistem operasi termasuk dukungan dan driver. Sistem operasi bervariasi pada dukungan file sistem dan pada format disk tempat mereka dapat diinstal. Pada Windows, setiap sistem berkas biasanya terbatas dalam aplikasi untuk media tertentu, misalnya, CD harus menggunakan ISO 9660 atau UDF, dan pada Windows Vista, NTFS adalah file system dimana sistem operasi dapat diinstal. Berbeda dengan Windows, sangat mungkin untuk menginstal Linux ke berbagai jenis file sistem . Tidak seperti sistem operasi lain, Linux dan UNIX membiarkan sistem berkas untuk digunakan terlepas dari media yang disimpan dalam, apakah itu hard drive, disk (CD, DVD ...), USB flash drive, atau bahkan berada dalam file terletak di sistem berkas lain.

Device driver

Device Driver adalah perangkat lunak spesifik pada komputer yang dikembangkan untuk memungkinkan interaksi dengan perangkat keras. Biasanya ini merupakan sebuah antarmuka untuk berkomunikasi dengan perangkat, melalui bus komputer tertentu atau subsistem komunikasi yang terhubung ke hardware , memberikan perintah untuk dan / atau menerima data dari perangkat, dan di ujung lain, interface yang diperlukan untuk operasi sistem dan aplikasi perangkat lunak. Ini adalah program komputer khusus yang tergantung hardware yang juga untuk sistem operasi yang spesifik yang memungkinkan program lain, biasanya sistem operasi atau aplikasi / perangkat lunak / program komputer yang berjalan dibawah kernel sistem operasi, untuk berinteraksi secara transparan dengan perangkat keras, dan biasanya menyediakan penanganan interupsi yang diperlukan yang diperlukan untuk hardware yang asinkroin dan time-dependent.

Tujuan utama desain device driver adalah abstraksi. Setiap model perangkat keras (bahkan dalam kelas perangkat yang sama ) berbeda. Model-model baru juga dikeluarkan oleh produsen yang memberikan performa yang lebih handal / lebih baik dan model-model lebih baru sering berbeda cara mengontrolnya . Komputer dan sistem operasi tidak dapat diharapkan untuk mengetahui bagaimana untuk mengontrol setiap perangkat, baik sekarang maupun di masa depan. Untuk mengatasi masalah ini, sistem operasi pada dasarnya akan mendikte bagaimana cara setiap jenis perangkat harus dikontrol. Fungsi dari device driver untuk menterjemahkan amanat dari sistem operasi menjadi fungsi panggilan untuk perangkat tertentu. Dalam teori seharusnya perangkat baru, yang dikendalikan dengan cara baru, harus berfungsi dengan benar jika driver yang cocok tersedia. Driver baru ini akan memastikan bahwa perangkat yang baru muncul beroperasi seperti biasa dilihat dari sudut pandang sistem operasi.

Pada versi Windows sebelum Vista dan versi Linux sebelum 2.6, semua eksekusi driver sifatnya adalah co-operative, yang berarti bahwa jika driver memasuki infinite loop akan mem-freeze sistem. Revisi lebih baru dari sistem operasi menggabungkan preemption kernel, dimana kernel menginterupsi driver untuk memberikan tugas, dan kemudian melepaskan diri dari proses sampai menerima tanggapan dari device driver, atau memberi lebih banyak tugas yang dapat dilakukan.

Networking

Saat ini sebagian besar sistem operasi mendukung berbagai protokol jaringan, perangkat keras, dan aplikasi untuk menggunakannya. Ini berarti bahwa komputer yang menjalankan sistem operasi berbeda dapat berpartisipasi dalam jaringan komputer untuk berbagi sumber daya seperti komputasi, file, printer, dan scanner menggunakan koneksi kabel atau wireless. Jaringan komputer pada dasarnya dapat memungkinkan sistem operasi komputer untuk mengakses sumber daya dari komputer remote untuk mendukung fungsi yang sama seperti jika sumber daya tersebut dihubungkan langsung ke komputer lokal. Ini mencakup segala sesuatu dari komunikasi sederhana, hingga menggunakan file system jaringan atau bahkan sharing grafis komputer lain atau perangkat keras suara. Beberapa layanan jaringan mengizinkan sumber daya dari komputer yang akan diakses transparan, seperti SSH yang memungkinkan pengguna jaringan akses langsung ke antarmuka baris text di komputer remote.

Jaringan client / server memungkinkan sebuah program pada komputer, yang disebut klien, untuk berhubungan melalui jaringan ke komputer lain, yang disebut server. Server menawarkan (atau host) berbagai layanan untuk komputer jaringan lainnya dan pengguna. Layanan ini biasanya diberikan melalui port atau nomor jalur akses selain alamat jaringan dari server. Setiap nomor port biasanya dikaitkan dengan satu program / aplikasi, yang bertanggung jawab untuk menangani permintaan untuk port tersebut. Daemon, adalah program yang jalan di server, pada saatnya dapat mengakses sumber daya perangkat keras lokal komputer yang dengan melewatkan permintaan ke kernel sistem operasi.

Banyak sistem operasi mendukung satu atau lebih protokol jaringan milik vendor maupun yang terbuka / open, misalnya, SNA untuk IBM sistem, DECnet pada sistem dari Digital Equipment Corporation, dan Microsoft-spesifik protokol (SMB) pada Windows. Protokol khusus untuk tugas-tugas tertentu mungkin juga didukung seperti NFS untuk akses file. Protokol seperti esound, atau esd dapat dengan mudah diperluas melalui jaringan untuk menyediakan suara dari aplikasi lokal, pada hardware sound sistem remote.

Internet adalah salah satu jenis protokol jaringan yang mempunyai standard terbuka yang dapat dijalankan di berbagai sistem operasi. Standard Internet dibuat secara bersama / terbuka oleh banyak pihak, dan dapat di akses melalui web dengan kata kunci "Request For Comment" (RFC).

Security

Sebuah komputer yang aman tergantung pada sejumlah teknologi bekerja dengan baik. Sebuah sistem operasi modern menyediakan akses ke sejumlah sumber daya yang tersedia untuk perangkat lunak yang berjalan pada sistem, dan perangkat eksternal seperti jaringan melalui kernel.

Sistem operasi harus mampu membedakan antara permintaan yang harus diperbolehkan untuk diproses, dan lain-lain yang tidak harus diproses. Sementara beberapa sistem mungkin hanya membedakan antara "previleged / istimewa" dan "non-privileged", sistem umumnya memiliki bentuk identitas pemohon, seperti nama pengguna. Untuk menentukan identitas mungkin ada proses authentikasi. Seringkali nama pengguna harus dikutip, dan username masing-masing mungkin punya password. Metode authentikasi lain , seperti kartu magnetik atau data biometric, mungkin digunakan sebagai gantinya. Dalam beberapa kasus, khususnya koneksi dari jaringan, sumber daya dapat diakses tanpa authentikasi sama sekali (seperti membaca file melalui sharing jaringan). Juga dicakup oleh konsep identitas pemohon adalah authorisasi; layanan tertentu dan sumber daya diakses oleh pemohon sekali login ke sistem terikat ke salah satu akun pengguna pemohon atau ke grup yang di konfigurasi terkait ke account pengguna tersebut.

Selain model keamanan yang berbentuk mengijinkan / melarang , sebuah sistem dengan tingkat keamanan yang tinggi juga akan menawarkan pilihan audit. Ini akan memungkinkan pelacakan permintaan akses ke sumber daya (seperti, "siapa yang telah membaca file ini?"). Keamanan internal, atau keamanan dari program yang sedang berjalan hanya mungkin jika semua permintaan yang mungkin berbahaya harus dilakukan melalui interupsi ke kernel sistem operasi. Jika program langsung dapat mengakses hardware dan sumber daya, mereka tidak bisa diamankan.

Keamanan eksternal melibatkan permintaan dari luar komputer, seperti login di konsol atau beberapa jenis koneksi jaringan. Permintaan eksternal sering melewati device driver ke kernel sistem operasi, di mana mereka dapat diteruskan ke aplikasi, maupun dilakukan secara langsung. Keamanan sistem operasi telah lama menjadi perhatian karena data sangat sensitif yang ada di komputer, baik yang bersifat komersial dan militer. Pemerintah Amerika Serikat Departemen Pertahanan (DoD) mengusulkan Trusted Computer Kriteria Evaluasi Sistem (TCSEC) yang merupakan standar yang menetapkan persyaratan dasar untuk menilai efektivitas keamanan. Hal ini menjadi sangat penting bagi para pembuat sistem operasi, karena TCSEC ini digunakan untuk mengevaluasi, mengklasifikasi dan memilih sistem operasi yang dipercaya untuk dipertimbangkan untuk penyimpanan, pengolahan dan pengambilan informasi sensitif atau rahasia.

Layanan jaringan meliputi banyak hal seperti file sharing, layanan printing, email, situs web, dan protokol transfer file (FTP), sebagian besar yang dapat membahayakan keamanan. Di garis depan keamanan perangkat keras yang dikenal sebagai firewall maupun intrusion detection / prevention systems. Pada tingkat sistem operasi, ada sejumlah firewall perangkat lunak yang tersedia, serta intrusion detection / prevention system. Sebagian besar sistem operasi modern memasukan perangkat lunak firewall , yang diaktifkan secara default. Sebuah perangkat lunak firewall dapat dikonfigurasi untuk mengizinkan atau menolak lalu lintas jaringan ke atau dari suatu layanan atau aplikasi yang berjalan pada sistem operasi. Oleh karena itu, seseorang dapat menginstal dan menjalankan layanan yang tidak aman, seperti Telnet maupun FTP, dan tidak harus terancam oleh suatu pelanggaran keamanan karena firewall akan menolak semua lalu lintas mencoba untuk terhubung ke layanan pada port tersebut.

Strategi alternatif adalah sistem operasi tidak menjalankan program pengguna sebagai native code, melainkan mengemulasi prosesor atau menyediakan host untuk sistem berbasis code seperti Java.

Keamanan internal sangat relevan untuk sistem multi-user, yang memungkinkan setiap pengguna sistem untuk memiliki file pribadi yang mana pengguna lain tidak bisa mengutak-atik atau membaca. Keamanan internal juga penting jika audit akan digunakan, karena program berpotensi dapat melewati sistem operasi, termasuk melewati audit.

User interface

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

Setiap komputer yang akan dioperasikan oleh seorang individu memerlukan antarmuka pengguna. Antarmuka pengguna biasanya disebut sebagai shell dan penting jika akan mendukung interaksi dengan manusia . User interface melihat pada struktur direktori dan layanan permintaan dari sistem operasi yang akan memperoleh data dari perangkat keras input, seperti card reader, keyboard, mouse, dan permintaan layanan sistem operasi untuk menampilkan prompt, pesan status, dan pada perangkat hardware output, seperti monitor video atau printer. Dua bentuk yang paling umum dari antarmuka pengguna secara historis command line interface (CLI), di mana perintah komputer mengetik baris demi baris, dan antarmuka grafis (GUI) yang menampilkan tampilan visual.

screenshot dari Unity Interface pada Ubuntu. Program akan tampak sebagai gambar pada layar, dan file, folder (directori), dan aplikasi tampak sebagai icon dan simbol. Mouse digunakan untuk melakukan navigasi di komputer

Sebagian besar sistem komputer modern mendukung antarmuka grafis (GUI) , dan sering memasukan GUI menjadi bagian dari sistem operasi tersebut. Dalam beberapa sistem komputer, seperti implementasi semula dari Mac OS, GUI terintegrasi ke dalam kernel.

Secara teknis antarmuka grafis (GUI) bukan merupakan layanan sistem operasi, menggabungkan dukungan untuk sebuah GUI ke kernel sistem operasi dapat membuka kemungkinan agar GUI untuk lebih responsif dengan mengurangi jumlah konteks switch yang diperlukan GUI untuk menjalankan fungsi tampilannya. Beberapa sistem operasi bersifat modular, memisahkan subsistem grafis dari kernel dan sistem operasi. Pada 1980-an UNIX, VMS dan banyak lainnya membangun sistem operasi dengan cara ini. Linux dan Mac OS X juga dibangun dengan cara ini. Rilis Modern Microsoft Windows seperti Windows Vista menerapkan subsistem grafis sebagian besar di user-space, namun subroutine menggambar grafis dalam versi antara Windows NT 4.0 dan Windows Server 2003 ada sebagian besar dalam kernel. Windows 9x memiliki perbedaan yang sangat sedikit antara interface dan kernel.

Banyak sistem operasi komputer memungkinkan pengguna untuk menginstal atau membuat antarmuka pengguna yang mereka inginkan. The X Window System dalam hubungannya dengan GNOME maupun KDE Plasma Desktop adalah setup yang umum ditemukan pada kebanyakan sistem GUI di Unix dan GUI di Unix-like (BSD, Linux, Solaris). Sejumlah pengganti shell Windows telah dirilis untuk Microsoft Windows, yang menawarkan alternatif untuk shell Windows , tapi shell itu sendiri tidak dapat dipisahkan dari Windows.

Banyak GUI di Unix berkembang dari waktu ke waktu, sebagian besar berasal dari X11. Persaingan di antara berbagai vendor Unix (HP, IBM, Sun) menyebabkan fragmentasi yang lebar, upaya untuk membakukan pada 1990-an menuju COSE dan CDE gagal karena berbagai alasan, dan akhirnya dikalahkan dengan di-adopsinya GNOME dan K Desktop Environment. Sebelum adanya toolkit & lingkungan desktop berbasis free software, Motif digunakan sebagai toolkit / desktop (yang merupakan dasar bagi pengembangan CDE).

Graphical User Interface berkembang dari waktu ke waktu. Sebagai contoh, Windows telah mengubah antarmuka pengguna nyaris setiap kali versi baru dari Windows keluar, dan di samping itu, Mac OS GUI berubah secara dramatis dengan pengenalan Mac OS X pada tahun 1999.

Real-time Operating System

Sebuah sistem operasi real-time RTOS adalah sistem operasi multitasking yang ditujukan untuk aplikasi dengan tenggat waktu tetap (komputasi real-time). Aplikasi ini mencakup beberapa sistem embedded kecil, pengendal mesin mobil , robot industri, pesawat ruang angkasa, kontrol industri, dan beberapa sistem komputasi berskala besar.

Sebuah contoh awal dari sebuah sistem operasi komputasi real-time berskala besar adalah fasilitas pemrosesan transaksi yang dikembangkan oleh American Airlines dan IBM untuk Sistem Reservasi Sabre Airline. Embedded system yang memiliki tenggat waktu tetap menggunakan sistem operasi komputasi real-time seperti VxWorks, PikeOS, ecos, QNX, MontaVista Linux dan RTLinux. Symbian OS juga memiliki kernel RTOS (EKA2) dimulai dengan versi 8.0b.

Beberapa embedded sistem menggunakan sistem operasi seperti Palm OS, BSD, dan Linux, meskipun sistem operasi tersebut tidak mendukung komputasi real-time.

Pengembangan Sistem Operasi sebagai Hobby

Pengembangan sistem operasi merupakan salah satu kegiatan yang paling rumit yang akan melibatkan penggemar kegiatan komputasi. Sebuah sistem operasi dapat diklasifikasikan sebagai sistem operasi hobi jika source code-nya tidak secara langsung di turunkan dari sistem operasi yang ada, dan memiliki beberapa pengguna dan pengembang yang aktif.

Dalam beberapa kasus, pengembangan sistem operasi hobi untuk mendukung perangkat komputasi "homebrew" , misalnya, satu board komputersederhana menggunakan mikroprosesor 6502. Atau, pengembangan untuk arsitektur yang mungkin sudah digunakan secara luas. Pengembangan sistem operasi mungkin saja berasal dari konsep-konsep yang sama sekali baru, maupun bisa digantikan dengan pemodelan sistem operasi yang ada. Dalam kedua kasus, si hobbyist mungkin saja jadi pengembang sendiri, maupun berinteraksi dengan sebuah kelompok kecil dan kadang-kadang sekumpulan individu yang tidak terstruktur yang memiliki ketertarikan yang sama.

Contoh dari sistem operasi hobby termasuk ReactOS dan Syllable.

Keanekaragaman Sistem Operasi dan portabilitas

Aplikasi perangkat lunak umumnya ditulis untuk digunakan pada sistem operasi tertentu, dan kadang-kadang bahkan untuk hardware tertentu. Ketika porting aplikasi untuk berjalan di OS lain, fungsionalitas yang dibutuhkan oleh aplikasi yang dapat diimplementasikan secara berbeda oleh OS itu (nama-nama fungsi, makna argumen, dll) membutuhkan aplikasi yang akan disesuaikan, diubah, atau dipertahankan.

Biaya dalam mendukung keragaman sistem operasi dapat dihindari dengan cara menulis aplikasi pada platform perangkat lunak seperti Java atau Qt. Abstraksi ini yang telah menanggung beban adaptasi terhadap sstem operasi tertentu dan sistem library-nya.

Pendekatan lain adalah bagi vendor sistem operasi untuk mengadopsi standar. Misalnya, POSIX dan lapisan abstraksi OS agar memberikan kesamaan yang mengurangi biaya porting.

Referensi

Pranala Menarik

Secara Umum

Instalasi Linux

Command Line Interface

Repository & Penggunaannya

Instalasi Aplikasi

Compile Kernel

Remaster Linux

Sistem Operasi untuk Embedded

Membuat Firmware Sendiri

Flash ke Device

Beberapa Tip

Tuning Kernel

Tuning Kernel Scheduler

Tuning I/O Scheduler

Tuning Manajemen Memory

Android

Membuat Kernel Module

Monitoring & Benchmark

Lainnya