Sistema operativo

programa que manexa os recursos de hardware e software

Un sistema operativo (S.O.), (en inglés operating system OS) é o software de sistema que manexa os recursos de hardware e software e fornece servizos comúns para os programas informáticos. O sistema operativo é un compoñente esencial para un sistema informático.

Estrutura en capas mostrando a posición dun Sistema Operativo típico nos sistemas de software empregados nos escritorios. Por orde, usuario, aplicacións, sistema operativo, hardware.

Os sistemas operativos de tempo compartido programan as tarefas para un uso eficiente do sistema e tamén poden incluír software de contabilidade para a asignación de custos do tempo do procesador, almacenamento masivo, periféricos e outros recursos.

Para funcións de hardware como entrada/saída e xestión de memoria, o sistema operativo actúa como intermediario entre os programas e o hardware do computador,[1][2] aínda que o código da aplicación adoita ser executado directamente polo hardware e con frecuencia fai chamadas ao sistemas a unha función do SO ou é interrompido por el. Os sistemas operativos atópanse en moitos dispositivos que conteñen un computador, desde teléfonos móbiles e consolas de videoxogos ata servidores webs e supercomputadoras.

En setembro de 2023, no mercado de computadores persoais Microsoft Windows tiña unha cota de mercado dominante de ao redor do 68%. macOS de Apple Inc. ocupa o segundo lugar (20%), e as variedades de Linux, incluído ChromeOS, ocupan colectivamente o terceiro lugar (7%).[3] Así mesmo nesa mesma data no sector dos móbiles (incluídos teléfonos intelixentes e tabletas) a cota era: Android do 68,92%, seguido de iOS e iPadOS de Apple, cun 30,42%, e outros sistemas operativos, cun 0,6%. [4] As distribucións Linuxs dominan nos sectores de servidores e supercomputación. Outras clases especializadas de sistemas operativos (sistemas operativos para fins especiais),[5][6] como sistemas embebidos e sistemas en tempo real, existen para moitas aplicacións. Tamén existen sistemas operativos centrados na seguridade. Algúns sistemas operativos teñen requisitos de sistema baixos (por exemplo as minidistribucións de Linux). Outros poden ter requisitos de sistema máis elevados.

Algúns sistemas operativos requiren instalación ou poden vir preinstalados cos ordenadores comprados (instalación OEM), mentres que outros poden executarse directamente desde dispositivos (por exemplo, un CD autónomo) ou memoria flash (por exemplo, unha memoria USB).


Historia

editar

Os primeiros computadores construíanse para realizar unha serie de tarefas individuais (exemplo unha calculadora). Na década de 1950 desenvolvéronse as características básicas dos sistemas operativos, como as funcións de monitor residente que podían executar automaticamente diferentes programas en sucesión para acelerar o procesamento. Os sistemas operativos non existiron nas súas formas modernas e máis complexas ata principios da década de 1960.[7] Engadíronse características de hardware que permitían o uso de bibliotecas de tempo de execución, interrupcións e procesamento paralelo. Cando os ordenadores persoais popularizáronse na década de 1980, creáronse para eles sistemas operativos similares en concepto aos utilizados en computadores máis grandes.

Na década de 1940, os primeiros sistemas electrónicos dixitais non tiñan sistemas operativos. Naquela época, os sistemas electrónicos programábanse en filas de interruptores mecánicos ou mediante pontes en placas de conexión. Tratábase de sistemas especiais que, por exemplo, xeraban táboas de balística para o exército ou controlaban a impresión de cheques de nómina a partir de datos en tarxetas de papel perforadas. Despois de que se inventasen os computadores programables de propósito xeral, introducíronse os linguaxes de máquina (consistentes en cadeas de díxitos binarios 0 e 1 en cintas de papel perforado) que aceleraban o proceso de programación (Stern, 1981).[Cómpre referencia]

 
OS/360 utilizouse na maioría dos computadores centrais IBM a partir de 1966, incluídos os computadores utilizados polo programa Apolo

