# Operaciumo

| Operaciumo |
| --- |
| **speco de programo**  |
| **sistema programaro** |
| Antaŭe | kerno vd |
|

|  Partoj |
| --- |
|  | kerno dosiersistemo memormastrumilo taskoplanilo atingokontrolo fenestroadministrilo  vd |

 |
|  |

La labortablo de Ubuntu, Linukso-operaciumo de Canonical Ltd
Pozicio de operaciumo en funkcianta komputilo.
En komputado, **operaciumo** aŭ **mastrumsistemo** aŭ **mastrumilo** (angle *operating system* aŭ *OS*), estas speciala programaro, sen kiu ne eblas uzi plispecifajn programarojn. Ĝi oficas kiel "bazo", al kiu aliaj programaroj apogiĝas, kiuj do devos esti projektataj por tiu operacio, alie ili ne estos rekonataj. Tiel operaciumo estas nemalhavebla komponanto por ĉiuj komputoraj sistemoj. Laŭ pli serioza difino, operaciumo estas aro de subrutinoj kaj strukturo de datumoj respondecaj pri la kontrolo kaj administrado de komputilaj aparataroj kaj de programaroj, kiuj estas rulataj sur la komputilo.

La dominanta ĝeneralcela operaciumo por personaj komputiloj estas Microsoft Windows kun merkatparto de ĉirkaŭ 74.99%. macOS de Apple Inc. estas duaranga (14.84%), kaj la variaĵoj de Linux estas kolektive en la tria rango (2.81%). Ĉe la sektoro de porteblaj aparatoj (inklude saĝtelefonojn kaj tabulkomputilojn), la merkatparto de Android estis de 70.82% en la jaro 2020. Laŭ la datumoj de la tria kvarono de 2016, la merkatparto de Android ĉe saĝtelefono estas dominanta per 87.5 procento kun kreskindico de 10.3 procento jare, sekvita de iOS de Apple kun 12.1 procento kun jara malpliiĝo en la merkatparto de 5.2 procento, dum aliaj operaciumaj sistemoj atingas nur ĝuste al 0.3 procento. Linuksaj distribuaĵoj estas dominantaj en la sektoroj de serviloj kaj komputilegoj.

## Difino kaj celo

Operaciumo estas malfacile difinebla, sed ĝi estas nomata "la tavolo de programaro kiu administras la resursojn de komputilo por ĝiaj uzantoj kaj iliaj aplikaĵoj". Operaciumoj inkluzivas la programaron kiu ĉiam funkcias, nomatan kerno — sed povas inkluzivi ankaŭ alian programaron. La ​​du aliaj specoj de programoj kiuj povas funkcii sur komputilo estas sistemaj programoj — kiuj estas asociitaj kun la operaciumo, sed eble ne estas parto de la kerno — kaj aplikaĵoj — ĉia alia programaro.

Estas tri ĉefaj celoj kiujn operaciumo plenumas:

* Operaciumoj asignas rimedojn inter malsamaj aplikaĵoj, decidante kiam ili ricevos tempon aŭ spacon de la centra procesoro (CPU) en memorilo. Ĉe modernaj personaj komputiloj, uzantoj ofte volas ruligi plurajn aplikaĵojn samtempe. Por certigi, ke unu programo ne povas monopoligi la limigitajn aparatarajn rimedojn de la komputilo, la operaciumo donas al ĉiu aplikaĵo parton de la rimedo, ĉu en tempo (CPU) ĉu en spaco (memorilo). La operaciumo ankaŭ devas izoli aplikaĵojn unu de la alia por protekti ilin kontraŭ eraroj kaj sekurecaj vundeblecoj en la kodo de alia aplikaĵo, sed ebligi komunikadojn inter malsamaj aplikaĵoj.
* Operaciumoj provizas interfacon kiu abstraktas la detalojn de aliro al aparataro (kiel fizika memorilo) por faciligi aferojn por programistoj. Virtualigo ankaŭ ebligas al la operaciumo maski limigitajn aparatarajn rimedojn; ekzemple, virtuala memorilo povas provizi al programo la iluzion de preskaŭ senlima memorilo kiu superas la faktan memoron de la komputilo.
* Operaciumoj provizas komunajn servojn, kiel ekzemple interfacon por aliri retajn kaj diskajn aparatojn. Tio ebligas, ke aplikaĵo funkciu en malsama aparataro sen devi esti reskribita. Kiujn servojn inkluzivi en operaciumo multe varias, kaj tiu funkcio konsistigas la grandan plimulton de kodo por la plej multaj operaciumoj.

