Professional Documents
Culture Documents
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.
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?
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.
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.
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
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.
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.
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.
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.
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.
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.
Philips HDR312 TiVo 30-Hour Digital Video Recorder and Linksys EZXS55W EtherFast 10/100 5-Port Workgroup Switch