miércoles, 30 de marzo de 2011

SOFTWARE LIBRE

Resumen:
Software Libre: Definiciones preliminares. Clasificaciones del software. Libertades Básicas. Que es y que no es Software Libre. Ventajas y Desventajas. Decisiones que afecta. Maneras de obtener software libre. Leyes y entidades relacionadas. Importancia del estudio del Software Libre. Conclusion.
Definiciones preliminares
Software:
  1. Es el conjunto de programas, procedimientos y documentos relacionados con el sistema hardware.
  2. Es la herramienta de que se vale el usuario para obtener el resultado esperado de un procesamiento de datos.
Programa: es un conjunto de instrucciones lógicas que tienen la finalidad de llevar a cabo una tarea especifica
Programa de computación:
  1. Es un conjunto de instrucciones detalladas que le dirán a la computadora que hacer, paso a paso.
  2. Es una expresión de un conjunto de instrucciones en cualquier lenguaje, apto para lograr que una computadora realice un trabajo.
Código Fuente: también denominado programa fuente
  1. Es un texto escrito en un lenguaje de programación para crear el programa. Es la forma del programa legible por el programador.
  2. Es un texto que describe lo que hace el programa, y que una vez pasado por un proceso llamado compilación (traducción de lenguaje fuente a lenguaje maquina) genera el código ejecutable, el programa que usamos.
  3. Es el conjunto completo de instrucciones y archivos originales y de soporte, creados y/o modificados por el programador, destinado a producir el programa ejecutable a partir de ellos.
Licencia:
  1. Es la forma en que un autor permite el uso de su creación por otras personas, de la manera que el cree aceptable.
  2. Es el instrumento que regula las maneras en que el usuario puede utilizar el software.
Copyright: es el derecho legal de un autor que obtiene por el resultado creativo de un trabajo original. Es una forma de protección garantizada por la ley.
Usuario: es aquella persona que emplea el software
Clasificaciones del software
1) De acuerdo a su costo:
  1. De costo cero: también conocido como software gratis o gratuito. Es aquel software cuyo costo de adquisición es nulo, es decir, no hace efectuar un desembolso de dinero para poder usarlo.
  2. De costo a cero: también se conoce como software "comercial o de pago". Es el software desarrollado por una entidad que tiene la intención de hacer dinero con su uso.
2) De acuerdo a la de su código fuente:
  1. De código fuente abierto: también llamado "de fuente abierta" u "open source". Es aquel software que permite tener acceso a su código fuente a través de cualquier medio (ya sea acompañado con el programa ejecutable, a través de Internet, a través del abono de una suma de dinero, etc.)
  2. De código fuente cerrado: también llamado "software cerrado". Es el software que no tiene disponible su código fuente disponible por ningún medio, ni siquiera pagando. Generalmente tiene esta característica cuando su creador desea proteger su propiedad intelectual.
3) De acuerdo a su protección:
  1. De dominio publico: es el software que no esta protegido por ningún de licencia. Cualquiera puede tomarlo y luego de modificarlo, hacerlo propio.
  2. Protegido por licencias: es el tipo de software protegido con una licencia de uso. Dentro de este grupo tenemos:
b.1) Protegido con copyright: es decir, con derechos de autor (o de copia). El usuario no puede adquirirlo para usarlo y luego vender copias (salvo con la autorización de su creador).
b.2) Protegido con copyleft: es aquel cuyos términos de distribución no permiten a los redistribuidores agregar ninguna restricción adicional. Quiere decir que cada copia del software, aun modificada, sigue siendo como era antes.
4) De acuerdo a su "legalidad":
  1. Legal: es aquel software que se posee o circula sin contravenir ninguna norma. Por ejemplo, si tengo un software con su respectiva licencia original y con su certificado de autenticidad, o si lo tengo instalado en una sola computadora (porque la licencia solo me permite hacer eso).
  2. Ilegal: es el software que se posee o circula violando una norma determinada. Por ejemplo: tengo licencia para usarlo en una sola computadora pero lo instalo en mas de una, no tengo la licencia pero lo puedo utilizar mediante artificios (cracks, patchs, loaders, key generators, números de serie duplicados, etc)
