Navegación

¿Qué es un sistema operativo?

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando es cargado en memoria por un programa especifico, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios,etc).

Funciones básicas:

Los sistemas operativos, en su condición de capa de software que posibilita y simplifica el manejo de la computadora, desempeña una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:

  • Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
  • Brindar una interfaz al usuario, ejecutando instrucciones (comandos), proporcionando más comodidad en el uso del computador.
  • Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).

Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades y suministro de interfaz al usuario.




La clase de sistemas operativos que trataremos acá es la de multiusuarios y multiprogramación; es decir que varios usuarios podrán utilizar varios programas, todos al mismo tiempo.

Un SO es una parte importante de casi cualquier sistema informático. Para entender mejor esto veremos que un sistema informático se puede separar en cuatro partes:

  • Hardware.

  • Sistema Operativo.

  • Programas de aplicación.

  • Usuarios.



Estas partes hacen de capas. Cada una de ellas acerca más al usuario a utilizar los recursos del hardware. El hardware (CPU, memoria y dispositivos) proporciona los recursos de computación básicos sobre los que se agregaran estas capas sucesivas. Los programas de aplicación como los compiladores, juegos, aplicaciones de negocios, etc. definen la forma en que estos recursos se emplearán para solucionar los problemas del usuario.

Puede haber varias clases de usuarios usando el sistema, como ser personas, programas y otras computadoras, tratando de resolver diversos problemas. El SO controla y coordina el uso del hardware entre los diversos programas de aplicación y los distintos usuarios, administrando todos los recursos como discos, memoria, impresoras, monitor, etc. El SO determina los tiempos en que un determinado programa utilizará un recurso dado.

Al comienzo de la era informática, los sistemas no utilizaban Sistemas Operativos. Estas computadoras de hace muchos años ejecutaban un programa a la vez que era cargado por un programador. Este cargaba el programa y lo ejecutaba. Si existía algún error que hiciera que el programa se detuviera antes de lo esperado, se tenía que comenzar de nuevo con todo el proceso. Recordemos que en esa época no había muchas computadoras en funcionamiento, así que el programador tenía que esperar varios días hasta tener nuevamente su turno frente de la computadora. Los Sistemas Operativos existen porque son una solución razonable al problema de crear un sistema informático útil. El objetivo fundamental de los sistemas informáticos es ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. Todo esto se hacía a través de tarjetas perforadas que una persona encargada cargaba en la computadora y luego de algunas horas devolvía la salida impresa al programador.

Al avanzar la tecnología informática, muchos de estos programas se cargaban en una sola cinta, otro programa residente en la memoria de la computadora, cargaba y manipulaba los programas de esa cinta. Este es el ancestro de los SO's de hoy en día. En la década del 60 la tecnología de SO's avanzó mucho y se podían tener múltiples programas al mismo tiempo en la memoria. Así surgió el concepto de multiprogramación. Si un programa necesitaba esperar a que ocurriera algún evento externo, como que una cinta se rebobinara, otro podría tener acceso a la CPU para así poder utilizar el 100% del poder de procesamiento con que contaba la computadora. Esto ahorraba mucho dinero ya que en aquel entonces todo lo referente al cómputo (memoria, espacio en disco, etc) costaba cientos de miles de dólares. A finales de los 60's, en 1969, nació UNIX que es la base de muchos de los SO's de hoy en día, aunque muchos no lo admitan.

Definir que es lo que forma parte de un SO y que no, sería difícil dada la gran variedad existente, pero una definición para los SO que nos compete en estos momentos seria que el SO es el programa que se ejecuta todo el tiempo en la computadora (conocido usualmente como kernel o núcleo), siendo los programas de aplicación todo lo demás. En general un SO intenta incrementar la productividad de un recurso de proceso tal como el hardware de la computadora, o de los usuarios de los sistemas informáticos. Ahora bien, en lo referente a la utilización eficiente de un sistema informático no siempre se puede lograr que un SO lo logre. Casi siempre resulta contradictorio la comodidad y la eficiencia.

Unix como base de sistemas operativos:

Como dijimos antes, en 1969 nació UNIX. En principio como un trabajo solitario de Ken Thompson, de Bell Labs, y luego en conjunto con Dennis Ritchie (quien junto a Brian Kerningan desarrollaron el lenguaje de programación C) y otros miembros del Bell Labs que se fueron incorporando. Ritchie ya tenia experiencia dado que había trabajado en otro proyecto llamado MULTICS, el cual fue de gran influencia sobre el nuevo SO, como por ejemplo en la organización básica del sistema de archivos, la idea de un intérprete de comando (el shell) como un proceso de usuario, etc.

