You are on page 1of 14

Cmo funcionan los sistemas operativos

Introduccin
Cuando usted enciende su computadora, es correcto pensar que usted tiene el control. Ah est el ratn de la computadora , que puede mover a cualquier lugar de la pantalla, abrir su biblioteca de msica o el navegador de Internet a su antojo. Aunque es fcil sentirse como un director de orquesta frente a su computadora de escritorio o porttil, hay muchas cosas que estn sucediendo en el interior, y el verdadero operario detrs de la cortina de la ejecucin de las tareas necesarias es el sistema operativo. La mayora de las PCs de escritorio o porttil viene pre-cargadas con Microsoft Windows como sistema operativo. Las computadoras Macintosh vienen pre-cargados con Mac OS X. Muchos servidores corporativos usan Linux o UNIX. El sistema operativo (OS) es lo primero que se carga en la computadora - sin el sistema operativo, una computadora es intil. Ms recientemente, los sistemas operativos han comenzado a aparecer en ordenadores ms pequeos tambin. Si le gusta reparar aparatos electrnicos, es probable que este familiarizado con que los sistemas operativos se pueden encontrar en muchos de los dispositivos que usamos todos los das, desde telfonos celulares hasta los puntos de acceso inalmbricos (routers WiFi). Las computadoras utilizadas en estos pequeos dispositivos se han vuelto tan poderosos que pueden ahora realmente ejecutar un sistema operativo y aplicaciones (programas). El ordenador en un moderno telfono celular tpico es ahora ms potente que un ordenador de escritorio de hace 20 aos, este avance es producto del desarrollo tecnolgico. El propsito de un sistema operativo es el de organizar y controlar el hardware y el software para que el dispositivo se comporte de una manera flexible pero previsible. En este artculo, se explicara lo que un software tiene que hacer para ser llamado sistema operativo, se mostrara cmo funciona el sistema operativo en su computadora de escritorio y darle algunos ejemplos de cmo usar de otros sistemas operativos en uso.

Que es un sistema operativo?


No todos los ordenadores tienen sistemas operativos. El ordenador que controla el horno de microondas en la cocina, por ejemplo, no necesita un sistema operativo. Tiene un conjunto de tareas a realizar, con una forma muy fcil de operar (un teclado numrico y un pequeo conjunto de botones ) y un hardware simple, que nunca cambia en la forma que se controla. Para un equipo como este, un sistema operativo sera un aditamento innecesario, lo que aumenta el desarrollo y los costes de produccin significativamente, aadiendo complejidad donde no se requiere ninguna. En cambio, el ordenador en un horno de microondas simplemente ejecuta un solo programa cableado todo el tiempo. Para otros dispositivos, un sistema operativo crea la posibilidad de: Servir a una variedad de propsitos Interactuar con los usuarios de maneras ms o menos complejas Cumplir con necesidades que cambian todo el tiempo Todas las computadoras de escritorio tienen sistemas operativos. Los ms comunes son la familia de sistemas operativos Windows de Microsoft, los sistemas operativos Macintosh desarrollados por Apple y la familia de sistemas operativos UNIX (que han

sido desarrollados por todo un conjunto de individuos, empresas y colaboradores). Hay cientos de otros sistemas operativos disponibles para aplicaciones de propsito especial, incluyendo especializaciones para mainframes, robtica, la industria manufacturera, sistemas de control en tiempo real y as sucesivamente. En cualquier dispositivo que tenga un sistema operativo, por lo general hay una manera de hacer cambios en cmo funciona el dispositivo. Esto est lejos de ser una feliz casualidad, una de las razones por la que los sistemas operativos se hacen de cdigo porttil y no de circuitos fsicos permanentes es para que puedan ser cambiados o modificados sin necesidad de descartar todo el dispositivo. Para un usuario de computadora de escritorio, esto significa que usted puede agregar una nueva actualizacin de seguridad, parches del sistema, una nueva aplicacin, o incluso un sistema operativo completamente nuevo en lugar de tirar su computadora y comenzar de nuevo con una nueva cuando se necesita hacer un cambio. Siempre y cuando usted entienda cmo funciona un sistema operativo y cmo utilizarlo, en muchos casos, puede cambiar algunas de las formas en que se comporta. Lo mismo ocurre con el telfono, tambin. Independientemente de en qu dispositivo se ejecuta un sistema operativo, Que puede hacer exactamente?

Funciones del sistema operativo