.A principios dos anos 50, un computador só podía executar un programa á vez. Cada usuario tiña o uso exclusivo do computador durante un período limitado e chegaba a unha hora programada co seu programa e os datos en tarxetas de papel perforado ou cinta perforada. O programa cargábase na máquina e esta poñíase a traballar ata que o programa completábase ou colgábase. Polo xeral, os programas podíanse depurar a través dun panel frontal mediante interruptores de panca e luces do panel. Dise que Alan Turing era un mestre disto na primitiva máquina Manchester Mark 1, e que xa estaba a derivar a concepción primitiva dun sistema operativo a partir dos principios da máquina universal de Turing.[7]

As máquinas posteriores viñan con bibliotecas de programas, que se enlazaban ao programa do usuario para axudar en operacións como a entrada e saída e compilación (xeración de código máquina a partir de código simbólico lexible por humanos). Esta foi a xénese do sistema operativo actual. Con todo, as máquinas seguían executando un único traballo á vez. Na Universidade de Cambridge (Inglaterra), a cola de traballos era un tendedeiro do que colgaban cintas con pinzas de diferentes cores para indicar a prioridade dos traballos.[Cómpre referencia]

A finais da década de 1950, empezaron a aparecer programas que un recoñecería como un sistema operativo. O primeiro exemplo recoñecible é GM-NAA I/O, lanzado en 1956 no IBM 704. O primeiro exemplo coñecido que realmente se refería a si mesmo foi o SHARE Operating System, un desenvolvemento de GM-NAA I/O, publicado en 1959. Nun artigo de maio de 1960 no que se describía o sistema, George Ryckman sinalaba:

O desenvolvemento dos sistemas operativos dos computadores contribuíu considerablemente a resolver o problema da conexión e desconexión dun programa ou unha serie de programas.[8]

Un dos exemplos máis famosos que se atopa a miúdo nas discusións sobre os primeiros sistemas é o Atlas Supervisor, que funcionaba no Atlas en 1962.[9] Facíase referencia a el como tal nun artigo de decembro de 1961 no que se describía o sistema, pero o contexto de "o sistema operativo" vai máis na liña de "o sistema funciona á moda". O propio equipo de Atlas utilizou o termo "supervisor",[10] que era moi utilizado xunto con "monitor". Brinch Hansen describiuno como "o avance máis significativo na historia dos sistemas operativos".[11]

Unidade central (mainframe)

editar

Ao longo da década de 1950, moitas características importantes foron pioneiras no campo dos sistemas operativos en unidades centrais (mainframe), incluíndo procesamento por lotes, interrupción de entrada/saída, buffering, multitarea, spooling, bibliotecas en tempo de execución, enlazador, e programas para clasificación de rexistros en arquivos. Estas características incluíanse ou non no software de aplicación a elección dos programadores de aplicacións, no canto de nun sistema operativo independente utilizado por todas as aplicacións. En 1959, o SHARE Operating System foi lanzado como unha utilidade integrada para o IBM 704, e máis tarde nos mainframes 709 e 7090, aínda que foi rapidamente suplantado por IBSYS/IBJOB nos 709, 7090 e 7094, que á súa vez influíron nos posteriores sistemas operativos 7040-PR-150 (7040/7044) e 1410-PR-155 (1410/7010).

Durante a década de 1960, o OS/360 de IBM introduciu o concepto dun único sistema operativo que abarcaba toda unha liña de produtos, o que foi crucial para o éxito das máquinas System/360. Os actuais sistemas operativos para mainframes de IBM son descendentes afastados deste sistema orixinal e as máquinas modernas son retrocompatibles coas aplicacións escritas para OS/360.[Cómpre referencia]

OS/360 tamén foi pioneiro no concepto de que o sistema operativo realiza un seguimento de todos os recursos do sistema que se utilizan, incluída a asignación de espazo para programas e datos na memoria principal e o espazo para arquivos no almacenamento secundario, e bloqueo de arquivos durante as actualizacións. Cando un proceso termina por calquera razón, todos estes recursos son recuperados polo sistema operativo.

O sistema alternativo CP-67 para o S/360-67 iniciou toda unha liña de sistemas operativos IBM centrados no concepto de máquina virtual. Outros sistemas operativos utilizados nos mainframes IBM da serie S/360 incluían sistemas desenvolvidos por IBM: DOUS/360[n. 1] (Sistema Operativo de Disco), TSS/360 (Sistema de Tempo Compartido), TOSE/360 (Sistema Operativo de Cinta), BOS/360 (Sistema Operativo Básico), e ACP (Programa de Control de Aerolíneas), así como algúns sistemas non IBM: MTS (Michigan Terminal System), MUSIC (Multi-User System for Interactive Computing), e ORVYL (Stanford Timesharing System).

