HARDWARE El término hardware (pronunciación AFI: [ˈhɑːdˌwɛə] o [ˈhɑɹdˌwɛɚ]) se refiere a todas las partes tangibles de un sistema informático; sus componentes son: eléctricos, electrónicos, electromecánicos y mecánicos.1 Son cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente, el soporte lógico es intangible y es llamado software. El término es propio del idioma inglés (literalmente traducido: partes duras), su traducción al español no tiene un significado acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real Academia Española lo define como «Conjunto de los componentes que integran la parte material de una computadora».2 El término, aunque sea lo más común, no solamente se aplica a las computadoras; del mismo modo, también un robot, un teléfono móvil, una cámara o un reproductor 3 4 multimedia poseen hardware (ysoftware). La historia del hardware de computador se puede clasificar en cuatro generaciones, cada una caracterizada por un cambio tecnológico de importancia. Una primera delimitación podría hacerse entre hardware básico, el estrictamente necesario para el funcionamiento normal del equipo, y complementario, el que realiza funciones específicas. Un sistema informático se compone de una unidad central de procesamiento (UCP/CPU), encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten el ingreso de la información y uno o varios periféricos de salida, los que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos procesados. CLASIFICACION DEL HARDWARE Una de las formas de clasificar el hardware es en dos categorías: por un lado, el "básico", que abarca el conjunto de componentes indispensables necesarios para otorgar la funcionalidad mínima a una computadora; y por otro lado, el hardware “complementario", que, como su nombre indica, es el utilizado para realizar funciones específicas (más allá de las básicas), no estrictamente necesarias para el funcionamiento de la computadora. Así es que: un medio de entrada de datos, la unidad central de procesamiento (C.P.U.), la memoria RAM, un medio de salida de datos y un medio de almacenamiento constituyen el "hardware básico". Los medios de entrada y salida de datos estrictamente indispensables dependen de la aplicación: desde el punto de vista de un usuario común, se debería disponer, al menos, de un teclado y un monitor para entrada y salida de información, respectivamente; pero ello no implica que no pueda haber una computadora (por ejemplo controlando un proceso) en la que no sea necesario teclado ni monitor; bien puede ingresar información y sacar sus datos procesados, por ejemplo, a través de una placa de adquisición/salida de datos. Las computadoras son aparatos electrónicos capaces de interpretar y ejecutar instrucciones programadas y almacenadas en su memoria; consisten básicamente en operaciones aritmético-lógicas y 9 de entrada/salida. Se reciben las entradas (datos), se las procesa y almacena (procesamiento), y finalmente se producen las salidas (resultados del procesamiento). Por ende todo sistema informático tiene, al menos, componentes y dispositivos hardware dedicados a alguna de las funciones antedichas;10 a saber: 1. 2. 3. 4. 5. Procesamiento: Unidad Central de Proceso o CPU Almacenamiento: Memorias Entrada: Periféricos de entrada (E) Salida: Periféricos de salida (S) Entrada/Salida: Periféricos mixtos (E/S) Desde un punto de vista básico y general, un dispositivo de entrada es el que provee el medio para permitir el ingreso de información, datos y programas (lectura); un dispositivo de salida brinda el medio para registrar la información y datos de salida (escritura); la memoria otorga la capacidad de almacenamiento, temporal o permanente (almacenamiento); y la CPU provee la capacidad de cálculo y procesamiento de la información ingresada 11 (transformación). Un periférico mixto es aquél que puede cumplir funciones tanto de entrada como de salida; el ejemplo más típico es el disco rígido (ya que en él se lee y se graba información y datos). SOFTWARE Se conoce como software1 al equipamiento lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware. Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario. El anglicismo "software" es el más ampliamente difundido al referirse a este concepto, especialmente en la jerga técnica; el término sinónimo "lógica", derivado del término francés "logicial", sobre todo es utilizado en países y zonas de influencia francesa. CLASIFICACION DEL SOFTWARE Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos: Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros: Sistemas operativos Controladores de dispositivos Herramientas de diagnóstico Herramientas de Corrección y Optimización Servidores Utilidades Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen básicamente: Editores de texto Compiladores Intérpretes Enlazadores Depuradores Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI). Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre muchos otros: a. Aplicaciones para Control de sistemas y automatización industrial b. Aplicaciones ofimáticas c. Software educativo d. Software empresarial e. Bases de datos f. Telecomunicaciones (por ejemplo Internet y toda su estructura lógica) g. Videojuegos h. Software médico i. Software de cálculo numérico y simbólico. j. Software de diseño asistido (CAD) k. Software de control numérico (CAM) PARTE INTENGIBLE SOFTWARE DE SISTEMA En terminología informática el software de sistema, denominado también software de base, consiste en software que sirve para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas; en contraposición del llamado software de aplicación. Como ejemplos cabe mencionar a las bibliotecas como por ejemplo OpenGL para la aceleración gráfica, PNG para el sistema gráfico o demonios que controlan la temperatura, la velocidad del disco duro, como hdparm, o la frecuencia del procesador como cpudyn. El software de sistema por antonomasia es Microsoft Windows, que entre todas sus versiones acumula cerca de un 90% de la cuota de mercado.1 Mención especial merece el proyecto GNU, cuyas herramientas de programación permitieron combinarse con el núcleo informático basado en Unix denominado Linux, formando entre ambos las conocidas como distribuciones GNU/Linux. A diferencia de la plataforma de Microsoft u otros ejemplos como Mac OS, es software libre. Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido, unidades de discos ópticos, etc.) entre otros. SOFTWARE DE APLICACIÓN El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto. La diferencia entre los programas de aplicación y los de sistema estriba en que los de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un uso más cómo del mismo, mientras los de aplicación son programas que cooperan con el usuario para la realización de las actividades mencionadas. SOFTWARE DE PROGRAMACION Un software de programación es un tipo especial de software (¿Qué es el Software de la Computadora?) que nos permite crear/desarrollar/programar otras aplicaciones. Los software de programación son los que dan origen a los programas que utilizamos día a día. Si en algún momento te interesas en el desarrollo de software, pues vas a tener que utilizar definitivamente algún tipo de software de programación. Un software de programación nos ofrece una serie de herramientas para poder desarrollar programas o aplicaciones (¿Qué es el software de aplicación?). Es en ellos donde se emplean los lenguajes de programación, los cuales sirven para crear las instrucciones que luego la computadora realizará. Para adelantarte un poco el tema de los lenguajes de programación te comentaré que es como un idioma más que uno debe aprender para poder comunicarse con la computadora. Cuando uno crea un programa, la computadora hace exactamente lo que nosotros le decimos que haga. Haciendo una analogía, imagina que la computadora es Vicky de la serie Small Wonder (La Pequeña Maravilla/Un Robot en Casa) o que es Jennie de la serie I Dream of Jennie (Mi Bella Genio), y que tienes que decirles exactamente lo que quieres, si te equivocas ya sabes lo que pasa, los protagonistas terminan sufriendo las consecuencias. En programación estos errores en la forma cómo se les pide a las computadoras que hagan una tarea, se les llaman Bugs o simplemente defectos. Antiguamente el programador se veía obligado a utilizar diversos software de programaciónpara poder crear un programa. Se escribía el código fuente en un procesador de texto, se tenían que compilar estas fuentes, utilizar enlazadores para integrarlos con otros programas, depuradores para verificar y corregir errores en el programa y más. Hoy en día existen software de programación que integran casi todas las herramientas que se pueden necesitar para crear un programa. Este tipo de software se llama IDE (Integrated development environment) o Entorno de Desarrollo Integrado y facilitan enormemente la labor de los programadores. Uno de los IDE que yo utilizo con frecuencia es el Microsoft Visual Studio, el cual me permite desarrollar (el enlace anterior te llevará a un post con 11 webs que te ayudarán a programar en .NET). Estas Ideas realizan todas las labores tediosas y repetitivas del proceso de creación de un programa.