## Funkciado

Krome, la operaciumo disponigas la necesan infrastrukturon por ruli la operaciajn aplikaĵojn, kiu okazas kiam la komputilo estas ŝaltita, ekde startigo.

Kutime, operaciumo antaŭaranĝas por la uzanto grafikan aŭ tekstan interfacon por atingi la aparataron (diskoj, memoro, I/O) de la sistemo. En sistemoj kun pluruzanto-reĝimo, tia atingo dependas de la rajtoj de ĉiu unuopa uzanto. Tia atingo dependas, en sistemoj kiuj funkcias en pluruzanta reĝimo, kiu estras la rajtoj de ĉiu uzanto.

La ĉefa tasko de la operaciumo estas permesi al la uzanto, homa aŭ ne, rekte interagi kun la maŝino. Por tion fari la operaciumo disponigas tri interfacojn:

1. Uzantinterfaco
2. Interfaco por aparataro kaj periferia aparataro per la pelilo.
3. Aplikprograma interfaco (API).

Estas tri ĉefaj funkcioj de la operaciumo:

1. Asigno de rimedoj de la aparataro.
2. Tempa planado kaj koordinado de la operacioj de aparataj komponantoj kaj programaj komponantoj
3. Establi komunan infrastrukturon kaj fakorganizitan kadron de interfaco kaj servoj por la uzanto kaj la programarpakaĵoj

## Strukturo

Ĝenerale moderna operaciumo strukturiĝas en kelkaj defaŭltaj partoj:

* La kerno: grupo de fundamentaj funkcioj, strikte ligitaj inter ili kaj kun la aparataro, kiuj estas rulataj kun la plej grandaj rajtoj, la kerna reĝimo; la kerno havigas la bazajn funkciojn por ĉiuj aliaj partoj de la operaciumo, kiuj plenumas proprajn funkciojn per servoj oferataj de la operaciumo. La kerno, laŭ la tipo de operaciumo, povas enhavi aliajn partojn (*klasika* kerno, unupeca aŭ modula) aŭ plenumi nur bazajn funkciojn, delegante plejeble multe funkciojn al objektoj/eksteraj kondukantoj (mikrokerno);
* La administrilo de dosiersistemo: ĝi plenumas petojn por akiri al amasmemoriloj. Ĝi estas uzata kiam oni akiras al dosiero en disko kaj konservas trakon de malfermitaj dosieroj kaj de permesoj por akiri al dosieroj. ;
* Sistemo de virtuala memoro, kiu disponigas petatan memoron de programaroj kaj de operaciumo mem, konservas en amasmemorilo la zonojn de memoro momente ne uzatajn de programarojn kaj garantias, ke la permutitaj paĝoj estas reenmetitaj en memoro, se petitaj;
* Planilo, kiu skandas la tempon de plenumo de pluraj procezoj kaj garantias, ke ĉiu procezo estas rulata dum petita tempo;
* Bufro, kiu ricevas de programaroj la presotajn datumojn kaj ĝi presas ilin laŭ ordo, tiel ke programaroj povas daŭrigi sen atendi, ke presado terminas;
* Grafika interfaco (Ŝelo) kiu permesas homojn interagi kun maŝino.