5) De acuerdo a su "filosofía":
  1. Propietario: es aquel software que refleja el hecho de que su propiedad absoluta permanece en manos de quien tiene sus derechos y no del usuario, quien únicamente puede utilizarlo bajo ciertas condiciones. Su uso, redistribución y/o modificación están prohibidos o restringidos de modo tal que no es posible llevarlos a cabo. Es decir, este tipo de software le da al usuario derechos limitados sobre su funcionamiento, cuyo alcance establece el autor o quien posea ese derecho. Por ejemplo, ese derecho puede ser el de ejecutar el programa "tal como es" en una determinada computadora.
  2. Libre: es el tipo de software que le da al usuario la libertad de usarlo, estudiarlo, modificarlo, mejorarlo, adaptarlo y redistribuirlo, con la única restricción de no agregar ninguna restricción adicional al software modificado, mejorado, adaptado o redistribuido. Vale aclarar que debe permitir el acceso al código fuente, debido a que ello es una condición imprescindible para ejercer las libertades de estudiarlo, modificarlo, mejorarlo y adaptarlo.
Definición de Software Libre
El Software Libre es un tipo particular de software que le permite al usuario el ejercicio de cuatro libertades básicas:
  1. Ejecutarlo con cualquier propósito
  2. Estudiar como funciona y adaptarlo a sus necesidades
  3. Distribuir copias
  4. Mejorarlo, y liberar esas mejoras al publico
Con la única restricción del copyleft (o sea, cualquiera que redistribuya el software, con o sin , debe dar las mismas libertades que antes), y con el requisito de permitir el acceso al código fuente (imprescindible para ejercer las libertades 1 y 3)
Ubicación del Software Libre en las distintas clasificaciones
  1. De acuerdo al costo de adquisición: el Software Libre puede ser de las dos clases, es decir, de costo cero o de costo mayor que cero. Lo que lo diferencia del Software Propietario es que su costo es del numero de computadoras que se poseen. Por ejemplo, en el caso del Sistema Operativo Microsoft Windows 3.1/95/98/Me/NT/2000/XP por cada computadora en que lo instale debo pagar una licencia. En cambio, si utilizo en Sistema Operativo GNU/Linux (en cualquiera de sus distribuciones, como Red Hat, Mandrake, Debian, Ututo) debo pagar una sola licencia (no obstante, algunas licencias no tienes costo).
  2. De acuerdo a la apertura del código fuente: el Software Libre siempre es "open source", es decir, de código fuente abierto, ya que dijimos que el acceso al código fuente es necesario para el ejercicio de las libertades 1 y 3 arriba descriptas. El ser "open source" implica una serie de ventajas que serán descriptas en la sección "Ventajas del Software Libre".
  3. De acuerdo a su protección: el Software Libre siempre esta protegido con licencias, y mas específicamente, con licencias de copyleft. ¿Por que no de dominio publico? Porque de ese modo cualquiera puede adueñarse de el, por ejemplo, adquiere un Software Libre, lo modifica, lo compila y lo distribuye con código cerrado. ¿Por que no con Copyright? Porque de esa manera alguien le puede agregar alguna restricción, por lo tanto no va a seguir siendo Software Libre.
  4. De acuerdo a su legalidad: el Software Libre siempre es legal, porque al usarlo, estudiarlo, modificarlo, adaptarlo y/o mejorarlo no estoy violando ninguna norma, ya que de por si este tipo de software me permite hacerlo, con la única salvedad de no poder agregarle ninguna restricción adicional cuando lo transfiera a otra persona.
