Sistema operativo para niños
Un sistema operativo (también conocido como SO) es como el cerebro de tu computadora o dispositivo electrónico. Es un conjunto de programas que se encarga de que todas las partes de tu aparato (el hardware) funcionen bien juntas. También permite que otros programas, como los juegos o las aplicaciones de edición de fotos, puedan usarse.
Piensa en el sistema operativo como un director de orquesta. Él decide qué programa usa qué parte del hardware y por cuánto tiempo. Así, los programadores no tienen que preocuparse por los detalles técnicos de cada pieza del aparato.
La mayoría de los aparatos electrónicos que usamos a diario tienen un sistema operativo. Esto incluye tu teléfono móvil, tu reproductor de DVD, tu computadora y hasta los enrutadores de internet.
En las computadoras de escritorio, el sistema operativo más usado es Microsoft Windows. Le siguen MacOS de Apple Inc. y luego las diferentes versiones de GNU/Linux. En los teléfonos y tabletas, Android es el más popular. Los sistemas Linux son muy importantes en los servidores y las supercomputadoras. También hay sistemas operativos especiales para aparatos más pequeños o para tareas muy específicas.
Contenido
- Funciones principales de un sistema operativo
- Antecedentes históricos de los sistemas operativos
- Llamadas al sistema
- Componentes de un sistema operativo
- Clasificación de los sistemas operativos
- Diferencia entre núcleo y sistema operativo
- Sistemas operativos para PC
- Sistemas operativos para dispositivos móviles
- Galería de imágenes
- Véase también
Funciones principales de un sistema operativo
Un sistema operativo tiene varias tareas importantes para que tu dispositivo funcione correctamente:
¿Cómo gestiona la memoria y las aplicaciones?
El sistema operativo se encarga de organizar la memoria RAM (la memoria de acceso rápido) y de dar los recursos necesarios a las aplicaciones que estás usando. Cuando una aplicación ya no necesita memoria, el sistema operativo la libera para que otros programas puedan usarla.
¿Cómo administra el procesador (CPU)?
El sistema operativo coordina cómo la CPU (el "cerebro" que ejecuta las instrucciones) se usa entre los diferentes programas. Decide qué programa se ejecuta primero y por cuánto tiempo, para que todos los programas funcionen de manera justa y eficiente.
¿Cómo maneja la entrada y salida de datos?
También gestiona cómo los datos entran y salen del dispositivo a través de los periféricos. Por ejemplo, cuando escribes en el teclado o imprimes un documento, el sistema operativo usa programas especiales llamados "controladores" (o drivers) para que el teclado y la impresora se comuniquen bien con la computadora.
¿Cómo organiza la información del sistema?
El sistema operativo organiza información vital para el buen funcionamiento del sistema, como la lista de programas en ejecución o los archivos abiertos. También supervisa el rendimiento para asegurarse de que todo funcione de la mejor manera posible.
¿Cómo controla los permisos de los usuarios?
El sistema operativo se asegura de que cada usuario solo pueda acceder a los archivos y funciones para los que tiene permiso. Esto incluye la gestión de cuentas de usuario, contraseñas y los privilegios que cada uno tiene.
¿Cómo administra los archivos?
Se encarga de todas las operaciones con los archivos, como crearlos, modificarlos, borrarlos y acceder a ellos en el disco duro. Organiza los archivos en carpetas y controla quién puede ver o cambiar cada archivo para proteger tu información.
Antecedentes históricos de los sistemas operativos
Los primeros sistemas operativos eran muy diferentes a los de hoy.
Los inicios de las computadoras (1945-1965)
Al principio (entre 1945 y 1954), las computadoras eran máquinas enormes que los programadores manejaban directamente. En la década siguiente (1955-1965), el hardware mejoró mucho con la aparición de lectoras de tarjetas, impresoras y cintas magnéticas. Esto llevó a que el software también avanzara, con programas como los compiladores y los cargadores.
A finales de los años 80, computadoras como la Commodore Amiga con accesorios especiales podían crear efectos de video impresionantes, que antes solo se lograban con equipos muy caros. Esto ayudó a producir efectos para programas de televisión y películas famosas.
Primeros desafíos y soluciones
Uno de los problemas de las primeras computadoras era que no se usaban al máximo. Para solucionarlo, se contrató a operadores profesionales que manejaban las máquinas. Ellos agrupaban los trabajos manualmente en "lotes" para ejecutarlos uno tras otro.
Monitores residentes
A medida que los programas se hicieron más complejos, se necesitaron soluciones automáticas. Así nacieron los "monitores residentes", que eran programas que se quedaban en la memoria de la computadora y gestionaban la fila de trabajos a ejecutar. Estos monitores incluían un cargador de programas, un intérprete de comandos y controladores para los dispositivos de entrada y salida.
Sistemas con almacenamiento temporal (búfers)
Con las mejoras en el hardware, se pudo hacer que la entrada y salida de datos de un programa se realizara al mismo tiempo que el programa hacía sus cálculos. Esto se logró usando "búfers", que son áreas de memoria donde los datos se guardan temporalmente. Así, mientras un programa escribe datos en un búfer, puede empezar a calcular con los datos de otro búfer.
Spoolers
La llegada de los discos magnéticos trajo nuevas mejoras. Los discos podían simular varias cintas magnéticas, lo que permitía guardar datos de dispositivos lentos de forma más eficiente. Esto llevó a la creación de los Spoolers (Simultaneous Peripheral Operation On-Line), que permitían que los cálculos de un trabajo se solaparan con la entrada/salida de otro trabajo, usando tablas en el disco.
Sistemas operativos multiprogramados
Un gran avance fue el hardware con protección de memoria. Esto permitió que varios programas pudieran estar en la memoria al mismo tiempo y que la CPU se asignara a cada uno de ellos. Con estos cambios, el monitor residente se convirtió en un sistema operativo multiprogramado, que ahora también administraba la memoria, planificaba el uso de la CPU y gestionaba los dispositivos de entrada/salida.
Llamadas al sistema
Cada sistema operativo tiene su propia forma de comunicarse con los programas, a través de lo que se llaman "llamadas al sistema". Estas llamadas son como un lenguaje especial que los programas usan para pedirle cosas al sistema operativo. Si un programa está hecho para un sistema operativo y lo intentas usar en otro, es posible que no funcione si las llamadas al sistema son diferentes.
Modos de ejecución en la CPU
La CPU (el procesador) tiene al menos dos modos de funcionamiento:
- Modo usuario: Aquí, los programas normales solo pueden usar un conjunto limitado de instrucciones.
- Modo supervisor: Este modo es para el sistema operativo, que puede usar todas las instrucciones de la CPU. Esto es importante para la seguridad y para que los programas no puedan dañar el sistema.
Bibliotecas de interfaz de llamadas al sistema
Para que sea más fácil para los programadores usar las llamadas al sistema, existen las "bibliotecas de interfaz". Son colecciones de funciones que los programadores pueden usar en sus programas. Cuando un programa llama a una de estas funciones, la función se encarga de hacer la llamada al sistema real.
Interrupciones y excepciones
El sistema operativo no solo usa el hardware cuando los programas se lo piden. A veces, el hardware necesita que el sistema operativo actúe. Esto puede ocurrir por dos razones:
- Interrupción: Una señal que un dispositivo (como una impresora) envía a la CPU para avisar que ha terminado una tarea.
- Excepción: Un error que la CPU detecta mientras ejecuta una instrucción de un programa (por ejemplo, si un programa intenta dividir por cero).
En ambos casos, el sistema operativo interviene para manejar la situación.
Tratamiento de las interrupciones
Cuando ocurre una interrupción, la CPU termina la instrucción que estaba ejecutando y luego el sistema operativo identifica qué dispositivo la causó para atenderlo. Esto es muy útil porque la CPU no tiene que estar revisando constantemente si los dispositivos han terminado sus tareas; el dispositivo le avisa cuando necesita atención.
Importancia de las interrupciones
Las interrupciones permiten que el sistema operativo use la CPU para un programa mientras otro espera que un dispositivo termine su trabajo. Cuando el dispositivo termina, el hardware avisa al sistema operativo, y este puede decidir si el programa que estaba esperando puede seguir ejecutándose.
Excepciones
Si la CPU intenta ejecutar una instrucción que está mal hecha o no está permitida, se produce una excepción. A diferencia de una interrupción, la instrucción que causó el problema se detiene. Las excepciones son clave para evitar que los programas hagan cosas que no deben y para proteger el sistema. El sistema operativo es quien decide cómo manejar estas situaciones, a veces incluso deteniendo el programa que causó la excepción.
Componentes de un sistema operativo
Todos los componentes de un sistema operativo trabajan juntos para que las diferentes partes de una computadora funcionen. Todo el software que usas necesita pasar por el sistema operativo para poder usar cualquier parte del hardware, desde un ratón hasta la conexión a internet.
Núcleo (Kernel)
En informática, un núcleo o kernel (de la raíz germánica Kern, 'núcleo', 'hueso') es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiprogramación. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
En algunos sistemas operativos, no existe un núcleo como tal (algo común en sistemas empotrados), debido a que en ciertas arquitecturas no hay distintos modos de ejecución.
Controladores de dispositivos (Drivers)
Un controlador de dispositivo o manejador de dispositivo (en inglés: device driver, o simplemente driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz (posiblemente estandarizada) para utilizar el dispositivo.
Es una pieza esencial del software, y en particular, del núcleo de un sistema operativo, sin la cual el hardware sería inutilizable.
Gestión de procesos
Un proceso es un programa que se está ejecutando y necesita recursos como tiempo de CPU, memoria o acceso a archivos. El sistema operativo se encarga de:
- Crear y detener procesos.
- Pausar y reanudar procesos.
- Permitir que los procesos se comuniquen y trabajen juntos.
Imagina que tienes una lista de tareas en la oficina con diferentes prioridades (alta, media, baja). El sistema operativo es como el encargado que decide qué tarea hacer primero. Para evitar que las tareas de baja prioridad nunca se hagan, el sistema operativo puede darles más prioridad si llevan mucho tiempo esperando.
Gestión de la memoria
La gestión de memoria o administración de memoria es el acto de gestionar la memoria de un dispositivo informático. El proceso de asignación de memoria a los programas que la solicitan.
Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema.
El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de una computadora de forma explícita.
La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operación principal que realiza es trasladar la información que deberá ser ejecutada por la unidad central de procesamiento o procesador, a la memoria principal. Actualmente esta administración se conoce como memoria virtual, porque no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, por lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.
Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.
Entre las principales operaciones que desarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.
Gestión del almacenamiento secundario
Como la memoria principal (RAM) es temporal y pequeña, se necesita un sistema de almacenamiento secundario (como el disco duro) para guardar todos los programas y datos de forma permanente. El sistema operativo se encarga de:
- Organizar los discos.
- Gestionar el espacio libre.
- Asignar dónde se guardan los datos.
- Asegurarse de que los datos se guarden correctamente.
Sistema de entrada y salida
Este sistema incluye una memoria temporal (caché) y las interfaces para los controladores de dispositivos. El sistema operativo gestiona esta memoria temporal y atiende las interrupciones de los dispositivos de entrada y salida.
Sistema de archivos
Un sistema de archivos o sistema de ficheros, (file system: fs), en informática, es un elemento que controla cómo se almacenan y recuperan los datos. Sin un sistema de archivos, los datos colocados en un medio de almacenamiento serían un gran cuerpo de datos sin manera de saber dónde termina un dato y comienza el siguiente. Es el encargado de administrar y facilitar el uso de las memorias periféricas o internas, ya sean secundarias o terciarias.
Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio libre y del acceso a los datos resguardados. Estructuran la información guardada en un dispositivo de almacenamiento de datos o unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos.
La mayoría de los sistemas operativos manejan su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud (también denominados clústers). El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red de computadoras (sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso (access control list, ACL) o capacidades. Las ACL hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales todavía funcionan con listas de control de acceso.
Existen diferentes tipos de sistemas de archivos, que son distintas maneras de organizar la información en los discos de las computadoras. Algunos ejemplos son FAT, FAT32, ext3, ext4, NTFS y XFS.
Sistemas de protección
El sistema operativo tiene mecanismos para controlar quién puede acceder a los recursos del sistema. Se encarga de:
- Diferenciar entre el uso permitido y el no permitido.
- Establecer las reglas de seguridad.
- Asegurar que estas reglas se cumplan.
Sistema de comunicaciones
Para que tu dispositivo pueda comunicarse con otros (por ejemplo, a través de internet), el sistema operativo controla el envío y la recepción de información. También crea y mantiene los puntos de comunicación para que las aplicaciones puedan intercambiar datos, incluso con aplicaciones que están en otros dispositivos.
Programas de sistema
Estos son programas útiles que vienen con el sistema operativo, pero no son parte esencial de él. Ayudan a los usuarios a trabajar con el sistema, por ejemplo, manipulando archivos, mostrando información del sistema o facilitando la comunicación.
Gestor de recursos
Como gestor de recursos, el sistema operativo administra:
- La unidad central de procesamiento (CPU).
- Los dispositivos de entrada y salida (como el teclado o la impresora).
- La memoria principal (RAM).
- Los discos (almacenamiento secundario).
- Los procesos (programas en ejecución).
Interfaz de usuario
La interfaz de usuario, o IU (del inglés User Interface, UI), es el medio que permite la comunicación entre un usuario y una máquina, equipo, computadora o dispositivo, y comprende todos los puntos de contacto entre el usuario y el equipo.
Normalmente suelen ser fáciles de entender y fáciles de accionar, aunque en el ámbito de la informática es preferible referirse a que suelen ser "usables", "amigables e intuitivos" porque es compleja.
Clasificación de los sistemas operativos
Los sistemas operativos se pueden clasificar según cómo administran las tareas, los usuarios y los recursos.
Administración de tareas
- Monotarea: Solo permite ejecutar un programa a la vez (además de los programas propios del sistema operativo). Una vez que empieza un programa, lo termina antes de pasar a otro.
- Multitarea: Puede ejecutar varios programas al mismo tiempo. El sistema operativo reparte los recursos (CPU, memoria) entre ellos, haciendo que parezca que todos funcionan a la vez. Esto mejora el rendimiento, especialmente en computadoras con varios núcleos de CPU.
Administración de usuarios
- Monousuario: Solo permite que un usuario use los programas a la vez.
- Multiusuario: Permite que varios usuarios usen la computadora al mismo tiempo, accediendo a sus propios programas y datos. Estos sistemas suelen tener protección para que los datos de un usuario no sean afectados por otro.
Administración de sesiones
- Monosesión: Solo permite una sesión de usuario a la vez. Ejemplos antiguos son Windows 95 o Windows 98.
- Multisesión: Permite que varios usuarios tengan sus sesiones abiertas al mismo tiempo. Esto es común en servidores y en muchas versiones de Linux.
Manejo de recursos
- Centralizado: Solo usa los recursos de una única computadora.
- Distribuido: Puede usar los recursos (memoria, CPU, discos) de varias computadoras al mismo tiempo, como si fueran una sola.
Diferencia entre núcleo y sistema operativo
A veces, la gente confunde el "núcleo" (o kernel) con el sistema operativo completo. El núcleo es una parte fundamental del sistema operativo, pero no es todo el sistema. El sistema operativo incluye el núcleo más muchas otras herramientas y programas que nos permiten interactuar con la computadora, como el explorador de archivos o el navegador web.
Por ejemplo, en las distribuciones Linux, el núcleo Linux es solo una parte. El sistema operativo completo incluye muchas otras herramientas que hacen que sea fácil de usar. Esta distinción se hizo más clara a finales de los años 80, cuando las computadoras se diseñaron para ser más fáciles de usar en los hogares.
Sistemas operativos para PC
- Windows
- Mac OS
- Unix
- Solaris
- FreeBSD
- OpenBSD
- Slackware Linux (GNU/Linux)
- Android-x86 (GNU/Linux)
- Chrome OS (GNU/Linux)
- Debian GNU/Linux (GNU/Linux)
- Gentoo Linux (GNU/Linux)
- SUSE Linux (GNU/Linux)
- Red Hat Enterprise Linux (GNU/Linux)
- Ubuntu Linux (GNU/Linux)
- Elementary OS (GNU/Linux)
- Sabayon (GNU/Linux)
- Wave OS
- webOS
- Haiku (BeOS)
- Plan 9
- Freespire (GNU/Linux)
- HP-UX
- ReactOS
- BeOS 54
- Kali Linux (GNU/Linux)
- Arch Linux (GNU/Linux)
- LindowsOS/Linspire (GNU/Linux)
- HarmonyOS
- Mandriva (GNU/Linux)
- Fedora (GNU/Linux)
- Linpus Linux (GNU/Linux)
- FenOS
Sistemas operativos para dispositivos móviles
- Android
- iOS
- Bada
- BlackBerry OS
- BlackBerry 10
- Windows Phone
- Windows 10 Mobile
- Symbian OS
- HP webOS
- Firefox OS
- Ubuntu Phone OS
- Tizen
- Asha Platform
- Palm OS
- WebOS
- CyanogenMod
- LineageOS
- Sailfish OS
- HarmonyOS
- KaiOS
Sistemas operativos para relojes inteligentes
Galería de imágenes
-
Interacción entre el sistema operativo con el resto de las partes de un sistema informático.
Véase también
En inglés: Operating system Facts for Kids