Aunque todos (o casi) hemos escuchado el concepto de "sistema operativo", y aunque sabemos que existen productos como Linux, Windows, Unix, MacOS, etc que entran en dicha categoría, en general, hay una confusión acerca de lo que quiere decir éste término.
Cuando escuchamos que viene una nueva versión de Windows (uso Windows como ejemplo por ser el dominante del mercado) todos nos preguntamos cómo se verá, qué tanta memoria consumirá, y en general qué novedades tendrá; lo malo es que al pensar en esas novedades prestamos atención en características como la transparencia de ventanas, la accesibilidad de los iconos, qué nuevos programas vendrán instalados en él, etc. Ésta situación es la que demuestra que perdemos el foco de lo que es (y lo que no es) un sistema operativo.
El sistema operativo es un software especial que sirve como capa entre el hardware y el resto del software, es decir, es el que se encarga de administrar los recursos físicos y lógicos de una computadora, por ejemplo, es el encargado de administrar la memoria, las colas de impresión, los procesos de fondo del sistema, la comunicación con dispositivos como impresoras, cámaras, etc. Las aplicaciones que instala uno en su computadora se ejecutan sobre el sistema operativo.
A qué nos referimos con términos como "administración de memoria", para que entiendan mejor el concepto entendamos que los programas requieren una cierta cantidad de memoria para alojarse mientras son utilizados por el usuario, éste espacio de memoria no es el de almacenamiento utilizado en el disco duro, sino un espacio de memoria que tomará la computadora para ir ejecutando las instrucciones del programa. Éste espacio de memoria es finito, depende directamente de la memoria RAM instalada en el equipo y se apoya además en memoria virtual (espacio de memoria del disco duro que el sistema operativo utiliza para simular una cantidad mayor de memoria RAM), pues éste espacio finito es asignado por el sistema operativo, éste es el que informa a los programas que espacio tiene disponible para alojar el programa, y es éste mismo el que libera ese mismo espacio al terminar la ejecución de un programa. Una analogía a la administración de memoria es el funcionamiento de un hotel, donde existen cuartos disponibles y una persona los asigna a los clientes que van llegando, y así mismo esa persona tiene la responsabilidad de poner a disposición de otro cliente cada cuarto cuando el último huésped lo haya desalojado.
Éste fue un solo ejemplo de lo que es verdaderamente un sistema operativo, no son las interfaces gráficas (aunque son una parte del sistema operativo) ni los gadgets instalados, su función es la administración de recursos. Sabemos que un sistema operativo es bueno cuando los programas se ejecutan de una manera eficiente, el hardware igualmente funciona de manera adecuada, etc.
Como valor agregado, y los diferenciales de los sistemas operativos tienen que ver con la eficiencia con la que se realizan éstas funciones, por ejemplo:
- Los mejores sistemas operativos requieren menos recursos (memoria, velocidad de procesador)
- Son más amigables si su mercado objetivo es un usuario final (recordemos que Unix es un gran sistema operativo pero carece de ésto porque está orientado a un rol de servidor)
- Soportan una gran cantidad de dispositivos de hardware
- Tienen mejores mecanismos de seguridad en cuanto al acceso de archivos
- Tienen buen soporte a red
Adicionalmente, para que un sistema operativo sea funcional al usuario final, deberá contar con una amplia base de software disponible, principalmente un buen navegador web que permita la explotación de las últimas tecnologías y apoyados por los mayores proveedores de la industria. Ésta última característica es una consecuencia directa del crecimiento de la Internet, hoy en día no es posible contemplar un sistema operativo que no tenga un navegador web compatible con plugins de Flash, o una máquina virtual de Java, AJAX, etc.