Explicación de las libertades básicas del Software Libre
Libertad Cero: "usar el programa con cualquier propósito". Es decir, el ejercicio de esta libertad implica que lo podemos utilizar con cualquier fin, ya sea educativo, cultural, comercial, político, social, etc. Esta libertad deriva de que hay ciertas licencias que restringen el uso del software a un determinado propósito, o que prohíben su uso para determinadas actividades.
Libertad Uno: "Estudiar como funciona el programa, y adaptarlo a sus necesidades". Significa que podemos estudiar su funcionamiento (al tener acceso al código fuente) lo que nos va a permitir, entre otras cosas: descubrir funciones ocultas, averiguar como realiza determinada tarea, descubrir que otras posibilidades tiene, que es lo que le falta para hacer algo, etc. El adaptar el programa a mis necesidades implica que puedo suprimirle partes que no me interesan, agregarle partes que considero importantes, copiarle una parte que realiza una tarea y adicionarla a otro programa, etc.
Libertad Dos: "Distribuir copias". Quiere decir que soy libre de redistribuir el programa, ya sea gratis o con algún costo, ya sea por email, FTP o en CD, ya sea a una persona o a varias, ya sea a un vecino o a una persona que vive en otro país, etc.
Libertad Tres: "Mejorar el programa, y liberar las mejoras al publico". Tengo la libertad de hacer mejor el programa, o sea que puedo: hacer los requerimientos de hardware para funcionar, que tenga prestaciones, que ocupe menos espacio, que tenga menos errores, etc. El poder liberar las mejoras al publico quiere decir que si yo le realizo una mejora que permita un requerimiento de hardware, o que haga que ocupe menos espacio, soy libre de poder redistribuir ese programa mejorado, o simplemente proponer la mejora en un lugar publico (un foro de noticias, una lista de correo, un sitio Web, un FTP, un canal de Chat).
Qué no es Software Libre
  1. Software regalado: o de costo cero, pero sin el código fuente. Es el que normalmente viene en los CD’s de revistas de computación o que se consigue en sitios freeware.
  2. Software con el código fuente: esto quiere expresar que el software se provee con su código fuente, pero no necesariamente brinda las libertades del Software Libre. Ventajas del Software Libre
    1. Escrutinio Publico: Al ser muchos las personas que tienen acceso al código fuente, eso lleva a un proceso de corrección de errores muy dinámico, no hace falta esperar que el proveedor del software saque una nueva versión.
    2. Independencia del proveedor:
  3. Software de dominio publico: este tipo de software no tienen licencias de uso, por lo tanto corre el peligro de dejar de serlo si alguien lo utiliza con el fin de apropiárselo.

  1. Al disponer del código fuente, cualquier persona puede continuar ofreciendo soporte, desarrollo u otro tipo de servicios para el software.
  2. No estamos supeditados a las condiciones del mercado de nuestro proveedor, es decir que si este se va del mercado porque no le conviene y discontinua el soporte, nosotros podemos contratar a otra persona.
  1. de la Lengua:

  1. Traducción: cualquier persona capacitada puede traducir y adaptar un software libre a cualquier lengua.
  2. Corrección ortográfica y gramatical: una vez traducido el software libre puede presentar errores de este tipo, los cuales pueden ser subsanados con mayor rapidez por una persona capacitada.
  1. Mayor seguridad y privacidad:

  1. Los sistemas de almacenamiento y recuperación de la información son públicos. Cualquier persona puede ver y entender como se almacenan los datos en un determinado formato o sistema.
  2. Existe una mayor dificultad para introducir código malicioso como ser: espía (p/ej. capturador de teclas), de control remoto (p/ej. Troyano), de entrada al sistema (p/ej. puerta trasera), etc.
  1. Garantía de continuidad: el software libre puede seguir siendo usado aun después de que haya desaparecido la persona que lo elaboro, dado que cualquier técnico informatico puede continuar desarrollándolo, mejorándolo o adaptándolo.
  2. Ahorro en costos: en cuanto a este tópico debemos distinguir cuatro grandes costos: de adquisición, de implantación (este a su vez se compone de costos de migración y de instalación), de soporte o mantenimiento, y de interoperabilidad. El software libre principalmente disminuye el costo de adquisición ya que al otorgar la libertad de distribuir copias la puedo ejercer con la compra de una sola licencia y no con tantas como computadoras posea (como sucede en la mayoría de los casos de software propietario). Cabe aclarar que también hay una disminución significativa en el costo de soporte, no ocurriendo lo mismo con los costos de implantación y de interoperatividad.