Control Data Corporation desenvolveu o sistema operativo SCOPE na década de 1960, para o procesamento por lotes. En cooperación coa Universidade de Minnesota, nos anos 70 desenvolvéronse os sistemas operativos Kronos e máis tarde NOS, que soportaban simultaneamente o uso por lotes e o tempo compartido. Como moitos sistemas comerciais de tempo compartido, a súa interface era unha extensión dos sistemas operativos BASIC de Dartmouth, un dos esforzos pioneiros en tempo compartido e linguaxes de programación. A finais dos 70, Control Data e a Universidade de Illinois desenvolveron o sistema operativo PLATO, que utilizaba pantallas de plasma e redes de tempo compartido a longa distancia. Plato foi notablemente innovador para a súa época, xa que incluía chat en tempo real e xogos gráficos multiusuario.

En 1961, Burroughs Corporation presentou a B5000 co sistema operativo MCP (Master Control Program). O B5000 era unha máquina de pila deseñada para soportar exclusivamente linguaxes de alto nivel sen ensamblador;[n. 2] De feito, o MCP foi o primeiro sistema operativo escrito exclusivamente nunha linguaxe de alto nivel (ESPOL, un dialecto de ALGOL). MCP tamén introduciu moitas outras innovacións pioneiras, como ser a primeira implementación comercial de memoria virtual. MCP séguese utilizando hoxe en día na liña de computadores MCP/ClearPath da compañía Unisys.

UNIVAC, o primeiro fabricante de computadores comerciais, produciu unha serie de sistemas operativos EXEC.[12][13][14] Como todos os primeiros sistemas de Unidade central, este sistema por lotes xestionaba tambores magnéticos, discos, lectores de tarxetas e impresoras de liña. Na década de 1970, UNIVAC produciu o sistema Real-Time Basic (RTB) para soportar a compartición de tempo a gran escala, tamén baseado no sistema Dartmouth BC.

General Electric desenvolveu o General Electric Comprehensive Operating Supervisor (GECOS), que soportaba principalmente o procesamento por lotes. Tras a súa adquisición por Honeywell, pasou a chamarse General Comprehensive Operating System (GCOS).

Bell Labs,[n. 3] General Electric e o MIT desenvolveron Multiplexed Information and Computing Service (Multics), que introduciu o concepto de niveis de privilexio de seguridade anillados.

Dixital Equipment Corporation desenvolveu moitos sistemas operativos para as súas diversas liñas de computadores, incluídos os sistemas de tempo compartido TOPS-10 e TOPS-20 para os sistemas da clase PDP-10 de 36 bits. Antes de que se xeneralizase o uso de UNIX, TOPS-10 era un sistema especialmente popular nas universidades e na primeira comunidade ARPANET. RT-11 era un sistema operativo en tempo real monousuario para o miniordenador de clase PDP-11, e RSX-11 era o sistema operativo multiusuario correspondente.

Desde finais da década de 1960 ata finais da década de 1970, desenvolvéronse varias capacidades de hardware que permitiron que software similar ou portado executásese en máis dun sistema. Os primeiros sistemas utilizaran microprogramación para implementar características nos seus sistemas co fin de permitir que diferentes arquitecturas de computadors subxacentes parecesen ser as mesmas que outras dunha serie. De feito, a maioría dos 360 posteriores, os 360/40 (excepto o 360/44, 360/75, 360/91, 360/95 e 360/195), eran implementacións microprogramadas.

O enorme investimento en software para estes sistemas realizada desde a década de 1960 fixo que a maioría dos fabricantes de computadores orixinais seguisen desenvolvendo sistemas operativos compatibles xunto co hardware. Entre os sistemas operativos de unidade central compatibles destacan:

Microcomputadoras

editar
 
PC DOS foi un dos primeiros sistemas operativos para computadores persoais con interface de liña de comandos.
 
Interfaz de liña de comandos do sistema operativo MS-DOS
 
Interface gráfica de usuario dun Macintosh

