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

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(1.1.3. Resumen)
(1.1.2. Principios de diseño de un buen Sistema Operativo: cambio el enlace a un enlace interno)
 
(No se muestran 14 ediciones intermedias de 9 usuarios)
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? ==
* El programa de programas. En el arranque de la computadora, es cargado a la memoria RAM por la [http://es.wikipedia.org/wiki/BIOS BIOS].
 
  
* Gestiona los recursos que ofrece el material (el ''hardware'' del equipo):
+
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].
 
** 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...
 
  
* Ofrece un lanzador de aplicaciones, que puede ser de dos tipos:
+
* 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:
** Gestor de ventanas: las órdenes se dan con el ratón.
 
** 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.
 
  
* 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.
+
** La [http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento CPU], también conocida como procesador o unidad central de procesamiento. Todo procesador ofrece un conjunto de instrucciones de bajo nivel (lenguaje ensamblador) con operaciones básicas que ejecuta de manera secuencial.
 +
** 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, pantalla, entre muchos otros.
  
*Tarda un tiempo, período de arranque, en inicializar los recursos.
+
* 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 estable y 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.
  
 
== 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 21: 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 "director de orquesta").
+
* Coordinar la asignación de los mismos entre los programas de ejecución (como se si 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:
  
 
* Ser estable, no debe cambiar con el tiempo.
 
* Ser estable, no debe cambiar con el tiempo.
* Ser homogénea.
+
* Ser homogénea, guardar una similitud lógica en sus llamadas.
* 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 ==
+
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).
  
En resumen, un sistema operativo debe tener las siguientes características:
 
  
* '''Conveniencia:''' un sistema operativo hace más conveniente el uso de una computadora.
+
1.2. [[Introducción histórica|Breve introducción histórica a los sistemas operativos]]
* '''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 actual del 18:18 8 nov 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, también conocida como procesador o unidad central de procesamiento. Todo procesador ofrece un conjunto de instrucciones de bajo nivel (lenguaje ensamblador) con operaciones básicas que ejecuta de manera secuencial.
    • 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, pantalla, 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 estable y 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.

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 si 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, guardar una similitud lógica en sus llamadas.
  • 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).


1.2. Breve introducción histórica a los sistemas operativos