A nivel ms simple, un sistema operativo hace dos cosas: 1. Administra los recursos de hardware y software del sistema. En una computadora de escritorio, estos recursos incluyen cosas tales como el procesador, la memoria, el espacio en disco y ms (en un telefono celular esto incluye el teclado, la pantalla, la libreta de direcciones, el discado de nmeros, la batera y la conexin a la red). 2. Proporciona un sistema estable y consistente para que las aplicaciones se comuniquen con el hardware sin tener que conocer todos los detalles del hardware. La primera tarea, la gestin de los recursos de hardware y software, es muy importante, ya que diversos programas y perifricos compiten por la atencin de la unidad de procesamiento central (CPU) y demandan ancho de banda de la memoria, almacenamiento y entrada / salida (E / S) para su propios fines. En esta capacidad, el sistema operativo interpreta el papel del buen padre, asegurndose de que cada aplicacin obtenga los recursos necesarios mientras le presta atencin a todas las dems aplicaciones, as como dela administracin de la limitada capacidad del sistema para el mejor funcionamiento de todos los usuarios y aplicaciones. La segunda tarea, proporcionar una interfaz de aplicacin consistente, es especialmente importante si va a haber ms de uno de un tipo particular de ordenador usando el sistema operativo, o si el hardware que componen el equipo est siempre abierto al cambio. Una interfaz de programa de aplicacin (API) consistente permite a un desarrollador de software escribir una aplicacin en un equipo y tener un alto nivel de confianza que se ejecute en otro equipo del mismo tipo, aunque la cantidad de memoria o la cantidad de almacenamiento es diferentes en las dos mquinas. Incluso si un equipo en particular es nico, un sistema operativo puede asegurar que las aplicaciones continan ejecutndose cuando las actualizaciones de hardware y las actualizaciones de software se produzcan. Este es porque el sistema operativo - no la

aplicacin - se encarga de la gestin del hardware y la distribucin de sus recursos. Uno de los retos que enfrentan los desarrolladores es mantener sus sistemas operativos lo suficientemente flexible como para ejecutar el hardware de los miles de proveedores de fabricacin de equipos informticos. Los sistemas de hoy en da se pueden acomodar a miles de diferentes impresoras, discos duros y perifricos especiales en cualquier combinacin posible.

El sistema operativo controla cada tarea que su computadora llleva a cabo y administra los recursos del sistema.

Tipos de sistemas operativos


Dentro de la amplia familia de sistemas operativos, en general hay cuatro tipos, clasificados por el tipo de ordenadores que controlan y el tipo de aplicaciones que soportan. Las categoras son las siguientes:

Sistema operativo en tiempo real (RTOS) Los sistemas operativos en tiempo real de utilizan para el control de maquinaria, instrumentos cientficos y sistemas industriales. Un RTOS tpicamente tiene muy poca capacidad de interfaz de usuario, y no hay utilidades para el usuario final, ya que el sistema ser una "caja cerrada" cuando se entrega para su uso. Una parte muy importante de un RTOS es la gestin de los recursos de la computadora de modo que una operacin determinada se ejecute exactamente en la misma cantidad de tiempo, cada vez que ocurre. En una mquina compleja, que tiene una parte movindose con mayor rapidez porque los recursos del sistema estn disponibles pueden ser tan catastrficos como que no se mueva en absoluto, porque el sistema est ocupado. Un solo usuario, una nica tarea - Como su nombre lo indica, este sistema operativo est diseado para administrar el equipo para que un usuario puede efectivamente hacer una cosa a la vez. El sistema operativo Palm OS de las computadoras de mano (Palm) es un buen ejemplo de un sistema operativo de un solo usuario, una sola tarea. Un solo usuario, mltiples tareas - Este es el tipo de sistema operativo que la gente ms usa en sus computadoras de escritorio y porttiles en la actualidad. Microsoft Windows y las plataformas de Apple MacOS son ejemplos de sistemas operativos que permite a un usuario solo tener varios programas en funcionamiento al mismo tiempo. Por ejemplo, es perfectamente posible para usuario de Windows escribir una nota en un procesador de texto mientras se

descarga un archivo desde Internet mientras se imprime el texto de un mensaje de correo electrnico. Multiusuario - Un sistema operativo multi-usuario permite que varios usuarios aprovechen los recursos de la computadora al mismo tiempo. El sistema operativo debe asegurarse de que los requerimientos de los diferentes usuarios estn balanceados, y que cada uno de los programas que estn utilizando tiene los recursos suficientes y separados para que un problema con un usuario no afecta a toda la comunidad de usuarios. Unix, VMS y los sistemas operativos de mainframe, como MVS, son ejemplos de sistemas operativos multi-usuario.