A invención da integración a gran escala permitiu a produción de computadores persoais (inicialmente chamados microordenadores) a partir de 1980 aproximadamente.[15] Os primeiros microordenadores non tiñan a capacidade ou a necesidade dos elaborados sistemas operativos que se desenvolveran para unidades centrais e minis; desenvolvéronse sistemas operativos minimalistas, a miúdo cargados desde a ROM e coñecidos como monitores. Un dos primeiros sistemas operativos de disco foi o CP/M, compatible con moitos dos primeiros microordenadores e imitado polo MS-DOS de Microsoft, que se fixo moi popular como sistema operativo elixido para o IBM PC (a versión de IBM chamábase IBM DÚAS ou PC DOS). Na década de 1980, Apple Computer Inc. (actualmente Apple Inc.) abandonou a súa popular serie Apple II de microordenadores para presentar o Apple Macintosh, cunha innovadora interface gráfica de usuario (GUI); o Macintosh executaba o sistema operativo coñecido posteriormente como Mac OS Classic.

A introdución do procesador de CPU Intel 80386 en outubro de 1985,[16] con arquitectura 32-bit e capacidades de paxinación, proporcionou aos computadores persoais a capacidade de executar sistemas operativos multitarea como os dos anteriores superminicomputadores e mainframes. Microsoft respondeu a este progreso contratando a Dave Cutler, que desenvolvera o sistema operativo VMS para Dixital Equipment Corporation. Dirixiría o desenvolvemento do sistema operativo Windows NT, que segue sendo a base da liña dos sistemas operativos de Microsoft. Steve Jobs, cofundador de Apple Inc., fundou NeXT Computer Inc, que desenvolveu o sistema operativo NeXTSTEP. NeXTSTEP sería posteriormente adquirido por Apple Inc. e utilizado, xunto con código de FreeBSD como núcleo de Mac OS X (macOS tras o último cambio de nome).

O Proxecto GNU foi iniciado polo activista e programador Richard Stallman co obxectivo de crear unha substitución completa de software libre para o sistema operativo propietario UNIX. Aínda que o proxecto tivo moito éxito ao duplicar a funcionalidade de varias partes de UNIX, o desenvolvemento do núcleo GNU Hurd resultou improdutivo. En 1991, o estudante finlandés de informática Linus Torvalds, coa cooperación de voluntarios que colaboraban a través de Internet, publicou a primeira versión do núcleo Linux. Pronto se fusionou cos compoñentes do espazo de usuario de GNU e o software do sistema para formar un sistema operativo completo. Desde entón, a industria do software referiuse á combinación dos dous compoñentes principais simplemente como "Linux", unha convención de nomenclatura á que Stallman e a Free Software Foundation opóñense, preferindo o nome GNU/Linux. A Berkeley Software Distribution, coñecida como BSD, é o derivado de UNIX distribuído pola Universidade de California, Berkeley, desde 1970. Distribuído libremente e portado a moitos miniordenadores, co tempo tamén gañou adeptos para o seu uso en PC, principalmente como FreeBSD, NetBSD e OpenBSD.

Funcións

editar
 
Android 4.2 "Jelly Bean" nun Nexus 4.

As funcións dun sistema operativo son:

  • 1 Proporcionar a interface co ordenador sobre unha pantalla en forma de:
    • intérprete de comandos (a interface usuario-ordenador): permite que o usuario se poida comunicar co ordenador, xa sexa mediante unha liña de comandos ou mediante gráficos:
    • chamadas ao sistema (a interface aplicación-ordenador): ver o punto 4
  • 2. Administrar os dispositivos hardware do ordenador. Cando se executan os programas, estes necesitan utilizar a memoria, o monitor, as unidades de disco, os portos de entrada/saída (impresoras, módems etc.) O SO serve de intermediario entre os programas e o hardware.
  • 3. Administrar e mantén os sistemas de arquivos dos discos. Os SO agrupan a información dentro de compartimentos lóxicos para almacenala no disco, chamados arquivos ou ficheiros. O SO mantén unha lista dos ficheiros dun disco, e proporciónanos as ferramentas necesarias para organizar e manipulalos.
  • 4. Xestionar as chamadas ao sistema: Proporciona servizos a outros programas, a través de librerías que conteñen tales servizos, que permiten ás aplicacións executar os comandos do sistema operativo. Estas instrucións coñécense coma "chamadas do sistema"

