robot de la enciclopedia para niños

Sistema operativo para niños

Enciclopedia 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.

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.

Archivo:Batchjobb Norwegian
Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial.

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

Archivo:Componentes sistemas operativos
Componentes del 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)

Archivo:Device-driver-es
Esquema de un subsistema de controladores de dispositivos como parte del «núcleo del sistema operativo», actuando como interfaz (controlador A) entre las “aplicaciones de usuario” y un dispositivo externo (dispositivo A).

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

Archivo:CLI-GUI-NUI, evolución de interfaces de usuario
Evolución de las interfaces de usuario.
CLI (Command line interface): Interfaz de línea de comandos
GUI (Graphical user interface): Interfaz gráfica de usuario
NUI (Natural user interface):

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

Sistemas operativos para dispositivos móviles

Sistemas operativos para relojes inteligentes

Galería de imágenes

Véase también

Kids robot.svg En inglés: Operating system Facts for Kids

kids search engine
Sistema operativo para Niños. Enciclopedia Kiddle.