


























Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
hardware de computacion y sistemas informacion general
Tipo: Transcripciones
1 / 34
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
✓ Describir las tres categorías fundamentales de software y sus relaciones.
✓ Explicar la relación de los algoritmos con el software.
✓ Comentar los factores que hacen de una aplicación una herramienta útil.
✓ Describir el papel del sistema operativo en una computadora moderna.
✓ Esbozar la evolución de las interfaces de usuario, desde los primeros lenguajes de programación hasta las interfaces del futuro relacionadas con la realidad virtual.
✓ Actividades sobre cómo trabajan los sistemas operativos y el modo en el que se ejecutan los programas. ✓ Explicación mediante un vídeo de lo que es Linux y el motivo por el que puede querer utilizarlo. ✓ Se ejecuta un programa en una demo animada. ✓ Acceso instantáneo al glosario y a las referencias de palabras clave. ✓ Cuestionarios de autoestudio interactivos. ✓ Fuentes software gratis ... ... y más.
FUNDAMENTOS DEL SOFTWARE
El fantasma de la máquina
LINUS TORVALDS Y EL SOFTWARE QUE NO ES PROPIEDAD DE NADIE
CC CC
uando Linus Torvalds compró su primer PC en 1991, nunca pensó que iba a convertir- se en un arma fundamental en la guerra de liberación del software. Sólo quería evitar tener que esperar para conseguir un terminal que le permitiera conectar con el mainframe de su universidad. Torvalds, un estudiante de 21 años de la universidad de Helsinki en Fin- landia, había eludido comprar un PC porque no le gustaba «ni su pésima arquitectura ni su pésimo sistema operativo MS-DOS». Pero Torvalds había estudiado sistemas operativos, y decidió construirse uno propio. Basó su trabajo en Minix, una versión de libro de texto a baja escala del sistema opera- tivo UNIX diseñado para funcionar en un PC. Poco a poco, fue uniendo las piezas de un ker- nel , la parte del sistema operativo en el que se llevan a cabo realmente las tareas de pro- cesamiento y de control. Cuando comentó su proyecto en un foro de discusión de Internet, un miembro del mis- mo ofreció su espacio para colocarlo en un servidor de una universidad. Otros lo copiaron, se ocuparon ligeramente de él y le devolvieron los cambios a Torvalds. El trabajo en comu- nidad se convirtió eventualmente en lo que se conoce hoy en día como Linux (pronuncia- do por su creador como «Linn-uks»). En un par de años, fue lo suficientemente bueno como para distribuirse como producto. En lugar de registrar y vender Linux, Torvalds hizo que fuera totalmente libre bajo la GPL (Licencia pública general, General Public License ) desarrollada por la Free Software Foun- dation. Según la GPL, cualquiera puede obtener, modificar e incluso vender Linux, siempre que el código fuente (las instrucciones del programa) permanezca disponible de forma gra- tuita para el resto de personas que deseen mejorarlo. Linux es el mejor ejemplo de lo que se conoce como software de código abierto , y en la actualidad es la punta de lanza del popular movimiento a favor de este tipo de software. Miles de programadores de todo el mundo han trabajado con Linux, con Torvalds en el centro de la actividad. Algunos lo hacen porque creen que debería haber alternativas a los caros productos comerciales; otros porque pueden optimizar el software; y otros, simple- mente, porque es divertido. Como resultado de todos estos esfuerzos, Linux se ha conver- tido en un potente y versátil producto con millones de usuarios. En la actualidad, Linux impulsa servidores Web, estaciones de trabajo de filmación y ani- mación, supercomputadoras científicas, un puñado de computadoras de bolsillo, algunos PC de propósito general e incluso electrodomésticos inteligentes con acceso a Internet (por ejemplo, frigoríficos). Linux es especialmente popular en los lugares en los que se utiliza la informática con un bajo presupuesto, particularmente en países del Tercer Mundo. El éxito de Linux ha inspirado a Apple, Sun, Hewlett-Packard y otras empresas de soft- ware a liberalizar productos de código abierto. Incluso la todopoderosa Microsoft está pres- tando atención a medida que este sistema operativo está creciendo en popularidad, y ha respondido con una estrategia de código pseudo-abierto que incluye productos que com- piten directamente con Linux. En la actualidad, Torvalds es un héroe para la gente de Internet. Las páginas Web rin- den homenaje a su persona, a su creación y a Tux, el pingüino que se ha convertido en la mascota de Linux. En 1996, completó su titulación en informática y se puso a trabajar en Transmeta Corp, una compañía de diseño de chips ubicada en Silicon Valley. Sin embargo, aun gasta horas y horas de su tiempo conectado con las legiones Linux, mejorando un sis- tema operativo que pertenece a todo el mundo, y a nadie.
122 PA R T E 1 Introducción a las computadoras
No tenía ni idea de lo que estaba haciendo. Pensé que era el mejor programador del mundo. Todo programador de 21 años piensa así. «Cómo de duro puede ser, no es más que un sistema operativo». —Linus Torvalds
Procesamiento con programas
El software es invisible y complejo. Para tener claros los conceptos básicos, empezare- mos nuestra exploración de lo que es software con una analogía más cercana a nosotros.
Comida como idea
Piense en el hardware de una computadora como en la cocina de un restaurante de co- mida rápida: está preparada para producir cualquier cosa que el cliente (usuario) so- licite, pero permanece ociosa hasta que se realiza un pedido (comando). Roberto, el jefe informático de nuestra imaginaria cocina, actúa como la CPU, esperando las pe- ticiones de los usuarios/clientes. Cuando alguien suministra un comando de entrada (por ejemplo, pide una tortilla de patatas) Roberto responde siguiendo las instruccio- nes de la receta correspondiente. Como ya habrá supuesto, la receta es el software. Contiene las instrucciones ne- cesarias para que el hardware produzca la salida solicitada por el usuario. Si esa re- ceta es correcta, clara y precisa, el cocinero mezcla los datos de entrada (los huevos, la patata y cualquier otro ingrediente) para obtener la salida adecuada (la tortilla). En caso de que las instrucciones no sean claras, o si el software tiene errores, o bugs , la salida puede no ser la que el usuario desea. Por ejemplo, suponga que Roberto tiene la siguiente receta para hacer la «Mara- villosa Tortilla de Patata de la Abuela Enriqueta»:
Esta aparentemente correcta receta tiene varios fallos. El paso 1 dice que las pata- tas deben cortarse en rodajas finas, pero si no se especifica nada más, Roberto podría cortarlas sin haberlas pelado antes. El paso 2 no dice nada acerca de cascar el huevo; por tanto, nuestro cocinero podría batirlos junto con las cáscaras (lo que no resulta de- masiado agradable). El paso 3 tiene, al menos, dos errores. El primero hace referen- cia al huevo: si no se especifica nada más, Roberto podría pensar que éstos pueden mez- clarse enteros (sin «cascar»). El segundo tiene que ver con las patatas. Es preciso que éstas estén fritas para poder hacer la mezcla. Por tanto, Roberto debería saber está con- dición. No se olvide que nuestro cocinero, como cualquier buena computadora, sólo sigue las instrucciones que se le dan.
Una máquina rápida pero estúpida
Nuestro imaginario cocinero automatizado puede no parecer muy brillante, pero es con- siderablemente más inteligente que la CPU de cualquier computadora. Por lo gene- ral, suelen recibir el nombre de «máquinas inteligentes» aunque, en la realidad, son
Figura 4.1. La Maravillosa Tortilla de Patata de la Abuela Enriqueta
1. Cortar las patatas en rodajas finas y freírlas en aceite abundante. 2. Dependiendo de la textura que desee, batir unos seis huevos por cada kilo de patatas (si desea una tortilla más esponjosa, utilizar más huevos). 3. Mezclar los huevos con las patatas. 4. Una vez dorada, servir a trozos en un plato.
124 PA R T E 1 Introducción a las computadoras
Leonardo da Vinci llamó música a «la forma de lo invisible» y su frase es si cabe más idónea como descripción de software. —Alan Kay, creador del portátil y arquitecto de interfaces de usuario
La palabra más útil en un lenguaje de programación es «oops». —David Lubar, en It’s Not a Bug, It’s a Feature
dispositivos tremendamente limitados capaces de llevar a cabo sólo las operaciones aritméticas básicas (como 7 + 3 y 15 – 8) y algunas comparaciones lógicas simples («¿Es este número menor que éste otro?» «¿Son idénticos estos dos valores?»). Las computadoras parecen inteligentes porque pueden efectuar estas operaciones aritméticas y las comparaciones rápidamente y con precisión. Una computadora do- méstica típica puede realizar miles de operaciones en el tiempo que usted tarda en co- ger su bolígrafo y meterlo en el bolsillo. Un programa bien diseñado es el encargado de indicarle a la computadora que ejecute una secuencia de operaciones sencillas que, tomadas en conjunto, imprimen un informe, organizan las notas de los alumnos de una escuela o simulan un vuelo espacial. Sorpren- dentemente, todo lo que puede verse en una computadora es el resultado de una secuencia de operaciones aritméticas y lógicas extremada- mente simples. El desafío para los desarrolla- dores de software es inventar instrucciones que agrupen todas estas ordenes sencillas de modo que sean útiles. La receta de la tortilla de patata de la abue- la Enriqueta no es un programa informático, ya que no está escrito en un lenguaje que la má- quina pueda entender. Pero sí que podría ser considerado como un algoritmo : un conjunto de procedimientos secuenciales para llevar a cabo una tarea. Un programa suele iniciarse con un algoritmo escrito en cualquier lenguaje hu- mano (español, inglés, etc.). Al igual que nues- tra receta de la tortilla, el algoritmo inicial con- tendrá generalidades, ambigüedades y errores. El trabajo del programador es convertir el al- goritmo en un programa añadiéndole detalles, puliendo los fallos, verificando los procedi- mientos y depurando los errores. Por ejemplo, si convirtiéramos la receta en un programa, de- beríamos reescribirla tal y como se muestra a continuación. Es fundamental eliminar toda la ambigüedad que se pueda. Este factor, aunque tolerable y a veces útil en una conversación humana, es una fuente de errores en las computadoras. Es su for- ma original, la receta contiene la suficiente in- formación como para que cualquier cocinero realizara una estupenda tortilla de patatas, pero no es suficiente para un programa informático. Si tuviéramos que programar una computado- ra con el hardware de entrada capaz de recono- cer tortillas de patatas y los dispositivos de salida necesarios para cocinarlas, nos encon- traríamos con un detalle peliagudo: convertir
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 125
Figura 4.2. La Maravillosa Tortilla de Patata de la Abuela Enriqueta: el algoritmo
1. Cortar las patatas en rodajas finas y freírlas en aceite abundante. 1a. Coger varias patatas, a poder ser, no muy grandes. 1b. Pelarlas. 1c. Una vez peladas, lavarlas bien con agua y secarlas con un paño. 1d. Coger una sartén y poner en ella aceite abundante. 1a. Calentar el aceite. Cuando esté caliente, verter las patatas en la sartén. 2. Dependiendo de la textura que desee, batir unos seis huevos por cada kilo de patatas (si desea una tortilla más esponjosa, utilizar más huevos). 2a. Observar la fecha de caducidad de los huevos. 2b. Cascar los huevos. 2c. Verter el contenido en un recipiente de tamaño mediano y tirar las cáscaras al cubo de la basura. 2d. Sazonar al gusto. 2e. Batir hasta su completa homogeneización. 3. Mezclar los huevos con las patatas. 3a. Comprobar que las patatas están fritas: 3a1. Utilice un tenedor para pincharlas. 3a2. Evitar que queden demasiado fritas, pues no tomarán el huevo como es debido 3b. Sacar las patatas de la sartén. 3b1. En un plato limpio, colocar un trozo de papel de cocina que absorberá el aceite de las patatas. 3b2. Sacar las patatas de la sartén con una espumadera y colocarlas en el plato. 3c. Verter las patatas en el recipiente que contiene los huevos batidos. 4. Una vez dorada, servir a trozos en un plato. 4a. Dejar en la sartén una pequeña cantidad del aceite en el que se han frito las patatas. 4b. Verter la mezcla de patatas y huevo en la sartén. 4c. Una vez comprobado que está frita por ese lado, utilizar otro plato para sacarla de la sartén. 4d. Verter otra pequeña cantidad de aceite para freír el otro lado. 4e. Verter la parte sin freír en la sartén. 4f. Tras comprobar que está también frita, sacarla de la sartén, situarla en un plato limpio y cortarla a cuadrados o a picos, según el gusto.
bajos de los usuarios podrían hacerse sin necesidad de programación. La programa- ción hoy en día la suelen realizar los desarrolladores de software profesional, los cua- les emplean lenguajes de programación para crear y refinar las aplicaciones que el res- to de los mortales empleamos.
Aplicaciones. Herramientas
para los usuarios
Las aplicaciones de software permiten a los usuarios controlar sus computadoras sin pensar del mismo modo que los programadores. Vamos a centrar ahora nuestra aten- ción en ellas.
Aplicaciones para el usuario
Las tiendas de computadoras y software, las de productos electrónicos y las de venta por correo venden cientos de programas: software de autoedición, de contabilidad, de gráficos, gestores de información personal, herramientas multimedia, títulos educati- vos, juegos, etc. El proceso de compra de cualquier software es similar al de cualquier CD de mú- sica. Pero existen algunas sutiles diferencias que veremos a continuación.
Cualquier paquete de software debe incluir documentación impresa con las instruc- ciones a seguir para su instalación en el disco duro de la computadora. Algunos tam- bién disponen de tutoriales y manuales de referencia que explican cómo usarlo. Mu- chas compañías de software han sustituido estos documentos impresos por tutoriales, materiales de referencia y ficheros de ayuda que aparecen en la pantalla a petición del usuario. Muchos de estos ficheros de ayuda pueden actualizarse a través de una ayuda online disponible en el sitio Web de la empresa propietaria. Muchos progra- mas son tan fáciles de usar que pueden ponerse en marcha sin necesidad de leer la do- cumentación. Sin embargo, otros tienen características tan avanzadas que se hace di- fícil usarlos sin una lectura previa de dicha documentación.
La mayoría de empresas de software trabajan en la mejora de sus productos, eliminando fallos y añadiendo nuevas características. Como resultado de ello, es frecuente que apa- rezcan nuevas versiones de los programas más populares cada uno o dos años. Para distinguir cada una de estas versiones, los nombres de los programas suelen ir segui- dos por el número de versión, como 7.0 en Photoshop 7.0. Muchas compañías usan los decimales para indicar revisiones de menor importancia, dejando los valores en- teros para modificaciones de gran calado. Por ejemplo, podría asumirse que Adobe Premiere 5.1, un programa de edición de vídeo, sólo incluyera algunas nuevas características con relación a Premiere 5.0, mien- tras que Premiere 6.0 debería ser significativamente diferente a la versión 5.1. Sin em-
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 127
La computadora no es más que una cosa estúpida pero veloz, no tiene imaginación, no puede originar una acción. Sólo es, y será, una herramienta para los humanos. —Reacción de la American Library Association ante la computadora UNIVAC exhibida en la Exposición Mundial de Nueva York de 1964
128 PA R T E 1 Introducción a las computadoras
Muchos programas están compuestos de millones de sencillas instrucciones en código máquina. Aquí veremos el proceso de ejecución de una pequeña parte de un programa que realiza opera- ciones aritméticas. Las sentencias en có- digo máquina son similares a las de los programas actuales, pero los detalles se han omitido. La computadora ya tiene cargada (copiada) en su memoria la secuencia de ins- trucciones a ejecutar para que la CPU pueda verlas. Ésta va obteniendo y ejecutando las instrucciones de manera se- cuencial (desde unas direcciones de memoria consecutivas) a menos que se indique específicamente que se produzca un «salto» a algún otro sitio. La CPU está preparada para leer la siguiente instrucción desde la posición de memoria 100. Esta instrucción, y las ubicadas en las direcciones 101, 102 y 103, le indican a la CPU que lea un par de números de las posicio-
nes de memoria 2000 y 2001), los sume y almacene el resul- tado en la posición de memoria 2002). Traducido al español, las instrucciones tendrían el siguiente aspecto: (100) Recupera (lee) el número almacenado en la dirección de memoria 2000 (no el número 2000, sino el valor conte- nido en dicha posición) y sitúalo en un registro A. (101) Recupera el número almacenado en la dirección de memoria 2001 y sitúalo en un registro B. (102) Suma los contenidos de los registros A y B y el re- sultado lo colocas en un registro C. (103) Escribe (copia) el valor del registro C en la dirección de memoria 2002.
Para este ejemplo, supongamos que la dirección 2000 con- tiene el valor 7, y la 2001, el 9.
CÓM
OFUNCION A 4.1. Ejecución de un programa
A B C
99 100 101 102 103 104 1999 2000 2001
7 9
2002 2003
Copy A @ 2000Copy B @ 2001Add A, B CCopy @ 2002, C
Copiar Obtener
Registros
CPU
Unidad de Control ALU
7
RAM
1. Con la ayuda del bus, se recupera la instruc- ción de la dirección 100, se decodifica por medio de la unidad de control y se ejecuta. 2. Como resultado, el nú- mero de la posición 2000 (7) es copiado al registro A de la CPU. Figura 4.3a
bargo, no todo el software sigue este convenio lógico. Por ejemplo, las últimas ver- siones del sistema operativo de Microsoft han sido marcadas como Microsoft Win- dows 95 (versión 4.0), Windows 98 (4.1), Windows Millennium Edition (Windows Me, versión 4.9) y Windows XP Home Edition (5.1). Cuando se compra un programa, lo normal es adquirir la última versión. Cuando aparece una nueva, es posible actuali- zar dicho programa a esa nueva versión pagando unos cánones de actualización a la empresa propietaria.
El comprador de cualquier software debe preocuparse de los temas de compatibili- dad. Cuando se adquiere un CD de música no es preciso indicar la marca de su re- productor, ya que todos los fabricantes están adheridos a una serie de estándares de fabricación. Aunque no de forma general, también existen los estándares universales de software en el mundo informático, pero un programa escrito para un tipo de com- putadora puede que no funcione en otro. Los paquetes de software contienen etique- tas con mensajes como «Precisa Windows 9x, Me o XP con 128 MB de RAM» (la «x» es una especificación de versión generalmente significa «se sustituye por cualquier nu- mero»; por tanto, «Windows 9x» significa «Windows noventa- algo »). Estas indica- ciones no deben tomarse a la ligera; sin el hardware y software compatible, muchos programas son inservibles.
130 PA R T E 1 Introducción a las computadoras
Figura 4.4. La mayoría del software actual dispone de algún tipo de ayuda online bajo petición. Microsoft Windows ofrece datos sensibles al contexto (ventanas cuyo contenido varía en función de los que se encuentre en la pantalla). Muchas empresas, incluida Microsoft, usan bases de datos Web para aumentar la ayuda incluida con el sistema.
Según la letra pequeña de las garantías incluidas en muchos paquetes de software, al- gunas aplicaciones podrían ser técnicamente inservibles aun disponiendo de hardwa- re y software compatible. Éste es el primer párrafo de cualquier garantía de un soft- ware típico, el cual forma parte de un extenso EULA (Contrato de licencia de usuario final, End User License Agreement ) :
Este programa se distribuye tal como es, sin garantía de ningún tipo. Usted asu- me todos los riesgos derivados de su uso. En caso de demostrarse que el progra- ma resultase defectuoso, usted (y en ningún caso el fabricante o sus distribuido- res) asumirá los costes derivados del servicio, reparación o corrección. El fabricante no autoriza, garantiza ni hace ninguna representación respecto al uso, o como resultado del uso, del programa en términos de exactitud, precisión, fia- bilidad, y usted cuenta con el programa y con sus resultados bajo su propia res- ponsabilidad.
Las compañías de software se esconden tras las renuncias ya que nada está exen- to de un error de escritura en un programa. ¿Recuerda nuestros problemas a la hora de facilitar a Roberto un conjunto correcto de instrucciones para preparar una tortilla de patatas? Los programadores de aplicaciones, como un procesador de textos, deben anticiparse y responder a cualquier combinación de comandos y acciones llevadas a cabo por un usuario en cualquier situación. Dada la dificultad de la tarea, muchos pro- gramas trabajan sorprendentemente bien, aunque no perfectamente.
Cuando se adquiere cualquier paquete de software, usted realmente no está comprando ese software sino una licencia para usar el programa, generalmente en una sola má- quina. Aunque las licencias de usuario final varían de una compañía a otra, la ma- yoría incluyen limitaciones en cuanto a los derechos de copia de los discos, la insta- lación del software en los discos duros y la transferencia de información entre usuarios. Muchas compañías ofrecen licencias corporativas , las cuales permiten uti- lizar el software a toda una empresa, un colegio o a instituciones gubernamentales. Existen incluso empresas que alquilan software a clientes corporativos y a los go- biernos. Virtualmente, todo el software comercializado tiene un copyright , lo que signifi- ca que no puede duplicarse legalmente para su distribución a terceras personas. Al- gunos programas grabados en CD o en DVD (los de aparición más reciente) están fí- sicamente protegidos contra copia de modo que no pueden duplicarse de ninguna manera. Por lo general, la forma más habitual de proteger un programa contra su co- pia es solicitar al usuario que escriba su nombre y el número de serie del producto an- tes de que éste se ejecute por primera vez. Entre ambos extremos, algunos programas no funcionan adecuadamente hasta que el propietario registra la compra a través de Internet. Al ser la programación una tarea tan complicada, el desarrollo de software es caro. Los desarrolladores utilizan los copyrights y las protecciones contra copia para ase- gurar que venden el número suficiente de copias que les permita recuperar sus gastos en investigación y sus horas de permanencia en el trabajo.
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 131
de edición de vídeo van más allá de nuestra imaginación. Cualquier tipo de apli- cación que impulse las capacidades humanas es la fuerza impulsora que se es- conde tras la revolución informática.
Aplicaciones integradas y suites****.
Paquetes de software
Aunque la mayoría de los paquetes de software están especializados en una aplicación particular, como un procesador de textos o la edición fotográfica, los paquetes de soft- ware integrado de bajo precio incluyen varias aplicaciones diseñadas para trabajar juntas. Los más populares, como AppleWorks y Microsoft Works, suelen incluir un sencillo procesador de textos, una base de datos, una hoja de cálculo, gráficos, tele- comunicación y módulos PIM (Administración de información personal, Personal-In- formation Management ). Cada una de las partes que componen un paquete integrado puede que no dispon- gan de todas las características de sus equivalentes en solitario, pero aun así ofrecen muchas ventajas. Aplican un aspecto y comportamiento similar a todas sus aplicaciones para que el usuario no tenga que aprenderse distintos comandos y técnicas para reali- zar diferentes tareas. Los mejores paquetes integrados disuelven las líneas existentes entre las distintas aplicaciones para que, por ejemplo, una tabla repleta de cálculos pue- da incluirse en mitad de un informe sin necesidad de pasar de la hoja de cálculo al pro- cesador de textos. La comunicación entre aplicaciones permite una transferencia au-
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 133
Figura 4.5. Los procesadores de texto se basan en la metáfora visual de una máquina de escribir, aunque las versiones más modernas de estos programas permiten añadir fácilmente gráficos, vídeo e incluso enlaces web a un documento.
tomática de datos entre ellas, de modo que, por ejemplo, los cambios efectuados en una hoja de cálculo se reflejen automáticamente en un gráfico incrustado en un informe. Estas ventajas no son privilegio exclusivo de los paquetes integrados. Muchas compañías ofrecen suites de aplicaciones (paquetes que contienen varios programas de aplicación completos que también se venden por separado). La mejor suite , Mi- crosoft Office, está representada por diversas versiones diseñadas para distintos tipos de usuarios. Entre los programas principales de Microsoft Office podemos citar Mi- crosoft Word (procesador de textos), Excel (hoja de cálculo), PowerPoint (programa de presentaciones), Access (base de datos) y Outlook (cliente de correo electrónico que también sirve como agenda de información personal). Microsoft ha diseñado es- tas aplicaciones para que tengan estructuras de comandos similares y una comunica- ción entre aplicaciones sencilla. El precio de una suite como Microsoft Office es ge- neralmente inferior al que tendrían todos los programas por separado, pero mucho mayor que el de un paquete integrado como Microsoft Works. Las suites son más po- tentes que los paquetes integrados, pero también necesitan más requerimientos de me- moria, disco duro y CPU. Muchas de las computadoras más antiguas no tienen potencia suficiente como para ejecutar una de estas suites. Aun así, Microsoft Office es el paquete más utilizado en los PC modernos y en los Macintosh.
Software de mercado vertical y hecho a medida Gracias a su flexibilidad, los procesadores de texto, hojas de cálculo, bases de datos y programas gráficos son ampliamente utilizados en hogares, escuelas, oficinas esta-
134 PA R T E 1 Introducción a las computadoras
Figura 4.6. La suite de código abierto OpenOffice.org ofrece compatibilidad con documentos de Microsoft Office pero funciona en diversas plataformas, incluyendo Windows, Linux y el Mac OS.
Con frecuencia, las computadoras multiusuario procesan varios trabajos (o tareas) al mismo tiempo en un proceso conocido como procesamiento concurrente. Las má- quinas de procesamiento en paralelo usan múltiples CPU para procesar trabajos de for- ma simultanea. Pero cualquiera de nuestros PC sólo dispone de una CPU, por lo que ésta se ve obligada a cambiar rápidamente entre los distintos trabajos que tiene alma- cenados en la memoria en un momento determinado. La computadora se beneficia del tiempo de inactividad de un proceso (por ejemplo, la espera para la introducción de un dato) para trabajar con otro programa (Roberto, nuestro cocinero informatizado, prac- ticaría el procesamiento concurrente si troceara una pieza de fruta mientras espera a que las patatas se frían). Cualquier computadora de tiempo compartido utiliza el procesa- miento concurrente cuando varios usuarios están conectados al sistema. La máquina se mueve rápidamente de un terminal a otro, comprobando la entrada y procesando los da- tos de cada usuario por turno. Si un PC tiene capacidades multitarea , el usuario pue- de lanzar un comando que inicie un proceso (por ejemplo, imprimir este capitulo) y se- guir trabajando con otras aplicaciones mientras la computadora ejecuta dicho comando.
Cuando varios trabajos se están procesando de manera concurrente, el sistema opera- tivo debe controlar el modo en el que se está usando la memoria de la computadora y asegurarse de que ningún trabajo invade el espacio de otro. La administración de memoria se alcanza de muy diversas formas, desde sencillas rutinas que subdividen la memoria entre los distintos trabajos hasta elaborados es- quemas que intercambian temporalmente información entre la memoria de la com- putadora y cualquier dispositivo de almacenamiento externo. Una técnica habitual para tratar con la escasez de memoria es configurar una parte de un disco duro como me- moria virtual. Gracias al sistema operativo, este fragmento del disco se ve como si fuera la propia memoria de la máquina, aunque el tiempo de acceso es considerable- mente más lento que en el caso de la memoria propiamente dicha.
Muchos sistemas multiusuario están diseñados para cobrar a los usuarios los recursos que consumen. Estos sistemas mantienen estadísticas de utilización de máquina de cada usuario, solicitudes de almacenamiento y páginas impresas para que los programas de contabilidad puedan calcular e imprimir con exactitud las cuentas. Cada usuario sue- le estar identificado con un nombre y una contraseña, lo que permite al sistema mo- nitorizar y contabilizar estos consumo de forma individual. Incluso en entornos en los que la facturación no es un problema, el sistema operativo debe monitorizar los recursos para asegurar la privacidad y seguridad de los datos de cada usuario.
Además de actuar como guardia de tráfico, guardia de seguridad y contable, el siste- ma operativo también es un librero que se encarga de localizar y acceder a los fiche- ros y programas solicitados por el usuario o por cualquier otro programa.
136 PA R T E 1 Introducción a las computadoras
Figura 4.7. Las Norton Utilities de la empresa Symantec es un popular paquete de utilidad que incluye herramientas para recuperar ficheros dañados, reparar discos y mejorar el rendimiento del disco.
Hasta hace poco, las comunicaciones de red no estaban administradas por los siste- mas operativos de escritorio empleados por cualquier usuario; en lugar de ello, se dis- ponían de sistemas operativos de red específicos. Pero los más modernos ya están di- señados para servir como puentes a las redes, desde la oficina a Internet, por lo que el proceso de networking es un rasgo fundamental de cualquiera de estos sistemas ope- rativos. Estas funciones de comunicación de red se describen con más detalle en su- cesivos capítulos.
Programas de utilidad y controladores de dispositivo
Incluso los mejores sistemas operativos dejan algunas de sus tareas en manos de otros programas o en el usuario. Los programas de utilidad sirven como herramientas de mantenimiento del sistema y reparan todo aquello que el propio sistema operativo no es capaz de hacer por sí mismo. Dichas utilidades permiten al usuario copiar ficheros entre dispositivos de almacenamiento, reparar ficheros de datos dañados, convertirlos para que puedan ser leídos por diferentes programas, protegerlos contra virus o cual- quier otro tipo de programa malintencionado (tal y como se describe en el capítulo de-
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 137
C A P Í T U L O 4 Fundamentos del software: el fantasma de la máquina 139
La aplicación cargada ocupa una parte de la memoria, dejando el resto para otras aplicaciones o para datos. El sistema operativo siempre permanece en la memoria de modo que pueda ofrecer ser- vicio al programa, ayudarle a mostrar menús en pantalla, comunicarse con la impresora y llevar a cabo otras tareas comunes. Debido a que la aplicación y el sistema operativo se encuentran en comuni- cación permanente, el control (la localización en memoria donde la CPU lee las instrucciones del pro- grama) está permanentemente en movimiento. Si la aplicación solicita ayuda al sistema operativo para mostrar un menú, le dice a la CPU: «dirígete a las instrucciones de visualización de un menú que se encuentran en la dirección x en el área del sistema operativo; cuando hayas terminado, vuelve aquí y continúa donde lo dejaste».
Para evitar que los ficheros de datos se pierdan cuando el sistema se apague, se deben almace- nar en el disco (escribir en un fichero del disco para su uso posterior). El sistema operativo manipu- la la comunicación entre la CPU y la unidad de almacenamiento y garantiza que dicho fichero no so- brescribirá ninguna otra información. Más adelante, cuando vuelva a utilizar ese archivo, el sistema operativo lo localizará en el disco y lo copiará a la memoria para que tanto la CPU, y por consiguiente cualquier otro programa, pueda trabajar con él.
Aplicación
Aplicación
Sistema operativo
RAM
CPU
CPU
Discos
SO Datos
Entrada
SO
Aplicación
Datos
RAM
CPU
Discos
Almacenar
Figura 4.8c
Figura 4.8d
dicado a la seguridad de la computadora y los riesgos), comprimir los ficheros de modo que ocupen menos espacio, etc. El sistema operativo es capaz de invocar directamente a muchos programas de uti- lidad, por lo que aparecen ante el usuario como parte de él. Por ejemplo, los contro- ladores de dispositivo son pequeños programas que permiten que un dispositivo de entrada/salida (teclado, ratón, impresora, etc.) se comunique con la computadora. Una vez que uno de estos controladores está instalado (por ejemplo, para una nueva impresora), funciona como un intermediario a la sombra que se pone en funcionamiento siempre que un usuario solicita imprimir un documento en dicha impresora. Algunos programas de utilidad están incluidos en el sistema operativo. Otros, incluyendo los controladores de dispositivo, vienen con el propio periférico. Y un tercer grupo es pro- piedad de otras empresas y es preciso adquirirlos para poder usarlos.
¿Dónde vive el sistema operativo?
Algunas computadoras (incluyendo las de juegos, las de bolsillo y las de propósito es- pecífico) tienen sus sistemas operativos almacenados permanentemente en ROM (Me- moria de sólo-lectura, Read-Only Memory ), de modo que están operativas desde el mis- mo momento en que se encienden. Pero ya que una ROM no puede modificarse, estas máquinas no pueden cambiar ni actualizar sus sistemas operativos sin trasplantes de hardware. Otras computadoras, como las de bolsillo, los almacenan en una memoria flash de modo que pueda actualizarse. Pero la inmensa mayoría de máquinas, inclu- yendo los modernos PC, sólo incluyen en ROM una pequeña parte del sistema ope- rativo. El resto se almacena en la memoria en un proceso conocido como arranque (o booting, en inglés) que tiene lugar cuando se enciende el equipo (el motivo de em- plear este término es porque la computadora da la sensación de que se pone en mar- cha por sus propios medios). La mayor parte del tiempo, el sistema operativo trabaja a la sombra sin que el usua- rio se dé cuenta de ello. Pero hay ocasiones en las que usuario tiene que comunicarse directamente con él. Por ejemplo, durante el proceso de carga, el sistema operativo toma el control de la pantalla esperando a que usted le diga qué tiene que hacer a través del ratón, el teclado o cualquier otro dispositivo de entrada. Si desea abrir una aplicación de gráficos, el sistema operativo localiza el programa, lo copia desde el disco a la me- moria y lo pone en la pantalla para aceptar los comandos necesarios para formar un bonito dibujo. Interactuar con el sistema operativo, al igual que ocurre con cualquier otra aplica- ción, puede ser tarea sencilla o muy complicada. Todo depende de la interfaz de usua- rio. Debido a su gran impacto en el trato con la computadora, la interfaz de usuario es un componente crítico en la mayoría de programas.
La interfaz de usuario:
la conexión hombre-máquina
Los usuarios de las primeras computadoras tenían que gastar grandes cantidades de tiempo escribiendo y depurando instrucciones en lenguaje máquina. Más adelante em- pezaron a utilizar lenguajes de programación que eran más sencillos de entender aun-
140 PA R T E 1 Introducción a las computadoras
El antropólogo Claude Levi- Strauss llamó a los primeros humanos los constructores de herramientas y los constructores de símbolos. La interfaz de usuario es, potencialmente, la más sofisticada de estas construcciones y en la que la distinción entre herramienta y símbolo está difuminada. —Aaron Marcus y Andries van Dam, expertos en interfaces de usuario