Captura de pantalla de Mac OS X Panther

Es importante diferenciar entre los sistemas operativos multi-usuario y sistemas operativos de un solo usuario que soportan capacidades de redes. Windows 2000 y Novell Netware cada uno puede soportar cientos o miles de usuarios de la red, pero los propios sistemas operativos no son verdaderos sistemas operativos multi-usuario. El administrador del sistema es el nico "usuario" para Windows 2000 o Netware. El soporte de red y todas las conexiones de usuarios remotos de la red que permite son, en el plan general del sistema operativo, un programa que est siendo ejecutado por el usuario administrador. Con los diferentes tipos de sistemas operativos en mente, es hora de mirar a las funciones bsicas que provee un sistema operativo

Sistemas operativos de computadoras


Cuando encienda una computadora, el primer programa que se ejecuta es por lo general un conjunto de instrucciones que se mantienen en la memoria de slo lectura del ordenador (ROM). Este cdigo analiza el hardware del sistema para asegurarse que todo funciona correctamente. Esta prueba de encendido (power-on self test POST) comprueba la CPU, la memoria y el sistema bsico de entrada-salida (BIOS) en busca de errores y almacena el resultado en una ubicacin de memoria especial. Una vez que el POST se ha completado con xito, el software cargado en la memoria ROM (a veces llamado el BIOS o firmware) comenzarn a activar las unidades de disco del

ordenador. En la mayora de las computadoras modernas, cuando el equipo activa la unidad de disco duro, este encuentra la primera pieza del sistema operativo: el cargador de arranque (bootstrap loader). El cargador de arranque es un pequeo programa que tiene una sola funcin: carga el sistema operativo en la memoria y permitir que comience a funcionar. En una forma ms bsica, el cargador de arranque inicializa los pequeos programas controladores que se interconectan con y controlan los diferentes subsistemas de hardware de la computadora. El establecen las divisiones de la memoria que contienen el sistema operativo, informacin de los usuarios y aplicaciones. Establece las estructuras de datos que contendrn las mltiples seales, las banderas y los semforos que se utilizan para comunicarse dentro y entre los subsistemas y las aplicaciones de la computadora. Luego le pasa el control del ordenador al sistema operativo. Las tareas del sistema operativo, en el sentido ms general, se dividen en seis categoras:

Administracin del procesador Administracin de la memoria Administracin de los dispositivos Administracin del almacenamiento Comunicacin con las aplicaciones Comunicacin con el usuario

Si bien hay algunos que sostienen que un sistema operativo debe hacer ms que estas seis tareas, y algunos proveedores de sistemas operativos desarrollan muchos mas programas utilitarios y muchas ms funciones auxiliares en sus sistemas operativos, estas seis tareas definen el ncleo de casi todos los sistemas operativos. A continuacin, echemos un vistazo a las herramientas que utiliza el sistema operativo para realizar cada una de estas funciones.

Administracin del Procesador


El nucleo de la gestin del procesador se reduce a dos cuestiones relacionadas:

Asegurar que cada proceso y aplicacin recibe suficiente cantidad de tiempo del procesador para funcionar correctamente Usar la mayor cantidad de ciclos de procesador como sea posible para el trabajo concreto

La unidad bsica de software con que el sistema operativo puede atender la lista de los trabajos realizados por el procesador es o un proceso o un hilo (thread), dependiendo del sistema operativo. Es tentador pensar en un proceso como una aplicacin, pero esto ofrece una imagen incompleta de cmo los procesos se relacionan con el sistema operativo y hardware. La aplicacin que usted ve (procesador de textos, hoja de clculo o un juego) es, en efecto, un proceso, pero esa aplicacin puede causar que muchos otros procesos comiencen, para tareas como la comunicacin con otros dispositivos u otros equipos. Tambin hay numerosos procesos que se ejecutan sin darle una evidencia directa de que existen. Por ejemplo, Windows XP y UNIX pueden tener docenas de procesos en segundo plano en ejecucin para manejar la red, gestionar la memoria, gestionar los discos, controlar virus y as sucesivamente.