Exemplos

editar

Sistemas operativos Unix e tipo Unix

editar
Artigo principal: UNIX.
 
Evolución dos sistemas Unix

Unix escribiuse orixinalmente en linguaxe ensamblador. [17] Ken Thompson escribiu B, baseado principalmente en BCPL, a partir da súa experiencia no proxecto MULTICS. B foi substituído por C, e Unix, reescrito en C, converteuse nunha gran e complexa familia de sistemas operativos interrelacionados que influíron en todos os sistemas operativos modernos.

A familia Unix-like é un grupo diverso de sistemas operativos, con varias subcategorías principais que inclúen System V, BSD e Linux. O nome "UNIX" é unha marca rexistrada de The Open Group que o licencia para o seu uso con calquera sistema operativo que demostre axustarse ás súas definicións. "UNIX-like" utilízase habitualmente para referirse ao amplo conxunto de sistemas operativos que se asemellan ao UNIX orixinal.

Os sistemas de tipo Unix funcionan nunha gran variedade de arquitecturas informáticas. Utilízanse moito para servidores en empresas, así como estacións de traballo en contornas académicas e de enxeñaría. As variantes libres de UNIX, como Linux e BSD, son populares nestes ámbitos.

Histórico de sistemas operativos

editar
i5 /OSBeOSi5/OSSyllableOpenVMSOpenVMSeComStationOS/2 WarpOpenVMSOS/2 WarpOpenVMSOpenVMSBeOSVMSOS/2AmigaOSXerox StarOpenVMSCP/MDEC StarletMulticsLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxOpenBSDFreeBSDOpenBSDFreeBSDDragonFly BSDFreeBSDOpenBSDFreeBSDBSDBSDOpenBSDNetBSDFreeBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDBSDSolaris (operativsystem)AIXSolaris (operativsystem)UNIXMinixSolaris (operativsystem)AIXUNIXUNIXUnix System VOPENSTEPMachUNIXAIXIrixUltrixGNU/HurdSolaris (operativsystem)NeXTSTEPHP-UXMinixPlan 9UNIXQNXUnix System VSunOSUnix System IIIUNIXEuniceUNIXUNIXUNIXUNIXUNIXUNICSMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OS XMac OSDarwin (operativsystem)Mac OSMac SystemMac SystemLisa OSApple DOSWindows 8Windows 7Windows XP#Service Pack 3Windows VistaWindows XP#Service Pack 2Windows 2003Windows XPWindows MEWindows 2000Windows 98Windows NTWindows 95Windows NTWindows NTWindowsWindowsWindowsFreeDOSFreeDOSMS-DOSFreeDOSFreeDOSMS-DOSPC-DOSMS-DOSDR DOSDR DOSConcurrent DOSMS-DOSMS-DOSMS-DOSGNUBSDUNIX

Principais sistemas operativos

editar

Os sistemas operativos máis empregados para uso persoal e de oficina son os sistemas operativos privativos Windows, producido pola compañía Microsoft, e, en menor medida, macOS, producido pola compañía Apple. Os sistemas operativos libres contan co dominio do mercado en servidores e supoñen xa unha alta porcentaxe do uso de ordenadores persoais. O máis popular e coñecido destes é Linux ou GNU/Linux inda que outros sistemas operativos coma os BSD contan cun nicho de uso particular. Os sistemas operativos libres caracterízanse por poder escolle entre varios ambientes de escritorio tento aspectos a simple vista bastante diferentes, inda que se traten do mesmo sistema operativo. Os ambientes de escritorio máis populares son KDE e GNOME.

Virtualización de sistemas operativos

editar
 
VirtualBox v4.1.8 executando Kubuntu 11.04 en Windows 7.

A utilización de hardware cada vez máis potente e sistemas operativos máis complexos fixo a necesidade de normalizar os recursos dos sistemas informáticos de xeito que é posible empregar máis dun sistema operativo na mesma computadora. Este uso, chamado virtualización, permite simular o contorno de traballo de xeito que dentro dun sistema operativo emprégase outro compartindo recursos. Empregando software de virtualización non só é posible utilizar sistemas operativos como Windows, Linux e macOS tamén poden utilizarse versións vellas de sistemas operativos ou sistemas operativos de teléfonos móbiles.

