martes, 13 de marzo de 2007

inicien su blog no es difiicil!!!

Nosotros le ayudamos a crear su blog, con eso puede usted dar informacion, noticias
o documentos que por improvisto no pueda mandar por correo, solo tienen que accesar a su blog inicielo es facil nosotros le ayudamos!!!!

No hay comentarios:

informatica

informatica
123

Antecedentes Históricos

I.I Antecedentes Históricos.- 1. La historia de la computación se remonta a la época de la aparición del hombre en la faz de la tierra, y se origina en la necesidad que tenía éste de cuantificar a los miembros de su tribu, los objetos que poseía, etc. 2. Uno de los primeros artefactos mecánicos de calcular que se conoce es el ábaco, que aún se sigue usando en algunos países de oriente de donde es originario. 3. El matemático escocés John Napier, basado en su teoría de que todas las cifras numéricas podían expresarse en forma exponencial, inventa los logaritmos, que permiten reducir a sumas y restas las operaciones de multiplicación y división. También inventó unas tablas de multiplicar movibles hechas con varillas de hueso o marfil, conocidas como huesos de Napier, que representan el antecedente de las reglas de cálculo. 4. Wilhelm Schickard (1592‑1635), científico alemán, construye lo que podemos considerar como la primera máquina mecánica de calcular –basada en unas ruedas dentadas–, ya que podía efectuar las cuatro operaciones aritméticas básicas: suma, resta, multiplicación y división. 5. A Blaise Pascal, es a quien se le atribuye la invención de la primera calculadora automática llamada la “Pascalina” en 1642. 6. El matemático alemán Gottfried von Leibniz diseñó una calculadora mecánica que ya permitía multiplicar, dividir y extraer raíz cuadrada mediante sumas y restas sucesivas. 7. En 1801 el francés Joseph Marie Jacquard (1752‑1834) construye su telar mecánico basado en una lectora automática de tarjetas perforadas. 8. En Inglaterra, Charles Babbage, profesor de matemáticas de la Universidad de Cambridge, diseña la “máquina diferencial”. En 1833 abandona el primer proyecto y se propone realizar el verdadero sueño de su vida: la “máquina analítica”, que sería capaz de realizar cualquier tipo de cálculo de manera digital. 9. Augusta Ada (1815‑1853), hija del poeta Lord Byron está considerada como la primera programadora pues escribió secuencias de instrucciones en tarjetas perforadas, inventó métodos de programación como la subrutina e introdujo en sus programas las iteraciones y el salto condicional. 10. En 1886, el Dr. Herman Hollerith, estadístico empleado en la oficina de censos de Estados Unidos de Norteamérica, desarrolló un sistema basado en tarjetas perforadas para codificar los datos de la población en el censo de 1890. 11. En 1906, Lee De Forest inventa el tubo de vacío (bulbo) de 3 elementos, que más tarde tiene una gran importancia en el desarrollo de las computadoras. 12. En 1919 W. H. Eccles y F. W. Jordan descubren el flip‑flop o basculador, un circuito binario capaz de asumir uno de dos estados estables. 13. El matemático estadounidense Claude E. Shannon, creador de la moderna teoría de la información, la define de la siguiente manera: “Información es todo lo que reduce la incertidumbre entre diversas alternativas posibles”. 14. A principios del siglo XX se producen múltiples eventos: la primera computadora analógica del Dr. Vannevar Bush; el primer programa mecánico de Wallace J. Eckert; el primer modelo general de máquinas lógicas de Alan M. Turing; la primera computadora electrónica digital del Dr. John V. Atanasoff; la primera computadora de propósito general controlada por programa del Dr. Konrad Zuse y muchos más. 15. La Mark I o Automatic Sequenced Controlled Calculator, basada en la máquina analítica de Babbage, pesaba unas cinco toneladas, estaba constituida por 78 máquinas sumadoras conectadas entre sí mediante 800 km de cable, contenía miles de relevadores, recibía las instrucciones por medio de cinta perforada de papel, y multiplicaba dos números de 10 dígitos en tres segundos aproximadamente. 16. La ENIAC, (Electronic Numerical Integrator and Calculator), incluía aproximadamente 18.000 tubos de vacío. Fue terminada hasta 1946, y su velocidad de procesamiento permitía efectuar alrededor de 500 multiplicaciones por segundo. 17. La EDVAC, (Electronic Discrete Variable Automatic Computer), y la EDSAC (Electronic Delay Storage Automatic Calculator), ya incorporan las ideas sobre almacenamiento de programas en la memoria de la computadora del Dr. John von Neumann, científico estadounidense originario de Hungría. En 1951 se desarrolla la UNIVAC (Universal Automatic Computer). 18. Algunos consideran a 1951 como el año de arranque de la computación, por coincidencia con la aparición de la primera computadora comercial, la UNIVAC. 19. Las computadoras de la primera generación se caracterizan por estar constituidas de relevadores (relés) electromecánicos, o de tubos de vacío. 20. La segunda generación de computadoras se caracteriza por la inclusión de transistores. Utilizan tarjetas o cinta perforada para la entrada de datos. La inclusión de memorias de ferrita en estas computadoras hizo posible que se redujeran de tamaño considerablemente, reduciendo también su consumo de energía eléctrica. Esto significó una notable baja de la temperatura en su operación. 21. El siguiente paso fue la integración a gran escala de transistores en microcircuitos llamados procesadores o circuitos integrados monolíticos LSI (Large Scale Integration), así como la proliferación de lenguajes de alto nivel y la introducción de programas para facilitar el control y la comunicación entre el usuario y la computadora, denominados sistemas operativos. 22. La aparición del primer microprocesador en 1971, fabricado por Intel Corporation, que era una pequeña compañía fabricante de semiconductores ubicada en Silicon Valley, marca el inicio de la cuarta generación de computadoras. 23. Cada vez se hace más difícil la identificación de las generaciones de computadoras, porque los grandes avances y nuevos descubrimientos ya no nos sorprenden como sucedió a mediados del siglo XX. Hay quienes consideran que la cuarta y quinta generaciones han terminado, y las ubican entre los años 1971‑1984 la cuarta y entre 1984‑1990 la quinta. Estos consideran que la sexta generación está en desarrollo desde 1990 hasta la fecha. 24. Con base en los grandes acontecimientos tecnológicos en materia de microelectrónica y computación (software) como CAD, CAM, CAE, CASE, inteligencia artificial, sistemas expertos, redes neurales, teoría del caos, algoritmos genéticos, fibras ópticas, telecomunicaciones, etc., a mediados de la década de los años ochenta se establecieron las bases de lo que se puede considerar como quinta generación de computadoras. 25. Hay que mencionar dos grandes avances tecnológicos, que quizás sirvan como parámetro para el inicio de la quinta generación: la creación en 1982 de la primera supercomputadora con capacidad de proceso paralelo, diseñada por Seymouy Cray y el anuncio por parte del gobierno japonés del proyecto “quinta generación”, que según se estableció en el acuerdo con seis de las más grandes empresas japonesas de computación, debería terminar en 1992. 26. Como supuestamente la sexta generación de computadoras está en marcha desde principios de los años noventas, hay que mencionar las características que deben tener las computadoras de esta generación: cuentan con arquitecturas combinadas Paralelo/Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo; son capaces de realizar más de un millón de millones de operaciones aritméticas de punto flotante por segundo (teraflops); se pueden enlazar en redes de área mundial (Wide Area Network, WAN) mediante conexiones por fibras ópticas y satélites, con anchos de banda impresionantes, etc. 27. Las computadoras se clasifican de acuerdo a su tamaño, poder de cómputo, capacidad de memoria y almacenamiento, como macrocomputadoras, minicomputadoras, microcompu­tadoras o computadoras personales y supercomputadoras. 28. Las sociedades modernas tienen que cambiar por completo su mentalidad con respecto a la utilización de la herramienta más difundida en el mundo: la computadora. A menos de cincuenta años de su aparición de manera comercial, las computadoras han invadido la mayoría de las labores del ser humano. Actualmente no se puede pensar en casi ninguna actividad en la cual no intervengan de alguna manera los procesos de cómputo. 29. El mundo está cambiando y usted deberá aprender todas esas tecnologías modernas para poder conseguir un empleo mejor retribuido y quizás, en poco tiempo, realizar trabajos desde la comodidad de su hogar mediante el teletrabajo, reduciendo el tráfico en las calles y por ende la contaminación de las grandes ciudades. 30. La nueva tecnología informática está cambiando nuestras vidas. Es necesario conocerla para no quedar inmersos en una nueva forma de analfabetismo. 31. Se debe adoptar una serie de normas éticas que regulen la convivencia pacífica y cordial entre los millones de personas que tienen que utilizar estas avanzadas tecnologías para realizar su trabajo, estudio, descanso y esparcimiento diarios. 32. Es necesario aprender y utilizar técnicas de prevención, mantenimiento y seguridad para los equipos y programas que involucran a las computadoras. Actualmente se utilizan esquemas de seguridad basados en claves o passwords para la protección de accesos a las computadoras y a las redes. También se han creado algoritmos de encripción o encriptamiento que permiten codificar la información para que sólo el destinatario pueda recibirla –mediante una clave secreta– en una forma entendible. 33. La ergonomía” (ergonomics) se define como “el estudio de la capacidad y psicología humanas en relación con el ambiente de trabajo y el equipo manejados por el trabajador”, o “el estudio de cómo diseñar el equipo que afecta el qué tan bien puede realizar la gente su trabajo”. Prácticamente se puede decir que la ergonomía se encarga de la relación de eficiencia y salud entre el hombre, y su ambiente y herramientas de trabajo. 34. Actualmente casi no podemos encontrar una rama de la ciencia en donde no se aplique la tecnología informática. La computación ha invadido, para bien, casi todas las actividades del ser humano: la ciencia, la administración, la economía, el diseño, la manufactura, la ingeniería, la educación, la medicina, el arte y la cultura, las aplicaciones militares, etc. I.II Equipo de computo (hardware).- Se denomina hardware o soporte físico al conjunto de elementos materiales que componen un ordenador. Hardware también son los componentes físicos de una computadora tales como el disco duro, CD-ROM, disquetera (floppy), etc... En dicho conjunto se incluyen los dispositivos electrónicos y electromecánicos, circuitos, cables, tarjetas, armarios o cajas, periféricos de todo tipo y otros elementos físicos. Interior de un computador enfriado con agua El hardware se refiere a todos los componentes físicos (que se pueden tocar) de la computadora: discos, unidades de disco, monitor, teclado, ratón (mouse), impresora, placas, chips y demás periféricos. En cambio, el software es intangible, existe como ideas, conceptos, símbolos, pero no tiene sustancia. Una buena metáfora sería un libro: las páginas y la tinta son el hardware, mientras que las palabras, oraciones, párrafos y el significado del texto son el software. Una computadora sin software sería tan inútil como un libro con páginas en blanco. == Tipos de hardware == LILIANA Se clasifica generalmente en básico y complementario, entendiendo por básico todo aquel dispositivo necesario para iniciar el funcionamiento de la computadora, y el complementario como su nombre lo dice sirve para realizar funciones específicas o más allá de las básicas. Periféricos de entrada Son los que permiten que el usuario aporte información exterior. Entre ellos podemos encontrar: teclado, ratón (mouse), escáner, SAI (Sistema de Alimentación Ininterrumpida), micrófono, etc. Periféricos de salida Son los que muestran al usuario el resultado de las operaciones realizadas por el PC. En este grupo podemos encontrar: monitor, impresora, altavoces, etc. Periféricos de entrada/salida Son los dispositivos que pueden aportar simultáneamente información exterior al PC y al usuario. Aquí se encuentran: módem (Modulador/Demodulador), unidades de almacenamiento (Discos duros, disquetes o floppy), ZIP, Memorias de pequeño tamaño, flash, etc)... Hardware Generalidades Computadora: aparato electrónico capaz de interpretar y ejecutar comandos programados para operaciones de entrada, salida, cálculo y lógica. Las computadoras: Reciben entradas. La entrada son los datos que se capturan en un sistema de computación para su procesamiento. Producen salidas. La salida es la presentación de los resultados del procesamiento. Procesan información Almacenan información Todo sistema de cómputo tiene componentes de hardware dedicados a estas funciones: Dispositivos de entrada Dispositivos de salida Unidad central de procesamiento. Es la computadora real, la "inteligencia" de un sistema de computación. Memoria y dispositivos de almacenamiento. Cada dispositivo de entrada es sólo otra fuente de señales eléctricas; cada dispositivo de salida no es más que otro lugar al cual enviar señales; cada dispositivo de almacenamiento es lo uno o lo otro, dependiendo de lo que requiera el programa; no importa cuáles sean los dispositivos de entrada y salida si son compatibles. Los elementos fundamentales que justifican el uso de las computadoras, radican en que las computadoras son: Útiles. Baratas: tanto con respecto a sí mismas como con respecto al costo de la mano de obra. Fáciles de utilizar. Tecnologías y avances 1ª generación: Con tubos de vacío, tubos de vidrio del tamaño de una bombilla que albergaban circuitos eléctricos. Estas máquinas eran muy grandes caras y de difícil operación. 2ª generación: con transistores. Máquinas más pequeñas, confiables y económicas. 3ª generación: Con la tecnología que permitió empaquetar cientos de transistores en un circuito integrado de un chip de silicio. 4ª generación: con el microprocesador, que es un computador completo empaquetado en un solo chip de silicio. [editar] Estudio del hardwareGenerando el cambio que se da herdware es un tipo de sistema entrelazado con todas las generalidades necesarias para un sistema. El estudio y diseño del hardware son un campo de estudio de la ingeniería electrónica, el campo de la electrónica abarca el análisis y diseño de sistemas digitales y analógicos. Uno de los sistemas digitales más conocido es el microprocesador. La electrónica se encarga del diseño de estos sistemas digitales, tan complejos, que es donde realmente se realiza la computación. La ingeniería electrónica abarca muchos campos de estudio como ser en el campo del control electrónico, la robótica industrial y microbotica, la domótica, el tratamiento de señales digitalmente, las telecomunicaciones, análisis y diseño de redes de computadoras, control moderno, la teoría de control, diseño e implementación de programas ensambladores con dispositivos electrónicos digitales, el diseño de sistemas computacionales, etc. En el diseño de computadores la electrónica se encarga del control de los dispositivos periféricos, el diseño del programa ensamblador para los microprocesadores, ya que esta ciencia es realmente la que crea los programas ensambladores que residen en la CPU en formas de instrucciones, y que no se podría llevar a cabo muchas funciones importantes que tienen las computadoras. En la programación de dispositivos hardware la electrónica que tiene un campo muy aceptado en el diseño de computadores y por medio del cual se lleva a cabo la lógica de movimiento de la información. I.II.I CPU.- La unidad central de proceso (CPU), o algunas veces simplemente procesador, es el componente en un computador digital que interpreta las instrucciones y procesa los datos contenidos en los programas de computador. Los CPU proporcionan la característica fundamental del computador digital, la programabilidad, y son uno de los componentes necesarios encontrados en los computadores de cualquier tiempo, junto con el almacenamiento primario y las facilidades de entrada/salida. Es conocido como microprocesador el CPU que es manufacturado con circuitos integrados. Desde mediados de los años 1970, los microprocesadores de un solo chip han reemplazado casi totalmente todos los otros tipos de CPU, y hoy en día, el término "CPU" es aplicado usualmente a algún tipo de microprocesador. La expresión "unidad central de proceso" es, en términos generales, una descripción de una cierta clase de máquinas de lógica que pueden ejecutar complejos programas de computador. Esta amplia definición puede fácilmente ser aplicada a muchos de los primeros computadores que existieron mucho antes que el término "CPU" estuviera en amplio uso. Sin embargo, el término sí mismo y su acrónimo han estado en uso en la industria del computador por lo menos desde el principio de los años 1960 . La forma, el diseño y la implementación de los CPU ha cambiado dramáticamente desde los primeros ejemplos, pero su operación fundamental ha permanecido bastante similar. Los primeros CPU fueron diseñados a la medida como parte de un computador más grande, generalmente un computador único en su especie. Sin embargo, este costoso método de diseñar los CPU a la medida, para una aplicación particular, ha desaparecido en gran parte y se ha sustituido por el desarrollo de clases de procesadores baratos y estandardizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, mainframes, y minicomputadores, y fue acelerada rápidamente con la popularización del circuito integrado (IC). El IC ha permitido que sean diseñados y fabricados CPUs cada vez más complejos en espacios muy pequeños (en la orden de milímetros). Tanto la miniaturización como la estandariización de los CPU han aumentado la presencia de estos dispositivos digitales en la vida moderna mucho más allá de las aplicaciones limitadas de máquinas de computación dedicadas. Los microprocesadores modernos aparecen en todo, desde automóviles, televisores, neveras, calculadoras, aviones, hasta teléfonos celulares o juguetes para niños. CPU, abreviatura de Central Processing Unit (unidad de proceso central), se pronuncia como letras separadas. La CPU es el cerebro del ordenador. A veces es referido simplemente como el procesador o procesador central, la CPU es donde se producen la mayoría de los cálculos. En términos de potencia del ordenador, la CPU es el elemento más importante de un sistema informático. En ordenadores grandes, las CPUs requieren uno o más tableros de circuito impresos. En los ordenadores personales y estaciones de trabajo pequeñas, la CPU está contenida en un solo chip llamadado microprocesador. Dos componentes típicos de una CPU son La unidad de lógica/aritimética (ALU), que realiza operaciones aritméticas y lógicas. La unidad de control (CU), que extrae instrucciones de la memoria, las descifra y ejecuta, llamando a la ALU cuando es necesario. I.II.II Periféricos.- 1. Periféricos de almacenamiento Los periféricos de almacenamiento, llamados también periféricos de memoria auxiliar, son unos dispositivos en los que se almacenan, temporal o permanente, los datos que va a manejar la CPU durante el proceso en curso, y que no es posible mantener en la memoria principal. Suponen un apoyo fundamental a la computadora para realizar su trabajo habitual. Los periféricos de almacenamiento se pueden clasificar de acuerdo al modo de acceso a los datos que contienen: • Acceso secuencial. • Acceso aleatorio. — Acceso secuencial. En el acceso secuencial, el elemento de lectura del dispositivo debe pasar por el espacio ocupado por la totalidad de los datos almacenados previamente al espacio ocupado físicamente por los datos almacenados que componen el conjunto de información a la que se desea acceder. — Acceso aleatorio. En el modo de acceso aleatorio, el elemento de lectura accede directamente a la dirección donde se encuentra almacenada físicamente la información que se desea localizar sin tener que pasar previamente por la almacenada entre el principio de la superficie de grabación y el punto donde se almacena la información buscada. Es evidente la reducción de tiempo que presenta el acceso aleatorio frente al secuencial, pero la utilización de la tecnología de acceso secuencial se debió a que la implementación de las cintas magnéticas fue muy anterior a la puesta en marcha operativa del primer periférico de acceso aleatorio. En la actualidad, las cintas magnéticas tradicionales se están relegando poco a poco a simples soportes de almacenamiento de datos históricos del sistema informático o de procesos periódicos de copias de seguridad. I.IV Programas.- Se denomina software, programática, equipamiento lógico o soporte lógico a todos los componentes intangibles de un ordenador o computadora, es decir, al conjunto de programas y procedimientos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema (hardware). Esto incluye aplicaciones informáticas tales como un procesador de textos, que permite al usuario realizar una tarea, y software de sistema como un sistema operativo, que permite al resto de programas funcionar adecuadamente, facilitando la interacción con los componentes físicos y el resto de aplicaciones. Probablemente la definición más formal de software es la atribuida a la IEEE en su estándar 729: «la suma total de los programas de cómputo, procedimientos, reglas documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo» [1]. Bajo esta definición, el concepto de software va más allá de los programas de cómputo en sus distintas formas: código fuente, binario o ejecutable, además de su documentación: es decir, todo lo intangible. El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En las ciencias de la computación y la ingeniería de software, el software es toda la información procesada por los sistemas informáticos: programas y datos. El concepto de leer diferentes secuencias de instrucciones de la memoria de un dispositivo para controlar cálculos fue inventado por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por vez primera por Alan Turing en su ensayo de 1936, Los números computables, con una aplicación al Entscheidungsproblem. Tipología Si bien esta distinción es en cierto modo arbitraria y a veces difusa y confusa, se puede distinguir al software de la siguiente forma: Software de sistema, que permite funcionar al hardware. Su objetivo es aislar tanto como sea posible al programador de aplicaciones de los detalles del computador particular que se use, especialmente de las características físicas de la memoria, dispositivos de comunicaciones, impresoras, pantallas, teclados, etcétera. Incluye entre otros: Sistemas operativos Controladores de dispositivo Herramientas de diagnóstico Servidores Sistemas de ventanas Utilidades Software de programación, que proporciona herramientas para ayudar al programador a escribir programas informáticos y a usar diferentes lenguajes de programación de forma práctica. Incluye entre otros: Editores de texto Compiladores Intérpretes Enlazadores Depuradores Los entornos integrados de desarrollo (IDE) agrupan estas herramientas de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con una interfaz gráfica de usuario (GUI) avanzada. Software de aplicación, que permite a los usuarios llevar a cabo una o varias tareas más específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros: Aplicaciones de automatización industrial. Aplicaciones ofimáticas. Software educativo. Software médico. Bases de datos. Videojuegos. Formas El software adopta varias formas en distintos momentos de su ciclo de vida: Código fuente: escrito por programadores. Contiene el conjunto de instrucciones destinadas a la computadora. Código objeto: resultado del uso de un compilador sobre el código fuente. Consiste en una traducción de éste último. El código objeto no es directamente inteligible por el ser humano, pero tampoco es directamente entendible por la computadora. Se trata de una representación intermedia del código fuente. Véase MSIL (Microsoft Intermediate Language) Código ejecutable: resultado de enlazar uno o varios fragmentos de código objeto. Constituye un archivo binario con un formato tal que el sistema operativo es capaz de cargarlo en la memoria de un ordenador, y proceder a su ejecución. El código ejecutable es directamente inteligible por la computadora. El proceso de creación de software El proceso de creación de software es materia de la ingeniería del software. Es un proceso complejo que involucra diversas tareas de gestión y desarrollo. Como resumen de las etapas para la creación de un software, se pueden mencionar: Análisis. Desarrollo. Construcción. Pruebas (unitarias e integradas). Paso a Producción. Dentro de estas etapas, existen sub-etapas (para algunos son otras etapas, como por ejemplo, paso a ambiente beta/rc). I.IV.I Programación.- Se llama programación a la creación de un programa de computadora, un conjunto concreto de instrucciones que una computadora puede ejecutar. El programa se escribe en un lenguaje de programación, aunque también se pueda escribir directamente en lenguaje de máquina, con cierta dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas en lenguajes distintos. Software es el sustantivo que denomina a los programas y datos de computadora. Programas y algoritmos Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) un algoritmo. Puede haber programas que no se ajusten a un algoritmo (pueden no terminar nunca), en cuyo caso se denomina procedimiento a tal programa. Los programas suelen subdividirse en partes menores (módulos), de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos. Se han propuesto diversas técnicas de programación, cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas se pueden mencionar las programaciones lineal, estructurada, modular y orientada a objetos. Compilación El programa escrito en un lenguaje de programación (comprensible por el ser humano, aunque se suelen corresponder con lenguajes formales descritos por gramáticas independientes del contexto) no es inmediatamente ejecutado en una computadora. La opción más común es compilar el programa, aunque también puede ser ejecutado mediante un intérprete informático El código fuente del programa se debe someter a un proceso de transformación para convertirse en lenguaje máquina, interpretable por el procesador. A este proceso se le llama compilación. Normalmente la creación de un programa ejecutable (un típico .exe para Microsoft Windows) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel, (normalmente en código objeto no directamente al lenguaje máquina). El segundo paso se llama enlazado (del inglés link o linker) se junta el código de bajo nivel generado de todos los ficheros que se han mandado compilar y se añade el código de las funciones que hay el las bibliotecas del compilador para que el ejecutable pueda comunicarse con el sistemas operativo y traduce el código objeto a código máquina. Estos dos pasos se pueden mandar hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico .obj para Microsoft Windows, .o para Unix), para enlazarlos posteriormente, o crear directamente el ejecutable con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (generalmente C, C++ y Asm), que se podrían compilar de forma independiente y enlazar juntas para formar un único ejecutable. Programación e ingeniería del software Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos. El proceso de creación de software desde el punto de vista de la Ingeniería tiene los siguientes pasos: Reconocer la necesidad de un programa para solucionar un problema ó identificar la posibilidad de automatización de una tarea. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable. Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.) La Ingeniería del Software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía únicamente en escribir el código. Referencias históricas La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella y Lord Byron. Anabella introdujo en las matemáticas a Ada, quien después de conocer a Charles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora. Objetivos de la programación La programación de ordenadores debe perseguir tres objetivos fundamentales: Corrección: un programa es correcto si hace lo que debe hacer. Para determinar si un programa hace lo que debe es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y una vez acabado compararlo con lo que realmente hace. Claridad: es muy importante que el programa sea lo más claro y legible posible para mejorar el mantenimiento del software. Cuando se acaba de escribir el código del programa, se deben buscar errores y corregirlos. Más concretamente, cuando el programa está concluido, es necesario hacerle ampliaciones o modificaciones, según la demanda de los usuarios, esta labor puede ser llevada acabo por el mismo programador que implementó el programa o por otros. Eficiencia: debe consumir la menor cantidad de recursos posible. Normalmente al hablar de eficiencia se suele hacer referencia al consumo de tiempo y/o memoria. La eficiencia y la claridad de un programa pueden ser objetivos contrapuestos: se puede conseguir mayor claridad sacrificando parte de la eficiencia o viceversa. Pero hay que tener en cuenta que el tiempo del programador es caro, y que hoy en día el precio de los ordenadores es razonable y cada vez son más baratos. I.IV.II Aplicación.- En informática, las aplicaciones son los programas con los cuales el usuario final interactúa a través de una interfaz y que realizan tareas útiles para éste. Los programas de aplicación se dividen en muchos tipos, entre los cuales se pueden nombrar: De procesadores de texto: Lotus Word Pro, Microsoft Word, Corel WordPerfect, OpenOffice.org Writer. De hoja electrónica de cálculo: Quattro Pro, Lotus 1-2-3, OpenOffice.org Calc, Microsoft Excel. De manejo de base de datos: MySQL, Microsoft Access, Visual FoxPro, dBase. Comunicación de datos: Safari, Mozilla Firefox, MSN Explorer, Internet Explorer, Netscape Navigator, Kazaa, MSN Messenger Yahoo! Messenger, ICQ, AOL Instant Messenger. Multimedia: XMMS, Mplayer, Windows Media Player, Winamp, RealPlayer, QuickTime, DVX. De presentaciones: Microsoft Power Point, OpenOffice.org Impress, Corel Presentations, Windows Movie Maker. De diseño: Corel Draw, GIMP, Corel PHOTO-PAINT, Corel Painter, Adobe Photoshop, Microsoft Photo Editor, Microsoft Paint, Microsoft Publisher, AutoCAD. De edición: Corel Ventura, QuarkXPress, Adobe PageMaker, Adobe InDesign, FrameMaker, Adobe Acrobat. De cálculo: Maple. De finanzas: Microsoft Money. De compiladores: Visual Basic, C++, Pascal, Visual FoxPro. De correo electrónico: Outlook Express. De comprensión de archivos: WinZip, gzip. Algunas compañías como Microsoft, Lotus, OpenOffice.org, Corel, entre otras, agrupan varios programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimática) que sean satisfactorios para las necesidades más apremiantes del usuario, como el caso de las siguientes suites: Microsoft Office, que incluye: Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft InfoPath, Microsoft Outlook, Microsoft Access, Microsoft Publisher, entre otros según la presentación (básica, estándar o profesional). OpenOffice.org, que incluye: OpenOffice.org Writer, OpenOffice.org Calc, OpenOffice.org Impress, entre otros según la presentación (básica, estándar o profesional). Lotus SmartSuite, que incluye: Lotus Word Pro (antes AmiPro), Lotus 1-2-3, Lotus Freelance Graphics, Lotus Organizer, entre otros según la presentación (básica, estándar o profesional). Para mayor detalles remitase a suite ofimática. Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas útiles con el ordenador (o computadora); algunos con ciertas prestaciones, otros con equis diseño; unos son más amigables o fáciles de usar que otros, pero bajo el mismo principio. I.IV.III Personalizados.- I.IV.IV Antivirus.- Los antivirus son programas cuya función es detectar y eliminar Virus informáticos y otros programas maliciosos (a veces denominados malware). Básicamente, un antivirus compara el código de cada archivo con una base de datos de los códigos (también conocidos como firmas o vacunas) de los virus conocidos, por lo que es importante actualizarla periódicamente a fin de evitar que un virus nuevo no sea detectado. También se les ha agregado funciones avanzadas, como la búsqueda de comportamientos típicos de virus (técnica conocida como Heurística) o la verificación contra virus en redes de computadores. Normalmente un antivirus tiene un componente que se carga en memoria y permanece en ella para verificar todos los archivos abiertos, creados, modificados y ejecutados en tiempo real. Es muy común que tengan componentes que revisen los adjuntos de los correos electrónicos salientes y entrantes, así como los scripts y programas que pueden ejecutarse en un navegador web (ActiveX, Java, JavaScript). Los virus, gusanos, spyware, ... son programas informáticos que se ejecutan normalmente sin el consentimiento del legítimo propietario y que tienen la características de ejecutar recursos, consumir memoria e incluso eliminar o destrozar la información. Una característica adicional es la capacidad que tienen de propagarse. Otras características son el robo de información, la pérdida de esta, la capacidad de suplantación, que hacen que reviertan en pérdidas económicas y de imagen. Este artículo está destinado de forma introductoria a prepararnos a afrontar este reto de las tecnologías de la información. Daños y perjuicios Dado que una característica de los virus es el consumo de recursos, los virus ocasionan problemas tales como pérdida de productividad, cortes en los sistemas de información o daños a nivel de datos. Otra de las características es la posibilidad que tienen de ir replicándose en otras partes del sistema de información. Las redes en la actualidad ayudan a dicha propagación. Los daños que los virus dan a los sistemas informáticos son: Pérdida de información (evaluable según el caso) Horas de contención (Técnicos de SI, Horas de paradas productivas, tiempos de contención o reinstalación, cuantificables según el caso+horas de aseroría externa) Pérdida de imagen (Valor no cuantificable) Hay que tener en cuenta que cada virus es una situación nueva por lo que es difícil cuantificar a priori, lo que puede costar una intervención. Tenemos que encontrar métodos de realizar planificación en caso de que se produzcan estas contingencias. Métodos de contagio Existen dos grandes grupos de contaminaciones, los virus donde el usuario en un momento dado ejecuta o acepta de forma inadvertida la instalación del virus, o los gusanos donde el programa malicioso actúa replicándose a través de las redes. En cualquiera de los dos casos, el sistema operativo infectado comienza a sufrir una serie de compotamientos anómalos o no previstos. Dichos comportamientos son los que nos dan la traza del problema y tienen que permitir la recuperación del mismo. Dentro de las contaminaciones más frecuentes por interacción del usuario están las siguientes: Mensajes que ejecutan automáticamente programas (como el programa de correo que abre directamente un archivo adjunto) Ingeniería social, mensajes como ejecute este programa y gane un premio. Entrada de información en discos de otros usuarios infectados. Instalación de software pirata o de baja calidad. Todos los nuevos métodos que vayan apareciendo conforme las tecnologías de la información vaya ganando terreno.... Seguridad métodos de protección Tener en cuenta este reto, es el primer paso para obtener seguridad. Existen múltiples médios de intentar combatir el problema. Sin embargo hemos de ser realistas. Conforme nuevos programas y sistemas operativos se introduzcan en el mercado más difícil va a ser tener controlados a todos y más sencillo va a ser que a alguien se le ocurran nuevas formas de infectar el sistema. Ante este tipo de problemas están los softwares llamados antivirus. Estos antivirus tratan de descubrir las trazas que ha dejado un software malicioso, para eliminarlo o detectarlo, y en algunos casos contener o parar la contaminación. Los métodos para contener o reducir los riesgos asociados a los virus pueden ser los denominados activos o pasivos. Antivirus (activo) Estos programas como se ha mencionado tratan de encontrar la traza de los programas maliciosos mientras el sistema está funcionando. Tratan de tener controlado el sistema mientras funciona parando las vías conocidas de infección y notificando al usuario de posibles incidencias de seguridad. Como programa que está continuamente funcionando, el antivirus tiene un efecto adverso sobre el sistema en funcionamiento. Una parte importante de los recursos se destinan al funcionamiento del mismo. Además dado que están continuamente comprobando la memoria de la máquina, dar más memoria al sistema no mejora las prestaciones del mismo. Otro efecto adverso son los falsos positivos, es decir al notificar al usuario de posibles incidencias en la seguridad, éste que normalmente no es un experto de seguridad se acostumbra a dar al botón de autorizar a todas las acciones que le notifica el sistema. De esta forma el antivirus funcionando da una sensación de falsa seguridad Filtros de ficheros (activo) Otra aproximación es la de generar filtros dentro de la red que proporcionen un filtrado más selectivo. Desde el sistema de correos, hasta el empleo de técnicas de firewall, proporcionan un método activo y eficaz de eliminar estos contenidos. En general este sistema proporciona una seguridad donde el usuario no requiere de intervención, puede ser más tajante, y permitir emplear únicamente recursos de forma más selectiva. Cuando el número de puestos a filtrar crece puede ser conveniente Copias de seguridad (pasivo) Mantener una política férrea de copias de seguridad garantizan la recuperación de los datos y la respuesta cuando nada de lo anterior ha funcionado. Asimismo las empresas deberían disponer de un plan y detalle de todo el software instalado para tener un plan de contingencia en caso de problemas. Planificación La planificación consiste en tener preparado un plan de contingencia en caso de que una emergencia de virus se produzca, así como disponer al personal de la formación adecuada para reducir al máximo las acciones que puedan entrañar riesgo. Consideraciones de software El software es otro de los elementos clave en la parte de planificación. Se debería tener en cuenta la siguiente lista de comprobaciones: Tener el software imprescindible para el funcionamiento de la actividad, nunca menos pero tampoco nunca más. Tener controlado al personal en cuanto a la instalación de software es una medida que va implícita. Asímimsmo tener controlado el software asegura la calidad de la procedencia del mismo (no debería permitirse sofware pirata o sin garantías). En todo caso un inventario de software proporciona un método correcto de asegurar la reinstalación en caso de desastre. Disponer del software de seguridad adecuado. Cada actividad forma de trabajo métodos de conexión a Internet requieren una medida diferente de aproximación al problema. En general, las soluciones domésticas, donde únicamente hay un equipo expuesto, no son las mismas que las soluciones empresariales. Métodos de instalación rápidos. Para permitir la resintalación rápida en caso de contingencia. Asegurar licencias. Determinados softwares imponen métodos de instalación de una vez, que dificultan la reinstalación rápida de la red. Dichos programas no siempre tienen alternativas pero ha de buscarse con el fabricante métodos rápidos de instalación. Buscar alternativas más seguras. Existe software que es famoso por la cantidad de agujeros de seguridad que introduce. Es imprescindible conocer si se puede encotrar una alternativa que poporcione iguales funcionalidades pero permitiendo una seguridad extra. Consideraciones de la red Disponer de una visión clara del funcionamiento de la red permite poner puntos de verificación filtrado y detección ahí donde la incidencia es más claramente identificable. Sin perder de vista otros puntos de acción es conveniente: Mantener al máximo el número de recursos de red en modo lectura sólo. De esta forma se impide que ordenadores infectados propagen Centralizar ls datos. De forma que detectores de virus en modo batch puedan trabajar durante la noche. Realizar filtrados de firewall de red. Eliminar programas en la empresa tipo EMULE, KAZAA, mantener esta política de forma rigurosa, y con el consentimiento de la gerencia. Reducir los permisos de los usuarios al mínimo que permitan el trabajo diario. Controlar y monitorizar el acceso a Internet. Para poder detectar en fases de recuperación como se ha introducido el virus y los pasos a seguir. Política general Partiendo de la base que las actualizaciones e incorporaciones de nuevas tecnologías por parte de las empresas implican una cantidad muy importante de nuevas tecnologías por día, pensamos que es muy complicado mantener todos los sistemas de información con un nivel muy alto de seguridad. Formación: Del usuario Esta es la primera barrera de protección de la red. Antivirus Es conveniente disponer de una licencia activa de antivirus. Dicha licencia se empleará para la generación de discos de recuperación y emergencia. Sin embargo no se recomienda en una red el uso continuo de antivirus. El motivo radica en la cantidad de recursos que dichos programa obtienen del sistema, reduciendo el valor de las inversiones en hardware realizadas. Aunque si los recursos son suficientes. Este extra de seguridad puede ser muy útil. Sin embargo los filtros de correos con detectores de virus son imprescindibles, ya que de esta forma se asegurará una reducción importante de decisiones de usuarios no entrenados que pueden poner en riesgo la red. Firewalls Filtrar contenidos y puntos de acceso. Eliminar programas P2P que no estén relacionados con la actividad. Tener monitorizado los accesos de los usuarios a la red, permite asimismo reducir la instalación de software que no es necesario o que puede generar riesgo para la continuidad del negocio. Reemplazo de software Los puntos de entrada en la red son generalmente el correo, las páginas WEB, y la entrada de ficheros desde discos, o de PC's que no están en la empresa (portátiles...) Muchos de estos ordenadores emplean programas que pueden ser reemplazados por alternativas más seguras, por ejemplo: Outlook se puede reemplazar por Thunderbird Explorer por Firefox etc Es conveniente llevar un seguimiento de como distribuyen bancos, y externos el software, valorar su utilidad e instalarlo si son realmente imprescindibles. Centralización y backup La centralización de recursos y garantizar el backup de los datos es otra de las patas fundamentales en la política de seguridad recomendada. La generación de inventarios de software, centralización del mismo y la capacidad de generar instalaciones rápidas proporcionan métodos adicionales de seguridad. Es importante tener localizado donde tenemos localizada la información en la empresa. De esta forma podemos realizar las copias de seguridad de forma adecuada. Control o separación de la informática móvil, dado que esta está más expuesta a las contingencias de virus. Empleo de sistemas operativos más seguros Para servir ficheros no es conveniente disponer de los mismos sistemas operativos que se emplean dentro de las estaciones de trabajo, ya que toda la red en este caso está expuesta a los mismos retos. Una forma de previnir problemas es disponer de sistemas operativos con arquitecturas diferentes, que permitan garantizar la continuidad de negocio. Tópicos acerca de la seguridad Existen ideas instaladas parte por las empresas de antivirus parte en a cultura popular que no ayudan a mantener la seguridad de los sistemas de información. Mi sistema no es importante para un hacker. Este tópico se basa en la idea de que no introducir passwords seguras en una empresa no entraña riesgos pues ¿Quién va a querer obtener información mía?. Sin embargo dado que los métodos de contagio se realizan por medio de programas automáticos, desde unas máquinas a otras, estos no distinguen buenos de malos, interesantes de no interesantes... Por tanto abrir sistemas y dejarlos sin claves es facilitar la vida a los virus. Estoy protegido pues no abro archivos que no conozco. Esto es falso, pues existen múltiples formas de contagio, además los programas realizan acciones sin la supervisión del usuario poniendo en riesgo los sistemas. Como tengo antivirus estoy protegido. Únicamente estoy protegido mientras el antivirus sepa a lo que se enfrenta y como combatirlo. En general los programas antivirus no son capaces de detectar todas las posibles formas de contagio existentes, ni las nuevas que pudieran aparecer conforme los ordenadores aumenten las capacidades de comunicación. Como dispongo de un firewall no me contagio. Esto únicamente proporciona una limitada capacidad de respuesta. Las formas de infectarse en una red son múltiples. Unas provienen directamente de accesos a mi sistema (de lo que protege un firewall) y otras de conexiones que realizó (de las que no me protege). Emplear usuarios con altos privilegios para realizar conexiones tampoco ayuda. I.V Elementos de un sistema de información.- Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio. El equipo computacional: el hardware necesario para que el sistema de información pueda operar. El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema. Un sistema de información realiza cuatro actividades básicas: entrada, almacenamiento, procesamiento y salida de información. Entrada de Información: Es el proceso mediante el cual el Sistema de Información toma los datos que requiere para procesar la información. Las entradas pueden ser manuales o automáticas. Las manuales son aquellas que se proporcionan en forma directa por el usuario, mientras que las automáticas son datos o información que provienen o son tomados de otros sistemas o módulos. Esto último se denomina interfases automáticas. Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas magnéticas, las unidades de diskette, los códigos de barras, los escáners, la voz, los monitores sensibles al tacto, el teclado y el mouse, entre otras. Almacenamiento de información: El almacenamiento es una de las actividades o capacidades más importantes que tiene una computadora, ya que a través de esta propiedad el sistema puede recordar la información guardada en la sección o proceso anterior. Esta información suele ser almacenada en estructuras de información denominadas archivos. La unidad típica de almacenamiento son los discos magnéticos o discos duros, los discos flexibles o diskettes y los discos compactos (CD-ROM). Procesamiento de Información: Es la capacidad del Sistema de Información para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecida. Estos cálculos pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos que están almacenados. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones, lo que hace posible, entre otras cosas, que un tomador de decisiones genere una proyección financiera a partir de los datos que contiene un estado de resultados o un balance general de un año base.Salida de Información: La salida es la capacidad de un Sistema de Información para sacar la información procesada o bien datos de entrada al exterior. Las unidades típicas de salida son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores y los plotters, entre otros. Es importante aclarar que la salida de un Sistema de Información puede constituir la entrada a otro Sistema de Información o módulo. En este caso, también existe una interfase automática de salida. Por ejemplo, el Sistema de Control de Clientes tiene una interfase automática de salida con el Sistema de Contabilidad, ya que genera las pólizas contables de los movimientos procesales de los clientes.