Un proceso, entonces, es un software que realiza alguna accin y se puede controlar por un usuario, por otras aplicaciones o por el sistema operativo. Se trata de procesos, en lugar de aplicaciones, los que el sistema operativo controla y ordena para su ejecucin por la CPU. En un sistema mono tarea, la lista de procesos a ejecutarse es muy sencilla. El sistema operativo permite a la aplicacin empezar a ejecutarse, suspendiendo la ejecucin slo el tiempo suficiente para hacer frente a las interrupciones y las entradas del usuario. Las interrupciones son seales especiales enviadas por hardware o software para la CPU. Es como si una parte del equipo de repente levantara su mano para pedir la atencin de la CPU de una reunin muy animada. A veces el sistema operativo puede ordenar la prioridad de los procesos de modo que las interrupciones estn enmascaradas - es decir, el sistema operativo ignorar las interrupciones de algunas fuentes para que un trabajo en particular se puede acabar tan pronto como sea posible. Hay algunas interrupciones (como las condiciones de error o problemas con la memoria) que son tan importantes que no pueden ser ignorados. Estas interrupciones no enmascarables (NMIs) deben ser tratadas inmediatamente, independientemente de las otras tareas que se estan ejecutando. Mientras las interrupciones aaden un poco de complicacin para la ejecucin de procesos en un sistema monotarea, el trabajo del sistema operativo se vuelve mucho ms complicado en un sistema multitarea. Ahora, el sistema operativo debe disponer la ejecucin de las aplicaciones de modo que usted cree que hay varias cosas sucediendo al mismo tiempo. Esto se complica debido a que la CPU slo puede hacer una cosa a la vez. Hoy los procesadores multi-ncleo y las mquinas multi-procesador puede manejar ms trabajo, pero cada ncleo del procesador sigue siendo capaz de manejar una tarea a la vez. Con el fin de dar la apariencia de que un montn de cosas estn sucediendo al mismo tiempo, el sistema operativo tiene que cambiar entre diferentes procesos miles de veces por segundo. As es como ocurre:

Un proceso ocupa una cierta cantidad de memoria RAM. Tambin hace uso de los registros, pilas y colas en la CPU y espacio en memoria del sistema operativo. Cuando dos procesos son multitarea, el sistema operativo asigna un cierto nmero de ciclos de ejecucin de la CPU a un programa. Despus de este nmero de ciclos, el sistema operativo hace copias de todos los registros, pilas y colas utilizadas por el proceso, y seala el punto en que el proceso se detuvo en su ejecucin. A continuacin, carga todos los registros, pilas y colas utilizadas por el segundo proceso y asigna un cierto nmero de ciclos de CPU. Cuando estos se completan, hace copias de todos los registros, pilas y colas utilizadas por el segundo programa, y carga el primer programa.

Bloque de control del proceso


Toda la informacin necesaria para realizar el seguimiento de un proceso cuando es intercambiado se guarda en un paquete de datos llamada bloque de control del proceso. El bloque de control de procesos por lo general contiene:

Un nmero que identifica el proceso

Punteros (que apuntan) a las ubicaciones en el programa y sus datos cuando el ultimo procesamiento se produjo Contenidos del registro Estados de varias banderas y conmutaciones Punteros a los lmites superior e inferior de la memoria requerida por el proceso Una lista de archivos abiertos por el proceso La prioridad del proceso El estado de todos los dispositivos E/S usados por el proceso

Cada proceso tiene un estado asociado con l. Muchos de los procesos no consumen tiempo de CPU hasta que recibe algn tipo de entrada. Por ejemplo, un proceso puede estar esperando el uso del teclado por el usuario. A pesar de que est esperando a que el teclado sea utilizado, no utiliza tiempo de la CPU. Mientras est esperando, esta "suspendido". Cuando llegan datos del teclado, el sistema operativo cambia su estado. Cuando el estado del proceso cambia, desde en espera a activo, por ejemplo, o de suspensin a ejecucin, la informacin en el bloque de control del proceso se debe utilizar como los datos en cualquier otro programa para encaminar la ejecucin de la parte de cambio de tareas del sistema operativo. Este proceso de intercambio que ocurre sin la interferencia directa del usuario, y cada proceso obtiene suficiente ciclos de CPU para realizar su tarea en un perodo razonable de tiempo. Los problemas pueden comenzar si el usuario intenta tener demasiados procesos funcionando al mismo tiempo. El sistema operativo en s mismo requiere algunos ciclos de CPU para llevar a cabo el guardado y el intercambio de todos los registros, las colas y las pilas de los procesos de aplicacin. Si se inician suficientes procesos, y si el sistema operativo no ha sido cuidadosamente diseado, el sistema puede empezar a utilizar la gran mayora de sus ciclos de CPU disponibles para cambiar entre los procesos ms que en ejecutar los procesos. Cuando esto sucede, se produce un bloqueo, y por lo general requiere de algn tipo de intervencin directa del usuario para detener los procesos y poner orden en el sistema. Una manera en que los diseadores del sistema operativo reducen la posibilidad de bloqueo es mediante la reduccin de la necesidad de nuevos procesos para realizar diversas tareas. Algunos sistemas operativos permiten un "proceso-lite", llamado hilo, que puede hacer frente a todo el trabajo intensivo de la CPU de un proceso normal, pero en general no se ocupa de los distintos tipos de E / S y no establece las estructuras que requiere el amplio bloque de control del proceso de un proceso regular. Un proceso puede iniciar hilos o procesos, pero un hilo no puede iniciar un proceso. Hasta ahora, todos los temas de los que hemos hablado conciernen a una sola CPU. En un sistema con dos o ms CPU, el sistema operativo debe dividir la carga de trabajo entre las CPUs, tratando de equilibrar las demandas de los procesos requeridos con los ciclos disponibles en diferentes CPUs. Los sistemas operativos asimtricos utilizan un CPU para sus propias necesidades y dividen los procesos de aplicacin entre las CPUs restante. Los sistemas operativos simtricos se dividen entre las diferentes CPUs, balaceando la demanda versus disponibilidad de la CPU, incluso cuando el sistema operativo en s mismo es todo lo que se est ejecutando. Si el sistema operativo es el nico software con necesidades de ejecucin, la CPU no es el nico recurso para ser gestionado. La gestin de la memoria es el siguiente paso crucial en asegurar que todos los procesos se ejecutan sin problemas.

