Diferencia entre revisiones de «Qué es un Sistema Operativo»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(1.1.1. ¿Qué es un Sistema Operativo?: reordenar, aclarar, poner tildes)
(qué es un sistema operativo)
Línea 1: Línea 1:
 
= 1.1. ¿Qué es un Sistema Operativo? =
 
= 1.1. ¿Qué es un Sistema Operativo? =
 +
 
== 1.1.1. ¿Qué es un Sistema Operativo? ==
 
== 1.1.1. ¿Qué es un Sistema Operativo? ==
Es el programa o conjunto de programas que:
 
  
*Efectúan la '''gestión de los recursos''' que ofrece un sistema informático:
+
El sistema operativo es el conjunto de programas que:
**La [http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento CPU] (unidad central de procesamiento o procesador).
+
 
**La [http://es.wikipedia.org/wiki/Memoria_principal Memoria principal] o memoria RAM.
+
* gestionan y reparten de manera equitativa los recursos que ofrece el ''hardware'' entre los programas en ejecución. Concretamente, los recursos a gestionar son tres:
**Los [http://es.wikipedia.org/wiki/Entrada/salida#Dispositivos_de_entrada_y_salida dispositivos de Entrada/Salida], tales como la tarjeta de vídeo, la tarjeta de red, los dispositivos de almacenamiento masivo (disco duro, memoria flash), los dispositivos USB, teclado, ratón...
+
 
 +
** La [http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento CPU] o unidad central de procesamiento o procesador.
 +
** La [http://es.wikipedia.org/wiki/Memoria_principal Memoria principal], memoria empleada para almacenar el estado de la ejecución del programa.
 +
** Los [http://es.wikipedia.org/wiki/Entrada/salida#Dispositivos_de_entrada_y_salida dispositivos de Entrada/Salida], tales como la tarjeta de vídeo, la tarjeta de red, los dispositivos de almacenamiento masivo (disco duro del tipo que sea), teclado, ratón, entre muchos otros.
 +
 
 +
* Ofrece un '''lanzador de aplicaciones''', que pueden estar basados en:
 +
 
 +
** Intérprete de órdenes/comandos (traducción incorrecta del original inglés ''command'', que significa órden), también llamado ''shell''. El dispositivo de entrada empleado es el teclado. Es generalmente complejo pero ofrece funcionalidades avanzadas. Algunos ejemplos son la shell de ''bash'' disponible en Linux o el PowerShell disponible en la recientes versiones de MS-Windows. Para ejecutar un programa se escribe su nombre, seguido de opciones (en caso de que las tenga y se pulsa la tecla de ''Intro'').
 +
** Gestor de ventanas: Son los más populares por su sencillez, aunque ofrecen menor funcionalidad que los basados en intérpretes de órdenes. Los programas se ejecutan mediante un clic sencillo o doble de ratón. En dispositivos portátiles en lugar del ratón se emplea una pantalla táctil.
  
*Ofrece un '''lanzador de aplicaciones''', que puede ser de dos tipos:
+
* Ofrece una interfaz homogénea a los programas de usuario para solicitar servicios. Esta interfaz se conoce como '''API''' (del inglés, ''Application Programming Interface'') del sistema operativo.
**Intérprete de órdenes/comandos (traducción defectuosa del original inglés ''command'', que significa orden), también llamado ''shell''. Las órdenes se escriben con el teclado.
 
**Gestor de ventanas: las órdenes se dan con el ratón. <br>Los sistemas operativos de hoy en día ofrecen ambos tipos de lanzadores de aplicaciones, pero la más utilizada es el gestor de ventanas.
 
  
*Ofrece una '''interfaz (API)''' a las aplicaciones para solicitar recursos. El SO hace de intermediario, el programa no accede al hardware directamente  a obtener los recursos, sino que se los solicita al SO. Esta interfaz ha de ser estable (es decir, que no cambie con el tiempo) y homogénea.
+
El sistema operativo se sitía entre los programas de usuario en ejecución y el hardware, de manera que los programas '''siempre''' deben emplear la ''API'' del sistema operativo para acceder a los recursos que ofrece el hardware. Esta '''API''' es estable y homogénea.
  
 
== 1.1.2. Principios de diseño de un buen Sistema Operativo ==
 
== 1.1.2. Principios de diseño de un buen Sistema Operativo ==
Línea 19: Línea 25:
  
 
* Realizar una gestión eficiente de los recursos.
 
* Realizar una gestión eficiente de los recursos.
* Coordinar la asignación de los mismos (como un moderador en un debate, asignando el turno de palabra).
+
* Coordinar la asignación de los mismos entre los programas de ejecución (como se tratase de un moderador en un debate, asignando el turno de palabra a cada uno de los asistentes).
* Hacer un reparto equitativo de ellos.
+
* Hacer un reparto equitativo (del diccionario de la RAE, ''equidad'' significa "dar a cada uno lo que merece"). Esto no significa hacer una división exacta de los recursos, si no que se tendrán en cuenta la naturaleza de cada programa en ejecución a la hora de hacer el reparto.
* No permitir que las aplicaciones accedan directamente a los recursos sino que sea a través del sistema operativo.
+
* No ofrecer ninguna interfaz que permita a las aplicaciones acceder directamente los recursos hardware.
  
 
Respecto a la API, debe:
 
Respecto a la API, debe:
Línea 27: Línea 33:
 
* Ser estable, no debe cambiar con el tiempo.
 
* Ser estable, no debe cambiar con el tiempo.
 
* Ser homogénea.
 
* Ser homogénea.
* Ocultar los detalles de bajo nivel de los componentes, ofreciendo una capa de abstracción sobre el material (hardware).
+
* Debe abstraer y ocultar los detalles de bajo nivel de los componentes, de manera que los programas lleguen a ser complemente independientes del hardware.
 
 
Además, otro criterio a tener en cuenta por un buen sistema operativo es la portabilidad, es decir, que soporte diferentes arquitecturas, como por ejemplo la ARM (teléfonos móviles), la x86 de Intel(32 bits), los actuales Intel64 y AMD64(64 bits), la SPARC (desarrollada por Sun Microsystems, ahora adquirida por Oracle), la PowerPC (creada por la alianza AIM: Apple-IBM-Motorola)...
 
 
 
== 1.1.3. Resumen ==
 
 
 
En resumen, un sistema operativo debe tener las siguientes características:
 
  
* '''Conveniencia:''' un sistema operativo hace más conveniente el uso de una computadora.
+
Además de todo esto, un buen sistema operativo es ''portable'', es decir, que soporte diferentes arquitecturas ''hardware'', como por ejemplo la ARM (típicamente empleada en dispositivos móviles con limitaciones importantes en materia de energía), la PC x86 y x86_64 de Intel, las variantes del PC que ofrece AMD, la arquitectura PowerPC (empleada antaño por Apple y desarrollada por IBM) y SPARC (desarrollada por Sun Microsystems, adquirida por Oracle).
* '''Eficiencia:''' el sistema operativo permite que los recursos de la computadora se usen de manera correcta y eficiente.
 
* '''Habilidad para evolucionar:''' un sistema operativo debe de ser capaz de aceptar nuevas funciones sin que tenga problemas.
 
* '''Encargado de administrar el hardware:''' el sistema operativo debe de ser eficaz.
 
* '''Relacionar dispositivos'''
 

Revisión del 17:23 28 sep 2012

1.1. ¿Qué es un Sistema Operativo?

1.1.1. ¿Qué es un Sistema Operativo?

El sistema operativo es el conjunto de programas que:

  • gestionan y reparten de manera equitativa los recursos que ofrece el hardware entre los programas en ejecución. Concretamente, los recursos a gestionar son tres:
    • La CPU o unidad central de procesamiento o procesador.
    • La Memoria principal, memoria empleada para almacenar el estado de la ejecución del programa.
    • Los dispositivos de Entrada/Salida, tales como la tarjeta de vídeo, la tarjeta de red, los dispositivos de almacenamiento masivo (disco duro del tipo que sea), teclado, ratón, entre muchos otros.
  • Ofrece un lanzador de aplicaciones, que pueden estar basados en:
    • Intérprete de órdenes/comandos (traducción incorrecta del original inglés command, que significa órden), también llamado shell. El dispositivo de entrada empleado es el teclado. Es generalmente complejo pero ofrece funcionalidades avanzadas. Algunos ejemplos son la shell de bash disponible en Linux o el PowerShell disponible en la recientes versiones de MS-Windows. Para ejecutar un programa se escribe su nombre, seguido de opciones (en caso de que las tenga y se pulsa la tecla de Intro).
    • Gestor de ventanas: Son los más populares por su sencillez, aunque ofrecen menor funcionalidad que los basados en intérpretes de órdenes. Los programas se ejecutan mediante un clic sencillo o doble de ratón. En dispositivos portátiles en lugar del ratón se emplea una pantalla táctil.
  • Ofrece una interfaz homogénea a los programas de usuario para solicitar servicios. Esta interfaz se conoce como API (del inglés, Application Programming Interface) del sistema operativo.

El sistema operativo se sitía entre los programas de usuario en ejecución y el hardware, de manera que los programas siempre deben emplear la API del sistema operativo para acceder a los recursos que ofrece el hardware. Esta API es estable y homogénea.

1.1.2. Principios de diseño de un buen Sistema Operativo

Los aspectos a tener en cuenta respecto a la gestión de recursos son:

  • Realizar una gestión eficiente de los recursos.
  • Coordinar la asignación de los mismos entre los programas de ejecución (como se tratase de un moderador en un debate, asignando el turno de palabra a cada uno de los asistentes).
  • Hacer un reparto equitativo (del diccionario de la RAE, equidad significa "dar a cada uno lo que merece"). Esto no significa hacer una división exacta de los recursos, si no que se tendrán en cuenta la naturaleza de cada programa en ejecución a la hora de hacer el reparto.
  • No ofrecer ninguna interfaz que permita a las aplicaciones acceder directamente los recursos hardware.

Respecto a la API, debe:

  • Ser estable, no debe cambiar con el tiempo.
  • Ser homogénea.
  • Debe abstraer y ocultar los detalles de bajo nivel de los componentes, de manera que los programas lleguen a ser complemente independientes del hardware.

Además de todo esto, un buen sistema operativo es portable, es decir, que soporte diferentes arquitecturas hardware, como por ejemplo la ARM (típicamente empleada en dispositivos móviles con limitaciones importantes en materia de energía), la PC x86 y x86_64 de Intel, las variantes del PC que ofrece AMD, la arquitectura PowerPC (empleada antaño por Apple y desarrollada por IBM) y SPARC (desarrollada por Sun Microsystems, adquirida por Oracle).