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

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Página nueva: == ¿Que es un Sistema Operativo? == * Un programa de programas. * Gestiona los recursos que ofrece el material (el ''hardware'' del equipo): ** La CPU. ** La Memoria principal ** Lo...)
 
(1.1.2. Principios de diseño de un buen Sistema Operativo: cambio el enlace a un enlace interno)
 
(No se muestran 30 ediciones intermedias de 17 usuarios)
Línea 1: Línea 1:
== ¿Que es un Sistema Operativo? ==
+
= 1.1. ¿Qué es un Sistema Operativo? =
* Un programa de programas.
 
  
* Gestiona los recursos que ofrece el material (el ''hardware'' del equipo):
+
== 1.1.1. ¿Qué es un Sistema Operativo? ==
** La CPU.
 
** La Memoria principal
 
** Los dispositivos de Entrada/Salida, tales como la tarjeta de vídeo, la 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:
+
El sistema operativo es el conjunto de programas que:
** 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. Debe ser estable (es decir, que no cambie con el tiempo).
+
* 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:
  
== Principios de diseño de un buen Sistema Operativo ==
+
** 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.
 +
 
 +
* 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:
 
Los aspectos a tener en cuenta respecto a la gestión de recursos son:
  
* Debe 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"), y
+
* 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 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.
  
Respecto a la API:
+
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).
  
* Tiene que ser estable, no debe cambiar con el tiempo.
 
* Debe ser homogénea.
 
* Oculta los detalles de bajo nivel de los componentes, ofreciendo una capa de abstracción sobre el material.
 
  
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, la SPARC (desarrollada por Sun Microsystems, ahora adquirida por Oracle), la PowerPC (creada por la alianza AIM: Apple-IBM-Motorola)...
+
1.2. [[Introducción histórica|Breve introducción histórica a los sistemas operativos]]

Revisión actual del 19: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