Almacenamiento y gestin de la memoria


Cuando un sistema operativo gestiona la memoria del ordenador, hay dos tareas importantes a cumplir: 1. Cada proceso debe tener suficiente memoria en la cual ejecutarse, y no se puede ejecutar en el espacio de memoria de otro proceso, ni ser ejecutado por otro proceso 2. Los diferentes tipos de memoria en el sistema deben ser utilizado correctamente para que cada proceso puede ejecutarse con mayor eficacia. La primera tarea requiere que el sistema operativo establezca los lmites de memoria para los tipos de software y para aplicaciones individuales. Como ejemplo, echemos un vistazo a un pequeo sistema imaginario con 1 megabyte (1000 kilobytes) de RAM. Durante el proceso de arranque, el sistema operativo de nuestro ordenador imaginario est diseado para ir a la parte superior de la memoria disponible y "respaldarse" lo suficiente como para satisfacer las necesidades del propio sistema operativo. Digamos que el sistema operativo necesita para ejecutarse 300 kilobytes. Ahora, el sistema operativo va la parte ms baja de la RAM y comienza a desplegar los variados programas controladores necesarios para el control de los subsistemas de hardware del equipo. En nuestro ordenador imaginario, los controladores toman hasta 200 kilobytes. As que despus de tener el sistema operativo completamente cargado, hay 500 kilobytes restantes para los procesos de aplicacin. Cuando las aplicaciones comienzan a ser cargado en la memoria, se cargan en bloques de tamao determinado por el sistema operativo. Si el tamao del bloque es de 2 kilobytes, entonces cada proceso que se carga se le dar un trozo de memoria que es un mltiplo de 2 kilobytes de tamao. Las aplicaciones sern cargadas en estos bloques de tamao fijo, con los bloques empezando y finalizando en los lmites establecidos por las palabras de 4 o 8 bytes. Estos bloques y los lmites ayudan a garantizar que las aplicaciones no se cargarn en la parte superior de otro espacio por un mal calculado de uno o dos bit. Con esto asegurado, la pregunta ms importante es qu hacer cuando el espacio de aplicacin de 500 kilobytes se llena. En la mayora de las computadoras, es posible aadir ms memoria ms all de la capacidad original. Por ejemplo, se podra ampliar la RAM desde 2 hasta 8 gigabytes. Esto funciona bien, pero puede ser relativamente caro. Tambin pasa por alto un hecho fundamental de la informtica - la mayor parte de la informacin que una aplicacin almacena en la memoria no se est utilizando en un momento dado. Un procesador slo puede acceder a un lugar de la memoria en un momento, por lo que la gran mayora de las RAM no se utiliza en algn momento. Dado que el espacio de disco es barato en comparacin con la RAM, entonces, mover la informacin en la memoria RAM al disco duro puede ampliar enormemente el espacio de memoria RAM, sin costo alguno. Esta tcnica se llama gestin de memoria virtual. El almacenamiento en disco es slo uno de los tipos de memoria que deben ser gestionados por el sistema operativo, y es tambin el ms lento. Clasificado en orden a la velocidad, los tipos de memoria en un sistema informtico son los siguientes:

Cache de alta velocidad -- Se trata de cantidades relativamente pequea de memoria rpida que estn disponibles para la CPU a travs de las conexiones ms rpidas. Controladores de memoria cach predicen qu partes de los datos

de la CPU se necesita prximamente y los descargan de la memoria principal de a la memoria cach de alta velocidad para acelerar el rendimiento del sistema. Memoria principal Esta es la memoria RAM que usted ve medida en Gigabytes cuando enciende una computadora. Memoria secundaria -- Esto es lo ms a menudo algn tipo de almacenamiento magntico de rotacin que mantiene las aplicaciones y los datos disponibles para ser utilizados, y sirve como RAM virtual bajo el control del sistema operativo (discos rigidos).

El sistema operativo debe equilibrar las necesidades de los distintos procesos con la disponibilidad de los diferentes tipos de memoria, moviendo datos en bloques (llamados pginas) entre la memoria disponible como el orden de los procesos dicte.

Gestion de dispositivos
La comunicaacin entre el sistema operativo y prcticamente todo el hardware, no en la placa base del ordenador, pasa a travs de un programa especial llamado controlador (driver). Gran parte de la funcin de un controlador es la de ser el traductor entre las seales elctricas de los subsistemas de hardware y los lenguajes de programacin de alto nivel del sistema operativo y programas de aplicacin. Los controladores toman los datos que el sistema operativo ha definido como un archivo y las traducen en flujos de bits colocados en lugares especficos de los dispositivos de almacenamiento, o una serie de pulsos de lser en una impresora.

Un controlador ayuda al sistema operativo a comunicarse con las seales electricas del hardware de la computadora. Debido a que existen una amplia diferencia en tipos de hardware, hay diferencias en la forma en que los programas controladores funcionan. La mayora funcionan cuando el dispositivo es requerido, y funcionan de la misma forma que cualquier otro proceso. El sistema operativo asignara bloques de alta prioridad a los controladores para que los recursos de hardware puedan ser liberados y preparado para su uso posterior tan pronto como sea posible. Una de las razones por las que los controladores estn separados del sistema operativo es por que nuevas funciones se pueden agregar al controlador - y por lo tanto a los subsistemas de hardware - sin requerir que el propio sistema operativo sea modificado,

compilado y redistribuido. Mediante el desarrollo de nuevos controladores de dispositivos de hardware, desarrollo a menudo realizado o pagados por el fabricante de los subsistemas ms que por el desarrollador del sistema operativo, las capacidades de entrada / salida de todo el sistema pueden mejorarse enormemente. La gestin de entrada y salida es en gran medida una cuestin de gestin de colas (queues) y compensadores (buffers), equipamiento de almacenamiento especial que toman una secuencia de bits desde un dispositivo, tal vez un teclado o un puerto serie, guardan estos bits, y los liberan a la CPU a una velocidad con la que la CPU puede hacer frente. Esta funcin es especialmente importante cuando un gran nmero de procesos se estn ejecutando y ocupando el procesador. El sistema operativo le indicar a un buffer seguir tomando datos del dispositivo, pero que deje de enviar datos a la CPU, mientras que el proceso usando este dispositivo se ha suspendido. Entonces, cuando el proceso requiere nuevos datos es activado una vez ms, el sistema operativo ordenara al buffer que enve datos. Este procedimiento permite a un teclado o un mdem hacer frente a usuarios externos u ordenadores a gran velocidad a pesar de que hay momentos en que la CPU no puede utilizar los aportes desde esas fuentes. Gestionar todos los recursos del sistema informtico es una parte importante de la funcin del sistema operativo y, en el caso de los sistemas operativos en tiempo real, puede ser casi toda la funcionalidad requerida. Para otros sistemas operativos, sin embargo, proporcionar un mtodo relativamente simple, consistente para las aplicaciones y los seres humanos para usar la potencia del hardware es una parte fundamental de su razn de ser.

Interfaces de Programas de Aplicacin