### Virtuala memoro

 Pli detalaj informoj troveblas en artikolo Virtuala memoro.
Virtuala memoro estas la nomo de teknologio uzata en komputiloj. Komputiloj funkciigas programon. Tiu programo bezonos komputilan memoron por funkcii, kaj efektivigi kion ĝi bezonas fari. Plej multaj komputiloj uzataj hodiaŭ povas fari pli ol unu agon samtempe, ili funkciigas pli ol unu programaro. Tio estas konata kiel plurtaska sistemo.

En tiu kazo, ĉiuj programoj aŭ programaroj kiuj funkcias samtempe en la komputilo partigas ties rimedojn. Komputilo ne havas pli da procesoroj aŭ da ĉefmemoro nur tial ke pli multe da programoj funkcias en ĝi.

Virtuala memoro estas la ideo, ke la programaro *vidas* *blokon de memoro* de difinita grando. La programaro povas uzi tiun memoron kiam ĝi vidas, ke ĝi taŭgas. Tiu bloko de memoro estas *virtuala* en la senco, ke ĝi devenas de malsamaj lokoj. Iuj povas esti en la ĉefmemoro de la komputilo, sed iuj ankaŭ povas esti sur la disko. La procesoro havas specialan eron, nomitan Aritmetika kaj logika unuo, kiu faras kelkajn el la transiroj inter programara memoro kaj sistem-rimedoj. Ankaŭ modernaj operaciumoj faras parton de la laboro.

### Programplenumado

La operaciumo provizas interfacon inter aplikaĵoprogramo kaj la komputila aparataro, tiel ke aplikaĵoprogramo povas interagadi kun la aparataro nur obeante regulojn kaj procedurojn programitajn en la operaciumon. La operaciumo estas ankaŭ aro da servoj, kiuj simpligas la disvolvon kaj plenumon de aplikaĵprogramoj. Plenumi aplikaĵoprogramon tipe implikas la kreadon de procezo fare de la kerno de la operaciumo, kiu asignas memorspacon kaj aliajn rimedojn, establas prioritaton por la procezo en plurtaskaj sistemoj, ŝarĝas duuman kodon de la programo en la memorilon, kaj iniciatas la plenumon de la aplikaĵoprogramo, kiu poste interagas kun la uzanto kaj kun aparataraj aparatoj. Tamen, en iuj sistemoj aplikaĵo povas peti, ke la operaciumo plenumu alian aplikaĵon ene de la sama procezo, ĉu kiel subrutino ĉu en aparta fadeno, ekz., la funkcioj *LINK* kaj *ATTACH* de OS/360 kaj posteuloj.

### Interrompoj

Interrompo (ankaŭ konata kiel *aborto*, *escepto*, *eraro*, *signalo*, aŭ *kaptilo*) provizas efikan manieron por ke plej multaj operaciumoj reagu al la medio. Interrompoj kaŭzas, ke la centra proceza unuo (CPU) havas ŝanĝon de kontrolfluo for de la nuntempe kuranta programo al interrompilo, ankaŭ konata kiel *interrompa serva rutino* (ISR).
Interrompa serva rutino povas kaŭzi, ke la centra procezilo (CPU) havu kuntekstan ŝanĝon. Modernaj procesoroj provizas instrukciojn (ekz. SYSENTER) por alvoki elektitajn kernservojn sen interrompoj. La detaloj pri kiel komputilo prilaboras interrompon varias de arkitekturo al arkitekturo, kaj la detaloj pri kiel interrompaj servaj rutinoj kondutas varias de operaciumo al operaciumo.
Tamen, pluraj interrompaj funkcioj estas oftaj. La ​​arkitekturo kaj operaciumo devas:

1. transdonu kontrolon al interrompa servorutino.
2. konservi la staton de la nuntempe funkcianta procezo.
3. restarigi la staton post kiam la interrompo estas servita.

