Operating System - Wikipedia
Operating System - Wikipedia
An operating system (OS) is syst em soft ware t hat manages comput er hardware and
soft ware resources, and provides common services for comput er programs.
Time-sharing operat ing syst ems schedule t asks for efficient use of t he syst em and
may also include account ing soft ware for cost allocat ion of processor t ime, mass
st orage, peripherals, and ot her resources.
For hardware funct ions such as input and out put and memory allocat ion, t he operat ing
syst em act s as an int ermediary bet ween programs and t he comput er hardware,[1][2]
alt hough t he applicat ion code is usually execut ed direct ly by t he hardware and
frequent ly makes syst em calls t o an OS funct ion or is int errupt ed by it . Operat ing
syst ems are found on many devices t hat cont ain a comput er – from cellular phones
and video game consoles t o web servers and supercomput ers.
As of Sept ember 2024, Android is t he most popular operat ing syst em wit h 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 operat ing syst ems, while
Windows, macOS, and Linux are deskt op operat ing syst ems.[3] Linux dist ribut ions are
dominant in t he server and supercomput ing sect ors. Ot her specialized classes of
operat ing syst ems (special-purpose operat ing syst ems),[4][5] such as embedded and
real-t ime syst ems, exist for many applicat ions. Securit y-focused operat ing syst ems
also exist . Some operat ing syst ems have low syst em requirement s (e.g. light -weight
Linux dist ribut ion). Ot hers may have higher syst em requirement s.
Some operat ing syst ems require inst allat ion or may come pre-inst alled wit h purchased
comput ers (OEM-inst allat ion), whereas ot hers may run direct ly from media (i.e. live
CD) or flash memory (i.e. USB st ick).
There are t hree main purposes t hat an operat ing syst em fulfills:[9]
Types of operating
systems
Multicomputer operating
systems
Wit h mult iprocessors mult iple CPUs share memory. A mult icomput er or clust er
comput er has mult iple CPUs, each of which has it s own memory. Mult icomput ers
were developed because large mult iprocessors are difficult t o engineer and
prohibit ively expensive;[17] t hey are universal in cloud comput ing because of t he size
of t he machine needed.[18] The different CPUs oft en need t o send and receive
messages t o each ot her;[19] t o ensure good performance, t he operat ing syst ems for
t hese machines need t o minimize t his copying of packet s.[20] Newer syst ems are
oft en mult iqueue—separat ing groups of users int o separat e queues—t o reduce t he
need for packet copying and support more concurrent users.[21] Anot her t echnique is
remot e direct memory access, which enables each CPU t o access memory belonging
t o ot her CPUs.[19] Mult icomput er operat ing syst ems oft en support remot e procedure
calls where a CPU can call a procedure on anot her CPU,[22] or dist ribut ed shared
memory, in which t he operat ing syst em uses virt ualizat ion t o generat e shared memory
t hat does not physically exist .[23]
Distributed systems
A dist ribut ed syst em is a group of dist inct , net worked comput ers—each of which
might have t heir own operat ing syst em and file syst em. Unlike mult icomput ers, t hey
may be dispersed anywhere in t he world.[24] Middleware, an addit ional soft ware layer
bet ween t he operat ing syst em and applicat ions, is oft en used t o improve
consist ency. Alt hough it funct ions similarly t o an operat ing syst em, it is not a t rue
operat ing syst em.[25]
Embedded
Embedded operat ing syst ems are designed t o be used in embedded comput er
syst ems, whet her t hey are int ernet of t hings object s or not connect ed t o a net work.
Embedded syst ems include many household appliances. The dist inguishing fact or is
t hat t hey do not load user-inst alled soft ware. Consequent ly, t hey do not need
prot ect ion bet ween different applicat ions, enabling simpler designs. Very small
operat ing syst ems might run in less t han 10 kilobyt es,[26] and t he smallest are for
smart cards.[27] Examples include Embedded Linux, QNX, VxWorks, and t he ext ra-small
syst ems RIOT and TinyOS.[28]
Real-time
A real-t ime operat ing syst em is an operat ing syst em t hat guarant ees t o process
event s or dat a by or at a specific moment in t ime. Hard real-t ime syst ems require
exact t iming and are common in manufact uring, avionics, milit ary, and ot her similar
uses.[28] Wit h soft real-t ime syst ems, t he occasional missed event is accept able; t his
cat egory oft en includes audio or mult imedia syst ems, as well as smart phones.[28] In
order for hard real-t ime syst ems be sufficient ly exact in t heir t iming, oft en t hey are
just a library wit h no prot ect ion bet ween applicat ions, such as eCos.[28]
Hypervisor
A hypervisor is an operat ing syst em t hat runs a virt ual machine. The virt ual machine is
unaware t hat it is an applicat ion and operat es as if it had it s own hardware.[14][29]
Virt ual machines can be paused, saved, and resumed, making t hem useful for operat ing
syst ems research, development ,[30] and debugging.[31] They also enhance port abilit y
by enabling applicat ions t o be run on a comput er even if t hey are not compat ible wit h
t he base operat ing syst em.[14]
Library
A library operating system (libOS) is one in which t he services t hat a t ypical operat ing
syst em provides, such as net working, are provided in t he form of libraries and
composed wit h a single applicat ion and configurat ion code t o const ruct a unikernel:
[32] a specialized (only t he absolut e necessary pieces of code are ext ract ed from
libraries and bound t oget her [33]), single address space, machine image t hat can be
deployed t o cloud or embedded environment s.
The operat ing syst em code and applicat ion code are not execut ed in separat ed
prot ect ion domains (t here is only a single applicat ion running, at least concept ually, so
t here is no need t o prevent int erference bet ween applicat ions) and OS services are
accessed via simple library calls (pot ent ially inlining t hem based on compiler
t hresholds), wit hout t he usual overhead of cont ext swit ches, [34] in a way similarly t o
embedded and real-t ime OSes. Not e t hat t his overhead is not negligible: t o t he direct
cost of mode swit ching it 's necessary t o add t he indirect pollut ion of import ant
processor st ruct ures (like CPU caches, t he inst ruct ion pipeline, and so on) which
affect s bot h user-mode and kernel-mode performance [35]
History
The first comput ers in t he lat e 1940s and 1950s were direct ly programmed eit her
wit h plugboards or wit h machine code input t ed on media such as punch cards, wit hout
programming languages or operat ing syst ems.[36] Aft er t he int roduct ion of t he
t ransist or in t he mid-1950s, mainframes began t o be built . These st ill needed
professional operat ors[36] who manually do what a modern operat ing syst em would do,
such as scheduling programs t o run,[37] but mainframes st ill had rudiment ary operat ing
syst ems such as Fort ran Monit or Syst em (FMS) and IBSYS.[38] In t he 1960s, IBM
int roduced t he first series of int ercompat ible comput ers (Syst em/360). All of t hem
ran t he same operat ing syst em—OS/360—which consist ed of millions of lines of
assembly language t hat had t housands of bugs. The OS/360 also was t he first popular
operat ing syst em t o support mult iprogramming, such t hat t he CPU could be put t o
use on one job while anot her was wait ing on input /out put (I/O). Holding mult iple jobs in
memory necessit at ed memory part it ioning and safeguards against one job accessing
t he memory allocat ed t o a different one.[39]
Around t he same t ime, t eleprint ers began t o be used as t erminals so mult iple users
could access t he comput er simult aneously. The operat ing syst em MULTICS was
int ended t o allow hundreds of users t o access a large comput er. Despit e it s limit ed
adopt ion, it can be considered t he precursor t o cloud comput ing. The UNIX operat ing
syst em originat ed as a development of MULTICS for a single user.[40] Because UNIX's
source code was available, it became t he basis of ot her, incompat ible operat ing
syst ems, of which t he most successful were AT&T's Syst em V and t he Universit y of
California's Berkeley Soft ware Dist ribut ion (BSD).[41] To increase compat ibilit y, t he
IEEE released t he POSIX st andard for operat ing syst em applicat ion programming
int erfaces (APIs), which is support ed by most UNIX syst ems. MINIX was a st ripped-
down version of UNIX, developed in 1987 for educat ional uses, t hat inspired t he
commercially available, free soft ware Linux. Since 2008, MINIX is used in cont rollers
of most Int el microchips, while Linux is widespread in dat a cent ers and Android
smart phones.[42]
Microcomputers
Apple's Macint osh was t he first popular comput er t o use a graphical user int erface
(GUI). The GUI proved much more user friendly t han t he t ext -only command-line
int erface earlier operat ing syst ems had used. Following t he success of Macint osh,
MS-DOS was updat ed wit h a GUI overlay called Windows. Windows lat er was
rewrit t en as a st and-alone operat ing syst em, borrowing so many feat ures from
anot her (VAX VMS) t hat a large legal set t lement was paid.[45] In t he t went y-first
cent ury, Windows cont inues t o be popular on personal comput ers but has less market
share of servers. UNIX operat ing syst ems, especially Linux, are t he most popular on
ent erprise syst ems and servers but are also used on mobile devices and many ot her
comput er syst ems.[46]
Components
The component s of an operat ing syst em are designed t o ensure t hat various part s of
a comput er funct ion cohesively. Wit h t he de fact o obsolet ion of DOS, all user
soft ware must int eract wit h t he operat ing syst em t o access hardware.
Kernel
The kernel is t he part of t he operat ing syst em t hat provides prot ect ion bet ween
different applicat ions and users. This prot ect ion is key t o improving reliabilit y by
keeping errors isolat ed t o one program, as well as securit y by limit ing t he power of
malicious soft ware and prot ect ing privat e dat a, and ensuring t hat one program cannot
monopolize t he comput er's resources.[48] Most operat ing syst ems have t wo modes of
operat ion:[49] in user mode, t he hardware checks t hat t he soft ware is only execut ing
legal inst ruct ions, whereas t he kernel has unrest rict ed powers and is not subject t o
t hese checks.[50] The kernel also manages memory for ot her processes and cont rols
access t o input /out put devices.[51]
Program execution
The operat ing syst em provides an int erface bet ween an applicat ion program and t he
comput er hardware, so t hat an applicat ion program can int eract wit h t he hardware
only by obeying rules and procedures programmed int o t he operat ing syst em. The
operat ing syst em is also a set of services which simplify development and execut ion
of applicat ion programs. Execut ing an applicat ion program t ypically involves t he
creat ion of a process by t he operat ing syst em kernel, which assigns memory space
and ot her resources, est ablishes a priorit y for t he process in mult i-t asking syst ems,
loads program binary code int o memory, and init iat es execut ion of t he applicat ion
program, which t hen int eract s wit h t he user and wit h hardware devices. However, in
li i h h i h
applicat ion wit hin t he same process, eit her as a subrout ine or in a separat e t hread, e.g.,
t he LINK and ATTACH facilit ies of OS/360 and successors.
Interrupts
An int errupt (also known as an abort , except ion, fault, signal,[52] or trap)[53] provides an
efficient way for most operat ing syst ems t o react t o t he environment . Int errupt s
cause t he cent ral processing unit (CPU) t o have a cont rol flow change away from t he
current ly running program t o an int errupt handler, also known as an int errupt service
rout ine (ISR).[54][55] An int errupt service rout ine may cause t he cent ral processing unit
(CPU) t o have a cont ext swit ch.[56][a] The det ails of how a comput er processes an
int errupt vary from archit ect ure t o archit ect ure, and t he det ails of how int errupt
service rout ines behave vary from operat ing syst em t o operat ing syst em.[57] However,
several int errupt funct ions are common.[57] The archit ect ure and operat ing syst em
must :[57]
Soft ware int errupt s may be normally occurring event s. It is expect ed t hat a t ime slice
will occur, so t he kernel will have t o perform a cont ext swit ch.[60] A comput er program
may set a t imer t o go off aft er a few seconds in case t oo much dat a causes an
algorit hm t o t ake t oo long.[61]
Soft ware int errupt s may be error condit ions, such as a malformed machine
inst ruct ion.[61] However, t he most common error condit ions are division by zero and
accessing an invalid memory address.[61]
To generat e software interrupts for x86 CPUs, t he INT assembly language inst ruct ion
is available.[62] The synt ax is INT X , where X is t he offset number (in hexadecimal
format ) t o t he int errupt vect or t able.
Signal
To generat e software interrupts in Unix-like operat ing syst ems, t he
kill(pid,signum) syst em call will send a signal t o anot her process.[63] pid is
t he process ident ifier of t he receiving process. signum is t he signal number (in
mnemonic format )[b] t o be sent . (The abrasive name of kill was chosen because
early implement at ions only t erminat ed t he process.)[64]
Some comput ers require an int errupt for each charact er or word, cost ing a significant
amount of CPU t ime. Direct memory access (DMA) is an archit ect ure feat ure t o allow
devices t o bypass t he CPU and access main memory direct ly.[71] (Separat e from t he
archit ect ure, a device may perform direct memory access[c] t o and from main memory
eit her direct ly or via a bus.)[72][d]
Input/output
Interrupt-driven I/O
When a comput er user t ypes a key on t he keyboard, t ypically t he charact er appears
immediat ely on t he screen. Likewise, when a user moves a mouse, t he cursor
immediat ely moves across t he screen. Each keyst roke and mouse movement
generat es an interrupt called Interrupt-driven I/O. An int errupt -driven I/O occurs when a
process causes an int errupt for every charact er[72] or word[73] t ransmit t ed.
Memory management
Among ot her t hings, a mult iprogramming operat ing syst em kernel must be responsible
for managing all syst em memory which is current ly in use by t he programs. This
ensures t hat a program does not int erfere wit h memory already in use by anot her
program. Since programs t ime share, each program must have independent access t o
memory.
Cooperat ive memory management , used by many early operat ing syst ems, assumes
t hat all programs make volunt ary use of t he kernel's memory manager, and do not
exceed t heir allocat ed memory. This syst em of memory management is almost never
seen any more, since programs oft en cont ain bugs which can cause t hem t o exceed
t heir allocat ed memory. If a program fails, it may cause memory used by one or more
ot her programs t o be affect ed or overwrit t en. Malicious programs or viruses may
purposefully alt er anot her program's memory, or may affect t he operat ion of t he
operat ing syst em it self. Wit h cooperat ive memory management , it t akes only one
misbehaved program t o crash t he syst em.
Memory prot ect ion enables t he kernel t o limit a process' access t o t he comput er's
memory. Various met hods of memory prot ect ion exist , including memory
segment at ion and paging. All met hods require some level of hardware support (such
as t he 80286 MMU), which does not exist in all comput ers.
In bot h segment at ion and paging, cert ain prot ect ed mode regist ers specify t o t he
CPU what memory address it should allow a running program t o access. At t empt s t o
access ot her addresses t rigger an int errupt , which causes t he CPU t o re-ent er
supervisor mode, placing t he kernel in charge. This is called a segment at ion violat ion
or Seg-V for short , and since it is bot h difficult t o assign a meaningful result t o such an
operat ion, and because it is usually a sign of a misbehaving program, t he kernel
generally resort s t o t erminat ing t he offending program, and report s t he error.
Windows versions 3.1 t hrough ME had some level of memory prot ect ion, but programs
could easily circumvent t he need t o use it . A general prot ect ion fault would be
produced, indicat ing a segment at ion violat ion had occurred; however, t he syst em
would oft en crash anyway.
Virtual memory
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 virt ual memory addressing (such as paging or segment at ion) means t hat
t he kernel can choose what memory each program may use at any given t ime, allowing
t he operat ing syst em t o use t he same memory locat ions for mult iple t asks.
If a program t ries t o access memory t hat is not accessible [e] memory, but
nonet heless has been allocat ed t o it , t he kernel is int errupt ed . This kind of int errupt is
t ypically a page fault .
When t he kernel det ect s a page fault it generally adjust s t he virt ual memory range of
t he program which t riggered it , grant ing it access t o t he memory request ed. This
gives t he kernel discret ionary power over where a part icular applicat ion's memory is
st ored, or even whet her or not it has been allocat ed yet .
In modern operat ing syst ems, memory which is accessed less frequent ly can be
t emporarily st ored on a disk or ot her media t o make t hat space available for use by
ot her programs. This is called swapping, as an area of memory can be used by mult iple
programs, and what t hat memory area cont ains can be swapped or exchanged on
demand.
Virt ual memory provides t he programmer or t he user wit h t he percept ion t hat t here is
a much larger amount of RAM in t he comput er t han is really t here.[80]
Concurrency
Concurrency refers t o t he operat ing syst em's abilit y t o carry out mult iple t asks
simult aneously.[81] Virt ually all modern operat ing syst ems support concurrency.[82]
Threads enable split t ing a process' work int o mult iple part s t hat can run
simult aneously.[83] The number of t hreads is not limit ed by t he number of processors
available. If t here are more t hreads t han processors, t he operat ing syst em kernel
schedules, suspends, and resumes t hreads, cont rolling when each t hread runs and how
much CPU t ime it receives.[84] During a cont ext swit ch a running t hread is suspended,
it s st at e is saved int o t he t hread cont rol block and st ack, and t he st at e of t he new
t hread is loaded in.[85] Hist orically, on many syst ems a t hread could run unt il it
relinquished cont rol (cooperat ive mult it asking). Because t his model can allow a single
t hread t o monopolize t he processor, most operat ing syst ems now can int errupt a
t hread (preempt ive mult it asking).[86]
Threads have t heir own t hread ID, program count er (PC), a regist er set , and a st ack,
but share code, heap dat a, and ot her resources wit h ot her t hreads of t he same
process.[87][88] Thus, t here is less overhead t o creat e a t hread t han a new process.[89]
On single-CPU syst ems, concurrency is swit ching bet ween processes. Many
comput ers have mult iple CPUs.[90] Parallelism wit h mult iple t hreads running on
different CPUs can speed up a program, depending on how much of it can be
execut ed concurrent ly.[91]
File system
File systems allow users and
programs to organize and sort files
on a computer, often through the use
of directories (or folders).
Permanent st orage devices used in t went y-first cent ury comput ers, unlike volat ile
dynamic random-access memory (DRAM), are st ill accessible aft er a crash or power
failure. Permanent (non-volat ile) st orage is much cheaper per byt e, but t akes several
orders of magnit ude longer t o access, read, and writ e.[92][93] The t wo main
t echnologies are a hard drive consist ing of magnet ic disks, and flash memory (a solid-
st at e drive t hat st ores dat a in elect rical circuit s). The lat t er is more expensive but
fast er and more durable.[94][95]
File syst ems are an abst ract ion used by t he operat ing syst em t o simplify access t o
permanent st orage. They provide human-readable filenames and ot her met adat a,
increase performance via amort izat ion of accesses, prevent mult iple t hreads from
accessing t he same sect ion of memory, and include checksums t o ident ify
corrupt ion.[96] File syst ems are composed of files (named collect ions of dat a, of an
arbit rary size) and direct ories (also called folders) t hat list human-readable filenames
and ot her direct ories.[97] An absolut e file pat h begins at t he root direct ory and list s
subdirect ories divided by punct uat ion, while a relat ive pat h defines t he locat ion of a
file from a direct ory.[98][99]
Syst em calls (which are somet imes wrapped by libraries) enable applicat ions t o
creat e, delet e, open, and close files, as well as link, read, and writ e t o t hem. All t hese
operat ions are carried out by t he operat ing syst em on behalf of t he applicat ion.[100]
The operat ing syst em's effort s t o reduce lat ency include st oring recent ly request ed
blocks of memory in a cache and prefet ching dat a t hat t he applicat ion has not asked
for, but might need next .[101] Device drivers are soft ware specific t o each
input /out put (I/O) device t hat enables t he operat ing syst em t o work wit hout
modificat ion over different hardware.[102][103]
Anot her component of file syst ems is a dict ionary t hat maps a file's name and
met adat a t o t he dat a block where it s cont ent s are st ored.[104] Most file syst ems use
direct ories t o convert file names t o file numbers. To find t he block number, t he
operat ing syst em uses an index (oft en implement ed as a t ree).[105] Separat ely, t here
is a free space map t o t rack free blocks, commonly implement ed as a bit map.[105]
Alt hough any free block can be used t o st ore a new file, many operat ing syst ems t ry
t o group t oget her files in t he same direct ory t o maximize performance, or periodically
reorganize files t o reduce fragment at ion.[106]
Security
Securit y means prot ect ing users from ot her users of t he same comput er, as well as
from t hose who seeking remot e access t o it over a net work.[111] Operat ing syst ems
securit y rest s on achieving t he CIA t riad: confident ialit y (unaut horized users cannot
access dat a), int egrit y (unaut horized users cannot modify dat a), and availabilit y
(ensuring t hat t he syst em remains available t o aut horized users, even in t he event of a
denial of service at t ack).[112] As wit h ot her comput er syst ems, isolat ing securit y
domains—in t he case of operat ing syst ems, t he kernel, processes, and virt ual
machines—is key t o achieving securit y.[113] Ot her ways t o increase securit y include
simplicit y t o minimize t he at t ack surface, locking access t o resources by default ,
checking all request s for aut horizat ion, principle of least aut horit y (grant ing t he
minimum privilege essent ial for performing a t ask), privilege separat ion, and reducing
shared dat a.[114]
Some operat ing syst em designs are more secure t han ot hers. Those wit h no isolat ion
bet ween t he kernel and applicat ions are least secure, while t hose wit h a monolit hic
kernel like most general-purpose operat ing syst ems are st ill vulnerable if any part of
t he kernel is compromised. A more secure design feat ures microkernels t hat separat e
t he kernel's privileges int o many separat e securit y domains and reduce t he
consequences of a single kernel breach.[115] Unikernels are anot her approach t hat
improves securit y by minimizing t he kernel and separat ing out ot her operat ing syst ems
funct ionalit y by applicat ion.[115]
Most operat ing syst ems are writ t en in C or C++, which creat e pot ent ial vulnerabilit ies
for exploit at ion. Despit e at t empt s t o prot ect against t hem, vulnerabilit ies are caused
by buffer overflow at t acks, which are enabled by t he lack of bounds checking.[116]
Hardware vulnerabilit ies, some of t hem caused by CPU opt imizat ions, can also be
used t o compromise t he operat ing syst em.[117] There are known inst ances of
operat ing syst em programmers deliberat ely implant ing vulnerabilit ies, such as back
doors.[118]
Operat ing syst ems securit y is hampered by t heir increasing complexit y and t he
result ing inevit abilit y of bugs.[119] Because formal verificat ion of operat ing syst ems
may not be feasible, developers use operat ing syst em hardening t o reduce
vulnerabilit ies,[120] e.g. address space layout randomizat ion, cont rol-flow int egrit y,[121]
access rest rict ions,[122] and ot her t echniques.[123] There are no rest rict ions on who
can cont ribut e code t o open source operat ing syst ems; such operat ing syst ems have
t ransparent change hist ories and dist ribut ed governance st ruct ures.[124] Open source
developers st rive t o work collaborat ively t o find and eliminat e securit y vulnerabilit ies,
using code review and t ype checking t o expunge malicious code.[125][126] Andrew S.
Tanenbaum advises releasing t he source code of all operat ing syst ems, arguing t hat it
prevent s developers from placing t rust in secrecy and t hus relying on t he unreliable
pract ice of securit y by obscurit y.[127]
User interface
A user int erface (UI) is essent ial t o support human int eract ion wit h a comput er. The
t wo most common user int erface t ypes for any comput er are
command-line interface, where
computer commands are typed,
line-by-line,
graphical user interface (GUI) using
a visual environment, most
commonly a combination of the
window, icon, menu, and pointer
elements, also known as WIMP.
For personal comput ers, including smart phones and t ablet comput ers, and for
workst at ions, user input is t ypically from a combinat ion of keyboard, mouse, and
t rackpad or t ouchscreen, all of which are connect ed t o t he operat ing syst em wit h
specialized soft ware.[128] Personal comput er users who are not soft ware developers
or coders oft en prefer GUIs for bot h input and out put ; GUIs are support ed by most
personal comput ers.[129] The soft ware t o support GUIs is more complex t han a
command line for input and plain t ext out put . Plain t ext out put is oft en preferred by
programmers, and is easy t o support .[130]
Operating system
development as a hobby
A hobby operat ing syst em may be classified as one whose code has not been direct ly
derived from an exist ing operat ing syst em, and has few users and act ive
developers.[131]
Examples of hobby operat ing syst ems include Syllable and TempleOS.
Diversity of operating
systems and portability
If an applicat ion is writ t en for use on a specific operat ing syst em, and is port ed t o
anot her OS, t he funct ionalit y required by t hat applicat ion may be implement ed
different ly by t hat OS (t he names of funct ions, meaning of argument s, et c.) requiring
t he applicat ion t o be adapt ed, changed, or ot herwise maint ained.
This cost in support ing operat ing syst ems diversit y can be avoided by inst ead writ ing
applicat ions against soft ware plat forms such as Java or Qt . These abst ract ions have
already borne t he cost of adapt at ion t o specific operat ing syst ems and t heir syst em
libraries.
Anot her approach is for operat ing syst em vendors t o adopt st andards. For example,
POSIX and OS abst ract ion layers provide commonalit ies t hat reduce port ing cost s.
Popular operating
systems
As of Sept ember 2024, Android is t he most popular operat ing syst em wit h 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 operat ing syst ems, while
Windows, macOS, and Linux are deskt op operat ing syst ems.[132]
Linux
Linux is a free soft ware dist ribut ed under t he GNU General Public License (GPL), which
means t hat all of it s derivat ives are legally required t o release t heir source code.[133]
Linux was designed by programmers for t heir own use, t hus emphasizing simplicit y and
consist ency, wit h a small number of basic element s t hat can be combined in nearly
unlimit ed ways, and avoiding redundancy.[134]
It s design is similar t o ot her UNIX syst ems not using a microkernel.[135] It is writ t en in
C[136] and uses UNIX Syst em V synt ax, but also support s BSD synt ax. Linux support s
st andard UNIX net working feat ures, as well as t he full suit e of UNIX t ools, while
support ing mult iple users and employing preempt ive mult it asking. Init ially of a
minimalist design, Linux is a flexible syst em t hat can work in under 16 MB of RAM, but
st ill is used on large mult iprocessor syst ems.[135] Similar t o ot her UNIX syst ems, Linux
dist ribut ions are composed of a kernel, syst em libraries, and syst em ut ilit ies.[137] Linux
has a graphical user int erface (GUI) wit h a deskt op, folder and file icons, as well as t he
opt ion t o access t he operat ing syst em via a command line.[138]
Android is a part ially open-source operat ing syst em closely based on Linux and has
smart phones and, t o a lesser ext ent , embedded syst ems needing a GUI, such as
"smart wat ches, aut omot ive dashboards, airplane seat backs, medical devices, and
home appliances".[139] Unlike Linux, much of Android is writ t en in Java and uses object -
orient ed design.[140]
Microsoft Windows
Windows is a propriet ary operat ing syst em t hat is widely used on deskt op comput ers,
lapt ops, t ablet s, phones, workst at ions, ent erprise servers, and Xbox consoles.[142] The
operat ing syst em was designed for "securit y, reliabilit y, compat ibilit y, high
performance, ext ensibilit y, port abilit y, and int ernat ional support "—lat er on, energy
efficiency and support for dynamic devices also became priorit ies.[143]
Windows Execut ive works via kernel-mode object s for import ant dat a st ruct ures like
processes, t hreads, and sect ions (memory object s, for example files).[144] The
operat ing syst em support s demand paging of virt ual memory, which speeds up I/O for
many applicat ions. I/O device drivers use t he Windows Driver Model.[144] The NTFS
file syst em has a mast er t able and each file is represent ed as a record wit h
met adat a.[145] The scheduling includes preempt ive mult it asking.[146] Windows has
many securit y feat ures;[147] especially import ant are t he use of access-cont rol list s
given a securit y descript or. Lat er releases have added even more securit y
feat ures.[145]
See also
Notes
References
Further reading
Retrieved from
"https://en.wikipedia.org/w/index.php?
title=Operating_system&oldid=1266422975"