Al igual que los controladores proporcionan una forma para que las aplicaciones hagan uso de los subsistemas de hardware sin tener que conocer todos los detalles de la operacin del hardware, las interfaces de programas de aplicacin (APIs) permiten a los programadores de aplicaciones utilizar las funciones de la computadora y del sistema operativo sin tener que hacer un seguimiento directo de todos los detalles de operacin de la CPU. Veamos el ejemplo de la creacin de un archivo en el disco duro para almacenar datos para ver por qu este tema puede ser importante. Un programador que escribe una aplicacin para grabar datos desde un instrumento cientfico quiere permitir al cientfico especificar el nombre del archivo creado. El sistema operativo puede ofrecer una funcin de la API llamado Makefile para crear archivos. Al escribir el programa, el programador puede insertar una lnea que tiene este aspecto: MakeFile [1, %Name, 2] En este ejemplo, la instruccin indica al sistema operativo crear un archivo que permite el acceso aleatorio a los datos (representado por el 1 - la otra opcin podra ser 0 para un archivo secuencial), tendr un nombre escrito por el usuario (%Name) y tendr un tamao que vara en funcin de la cantidad de datos almacenados en el archivo (representado por el 2 - otras opciones pueden ser cero para un tamao fijo, y 1 para un archivo que crece a medida que se agregan datos, pero no se contrae cuando se eliminan los datos). Ahora, echemos un vistazo a lo que hace el sistema operativo para convertir la instruccin en acciones concretas. El sistema operativo enva una consulta a la unidad de disco para obtener la ubicacin de la primera ubicacin disponible de almacenamiento libre.

Con esa informacin, el sistema operativo crea una entrada en el sistema de archivos que muestra el comienzo y el final de la ubicacin del archivo, el nombre del archivo, el tipo de archivo, si el archivo ha sido archivado, los usuarios que tienen permiso para ver o modificar el archivo y la fecha y hora de creacin del archivo. El sistema operativo escribe la informacin en el principio del archivo que identifica el archivo, establece el tipo de acceso posible, e incluye otro tipo de informacin que vincula el archivo a la aplicacin. En toda esta informacin, las consultas a la unidad de disco y direcciones del punto inicial y final del archivo estn en formatos muy dependientes del fabricante y el modelo de la unidad de disco. Debido a que el programador ha escrito el programa para utilizar la API de almacenamiento en disco, el programador no tiene que mantenerse al da con los cdigos de instruccin, los tipos de datos y cdigos de respuesta para cada disco duro y unidad de cinta. El sistema operativo, conectado a los controladores de los distintos subsistemas de hardware, hace frente a los cambiantes detalles del hardware. El programador slo debe escribir el cdigo para la API y confiar en que el sistema operativo haga el resto. Las APIs se han convertido en una de las zonas ms disputadas de la industria informtica en los ltimos aos. Las empresas se dan cuenta que los programadores que utilizan su API en ltima instancia se traducir en la capacidad de control y de obtener ganancias de una determinada parte de la industria. Esta es una de las razones por las que muchas empresas han estado dispuestas a proporcionar aplicaciones como lectores o visores al pblico sin costo alguno. Ellos saben que los consumidores solicitan que los programas saquen provecho de las aplicaciones libres, y las compaas de software estarn lista para pagar derechos de autor para permitir que su software provea las funciones solicitadas por los consumidores.

Interfaz de usuario
As como la API proporciona una forma consistente para que las aplicaciones utilizen los recursos del sistema informtico, una interfaz de usuario (UI) provee la estructura para la interaccin entre el usuario y el ordenador. En la ltima dcada, casi todo el desarrollo de interfaces de usuario ha estado en el rea de la interfaz grfica de usuario (GUI), con dos modelos, Apple Macintosh y Windows de Microsoft, recibiendo la mayor parte de la atencin y la obtencin de la mayor parte de la cuota de mercado. El popular sistema operativo de cdigo abierto Linux tambin soporta una interfaz grfica de usuario. Hay otras interfaces de usuario, algunas graficas y otras no, para otros sistemas operativos.

Captura de pantalla de Linux Red Hat Unix, por ejemplo, cuenta con interfaces de usuario llamado shells (cascara) que presentan una interfaz de usuario ms flexible y potente que la interfaz estndar de sistemas operativos basada en texto. Programas como el Korn Shell y el C Shell se basan en interfaces de texto que aaden utilidades importantes, pero su propsito principal es hacer que sea ms fcil para el usuario manipular las funciones del sistema operativo. Tambin hay interfaces grficas de usuario, como por ejemplo X-Windows y Gnome, que hacen a Unix y Linux mas parecidos a Windows y Macintosh desde el punto de vista del usuario. Es importante recordar que en todos estos ejemplos, la interfaz de usuario es un programa o conjunto de programas que se apoyan como una capa sobre el propio sistema operativo. Lo mismo ocurre, con mecanismos algo diferentes, tanto para Windows como para Macintosh. Las funciones principales - la gestin del hardware (controladores) - se encuentran en el ncleo del sistema operativo. El gestor de pantalla es independiente, aunque puede estar vinculada estrechamente al ncleo (kernel) que esta por debajo. Los lazos entre el ncleo del sistema operativo y la interfaz de usuario, utilidades y otros programas definen muchas de las diferencias en los sistemas operativos actuales, y las definirn an ms en el futuro.

