Content deleted Content added
KMaster888 (talk | contribs) ce |
Guy Harris (talk | contribs) →Further reading: Use {{cite book}} for a book. |
||
(22 intermediate revisions by 15 users not shown) | |||
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.
{{as of|2024|09|}}, [[Android (operating system)|Android]] is the most popular operating system with a 46% market share, followed by [[Microsoft Windows]] at 26%, [[iOS]] and [[iPadOS]] at 18%, [[macOS]] at 5%, and [[Linux]] at 1%. Android, iOS, and iPadOS are mobile operating systems, while Windows, macOS, and Linux are desktop operating systems.<ref name="gs.statcounter.com">{{Cite web |title=Operating System Market Share Worldwide |url=https://gs.statcounter.com/os-market-share |access-date=2024-12-20 |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. a LiveUSB from a [[USB flash drive|USB]] stick).
==Definition and purpose==
Line 18:
There are three main purposes that an operating system fulfills:{{sfn|Anderson|Dahlin|2014|p=7}}
*Operating systems allocate resources between different applications, deciding when they will receive [[central processing unit]] (CPU) time or space in [[computer memory|memory]].{{sfn|Anderson|Dahlin|2014|p=7}} On modern [[personal
*Operating systems provide an interface that abstracts the details of accessing [[Computer hardware|hardware]] details (such as physical memory) to make things easier for programmers.{{sfn|Anderson|Dahlin|2014|p=7}}{{sfn|Tanenbaum|Bos|2023|p=5}} [[Virtualization]] also enables the operating system to mask limited hardware resources; for example, [[virtual memory]] can provide a program with the illusion of nearly unlimited memory that exceeds the computer's actual memory.{{sfn|Anderson|Dahlin|2014|p=11}}
*Operating systems provide common services, such as an interface for accessing network and disk devices. This enables an application to be run on different hardware without needing to be rewritten.{{sfn|Anderson|Dahlin|2014|pp=7, 9, 13}} Which services to include in an operating system varies greatly, and this functionality makes up the great majority of code for most operating systems.{{sfn|Anderson|Dahlin|2014|pp=12–13}}
Line 101:
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]] ({{not a typo|Micro|Soft}} 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 Inc.|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
On mobile devices, [[Symbian OS]] was dominant at first, being usurped by [[BlackBerry OS]] (introduced 2002) and [[iOS]] for [[iPhone]]s (from 2007). Later on, the open-source [[Android (operating system)|Android]] operating system (introduced 2008), with a Linux kernel and a C library ([[Bionic (software)|Bionic]]) partially based on BSD code, became most popular.{{sfn|Tanenbaum|Bos|2023|pp=19–20}}
Line 447:
Among other things, a multiprogramming operating system [[kernel (operating system)|kernel]] must be responsible for managing all system memory which is currently in use by the 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, used by many early operating systems, assumes that all programs make voluntary use of the [[kernel (operating system)|kernel]]'s memory manager, and do not exceed their allocated memory. This system of memory management is almost never seen
[[Memory protection]] enables the [[kernel (operating system)|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 does not exist in all computers.
Line 500:
{{Main|Computer security}}
Security means protecting users from other users of the same computer, as well as from those who seeking remote access to it over a network.{{sfn|Tanenbaum|Bos|2023|pp=605-606}} <!-- A [[Vulnerability (computing)|vulnerability]] is when a bug can be exploited to compromise the system or its data; an [[Exploit (computer security)|exploit]] is the signal needed to trigger the bug causing the vulnerability.{{sfn|Tanenbaum|Bos|2023|p=606}} Often the goal of the attacker is to install [[malware]], whether in the form of a [[computer virus|virus]], [[computer worm|worm]], or [[Trojan (malware)|Trojan]].{{sfn|Tanenbaum|Bos|2023|p=607}} --> Operating systems security rests on achieving the [[CIA triad]]: confidentiality (unauthorized users cannot access data), integrity (unauthorized users cannot modify data), and availability (ensuring that the system remains available to authorized users, even in the event of a [[denial of service attack]]).{{sfn|Tanenbaum|Bos|2023|p=608}} As with other computer systems, isolating [[security ___domain]]s—in the case of operating systems, the kernel, processes, and [[virtual machine]]s—is key to achieving security.{{sfn|Tanenbaum|Bos|2023|p=609}} Other ways to increase security include simplicity to minimize the [[attack surface]], locking access to resources by default, checking all requests for authorization, [[principle of least authority]] (granting the minimum privilege essential for performing a task), [[privilege separation]], and reducing shared data.{{sfn|Tanenbaum|Bos|2023|pp=609–610}}
Some operating system designs are more secure than others. Those with no isolation between the kernel and applications are least secure, while those with a [[monolithic kernel]] like most general-purpose operating systems are still vulnerable if any part of the kernel is compromised. A more secure design features [[microkernel]]s that separate the kernel's privileges into many separate security domains and reduce the consequences of a single kernel breach.{{sfn|Tanenbaum|Bos|2023|p=612}} [[Unikernel]]s are another approach that improves security by minimizing the kernel and separating out other operating systems functionality by application.{{sfn|Tanenbaum|Bos|2023|p=612}}
Line 529:
If an application is written for use on a specific operating system, and is [[ported]] to 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 [[software maintenance|maintained]].<!--There really ought to be a discussion of ''software modules'' somewhere, such as those that are neither API's nor Plug-Ins (not sure what those are), but which are either hard (on cartridge), soft (on diskette), or otherwise installable by downloading). -->
This cost in supporting operating systems diversity can be avoided by instead writing applications
Another approach is for operating system vendors to adopt standards. For example, [[POSIX]] and [[operating system abstraction layer|OS abstraction layers]] provide commonalities that reduce porting costs.
Line 536:
{{Further|Usage share of operating systems|Comparison of operating systems}}
{{as of|2024|09|}}, [[Android (operating system)|Android]] (based on the Linux kernel) is the most popular operating system with a 46% market share, followed by [[Microsoft Windows]] at 26%, [[iOS]] and [[iPadOS]] at 18%, [[macOS]] at 5%, and [[Linux]] at 1%. Android, iOS, and iPadOS are [[mobile operating
===Linux===
Line 543:
[[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 [[
[[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}}
Line 557:
{{div col}}
* [[Comparison of operating systems]]
* [[DBOS]]
* [[Interruptible operating system]]
* [[List of operating systems]]
* [[List of pioneers in computer science]]
* [[Glossary of operating systems terms]]
* [[Microcontroller]]
* [[Network operating system]]
* [[Object-oriented operating system]]
* [[Lisp machine]]
* [[Operating System Projects]]
* [[System Commander]]
Line 589 ⟶ 586:
* {{cite book | last = Bic| first = Lubomur F. |author2=Shaw, Alan C. | title = Operating Systems | publisher = [[Prentice Hall]] | year = 2003 | ___location = Pearson }}
* {{cite book | last = Silberschatz | first = Avi |author2=Galvin, Peter |author3=Gagne, Greg | title = Operating Systems Concepts | publisher = [[John Wiley & Sons]] | year = 2008 | isbn = 978-0-470-12872-5 }}
* {{cite book |last1=O'Brien
* {{cite book |last1=Leva |first1=Alberto |last2=Maggio |first2=Martina |last3=Papadopoulos |first3=Alessandro Vittorio |last4=Terraneo |first4=Federico |title=Control-based Operating System Design |publisher=[[Institution of Engineering and Technology|IET]] |year=2013 |isbn=978-1-84919-609-3}}
*{{cite journal |last1=Richet |first1=Jean-Loup |last2=Bouaynaya |first2=Wafa |title=Understanding and Managing Complex Software Vulnerabilities: An Empirical Analysis of Open-Source Operating Systems |journal=Systèmes d'information & management |date=2023 |volume=28 |issue=1 |pages=87–114 |doi=10.54695/sim.28.1.0087 |doi-broken-date=
*{{cite book |last1=Silberschatz |first1=Abraham |last2=Galvin |first2=Peter B. |last3=Gagne |first3=Greg |title=Operating System Concepts |date=2018 |publisher=Wiley |isbn=978-1-119-32091-3 |edition=10 |url=https://archive.org/details/operating-system-concepts-10th |language=en-us|ref={{sfnref|Silberschatz et al.|2018}}}}
*{{cite book |last1=Tanenbaum |first1=Andrew S. |last2=Bos |first2=Herbert |title=Modern Operating Systems, Global Edition |date=2023 |publisher=Pearson Higher Ed |isbn=978-1-292-72789-9 |language=en}}
|