## Tipoj de operaciumoj

### Plurkomputilaj operaciumoj

Kun plurprocesoroj, pluraj CPU-oj kunhavas memorilon. Plurkomputilo aŭ grapolkomputilo havas plurajn CPU-ojn, ĉiu el kiuj havas sian propran memorilon. Plurkomputiloj estis evoluigitaj ĉar grandajn plurprocesorojn malfacilas realigi kaj estas tro multekostaj; ili estas universalaj en nuba komputado pro la grandeco de la bezonata maŝino. La ​​malsamaj CPU-oj ofte bezonas sendi kaj ricevi mesaĝojn unu al la alia; por certigi bonan rezulton, la operaciumoj por ĉi tiuj maŝinoj bezonas minimumigi ĉi tiun kopiadon de pakaĵ-retoj. Pli novaj sistemoj ofte estas plurvicigitaj — apartigante grupojn de uzantoj en apartajn atendovicojn — por redukti la bezonon de pakaĵetkopiado kaj subteni pli da samtempaj uzantoj. Alia tekniko estas fora rekta memoraliro, kiu ebligas al ĉiu CPU aliri memorilon apartenantan al aliaj CPU-oj. Plurkomputilaj operaciumoj ofte subtenas malproksimajn procedurvokojn, kie CPU povas voki proceduron sur alia CPU, aŭ distribuitan kunhavatan memorilon, en kiu la operaciumo uzas virtualigon por generi kunhavatan memorilon, kiu ne fizike ekzistas.

### Disaj sistemoj

Disa sistemo aŭ distribuita sistemo estas grupo de apartaj, interkonektitaj komputiloj — ĉiu el kiuj eble havas sian propran operaciumon kaj dosiersistemon. Male al plurkomputiloj, ili povas esti disigitaj ie ajn en la mondo. Mezprogramaro, plia programara tavolo inter la operaciumo kaj aplikaĵoj, ofte estas uzata por plibonigi koherecon. Kvankam ĝi funkcias simile al operaciumo, ĝi ne estas vera operaciumo.

### Enkonstruita operaciumo

Enkonstruitaj operaciumoj estas dezajnitaj por uzo en enkonstruitaj komputilsistemoj, ĉu ili estas objektoj de la interreto de aĵoj aŭ ne konektitaj al reto. Enkonstruitaj sistemoj inkluzivas multajn hejmajn aparatojn. La distingilo estas, ke ili ne ŝarĝas uzanto-instalitan programaron. Sekve, ili ne bezonas protekton inter malsamaj aplikaĵoj, ebligante pli simplajn dezajnojn. Tre malgrandaj operaciumoj povas funkcii en malpli ol 10 kilobajtoj, kaj la plej malgrandaj estas por inteligentaj kartoj. Ekzemploj estas Enkonstruita Linukso, QNX, VxWorks, kaj la ekstra-malgrandaj sistemoj RIOT kaj TinyOS.

### Real-tempo

Realtempa operaciumo estas operaciumo, kiu garantias prilabori eventojn aŭ datumojn je specifa momento. Malmolaj realtempaj sistemoj postulas precizan tempigon kaj estas oftaj en fabrikado, aviadiko, militistaro kaj aliaj similaj uzoj. Ĉe molaj realtempaj sistemoj, la foja dezirata evento estas akceptebla; ĉi tiu kategorio ofte inkluzivas aŭdajn aŭ multmediajn sistemojn, same kiel poŝtelefonojn. Por ke malmolaj realtempaj sistemoj estu sufiĉe precizaj en sia tempigo, ili ofte estas nur biblioteko sen protekto inter aplikaĵoj, kiel ekzemple eCos.

### Hipervizoro