La primera versión de UNIX estaba hecha íntegramente en ensamblador. Esto se cambió con la versión posterior, que fue escrita en lenguaje C lo que lo hizo sumamente portable; así mismo también se le agregó una característica por demás importante, la multiprogramación. Esto y la entrega de licencias gratuitas con fines educativos extendieron su uso, desarrollo y la investigación en las universidades. El uso de UNIX se fue ampliando a medida que se le fueron adicionando herramientas de software y entornos de programación, apoyo a protocolos de red Internet (TCP/IP), mejoras en el editor de texto (Vi), compiladores de C, PASCAL y LISP, mejora en el control de congestionamiento de redes y el rendimiento de TCP/IP. Al crecer la popularidad de UNIX, se a transportado a distintas plataformas de hardware (PC, MAC, ALPHA) y se han creado una gran cantidad de SO's UNIX y parecidos a UNIX (XENIX de Microsoft, AIX de IBM, SOLARIS de SunSoft).

Las características principales de este SO es que se diseñó como un sistema de tiempo compartido. Esto quiere decir que varios usuarios estarán usando el sistema al mismo tiempo, sin notar la presencia de los demás en su ámbito de trabajo, lo que logra el SO asignándole un tiempo de atención para el CPU a cada usuario.

La interfaz estándar con el usuario (el shell) puede ser cambiada si se quiere. La mayoría del código fuente original está disponible por lo que los usuarios podrán ajustar el SO a sus requerimientos específicos. Es multitarea, es decir que permite que se puedan ejecutar varios procesos al mismo tiempo compartiendo el uso de la CPU.

Soporta el procesamiento en tiempo real (ejecución de procesos en intervalos de tiempo especificados sin retardo), el cual se utiliza en aplicaciones de robótica y base de datos.

Los sistemas UNIX son esenciales para la Internet.

Los sistemas de archivos con árboles multiniveles permiten que el SO trate tanto a directorios y archivos como simples secuencias de bytes.

Posee distintos niveles de seguridad: password's de ingreso y permisos de archivos y directorios.

Un proceso puede fácilmente generar otro, también es posible el manejo de procesos en determinado tiempo. Puede planearse la utilización de la CPU.

El kernel y biblioteca del SO están preparados para que el SO pueda extenderse y crecer, lo que permitió a UNIX mantenerse siempre a la cabeza de los SO's estando permanentemente actualizado.




Ahora bien, Unix no es software libre, es propietario, pero GNU/Linux que es muy similar a Unix si es software libre y dado que nuestro objetivo en este sitio es compartir conocimiento libremente, nos centraremos en el aprendizaje de Linux como sistema operativo libre.


Para recordar a qué llamamos software visita: Software

Para saber que es software libre, visita: Software Libre

Para saber que es GNU/Linux, visita: ¿Qué es GNU/Linux?

Para aprender a utilizar GNU/Linux, visita: GNU/Linux



¿A qué llamamos Entorno Gráfico?


Entorno de escritorio

Un entorno de escritorio (en inglés, Desktop Environment) es un conjunto de software que ofrece al usuario de una computadora una interacción amigable y cómoda.

Este software es lo que llamamos entorno gráfico (GUI = grafic user interface).

Ofrece iconos, barras de herramientas, programas e integración entre aplicaciones con habilidades como, arrastrar y soltar (drag&drop).

En general cada entorno de escritorio se distingue por su aspecto y comportamiento particulares, aunque algunos tienden a imitar características de otros escritorios ya existentes.

El primer entorno moderno de escritorio fue desarrollado por Xerox en los años 1980.

Actualmente existen muchos entornos gráficos, los más conocidos son:

Windows, Macintosh (Classic y Cocoa), GNOME, KDE, CDE, Xfce o LXDE.

En GNU/Linux, dado que el kernel o núcleo del sistema operativo es independiente del entorno gráfico, a diferencia de otros sistemas operativos como windows, podemos tener diferentes entornos gráficos en el mismo sistema al mismo tiempo.

Sobre GNU/Linux puedo instalar y utilizar los escritorio kde gnome xfce, etc, incluso en la misma pc, varios usuarios pueden utilizar GNU/Linux al mismo tiempo y cada uno de ellos con su escritorio particular y diferente al de los demás.

Quda claro tambien que podemos utilizar GNU/Linux sin entorno gráfico, de hecho es lo que hacemos cuando utilizamos la consola o terminal.
Comments