Desventajas del software libre
Si observamos la situación actual, es decir la existencia mayoritaria de Software Propietario, tenemos:
  1. Dificultad en el intercambio de archivos: esto se da mayormente en los documentos de texto (generalmente creados con Microsoft Word), ya que si los queremos abrir con un Software Libre (p/ ej. Open Office o LaTeX) nos da error o se pierden datos. Pero esta claro que si Microsoft Word creara sus documentos con un formato abierto (o publico) esto no sucedería.
  2. Mayores costos de implantación e interoperabilidad: dado que el software constituye "algo nuevo", ello supone afrontar un costo de aprendizaje, de instalación, de migración, de interoperabilidad, etc., cuya cuantía puede verse disminuida por: mayor facilidad en las instalaciones y/o en el uso, uso de emuladores (p/ej. Si el usuario utiliza Microsoft Windows, la solución seria instalar alguna distribución de GNU/Linux y luego un emulador de Windows, como Wine, VMWare. Terminal X, Win4Lin). Vale aclarar que el costo de migración esta referido al software, ya que en lo que hace a Hardware generalmente el Software Libre no posee mayores requerimientos que el Software Propietario.
Decisiones que afecta el uso del Software Libre
  1. Libertad de elección:

  1. Respecto al software: se obtiene la independencia del soporte de versiones. Es de publico conocimiento que Microsoft ha dejado de ofrecer soporte de desarrollo a Windows 95 y Windows 98, para dedicarse de lleno a Windows Me, 2000, XP y .NET.
  2. Respecto al Hardware: al tener requisitos de funcionamiento no tan elevados, el usuario no esta atado a la compra de una determinada computadora, o procesador, o disco rígido, o cantidad de memoria RAM, etc. Esa compra que haga el usuario solo depende de la velocidad con la que desee realizar sus tareas, no de si el software va a funcionar o no en esas condiciones.
  3. Respecto al soporte: al tener acceso al código fuente, cualquier persona idónea nos puede ofrecer soporte, no solo nuestro proveedor. En el software Propietario esto no sucede, ya que ninguna persona ajena al proveedor conoce el funcionamiento interno del mismo.
  4. Respecto a la Formación o Capacitación: la puede ofrecer cualquiera, no solo el proveedor.
  1. Protección de la inversión:

  1. En Software: Los desarrollos en software siempre son aprovechables para otros desarrollos, si se licencian de manera "libre". Además, el fomento de la comunidad de usuarios supone un potencial extraordinario en cuanto a la generación de nuevo y mejor software.
  2. En Hardware: no se necesita reemplazar el hardware constantemente, porque no se necesita cambiar el software si este ya no funciona como se quiere.
  3. En Soporte: la experiencia ganada por los técnicos propios puede extenderse a otro tipo de software.
  4. En Formación: como no existen artificios para ocultar información, puede elegirse a otra persona que brinde capacitación con un precio mas accesible.
  1. Relación rendimiento/ Precio:
  1. Costo del Software: el software libre tiene la ventaja de no obligar a pagar una licencia por cada computadora en que se lo instale.

  2. Costo del Hardware: hay cierto Software Propietario que tiene requerimientos excesivos de hardware para funcionar. Es decir, no hay relación razonable entre la tarea que realiza y el hardware que requiere.
  3. Costo de Soporte: su costo es menor porque cualquiera lo puede ofrecer, si bien es cierto que no tenemos una calidad garantizada.
  4. Costo de Formación: su costo es menor, al no estar monopolizada. Aquí cabe el mismo comentario que el realizado con respecto al costo de soporte.
  1. Comunicación e interoperabilidad de sistemas: el Software Libre garantiza el respeto a los estándares en los formatos, protocolos e interfases. En cambio el Software Propietario generalmente los cambia, para obligar al usuario a cambiar de versión. Pero un costo importante en esta parte es el de adaptar los estándares cerrados a estándares abiertos (por ejemplo, XLS a XML, DOC a Tex, etc.)