Hipervizoro estas operaciumo, kiu funkciigas virtualan maŝinon. La virtuala maŝino ne konscias, ke ĝi estas aplikaĵo kaj funkcias kvazaŭ ĝi havus sian propran aparataron. Virtualaj maŝinoj povas esti paŭzitaj, konservitaj kaj rekomencitaj, kio igas ilin utilaj por esplorado, disvolviĝo, kaj sencimigado de operaciumoj. Ili ankaŭ plibonigas porteblecon ebligante, ke aplikaĵoj funkciu sur komputilo eĉ se ili ne kongruas kun la baza operaciumo.

### Biblioteko

 Pli detalaj informoj troveblas en artikolo Biblioteko (programado).
Biblioteka operaciumo (libOS) estas tia, en kiu la servoj, kiujn tipa operaciumo provizas, kiel ekzemple retigado, estas provizitaj en la formo de bibliotekoj kaj kunmetitaj per ununura aplikaĵo kaj konfiguracia kodo por konstrui unikernon: specialigitan (nur la absolute necesaj pecoj de kodo estas eltiritaj el bibliotekoj kaj ligitaj kune)), ununuran adresspacon, maŝinan bildon, kiu povas esti deplojita en nubajn aŭ enigitajn mediojn.

La kodo de la operaciumo kaj la aplikaĵa kodo ne estas plenumataj en apartaj protektaj domajnoj (ekzistas nur ununura aplikaĵo funkcianta, almenaŭ koncepte, do ne necesas malhelpi interferon inter aplikaĵoj) kaj la operaciumaj servoj estas alireblaj per simplaj bibliotekaj vokoj (eble enliniigante ilin surbaze de kompililaj sojloj), sen la kutima ŝarĝo de kuntekstaj ŝaltiloj, simile al enigitaj kaj realtempaj operaciumoj. Notu, ke ĉi tiu ŝarĝo ne estas nekonsiderinda: al la rekta kosto de reĝimŝanĝo necesas aldoni la nerektan poluadon de gravaj procesoraj strukturoj (kiel CPU-kaŝmemoroj, la instrukcia dukto, ktp.), kiu influas kaj uzantreĝiman kaj kernareĝiman rezulton.

## Historio

IBM System/360 Modelo 50 funkciigista konzolo kaj CPU; la funkciiganta konzolo estas terminalo uzata de la operaciumo por komuniki kun la funkciigilo.
La unuaj komputiloj fine de la 1940-aj kaj 1950-aj jaroj estis rekte programitaj aŭ per ŝtopiltabuloj aŭ per maŝinkodo enigita en mediojn kiel trukartoj, sen programlingvoj aŭ operaciumoj. Post la enkonduko de la transistoro meze de la 1950-aj jaroj, oni komencis konstrui ĉefkomputilojn. Ĉi tiuj ankoraŭ bezonis profesiajn funkciigilojn (operatorojn) kiuj permane faris tion, kion moderna operaciumo farus, kiel ekzemple plani funkciigindajn programojn, sed ĉefkomputiloj ankoraŭ havis rudimentajn operaciumojn kiel *Fortran Monitor System* (FMS) kaj *IBSYS*. En la 1960-aj jaroj, IBM lanĉis la unuan serion de interkongruaj komputiloj (System/360). Ĉiuj ili funkciigis la saman operaciumon — OS/360 — kiu konsistis el milionoj da linioj de asembla lingvo kun miloj da cimoj. OS/360 ankaŭ estis la unua populara operaciumo kiu subtenis plurprogramadon, tiel ke la CPU povus esti uzata por unu tasko dum alia atendis enigon/eligon (E/E). Teni plurajn taskojn en memorilo necesigis memordividon kaj protektojn kontraŭ unu tasko aliranta la memoron asignitan al alia.

