Content deleted Content added
Updated data Tags: Mobile edit Mobile web edit Advanced mobile edit |
|||
Line 1:
{{Short description|Software that manages computer hardware resources}}
{{pp-vandalism|small=yes}}
{{pp-move
{{Use dmy dates|date=July 2015}}
{{OS}}
Line 10:
For hardware functions such as [[input and output]] and [[memory allocation]], the operating system acts as an intermediary between programs and the computer hardware,<ref>{{cite book | last = Stallings | title = Operating Systems, Internals and Design Principles | publisher = Prentice Hall | year = 2005 | ___location = Pearson |page=6}}</ref><ref>{{cite book | last = Dhotre| first = I.A.| title = Operating Systems. | publisher = Technical Publications | year = 2009 |page=1}}</ref> although the application code is usually executed directly by the hardware and frequently makes [[system call]]s to an OS function or is [[interrupt]]ed by it. Operating systems are found on many devices that contain a computer{{snd}}from cellular phones and video game consoles to [[web server]]s and [[supercomputer]]s.
In the [[personal computer]] market, {{as of|2024|09|lc=y}}, [[Microsoft Windows]] holds a dominant market share of around 73%. [[macOS]] by [[Apple Inc.]] is in second place (15%), [[Linux]] is in third place (5%), and [[ChromeOS]] is in fourth place (2%).<ref name=":0">{{Cite web |title=Desktop Operating System Market Share Worldwide |url=https://gs.statcounter.com/os-market-share/desktop/worldwide/#monthly-202309-202309-bar |access-date=2023-10-03 |website=StatCounter Global Stats |language=en |archive-date=2 October 2023 |archive-url=https://web.archive.org/web/20231002223546/https://gs.statcounter.com/os-market-share/desktop/worldwide/ |url-status=live }}</ref> In the [[Mobile operating system|mobile]] sector (including [[smartphone]]s and [[Tablet computer|tablets]]), {{as of|2023|09|lc=y}}, [[Android (operating system)|Android's]] share is 68.92%, followed by Apple's [[iOS]] and [[iPadOS]] with 30.42%, and other operating systems with .66%.<ref name="gs.statcounter.com">{{Cite web |title=Mobile & Tablet Operating System Market Share Worldwide |url=https://gs.statcounter.com/os-market-share/mobile-tablet/worldwide/#monthly-202309-202309-bar |access-date=2023-10-02 |website=StatCounter Global Stats |language=en}}</ref> [[Linux distribution]]s are dominant in the server and supercomputing sectors. Other specialized classes of operating systems (special-purpose operating systems),<ref name="auto">{{Cite web|url=https://www.oreilly.com/library/view/operating-system-concepts/9780471694663/pt07.html|title=VII. Special-Purpose Systems - Operating System Concepts, Seventh Edition [Book]|website=www.oreilly.com|access-date=8 February 2021|archive-date=13 June 2021|archive-url=https://web.archive.org/web/20210613190049/https://www.oreilly.com/library/view/operating-system-concepts/9780471694663/pt07.html|url-status=live}}</ref><ref>{{Cite web|url=https://www.acs.eonerc.rwth-aachen.de/cms/E-ON-ERC-ACS/Studium/Lehrveranstaltungen/~lrhs/Spezial-Betriebssysteme/?lidx=1|title=Special-Purpose Operating Systems - RWTH AACHEN UNIVERSITY Institute for Automation of Complex Power Systems - English|website=www.acs.eonerc.rwth-aachen.de|access-date=8 February 2021|archive-date=14 June 2021|archive-url=https://web.archive.org/web/20210614034001/https://www.acs.eonerc.rwth-aachen.de/cms/E-ON-ERC-ACS/Studium/Lehrveranstaltungen/~lrhs/Spezial-Betriebssysteme/?lidx=1|url-status=live}}</ref> such as [[Embedded system|embedded]] and real-time systems, exist for many applications. [[Security-focused operating system]]s also exist. Some operating systems have low system requirements (e.g. [[light-weight Linux distribution]]). Others may have higher system requirements.
Some operating systems require installation or may come pre-installed with purchased computers ([[OEM]]-installation), whereas others may run directly from media (i.e. [[live CD]]) or flash memory (i.e. [[USB flash drive|USB]] stick).
Line 30:
===Embedded===
[[Embedded operating system]]s are designed to be used in [[Embedded system|embedded computer systems]], whether they are [[internet of things]] objects or not connected to a network. Embedded systems include many household appliances. The distinguishing factor is that they do not load user-installed software. Consequently, they do not need protection between different applications, enabling simpler designs. Very small operating systems might run in less than 10 [[kilobytes]],{{sfn|Tanenbaum|Bos|2023|pp=37-38}} and the smallest are for [[smart cards]].{{sfn|Tanenbaum|Bos|2023|p=39}} Examples include [[
===Real-time===
Line 63:
}}</ref>), [[Single address space operating system|single address space]], machine image that can be deployed to cloud or embedded environments.
The operating system code and application code are not executed in separated [[Protection ring|protection domains]] (there is only a single application running, at least conceptually, so there is no need to prevent interference between applications) and OS services are accessed via simple library calls (potentially [[Inline expansion|inlining]] them based on compiler thresholds), without the usual overhead of [[
<ref name="rise-of-libOS">{{cite web
|url=https://www.sigarch.org/leave-your-os-at-home-the-rise-of-library-operating-systems/
Line 92:
[[File:IBM system 360-50 console - MfK Bern.jpg|thumb|IBM System/360 Model 50 operator's console and CPU; the operator's console is a [[computer terminal|terminal]] used by the operating system to communicate with the operator.]]
The first computers in the late 1940s and 1950s were directly programmed either with [[plugboard]]s or with [[machine code]] inputted on media such as [[punch card]]s, without [[programming language]]s or operating systems.{{sfn|Tanenbaum|Bos|2023|p=8}} After the introduction of the [[transistor]] in the mid-1950s, [[mainframe]]s began to be built. These still needed professional operators{{sfn|Tanenbaum|Bos|2023|p=8}} who manually do what a modern operating system would do, such as scheduling programs to run,<ref name="OSTEP book">
Around the same time, [[teleprinter]]s began to be used as [[computer terminal|terminal]]s so multiple users could access the computer simultaneously. The operating system [[MULTICS]] was intended to allow hundreds of users to access a large computer. Despite its limited adoption, it can be considered the precursor to [[cloud computing]]. The [[UNIX]] operating system originated as a development of MULTICS for a single user.{{sfn|Tanenbaum|Bos|2023|pp=13–14}} Because UNIX's [[source code]] was available, it became the basis of other, incompatible operating systems, of which the most successful were [[AT&T]]'s [[System V]] and the [[University of California]]'s [[Berkeley Software Distribution]] (BSD).{{sfn|Tanenbaum|Bos|2023|pp=14–15}} To increase compatibility, the [[IEEE]] released the [[POSIX]] standard for operating system [[application programming interface]]s (APIs), which is supported by most UNIX systems. [[MINIX]] was a stripped-down version of UNIX, developed in 1987 for educational uses, that inspired the commercially available, [[free software]] [[Linux]]. Since 2008, MINIX is used in controllers of most [[Intel]] [[microchips]], while Linux is widespread in [[data center]]s and [[Android (operating system)|Android]] smartphones.{{sfn|Tanenbaum|Bos|2023|p=15}}
===Microcomputers===
[[File:MS-Dos screenshot.png|thumb|[[Command-line interface]] of the [[MS-DOS]] operating system]]
[[File:System 1 File Edit.png|thumb|[[Graphical user interface]] of a [[Macintosh]]]]
The invention of [[large scale integration]] enabled the production of [[personal computer]]s (initially called [[microcomputer]]s) from around 1980.{{sfn|Tanenbaum|Bos|2023|pp=15–16}} For around five years, the [[CP/M]] (Control Program for Microcomputers) was the most popular operating system for microcomputers.{{sfn|Tanenbaum|Bos|2023|p=16}} Later, IBM bought the [[DOS]] (Disk Operating System) from [[Microsoft]]. After modifications requested by IBM, the resulting system was called [[MS-DOS]] (MicroSoft Disk Operating System) and was widely used on IBM microcomputers. Later versions increased their sophistication, in part by borrowing features from UNIX.{{sfn|Tanenbaum|Bos|2023|p=16}}
[[Apple]]'s [[Macintosh]] was the first popular computer to use a [[graphical user interface]] (GUI). The GUI proved much more [[user friendly]] than the text-only [[command-line interface]] earlier operating systems had used. Following the success of Macintosh, MS-DOS was updated with a GUI overlay called [[Windows]]. Windows later was rewritten as a stand-alone operating system, borrowing so many features from another ([[VAX VMS]]) that a large [[legal settlement]] was paid.{{sfn|Tanenbaum|Bos|2023|p=17}} In the twenty-first century, Windows continues to be popular on personal computers but has less [[market share]] of servers. UNIX operating systems, especially Linux, are the most popular on [[enterprise system]]s and servers but are also used on mobile devices and many other computer systems.{{sfn|Tanenbaum|Bos|2023|p=18}}
Line 201 ⟶ 202:
}}</ref> Similarly, both hardware and software interrupts execute an [[Interrupt handler|interrupt service routine]].
Software interrupts may be normally occurring events. It is expected that a [[
| last = Kerrisk
| first = Michael
Line 246 ⟶ 247:
| page = 200
| isbn = 0-13-201799-7
}}</ref> <code>pid</code> is the [[process identifier]] of the receiving process. <code>signum</code> is the signal number (in [[mnemonic]] format){{efn|Examples include [[
| last = Kerrisk
| first = Michael
Line 326 ⟶ 327:
}}</ref>
Some computers require an interrupt for each character or word, costing a significant amount of CPU time. [[Direct memory access]] (DMA) is an architecture feature to allow devices to bypass the CPU and access [[random-access memory|main memory]] directly.<ref name=A22-6821-7-storage>{{cite
|author = IBM
|title = IBM System/360 Principles of Operation
Line 356 ⟶ 357:
=====Interrupt-driven I/O=====
{{Expand section|date=April 2022}}
When a [[user (computing)|computer user]] types a key on the keyboard, typically the character appears immediately on the screen. Likewise, when a user moves a [[computer mouse|mouse]], the [[Cursor (user interface)|cursor]] immediately moves across the screen. Each keystroke and mouse movement generates an ''interrupt'' called ''Interrupt-driven I/O''. An interrupt-driven I/O occurs when a process causes an interrupt for every character<ref name="sco-ch5-p294"/> or word<ref>{{cite
|title = Users Handbook - PDP-7
|id = F-75
Line 505 ⟶ 506:
Most operating systems are written in [[C (programming language)|C]] or [[C++]], which create potential vulnerabilities for exploitation. Despite attempts to protect against them, vulnerabilities are caused by [[buffer overflow]] attacks, which are enabled by the lack of [[bounds checking]].{{sfn|Tanenbaum|Bos|2023|pp=648, 657}} <!-- Other types of vulnerability in operating systems written in C and C++ include [[format string attack]]s, which exploit lack of [[type checking]] to [[code injection|inject malicious code]],{{sfn|Tanenbaum|Bos|2023|pp=658, 661}} [[use-after-free attack]]s that rely on [[C dynamic memory allocation|dynamically allocated memory]],{{sfn|Tanenbaum|Bos|2023|p=661}} and [[null pointer dereference attack]]s that an attacker can exploit to crash a computer.{{sfn|Tanenbaum|Bos|2023|p=664}} --> Hardware vulnerabilities, some of them [[Transient execution CPU vulnerability|caused by CPU optimizations]], can also be used to compromise the operating system.{{sfn|Tanenbaum|Bos|2023|pp=668–669, 674}} There are known instances of operating system programmers deliberately implanting vulnerabilities, such as [[Backdoor (computing)|back door]]s.{{sfn|Tanenbaum|Bos|2023|pp=679–680}}
Operating systems security is hampered by their increasing complexity and the resulting inevitability of bugs.{{sfn|Tanenbaum|Bos|2023|pp=605, 617–618}} Because [[formal verification]] of operating systems may not be feasible, developers use operating system [[
===User interface===
Line 535 ⟶ 536:
{{Further|Usage share of operating systems|Comparison of operating systems}}
In the [[personal computer]] market, {{as of|2023|09|lc=y}}, [[Microsoft Windows]] has the highest [[market share]], around 68%. [[macOS]] by [[Apple Inc.]] is in second place (20%), and the varieties of [[Linux]], including [[ChromeOS]], are collectively in third place (7%).<ref name=":0"
===Linux===
{{Main|Linux}}
[[File:Layers of a Linux system.png|thumb|upright=1.7|[[Abstraction layer|Layer]]s of a Linux system]]
[[Linux]] is a [[free software]] distributed under the [[GNU General Public License]] (GPL), which means that all of its derivatives are legally required to release their [[source code]].{{sfn|Silberschatz et al.|2018|pp=779–780}} Linux was designed by programmers for their own use, thus emphasizing simplicity and consistency, with a small number of basic elements that can be combined in nearly unlimited ways, and avoiding redundancy.{{sfn|Tanenbaum|Bos|2023|pp=713–714}}
Its design is similar to other UNIX systems not using a [[microkernel]].{{sfn|Silberschatz et al.|2018|p=780}} It is written in [[C (programming language)|C]]<ref>{{cite news |last1=Vaughan-Nichols |first1=Steven |title=Linus Torvalds prepares to move the Linux kernel to modern C |url=https://www.zdnet.com/article/linus-torvalds-prepares-to-move-the-linux-kernel-to-modern-c/ |access-date=7 February 2024 |work=ZDNET |date=2022 |language=en}}</ref> and uses [[UNIX System V]] syntax, but also supports [[BSD]] syntax. Linux supports standard UNIX networking features, as well as the full suite of UNIX tools, while [[multiuser|supporting multiple users]] and employing [[preemptive multitasking]]. Initially of a minimalist design, Linux is a flexible system that can work in under 16 [[megabytes|MB]] of [[RAM]], but still is used on large [[multiprocessor]] systems.{{sfn|Silberschatz et al.|2018|p=780}} Similar to other UNIX systems, Linux [[Software distribution|distribution]]s are composed of a [[Linux kernel|kernel]], [[system library|system libraries]], and [[system utilities]].{{sfn|Silberschatz et al.|2018|p=781}} Linux has a [[graphical user interface]] (GUI) with a desktop, folder and file icons, as well as the option to access the operating system via a [[command line]].{{sfn|Tanenbaum|Bos|2023|pp=715–716}}
[[Android (operating system)|Android]] is a partially open-source operating system closely based on Linux and has become the most widely used operating system by users, due to its popularity on [[smartphones]] and, to a lesser extent, [[embedded system]]s needing a GUI, such as "[[smart watch]]es, [[Android Automotive
▲Its design is similar to other UNIX systems not using a [[microkernel]].{{sfn|Silberschatz et al.|2018|p=780}} It is written in [[C (programming language)|C]]<ref>{{cite news |last1=Vaughan-Nichols |first1=Steven |title=Linus Torvalds prepares to move the Linux kernel to modern C |url=https://www.zdnet.com/article/linus-torvalds-prepares-to-move-the-linux-kernel-to-modern-c/ |access-date=7 February 2024 |work=ZDNET |date=2022 |language=en}}</ref> and uses [[UNIX System V]] syntax, but also supports [[BSD]] syntax. Linux supports standard UNIX networking features, as well as the full suite of UNIX tools, while [[multiuser|supporting multiple users]] and employing [[preemptive multitasking]]. Initially of a minimalist design, Linux is a flexible system that can work in under 16 [[megabytes|MB]] of [[RAM]], but still is used on large [[multiprocessor]] systems.{{sfn|Silberschatz et al.|2018|p=780}} Similar to other UNIX systems, Linux [[Software distribution|distribution]]s are composed of a [[Linux kernel|kernel]], [[system library|system libraries]], and [[system utilities]].{{sfn|Silberschatz et al.|2018|p=781}} Linux has a [[graphical user interface]] (GUI) with a desktop, folder and file icons, as well as the option to access the operating system via a [[command line]].{{sfn|Tanenbaum|Bos|2023|pp=715–716}}
▲[[Android (operating system)|Android]] is a partially open-source operating system closely based on Linux and has become the most widely used operating system by users, due to its popularity on [[smartphones]] and, to a lesser extent, [[embedded system]]s needing a GUI, such as "[[smart watch]]es, [[Android Automotive |automotive dashboard]]s, airplane seatbacks, [[medical devices]], and [[home appliance]]s".{{sfn|Tanenbaum|Bos|2023|pp=793–794}} Unlike Linux, much of Android is written in [[Java (programming language)|Java]] and uses [[object-oriented design]].{{sfn|Tanenbaum|Bos|2023|p=793}}
===Microsoft Windows===
{{Main|Microsoft Windows}}
[[File:Diagram of a security descriptor for a file on Windows.png|thumb|upright=1.3|Security descriptor for a file that is read-only by default, specified no access for Elvis, read/write access for Cathy, and full access for Ida, the owner of the file{{sfn|Tanenbaum|Bos|2023|pp=1021-1022}}]]
Windows is a [[proprietary]] operating system that is widely used on desktop computers, laptops, tablets, phones, [[workstation]]s, [[enterprise server]]s, and [[Xbox]] consoles.{{sfn|Tanenbaum|Bos|2023|p=871}} The operating system was designed for "security, reliability, compatibility, high performance, extensibility, portability, and international support"—later on, [[Energy efficiency in operating systems|energy efficiency]] and support for [[dynamic device]]s also became priorities.{{sfn|Silberschatz et al.|2018|p=826}}
[[Windows Executive]] works via [[Object Manager (Windows)|kernel-mode objects]] for important data structures like processes, threads, and sections (memory objects, for example files).{{sfn|Tanenbaum|Bos|2023|p=1035}} The operating system supports [[demand paging]] of [[virtual memory]], which speeds up I/O for many applications. I/O [[device drivers]] use the [[Windows Driver Model]].{{sfn|Tanenbaum|Bos|2023|p=1035}} The [[NTFS]] file system has a master table and each file is represented as a [[Record (computer science)|record]] with [[metadata]].{{sfn|Tanenbaum|Bos|2023|p=1036}} The scheduling includes [[preemptive multitasking]].{{sfn|Silberschatz et al.|2018|p=821}} Windows has many security features;{{sfn|Silberschatz et al.|2018|p=827}} especially important are the use of [[access-control list]]s and [[safety integrity level|integrity levels]]. Every process has an authentication token and each object is given a security descriptor. Later releases have added even more security features.{{sfn|Tanenbaum|Bos|2023|p=1036}}
Line 598 ⟶ 601:
{{Commons category|Operating systems}}
{{Wikiversity|Operating Systems}}
* [http://www.cbi.umn.edu/iterations/haigh.html Multics History] and the history of operating systems
|