Maneras de obtener software libre
  1. A través de copias en CD: los que a su vez se pueden conseguir en revistas especializadas, o comprándolos en una casa de computación, o pidiéndoselos a un amigo, pariente, etc.
  2. A través de Internet: a su vez, por medio de FTP, sitios Web, canales de chat, foros de noticias, programas de intercambio de archivos, etc.
  3. A través de una computadora: en este caso, comprando una que venga con Software Libre preinstalado, ya sea de fabrica o por su vendedor.
Leyes relacionadas
En el ámbito nacional tenemos:
  1. Ley 11723: es una ley compuesta por 89 artículos, sancionada en 1933 (y todavía vigente), conocida como "Ley de Propiedad Intelectual" o también como "Ley de Propiedad Científica, Literaria y Artística". Esta ley regula todo lo referente a derecho de propiedad de una obra artística, científica o literaria, derechos de coautor, enajenación o cesión de una obra, licencias, etc. Además, establece sanciones tanto pecuniarias (multa) como privativas de la libertad (prisión) a quienes violen sus normas. Su ultima reforma data de Noviembre de 1998, cuando por Ley 25036 se le introdujeron modificaciones referidas al software, para darle fin a las discusiones doctrinarias y jurisprudenciales sobre la cuestión de si el software estaba o no bajo el amparo de esta ley. Ahora establece expresamente en su Art. 1 que "... las obras científicas, literarias y artísticas comprenden los escritos de toda naturaleza y extensión, entre ellos los programas de computación fuente y objeto; las compilaciones de datos o de otros materiales, ..." y en su art. 55 bis que "La explotación de la propiedad intelectual sobre los programas de computación incluirá entre otras formas los contratos de licencia para su uso o reproducción".
  2. Proyecto de ley sobre Software Libre: es un proyecto presentado en Marzo de 2001 por Marcelo Luis Dragan, Diputado Nacional por la provincia de Tierra del Fuego, del Partido Acción por la Republica. Originalmente lleva el nombre de de Utilización de Software Libre por el Estado Nacional", y establece la obligación de usar prioritariamente Software Libre en todas las dependencias de la Administración Publica Nacional, salvo excepciones. Entre los aspectos que motivaron el proyecto, se destacan el económico (por el costo de las licencias y por la libertad de copiar que otorga el Software Libre), el moral (es conocido que en todos los ámbitos de la Administración Publica se utiliza Software Ilegal, ya sea por cuestiones de costos, negligencia, etc., lo cual coloca al Estado como uno de los principales infractores a la Ley 11723), el cultural, el educativo, el de seguridad nacional, etc. Actualmente este proyecto se encuentra en estudio en la comisión de Legislación General y Comunicación.
Entidades relacionadas con el Software
Hay una innumerable cantidad de organizaciones relacionadas con esta temática:
Por el lado del Software Libre: la FSF, la Organización Open Source, la Fundación Vía Libre, etc.
Por el lado del "Software Legal", tenemos dos:
  1. La BSA: "Business Software Alliance" es una organización mundial sin fines de lucro, creada en 1988 por un grupo de empresas fabricantes de software. Tiene tres funciones fundamentales: a) Inculcar a los gobiernos y a los consumidores que pagar por usar en Software redunda en beneficio de la economía, incrementando la productividad de los trabajadores y el numero de puestos en empleo. b) Emprender acciones legales contra aquellos que no cumplan con las leyes de propiedad intelectual y/o que hagan mal uso de las licencias de software. c) Promover legislaciones que protejan los derechos de propiedad intelectual, y conseguir que los gobiernos las ejecuten.
  2. La organización "Software Legal": es una asociación civil sin fines de lucro, creada en 1992 por un grupo de empresas fabricantes de software. Tiene las mismas funciones y características de la BSA.