Ĉirkaŭ la sama tempo, teleksiloj komencis esti uzataj kiel terminaloj, por ke pluraj uzantoj povu samtempe aliri la komputilon. La operaciumo MULTICS celis permesi al centoj da uzantoj aliri grandan komputilon. Malgraŭ sia limigita adopto, ĝi povas esti konsiderata la antaŭulo de nuba komputado. La operaciumo Unikso originis kiel disvolviĝo de MULTICS por ununura uzanto. Ĉar la fontkodo de Unikso estis havebla, ĝi fariĝis la bazo de aliaj, nekongruaj operaciumoj, el kiuj la plej sukcesaj estis System V de AT&T kaj *Berkeley Software Distribution* (BSD) de la Universitato de Kalifornio. Por pliigi kongruecon, la IEEE publikigis la normon POSIX por aplikaĵaj programaj interfacoj (API-oj) de operaciumoj, kiu estas subtenata de la plej multaj UNIX-sistemoj. Minikso estis simpligita versio de Unikso, disvolvita en 1987 por edukaj uzoj, kiu inspiris la komerce haveblan, liberan programaron Linukson. Ekde 2008, Minikso estas uzata en regiloj de la plej multaj Intel-mikroĉipoj, dum Linukso estas vaste uzata en datumcentroj kaj Android-poŝtelefonoj.

### Mikrokomputiloj

Komandlinia interfaco de la operaciumo MS-DOS.
Grafika uzantinterfaco de Macintosh.
La invento de grandskala integriĝo ebligis la produktadon de personaj komputiloj (komence nomataj *mikrokomputiloj*) ekde ĉirkaŭ 1980. Dum ĉirkaŭ kvin jaroj, la CP/M (Kontrolprogramo por Mikrokomputiloj) estis la plej populara operaciumo por mikrokomputiloj. Poste, IBM aĉetis la DOS (*Disk Operating System*) de Microsoft. Post modifoj petitaj de IBM, la rezulta sistemo nomiĝis MS-DOS (*MicroSoft Disk Operating System*) kaj estis vaste uzata sur IBM-mikrokomputiloj. Pli postaj versioj pliigis sian sofistikecon, parte pruntante funkciojn de UNIX.

La Makintoŝo de Apple estis la unua populara komputilo kiu uzis grafikan uzantinterfacon (GUI). La GUI pruviĝis multe pli uzanto-amika ol la nur-teksta komandlinia interfaco, kiun pli fruaj operaciumoj uzis. Post la sukceso de Makintoŝo, MS-DOS estis ĝisdatigita per GUI fako nomata Vindozo. Vindozo poste estis reskribita kiel memstara operaciumo, pruntante tiom da funkcioj de alia (VAX VMS), ke granda jura kompromiso estis pagita. En la dudekunua jarcento, Vindozo daŭre estas populara sur personaj komputiloj, sed havas malpli da merkatpartopreno de serviloj. Uniks-operaciumoj, precipe Linukso, estas la plej popularaj ĉe entreprenaj sistemoj kaj serviloj, sed ankaŭ estas uzataj en porteblaj aparatoj kaj multaj aliaj komputilaj sistemoj.

Ĉe porteblaj aparatoj, la operaciumo Symbian komence superregis, anstataŭita de BlackBerry OS (enkondukita en 2002) kaj iOS por iFonoj (ekde 2007). Poste, la malfermfonteca operaciumo Android (enkondukita en 2008), kun Linuksa kerno kaj C-biblioteko (Bionic) parte bazita sur BSD-kodo, fariĝis plej populara.

## Bontenado

Operaciumoj foje detektas sekurecajn vundeblecojn, kiuj povas damaĝi la uzanton, lian verkon kaj datumojn. Ĉi tiuj vundeblecoj povas esti protektitaj instalante sekurecajn flikaĵojn provizitajn de la fabrikanto de la operaciumo.

## Operaciumoj por labortablaj kaj porteblaj komputiloj

* Microsoft Windows
* macOS
* GNU/Linux
* FreeBSD
* NetBSD
* OpenBSD
	+ LibertyBSD
