Sistem de operare
Sistem de operare (OS), program care gestionează resursele unui calculator, în special alocarea acestor resurse între alte programe. Printre resursele tipice se numără unitatea centrală de procesare (CPU), memoria calculatorului, stocarea fișierelor, dispozitivele de intrare/ieșire (I/O) și conexiunile de rețea. Printre sarcinile de gestionare se numără programarea utilizării resurselor pentru a evita conflictele și interferențele între programe. Spre deosebire de majoritatea programelor, care finalizează o sarcină și se termină, un sistem de operare rulează pe termen nedefinit și se termină numai atunci când calculatorul este oprit.
Sistemele moderne de operare multiprocesare permit ca mai multe procese să fie active, unde fiecare proces este un „fir” de calcul folosit pentru a executa un program. O formă de multiprocesare se numește time-sharing, care permite mai multor utilizatori să împartă accesul la calculator prin comutarea rapidă între ei. Partajarea timpului trebuie să prevină interferențele între programele utilizatorilor, iar majoritatea sistemelor utilizează memoria virtuală, în care memoria sau „spațiul de adrese” utilizat de un program poate fi localizat în memoria secundară (de exemplu, pe o unitate de hard disk magnetic) atunci când nu este utilizat imediat, urmând ca, la cerere, să fie transferat înapoi pentru a ocupa memoria principală mai rapidă a computerului. Această memorie virtuală mărește atât spațiul de adrese disponibil pentru un program, cât și ajută la prevenirea interferențelor dintre programe, dar necesită un control atent din partea sistemului de operare și un set de tabele de alocare pentru a ține evidența utilizării memoriei. Poate cea mai delicată și critică sarcină pentru un sistem de operare modern este alocarea procesorului; fiecare proces are voie să folosească procesorul pentru un timp limitat, care poate fi o fracțiune de secundă, iar apoi trebuie să renunțe la control și să fie suspendat până la următorul său rând. Comutarea între procese trebuie să utilizeze ea însăși CPU, protejând în același timp toate datele proceselor.
Primile calculatoare digitale nu aveau sisteme de operare. Ele rulau câte un program la un moment dat, care avea comanda tuturor resurselor sistemului, iar un operator uman asigura orice resurse speciale necesare. Primele sisteme de operare au fost dezvoltate la mijlocul anilor 1950. Acestea erau mici „programe de supervizor” care asigurau operațiuni de bază de intrare/ieșire (cum ar fi controlul cititoarelor de cartele perforate și al imprimantelor) și țineau evidența utilizării CPU pentru facturare. Programele de supervizor ofereau, de asemenea, capacități de multiprogramare pentru a permite rularea simultană a mai multor programe. Acest lucru a fost deosebit de important pentru ca aceste prime mașini de milioane de dolari să nu rămână inactive în timpul operațiunilor de I/O lente.
Computerele au dobândit sisteme de operare mai puternice în anii 1960, odată cu apariția sistemului de partajare a timpului, care a necesitat un sistem pentru a gestiona mai mulți utilizatori care să împartă timpul CPU și terminalele. Două dintre primele sisteme de time-sharing au fost CTSS (Compatible Time Sharing System), dezvoltat la Massachusetts Institute of Technology, și Dartmouth College Basic System, dezvoltat la Dartmouth College. Alte sisteme multiprogramate au fost Atlas, de la Universitatea din Manchester, Anglia, și OS/360 de la IBM, probabil cel mai complex pachet software al anilor 1960. După 1972, sistemul Multics pentru computerul GE 645 al General Electric Co. (și mai târziu pentru computerele Honeywell Inc.) a devenit cel mai sofisticat sistem, cu cele mai multe dintre capacitățile de multiprogramare și de partajare a timpului care au devenit ulterior standard.
Minicomputerele din anii 1970 aveau memorie limitată și necesitau sisteme de operare mai mici. Cel mai important sistem de operare din acea perioadă a fost UNIX, dezvoltat de AT&T pentru minicomputerele mari ca o alternativă mai simplă la Multics. Acesta a devenit utilizat pe scară largă în anii 1980, în parte pentru că era gratuit pentru universități și în parte pentru că a fost conceput cu un set de instrumente care erau puternice în mâinile unor programatori pricepuți. Mai recent, Linux, o versiune cu sursă deschisă a UNIX dezvoltată în parte de un grup condus de studentul finlandez la informatică Linus Torvalds și în parte de un grup condus de programatorul american Richard Stallman, a devenit popular pe calculatoare personale, precum și pe calculatoare mai mari.
Pe lângă aceste sisteme cu scop general, sistemele de operare cu scop special funcționează pe calculatoare mici care controlează liniile de asamblare, avioanele și chiar aparatele electrocasnice. Acestea sunt sisteme în timp real, concepute pentru a oferi un răspuns rapid la senzori și pentru a utiliza datele de intrare ale acestora pentru a controla utilajele. De asemenea, au fost dezvoltate sisteme de operare pentru dispozitive mobile, cum ar fi smartphone-urile și tabletele. iOS de la Apple Inc., care rulează pe iPhone-uri și iPad-uri, și Android de la Google Inc. sunt două sisteme de operare mobile proeminente.