Importancia de afrontar el estudio del Software Libre
  1. Económica: el costo de las licencias de Software Propietario es bastante importante, y por la situación económica actual, imposible de afrontar de la manera que los fabricantes de Software lo piden.
  2. Legal: el Software Libre es siempre legal, salvo contadas excepciones (p/ej., que compilemos el código fuente y lo vendamos como propietario). Por lo tanto, al utilizar este tipo de software estaremos siempre "por derecha", por lo que no seremos pasibles de multas y/o prisión.
  3. Técnica: es sabido que Microsoft ha dejado de ofrecer soporte de desarrollo para Windows 95 y Windows 98, por lo que si hoy o mañana se descubre un error en ellos, Microsoft no esta obligado a repararlo. Para solucionar esto, tendríamos dos caminos: a) Migrar a otras versiones de Sistema Operativos de Microsoft: esto lleva aparejado una serie de costos, principalmente en licencias, luego costos de implantación, soporte e interoperabilidad, y además implica volver a hacer lo mismo dentro de dos o tres años. b) Utilizar Software Libre
  4. Laboral: la implementación de Software Libre plantea un futuro muy prometedor para aquellas personas que sepan programar, traducir, utilizar un programa, enseñar, etc. Si tenemos que elegir entre pagar una licencia de software a un coloso informático o darle trabajo directamente a una persona, es de esperar que nos volquemos a la segunda alternativa.
Conclusión
Es importante que como estudiantes de Ciencias Económicas vayamos cambiando nuestras costumbres con respecto al Software que utilizamos.
  1. Los que tienen computadora en su casa: instalando alguna distribución de GNU/Linux (tener en cuenta que pueden "convivir" con un Sistema Operativo propietario como Microsoft Windows) o utilizando Software Libre para Windows (como Open Office, LaTeX, Mozilla, FreeAmp, The GIMP, etc.)
  2. Los que trabajan en la Administración Publica: hablando con el Jefe de Sistemas sobre esta "Filosofía del Software Libre" y sobre las posibilidades de implementación, o instalando Software Libre por nuestra cuenta pero con la debida autorización.
  3. Los que trabajan en el estudio de un/a Contador/a: charlando sobre este tema con el/la y sugiriéndole que le pida a su proveedor de software (Tango, Bejerman, Oracle, etc.) que desarrolle sistemas para GNU/Linux u otra plataforma.
  4. Los que trabajan en otra parte o los que no trabajan: hablar con compañeros de trabajo o amigos sobre este tema, compartir experiencias, sugerir trucos, etc.

martes, 1 de marzo de 2011

TERMINOS TECNOLOGICOS

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.

EL HARDWARE
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

Se clasifica generalmente en básico y complementario, entendiendo por básico todo aquel dispositivo necesario para iniciar el ordenador, 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 salidaSon 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.


Estudio del hardware

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, la robótica industrial y microbotica, 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.
http://www.trucoswindows.net/conteni7id-22-Que-es-el-Hardware.html

MICROPROCESADOR

El microprocesador, o simplemente procesador, es el circuito integrado central y más complejo de una computadora u ordenador; a modo de ilustración, se le suele asociar por analogía como el "cerebro" de una computadora.
El procesador es un circuito integrado constituido por millones de componentes electrónicos integrados. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como microcomputador.
Desde el punto de vista funcional es, básicamente, el encargado de realizar toda operación aritmético-lógica, de control y de comunicación con el resto de los componentes integrados que conforman un PC, siguiendo el modelo base de Von Neumann. También es el principal encargado de ejecutar los programas, sean de usuario o de sistema; sólo ejecuta instrucciones programadas a muy bajo nivel, realizando operaciones elementales, básicamente, las aritméticas y lógicas, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.

BUS DE DATOS


En arquitectura de computadores, el bus es un sistema digital que transfiere datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.
En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes del computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es el uso de buses seriales como el USB, Custom Firewire para comunicaciones con periféricos y el reemplazo de buses paralelos para conectar toda clase de dispositivos, incluyendo el microprocesador con el chipset en la propia placa base. Son conexiones con lógica compleja que requieren en algunos casos gran poder de cómputo en los propios dispositivos, pero que poseen grandes ventajas frente al bus paralelo que es menos inteligente.
Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.