Desarrrolo de Sistemas Operativos


Para sistemas de escritorio, el acceso a una LAN o a Internet se ha convertido en una caracterstica esperada, por lo que, en muchos sentidos, es difcil hablar de un sistema operativo sin hacer referencia a sus conexiones con otros ordenadores y servidores. Los desarrolladores de sistemas operativos han hecho de Internet el mtodo estndar para la entrega de actualizaciones cruciales del sistema operativo y correcciones de errores. Aunque es posible recibir estas actualizaciones a travs de CD o DVD, lo anterior se est convirtiendo cada vez mas en algo menos comn. De hecho, algunos sistemas operativos completos solo estn disponibles a travs de su distribucin en Internet.

Adems, un proceso llamado NetBooting (arranque a travs de la red) ha agilizado la capacidad para mover el sistema operativo de trabajo de una computadora de escritorio estndar - kernel, la interfaz de usuario y todo hacia fuera de la mquina que controla. Esto fue, previamente, slo posible para usuarios avanzados con experiencia en plataformas multiusuario como UNIX y con una suite de aplicaciones especializadas. El arranque a travs de la red (NetBooting) permite al sistema operativo de una computadora ser servido a travs una conexin de red, mediante un ordenador remoto conectado en cualquier lugar de la red. Un servidor NetBoot puede brindar sistemas operativos a varias docenas computadoras cliente simultneamente, y para el usuario sentado en frente de cada equipo cliente la experiencia es lo mismo que si estn usando su conocido sistema operativo de escritorio como Windows o Mac OS. Una de las preguntas sobre el futuro de los sistemas operativos se refiere a la capacidad de una determinada filosofa de distribucin de software para crear un sistema operativo utilizable por las empresas y consumidores conjuntamente. Linux, el sistema operativo creado y distribuido de acuerdo a los principios del cdigo abierto (open source), ha tenido un impacto significativo en el mundo de los sistemas operativos en general. La mayora de los sistemas operativos, los controladores y programas utilitarios han sido escritos por organizaciones comerciales que distribuyen versiones ejecutables de su software - versiones que no se puede estudiar o alterar. Los de cdigo abierto requiere la distribucin de los programas fuente originales que se pueden estudiar, modificar y fortalecer, siendo estas mejoras, una vez ms, de distribucin gratuita. En el mbito de computadora de escritorio, esto ha llevado a la elaboracin y distribucin de un sinnmero de aplicaciones tiles y gratuitas como el progama para la manipulacin de imgenes GIMP y el popular servidor web Apache. En el mbito de dispositivos de consumo, el uso de Linux ha allanado el camino para que los usuarios individuales tengan un mayor control sobre cmo se comportan sus dispositivos.

Logo de Linux Muchos dispositivos como telfonos celulares y routers deliberadamente ocultan el acceso al sistema operativo al usuario, sobre todo para asegurarse de que no sea inadvertidamente desconfigurado o quitado. En muchos casos, dejan abierto un "modo desarrollador" o un "modo programador" para permitir realizar cambios; no obstante, esto es slo si usted sabe cmo encontrarlo. A menudo estos sistemas pueden ser programados de tal manera que slo hay un nmero limitado de cambios que pueden ser realizados. Algunos dispositivos dejan tanto un modo de acceso y las forma de hacer

cambios de gran alcance abierto a los usuarios, especialmente aquellos que utilizan Linux. Aqu hay un par de ejemplos:

El DVR TiVo ejecuta en una versin modificada de Linux. Todas las modificaciones son de conocimiento pblico, y se puede descargar de un sitio web (http://support.tivo.com/), junto con algunas herramientas especiales para manipular el cdigo. Muchos usuarios de TiVo emprendedores han aadido la funcionalidad a sus sistemas, incluyendo desde el aumento de la capacidad de almacenamiento hasta permitir a las interfaces de UNIX cambiar el modo de PAL a NTSC.

Photo courtesy Amazon.com

Philips HDR312 TiVo 30-Hour Digital Video Recorder and Linksys EZXS55W EtherFast 10/100 5-Port Workgroup Switch

Muchos switches hogareos utilizan Linux como el Linksys EZXS55W.

You might also like