Os sistemas máis empregados son:

  1. Unha combinación de DÚAS/360 e software de emulación era coñecida como Compatibility Operating System (COS)
  2. Con todo, ESPOL permitía que os programas fonte especificasen todas as operacións do repertorio de instrucións.
  3. Bell Labs abandonou rapidamente, deixando a GE e ao MIT.
Referencias
  1. Stallings (2005). Operating Systems, Internals and Design Principles. Pearson: Prentice Hall. p. 6. 
  2. Dhotre, I.A. (2009). Operating Systems. Technical Publications. p. 1. 
  3. "Desktop Operating System Market Share Worldwide". StatCounter Global Stats (en inglés). Arquivado dende o orixinal o 2 de outubro de 2023. Consultado o 9 de outubro do 2023. 
  4. "Mobile & Tablet Operating System Market Share Worldwide". StatCounter Global Stats (en inglés). Consultado o 9 de outubro do 2023. 
  5. "VII. Special-Purpose Systems - Operating System Concepts, Seventh Edition [Book]". www.oreilly.com. Arquivado dende o orixinal o 13 de xuño de 2021. Consultado o 9 de outubro do 2023. 
  6. "Special-Purpose Operating Systems - RWTH AACHEN UNIVERSITY Institute for Automation of Complex Power Systems - English". www.acs.eonerc.rwth-aachen.de. Arquivado dende o orixinal o 14 de xuño de 2021. Consultado o 9 de outubro do 2023. 
  7. 7,0 7,1 Hansen, Per Brinch, ed. (2001). Classic Operating Systems. Springer. pp. 4–7. ISBN 0-387-95113-X. Arquivado dende o orixinal o 11 de xaneiro de 2023. Consultado o 10 de outubro do 2023. 
  8. Ryckman, George (1960). "The computer operation language". IRE-AIEE-ACM '60 (Western). p. 341. doi:10.1145/1460361.1460406. 
  9. Lavington, Simon (1998). A History of Manchester Computers (2nd ed.). Swindon: The British Computer Society. pp. 50–52. ISBN 978-1-902505-01-5. 
  10. Kilburn, T.; Payne, R. B.; Howarth, D. J. (decembro de 1961). "The Atlas Supervisor". Institute of Electrical Engineers. pp. 279–294. doi:10.1145/1460764.1460786. Arquivado dende o orixinal o 9 de xuño de 2022. Consultado o 10 de outubro do 2023. 
  11. Brinch Hansen, Per (2000). Classic Operating Systems: From Batch Processing to Distributed Systems. Springer-Verlag. 
  12. "EXEC I UNIVAC 1107 Executive System" (PDF) (rev. 1 ed.). Sperry Rand. UP-2577. Arquivado dende o orixinal (PDF) o 15 de xuño de 2022. Consultado o 10 de outubro do 2023. 
  13. "UNIVAC DATA PROCESSING DIVISION MULTI-PROCESSOR SYSTEM EXEC II PROGRAMMERS REFERENCE MANUAL" (PDF). Sperry Rand. 1966. UP-4058. Arquivado dende o orixinal (PDF) o 15 de xuño de 2022. Consultado o 10 de outubro do 2023. 
  14. "UNIVAC 1108 MULTI-PROCESSOR SYSTEM Operating System EXEC 8 PROGRAMMERS REFERENCE" (PDF) (rev. 1 ed.). Sperry Rand. 1968. UP-4144. Arquivado dende o orixinal (PDF) o 25 de maio de 2022. Consultado o 10 de outubro do 2023. 
  15. Tanenbaum & Bos 2023, pp. 15–16.
  16. "Intel® Microprocessor Quick Reference Guide - Year". www.intel.com. Arquivado dende o orixinal o 25 April 2016. Consultado o 2016-04-24. 
  17. Ritchie, Dennis. "Unix Manual, first edition". Lucent Technologies. Arquivado dende o orixinal o 18 May 2008. Consultado o 25 de decembro do 2023. 

Véxase tamén

editar

Bibliografía

editar

Outros artigos

editar