EL SOFTWARE
Software, programas de computadoras. Son las instrucciones responsables de que el hardware (la máquina) realice su tarea. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los (software del sistema, que controlan los trabajos del ordenador o computadora, y el software de aplicacion, que dirige las distintas tareas para las que se utilizan las coputadoras. Por lo tanto, el software del sistema procesa tareas tan esenciales, aunque a menudo invisibles, como el mantenimiento de los archivos del disco y la  administracion de la pantalla, mientras que el software de aplicacion lleva a cabo tareas de tratamiento de textos, gestion de bases de datos y similares. Constituyen dos categorías separadas el software de red, que permite comunicarse a grupos de usuarios, y el software de lenguaje utilizado para escribir programas 

Sistema operativo, software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y manipula el hardware del ordenador o computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos. Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos de utilizar.
Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de procesos se denomina conmutación de contexto. El sistema operativo se encarga de controlar el estado de los procesos suspendidos. También cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del cambio de contexto.
- Software de Aplicación, programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas 'a medida' suelen ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema específico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de cálculo y de base de datos.
- Lenguaje de programación del software
Lenguaje de programación, en informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción.
Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta secuencia de señales se denomina código máquina. El código representa normalmente datos y números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de cada microprocesador.
Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son a menudo difíciles de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel son prácticamente específicos para cada procesador. Si se quiere ejecutar el programa en otra máquina con otra tecnología, será necesario reescribir el programa desde el principio.
Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido.
Virus (informática), programa de ordenador que se reproduce a sí mismo e interfiere con el hardware de una computadora o con su sistema operativo (el software básico que controla la computadora). Los virus están diseñados para reproducirse y evitar su detección. Como cualquier otro programa informático, un virus debe ser ejecutado para que funcione: es decir, el ordenador debe cargar el virus desde la memoria del ordenador y seguir sus instrucciones. Estas instrucciones se conocen como carga activa del virus. La carga activa puede trastornar o modificar archivos de datos, presentar un determinado mensaje o provocar fallos en el sistema operativo.
Existen otros programas informáticos nocivos similares a los virus, pero que no cumplen ambos requisitos de reproducirse y eludir su detección. Estos programas se dividen en tres categorías: caballos de Troya, bombas lógicas y gusanos. Un caballo de Troya aparenta ser algo interesante e inocuo, por ejemplo un juego, pero cuando se ejecuta puede tener efectos dañinos. Una bomba lógica libera su carga activa cuando se cumple una condición determinada, como cuando se alcanza una fecha u hora determinada o cuando se teclea una combinación de letras. Un gusano se limita a reproducirse, pero puede ocupar memoria de la computadora y hacer que sus procesos vayan más lentos.
Por lo general se piensa que los ordenadores son máquinas que realizan tareas de cálculos o procesamiento de textos. La descripción anterior es sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre lo que se pide a la computadora y lo que realmente comprende. Existe también una relación compleja entre los lenguajes de alto nivel y el código máquina.
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.
4 INTÉRPRETES Y COMPILADORES
La traducción de una serie de instrucciones en lenguaje ensamblador (el código fuente) a un código máquina (o código objeto) no es un proceso muy complicado y se realiza normalmente por un programa especial llamado compilador. La traducción de un código fuente de alto nivel a un código máquina también se realiza con un compilador, en este caso más complejo, o mediante un intérprete. Un compilador crea una lista de instrucciones de código máquina, el código objeto, basándose en un código fuente. El código objeto resultante es un programa rápido y listo para funcionar, pero que puede hacer que falle el ordenador si no está bien diseñado. Los intérpretes, por otro lado, son más lentos que los compiladores ya que no producen un código objeto, sino que recorren el código fuente una línea cada vez. Cada línea se traduce a código máquina y se ejecuta. Cuando la línea se lee por segunda vez, como en el caso de los programas en que se reutilizan partes del código, debe compilarse de nuevo. Aunque este proceso es más lento, es menos susceptible de provocar fallos en la computadora.

http://www.monografias.com/trabajos15/software/software.html