* FreeDOS
* Windows
* Mac OS
* Unix
* Solaris
* FreeBSD
* OpenBSD
* Chrome OS (GNU/Linux)
* Debian GNU/Linux (GNU/Linux)
* Gentoo Linux (GNU/Linux)
* SUSE Linux (GNU/Linux)
* Red Hat Enterprise Linux (GNU/Linux)
* Ubuntu Linux (GNU/Linux)
* HP-UX
* BeOS
* Kali Linux (GNU/Linux)
* Mandriva (GNU/Linux)

## Operaciumoj por porteblaj aparatoj

* iOS
* Android
* Windows Phone
* Firefox OS
* Ubuntu Phone OS

## Operaciumoj por saĝhorloĝoj

* Android
* WearOS Arkivigite je 2021-06-15 per la retarkivo Wayback Machine
* OpenWatch Arkivigite je 2021-06-15 per la retarkivo Wayback Machine

## Realtempaj operaciumoj

Realtempa operaciumo estas speciala ĝenro de operaciumo, kapablaj garantii respondon en fiksita tempo (milisekundoj aŭ mikrosekundoj) al ĉiu ekstera okazo. Ĉi tiu rekvizito influas en la strukturo de la sistemo: realtempaj sistemoj uzas ofte la *polling*-teĥniko anstataŭ ol interrompo por administri la aparatojn keaj ne havas virtualan memoron. La realtempaj sistemoj troviĝas ofte en industria aŭ muzika kadroj aŭ kie respondo de sistemo en maksimuma tempo antaŭfiksita necesas.

## Notoj

## Bibliografio

### En angla

* Anderson, Thomas.  (2014) *Operating Systems: Principles and Practice* (angle). Recursive Books. ISBN 978-0-9856735-2-9.

* (September 1981) “The Evolution of the MVS Operating System”, *IBM Journal of Research and Development* **25** (5), p. 471–482. doi:10.1147/rd.255.0471.

* Deitel, Harvey M..  (25 December 2015) *Operating Systems*. Pearson/Prentice Hall. ISBN 978-0-13-092641-8.

* Bic, Lubomur F..  (2003) *Operating Systems*. Pearson: Prentice Hall.

* Silberschatz, Avi.  (2008) *Operating Systems Concepts*. John Wiley & Sons. ISBN 978-0-470-12872-5.

* O'Brien, J. A., & Marakas, G. M.(2011). *Management Information Systems*. 10e. McGraw-Hill Irwin.
* Leva, Alberto.  (2013) *Control-based Operating System Design*. Institution of Engineering and Technology. ISBN 978-1-84919-609-3.

* Arpaci-Dusseau, Remzi.  (2015) *Operating Systems: Three Easy Pieces*.

### En hispana

* Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg (2006). *Fundamentos de sistemas operativos* (7a eldono). McGraw-Hill. ISBN 84-481-4641-7.
* Stallings, William (2005). *Sistemas operativos: aspectos internos y principios de diseño* (5a eldono). Pearson Prentice Hall. ISBN 978-84-205-4462-5.
* Tanenbaum, Andrew S. (2009). *Sistemas operativos modernos* (3a eldono). Pearson Prentice Hall. ISBN 978-607-442-046-3.

### En itala

* itale *Architettura dei Sistemi di Elaborazione, volume 1 - Fondamenti!, firmware, architetture parallele.* F. Baiardi, A. Tomasi e Marco Vanneschi, 1988, Franco Angeli Edizioni, ISBN 88-204-2746-X.
* itale *Architettura dei Sistemi di Elaborazione, volume 2 - Sistemi operativi, multiprocessore e distribuiti.* F. Baiardi, A. Tomasi, Marco Vanneschi, 1987, Franco Angeli Edizioni, ISBN 88-204-2746-X.
* itale  *Sistemi operativi - Concetti ed esempi.* A. Silberschatz, P. Galvin, G. Gagne, 2006, Pearson Education Italia, ISBN 88-7192-233-6.