17 jul. 2007

CPU O UNIDAD CENTRAL DE PROCESAMIENTO


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 computadora. Esta amplia definición puede fácilmente ser aplicada a muchos de las primeras computadoras que existieron mucho antes que el término "CPU" estuviera en amplio uso

La unidad central de proceso (UCP) en inglés CPU ó simplemente procesador. Es el componente en una computadora digital que interpreta las instrucciones y procesa los datos contenidos en los programas de computadora. Los CPU proporcionan la característica fundamental de la computadora digital, la programabilidad, y son uno de los componentes necesarios encontrados en los ordenadores o computadores de cualquier tiempo, junto con el almacenamiento primario y las facilidades de entrada y 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

Los primeros CPU fueron diseñados a la medida como parte de una computadora más grande, generalmente una computadora única 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 estandarizados adaptados para uno o muchos propósitos. Esta tendencia de estandarización comenzó generalmente en la era de los transistores discretos, ordenadores centrales, y microordenadores, y fue acelerada rápidamente con la popularización del circuito integrado (IC), éste ha permitido que sean diseñados y fabricados CPU más complejos en espacios pequeños (en la orden de milímetros). Tanto la miniaturización como la estandarizació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 móviles o celulares, juguetes, entre otros.

MEMORIA CACHÉ:

Concepto
La memoria caché es una clase de memoria RAM estática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente.

La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantáneamente.

La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces más que la memoria principal dinámica para la misma cantidad de memoria.

Utilización:
Acelerar el procesamiento de las instrucciones de memoria en la CPU.
Los ordenadores tienden a utilizar las mismas instrucciones y (en menor medida), los mismos datos repetidamente, por ello la caché contiene las instrucciones más usadas.
Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria caché, tanto más rápido será el funcionamiento del ordenador.

Funcionamiento de la memoria caché:
La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las últimas operaciones. La CPU siempre busca primero la información en la caché, lo normal es que va encontrar ahí la mayoría de las veces, con lo que el acceso será muy rápido. Pero si no encuentra la información en la caché, se pierde un tiempo extra en acudir a la RAM y copiar dicha información en la caché para su disponibilidad.

Una forma de entender el funcionamiento de la memoria caché consiste en la analogía de un videoclub, equipado con un mostrador y una habitación capaz de almacenar cientos de vídeos. Ante la petición de cada cliente, el dependiente deberá acudir hasta el almacén, buscar la película solicitada, volver al mostrador y entregar la cinta al cliente.
Ante la devolución de una cinta, el dependiente debe caminar hacia el almacén y guardar dicha cinta en el lugar apropiado. Esta forma de trabajo no es nada eficiente, ya que implica demasiados desplazamientos y, por tanto, la atención al cliente es lenta.

Tipos de caché
Memoria RAM como caché:
Las unidades de almacenamiento (discos duros, discos flexibles, etc.) y otros muchos periféricos utilizan la memoria RAM como sistema de caché, una zona de la RAM contiene la información que se ha buscado últimamente en dichos dispositivos, de forma que basta con acceder a la RAM para recuperarla.
Disco duro como caché:
Se emplea al disco duro como caché a dispositivos aún más lentos (unidades CD-ROM). Estos sistemas de caché suelen estar gobernados mediante software, que se suele integrar en el sistema operativo. La caché de disco almacena direcciones concretas de sectores, almacena una copia del directorio y en algunos casos almacena porciones o extensiones del programa o programas en ejecución.
Los navegadores Web utilizan el disco duro como caché, al solicitar una página Web, el navegador acude a Internet y comprueba la fecha de la misma. Si la página no ha sido modificada, se toma directamente del disco duro, con lo que la carga es muy rápida. En caso contrario se descarga desde Internet y se actualiza la caché, con un cierto tiempo de espera. En el caso de los navegadores Web, el uso del disco duro es más que suficiente, ya que es extremadamente más rápido que el acceso a Internet.

TARJETA MADRE O PLACA BASE

La placa base, placa madre o tarjeta madre (en inglés motherboard, mainboard ) es la tarjeta de circuitos impresos que sirve como medio de conexión entre el microprocesador, los circuitos electrónicos de soporte, las ranuras para conectar parte o toda la RAM del sistema, la ROM y las ranuras especiales (slots) que permiten la conexión de tarjetas adaptadoras adicionales. Estas tarjetas de expansión suelen realizar funciones de control de periféricos tales como monitores, impresoras, unidades de disco, etc.
Se diseña básicamente para realizar tareas específicas vitales para el funcionamiento de la computadora, como por ejemplo las de:
Conexión física.
Administración, control y distribución de energía eléctrica.
Comunicación de datos.
Temporización.
Sincronismo.
Control y monitoreo.
Para que la placa base cumpla con su cometido, lleva instalado un software muy básico denominado BIOS.

TIPOS DE PLACAS
A continuación se describen los tipos de placas más usuales.
XT (8.5 × 11" or 216 × 279 mm)
AT (12 × 11"–13" o 305 × 279–330 mm)
Baby-AT (8.5" × 10"–13" o 216 mm × 254-330 mm)
ATX (Intel 1996; 12" × 9.6" o 305 mm × 244 mm)
EATX (12" × 13" o 305mm × 330 mm)
Mini-ATX (11.2" × 8.2" o 284 mm × 208 mm)
microATX (1996; 9.6" × 9.6" o 244 mm × 244 mm)
LPX (9" × 11"–13" o 229 mm × 279–330 mm)
Mini-LPX (8"–9" × 10"–11" o 203–229 mm × 254–279 mm)
NLX (Intel 1999; 8"–9" × 10"-13.6" o 203–229 mm × 254–345 mm)
FlexATX (Intel 1999; 9.6" × 9.6" o 244 × 244 mm max.)
Mini-I (VIA Technologies 2003; 6.7" × 6.7" o 170 mm × 170 mm max.; 100W max.)
Nano-ITX (VIA Technologies 2004; 120 mm × 120 mm max.)
BTX (Intel 2004; 12.8" × 10.5" o 325 mm × 267 mm max.)
MicroBTX (Intel 2004; 10.4" × 10.5" o 264 mm × 267 mm max.)*PicoBTX (Intel 2004; 8.0" × 10.5" o 203 mm × 267 mm max.)
WTX (Intel 1998; 14" × 16.75" o 355.6 mm × 425.4 mm)
ETX y PC/104, utilizados en sistemas embebidos.

Formato de Placa AT
Es el empleado por el IBM AT y sus clones en formato sobremesa completo y torre completo. Su tamaño es de 12 pulgadas (305 mm) de ancho x 11-13 pulgadas de profundo. Su gran tamaño dificultaba la introducción de nuevas unidades de disco. Además su conector con la fuente de alimentación inducía fácilmente al error siendo numerosos los casos de gente que freía la placa al conectar indebidamente los dos juegos de cables (contar con un código de color para situar 4 cables negros en la zona central). El conector de teclado es el mismo DIN 5 del IBM PC original.

Formato de Placa Baby AT
IBM presenta en 1985 el formato Baby AT, que es funcionalmente equivalente a la AT, pero significativamente menor : 8,5 pulgadas de ancho y de 10 a 13 pulgadas de profundo. su menor tamaño favorece las cajas más pequeñas y facilita la ampliación, por lo que toda la industria se vuelca en él abandonando el formato AT. No obstante sigue heredando los problemas de diseño del AT, con la multitud de cables que dificultan la ventilación (algo que se va volviendo más crítico a medida que sube la potencia de los microprocesadores) y con el micro alejado de la entrada de alimentación. Todo esto será resuelto por el formato ATX. Pero dado el gran parque existente de equipos en caja Baby AT, durante un tiempo se venderán placas Super Socket 7 (que soportan tanto los Pentium MMX como los AMD K6 II y otros micros, hasta los 500 Mhz, e incluyen slot AGP) en formato Baby AT pero con ambos conectores de fuente de alimentación (AT y ATX). Las cajas ATX, incluso hoy, soportan en sus ranuras el formato Baby AT.

Formato de Placa ATX
El formato ATX (siglas de Advanced Technology Extended') es presentado por Intel en 1995. con un tamaño de 12 pulgadas de ancho por 9,6 pulgadas de profundo, en este nuevo formato se resuelven todos los inconvenientes que perjudicaron a la ya mencionada placa. Los puertos más habituales (impresora Centronics, RS-232 en formato DB-9, la toma de joystick/midi y de tarjeta de sonido, los puertos USB y RJ-45 (para red a 100) y en algunos casos incluso la salida de monitor VGA, se agrupan en el lado opuesto a los slots de ampliación. El puerto DIN 5 de teclado es sustituido por las tomas PS/2 de teclado y ratón (llamadas así por introducirlas IBM en su gama de computadoras PS/2 y rápidamente adoptada por todos los grandes fabricantes) y situados en el mismo bloque. Todo esto conlleva el que muchas tarjetas necesarias se integren en la placa madre, abaratando costes y mejorando la ventilación. Inmediatamente detrás se sitúa el zócalo o slot de procesador y las fijaciones del ventilador (que al estar más próxima a la fuente de alimentación y su ventilador, actúa más eficientemente), justo al lado de la nueva conexión de fuente de alimentación (que elimina el quemado accidental de la placa). Tras él vienen los slots de memoria RAM y justo detrás los conectores de las controladoras IDE, SCSI (principalmente en servidores y placas de gama alta) y de controladora de disquete, justo al lado de las bahías de disco de la caja (lo que reduce los cables)
La nueva fuente, además del interruptor físico de corriente como en la AT, tiene un modo de apagado similar al de los electrodomésticos de consumo, alimentado a la placa con una pequeña corriente que permite que responda a eventos (como una señal por la red o un mando a distancia) encendiéndose o, si se ha habilitado el modo de hibernado heredado de los portátiles, restablecer el trabajo en el punto donde se dejó.

Formato de Placa microATX
El formato microATX (también conocida como µATX) es un formato de placa base pequeño con un tamaño máximo de 9,6 x 9,6 pulgadas (244 mm x 244 mm) empleada principalmente en cajas tipo cubo y SFF. Debido a sus dimensiones sólo tiene sitio para 1 o 2 slots PCI y/o AGP, por lo que suelen incorporar puertos FireWire y USB 2 en abundancia (para permitir conectar unidades externas y regrabadoras de DVD).
Especificaciones de microATX (PDF)
Formato de Placa LPX
Basada en un diseño de Western Digital, permite el uso de cajas más pequeñas en una placa ATX situando los slots de expansión en una placa especial llamada riser card Este diseño sitúa a las placas de ampliación en paralelo con la placa madre en lugar de en perpendicular. Generalmente es usado sólo por grandes ensambladores como IBM, Compaq, HP o Dell, principalmente en sus equipos SFF (Small Form Format o cajas de formato pequeño). Por eso no suelen tener más de 3 slots cada uno.

Componentes de la tarjeta madre:
Socket
Zócalo de memoria
Chipset (Northbridge y Southbridge)
Slot
Conector AT
Conector ATX
Conector ATX 2.0
Conector ATX12V
ROM bios
RAM CMOS
IDE
Fdc
Panel frontal
Pila
Cristal de cuarzo
PS/2 (mouse y teclado)
USB
COM1
LPT1

PERIFERICOS

PERIFERICOS DE ENTRADA Y SALIDA:
SINTESIS
Si consideramos que el núcleo del ordenador está constituido por la placa-base y los elementos montados en ella (los elementos que podemos llamar "internos"), y que el resto de los dispositivos conectados son "externos", entonces podemos considerarlas dos tipos de comunicaciones o transferencias de información
Transferencias externas o de entrada/salida (E/S); ocurren entre los elementos exteriores y la placa-base. Básicamente son transferencias entre dispositivos exteriores (periféricos) y el procesador, o entre periféricos y memoria.
Transferencias Internas; ocurren entre los elementos internos. Mayoritariamente se trata de transferencias entre el procesador y la memoria, o entre las diversas posiciones de memoria. Pero también (y esto es importante) existen transferencias entre los anteriores y otros dispositivos hardware que conectan directamente con el bus. Considere que al fin y al cabo, incluso los dispositivos considerados "externos" o periféricos, conectan con algún dispositivo (por ejemplo, un adaptador) que está a su vez conectado al bus de la placa base.
Debemos recordar aquí que las operaciones E/S en las que interviene la memoria, son abrumadoramente más importantes y frecuentes que las del resto, por lo que el PC les da un tratamiento especial; disponen de un subsistema específico en el bus, y el tratamiento software también es especial (el procesador dispone de un montón de instrucciones específicas para controlar las operaciones con la memoria). Nosotros le hemos dedicado un capítulo específico. En consecuencia, aquí nos referiremos principalmente a las E/S con otros dispositivos hardware.

PERIFÉRICOS DE ENTRADA:

Estos dispositivos permiten al usuario del computador introducir datos, comandos y programas en el CPU.

TECLADO:
Un teclado de computadora es un periférico utilizado para la introducción de órdenes y datos en una computadora. Existen distintas disposiciones de teclado, para que se puedan utilizar en diversos lenguajes. El tipo estándar de teclado inglés se conoce como QWERTY. Denominación de los teclados de computadora y máquinas de escribir que se utilizan habitualmente en los países occidentales, con alfabeto latino. Las siglas corresponden a las primeras letras del teclado, comenzando por la izquierda en la fila superior. El teclado en español o su variante latinoamericana son teclados QWERTY que se diferencian del inglés por presentar la letra "ñ" y "Ñ" en su distribución de teclas.

MOUSE Ó RATÓN:
El mouse (del inglés, pronunciado [ maus ]) o ratón es un periférico de computadora de uso manual, generalmente fabricado en plástico, utilizado como entrada o control de datos. Se utiliza con una de las dos manos del usuario y detecta su movimiento relativo en dos dimensiones por la superficie horizontal en la que se apoya, reflejándose habitualmente a través de un puntero o flecha en el monitor.
Hoy en día es un elemento imprescindible en un equipo informático para la mayoría de las personas, y pese a la aparición de otras tecnologías con una función similar, como la pantalla táctil, la práctica ha demostrado que tendrá todavía muchos años de vida útil. No obstante, el futuro podría ser posible mover el cursor o el puntero con los ojos o basarse en el reconocimiento de voz.

















SCANNER:
En informática, un escáner (del idioma inglés: scanner) es un periférico que se utiliza para convertir, mediante el uso de la luz, imágenes impresas a formato digital.
Hay varios tipos. Hoy en día los más extendidos son los planos.
Tipos:
De rodillo. Como el escáner de un fax
De mano. En su momento muy económicos, pero de muy baja calidad. Prácticamente extintos.
Planos. Como el de las fotocopiadoras.
Orbitales. Para escanear elementos frágiles.
De tambor. Consiguen muy buena calidad de escaneo, pero son lentos y caros.
Otros tipos. Existen tipos de escáneres especializados en un trabajo determinado (por ejemplo para escanear microfilms, o para obtener el texto de un libro completo, para negativos,...)
Los escáneres pueden tener accesorios como un alimentador de hojas automático o un adaptador para diapositivas y transparencias.

PERIFÉRICOS DE SALIDA:
Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora






MONITOR:
El monitor o pantalla de computadora, es un dispositivo de salida que, mediante una interfaz, muestra los resultados del procesamiento de una computadora.





CÁMARA WEB:
Una cámara web o web cam es una pequeña cámara digital conectada a una computadora, la cual puede capturar imágenes y transmitirlas a través de Internet en directo, ya sea a una página web o a otra u otras computadoras de forma privada.
Las webcams necesitan una computadora para transmitir las imágenes. Sin embargo, existen otras cámaras autónomas que tan sólo necesitan un punto de acceso a la red informática, bien sea ethernet o inalámbrico. Para diferenciarlas de la webcam o cámaras de web se las denomina net cam o cámaras de red.

ALTAVOCES:
Dispositivos por los cuales se emiten sonidos procedentes de la tarjeta de sonido. Actualmente existen bastantes ejemplares que cubren la oferta más común que existe en el mercado. Se trata de modelos que van desde lo más sencillo (una pareja de altavoces estéreo), hasta el más complicado sistema de Dolby Digital, con nada menos que seis altavoces, pasando por productos intermedios de 4 o 5 altavoces

PUERTOS



En computación, un puerto es una forma genérica de denominar a una interfaz por la cual diferentes tipos de datos pueden ser enviados y recibidos. Dicha interfaz puede ser física, o puede ser a nivel software (por ej: los puertos que permiten la transmisión de datos entre diferentes computadoras).


TIPO DE PUERTO DE HARDWARE:
Puerto serie.
Un puerto serie es una interfaz de comunicaciones entre ordenadores y periféricos en donde la información es transmitida bit a bit enviando un solo bit a la vez (en contraste con el puerto paralelo que envía varios bits a la vez).
El puerto serie por excelencia es el RS-232 que utiliza cableado simple desde 3 hilos hasta 25 y que conecta ordenadores o microcontroladores a todo tipo de periféricos, desde terminales a impresoras y modems pasando por ratones.
La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el integrado 82C50.
El RS-232 original tenía un conector tipo D de 25 pines, sin embargo la mayoría de dichos pines no se utilizaban, por lo que IBM incorporó desde su PS/2 un conector más pequeño de solamente 9 pines que es el que actualmente se utiliza.
En Europa la norma RS-422 de origen alemán es también un estándar muy usado en el ámbito industrial.
Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los puertos paralelos, sin embargo, con el paso del tiempo, están apareciendo multitud de puertos serie con una alta velocidad que los hace muy interesantes ya que tienen la ventaja de un menor cableado y solucionan el problema de la velocidad con un mayor apantallamiento; son más baratos ya que usan la técnica del par trenzado; por ello, el puerto RS-232 e incluso multitud de puertos paralelos están siendo reemplazados por nuevos puertos serie como el USB, el Firewire o el Serial ATA. Los puertos serie sirven para comunicar al ordenador con la impresora, el ratón o el módem; Sin embargo, específicamente, el puerto USB sirve para todo tipo de periféricos, desde ratones, discos duros externos, hasta conexión bluetooth. Los puertos SATA (Serial ATA): tienen la misma función que los IDE, (a éstos se conecta, la disquetera, el disco duro, lector/grabador de CD's y DVD's) pero los SATA cuentan con mayor velocidad. Un puerto de red puede ser puerto serie o puerto paralelo.
Malillos

Slots
Los slots, también llamados slots de expansión o ranuras de expansión, son puertos que permiten conectar a la tarjeta madre una tarjeta adaptadora adicional la cual suele realizar funciones de control de periféricos tales como monitores, impresoras, unidades de disco, etc. En las tarjetas madre LPX los slots de expansión no se encuentran sobre Existen diferentes tipos de slots de expansión, como el AGP, ISA, PCI, etc.

AGP
El puerto AGP se utiliza exclusivamente para conectar tarjetas gráficas. Está siendo reemplazado por el slot PCI-Express que es más potente. AGP quiere decir Advanced Graphics Port(Puerto de gráficos avanzados).

ISA
El slot ISA fue reemplazado desde el año 2000 por el slot PCI. Los componentes diseñados para el slot ISA eran muy grandes y fueron de los primeros slots en usarse en los ordenadores personales. Hoy en día no se fabrican slots ISA. Los puertos ISA son ranuras de expansión actualmente en desuso, se incluyeron estos puertos hasta los primeros modelos del Pentium III. NOTA: El slot ISA (Industry Standard Arquitecture) es un tipo de slot o ranura de expansión de 16 Bits capaz de ofrecer hasta 16 MB/s a 8 MHz.

PCI
Peripheral Component Interconnect
Puertos PCI (Peripheral Component Interconnect): son ranuras de expansión en las que se puede conectar tarjetas de sonido, de vídeo, de red etc. El slot PCI se sigue usando hoy en día y podemos encontrar bastantes componentes (la mayoría) en el formato PCI. Dentro de los slots PCI está el PCI-Express. Los componentes que suelen estar disponibles en este tipo de slot son:
Capturadoras de televisión
Controladoras RAID
Tarjetas de red, inalámbricas o no.
Tarjetas de sonido
Puertos de memoria
A estos puertos se conectan las tarjetas de [memoria RAM].

PUERTOS USB
El Universal Serial Bus (bus universal en serie) fue creado en 1996 por siete empresas: IBM, Intel, Northern Telecom, Compaq, Microsoft, Digital Equipment Corporation y NEC.
El estándar incluye la transmisión de energía eléctrica al dispositivo conectado. Algunos dispositivos requieren una potencia mínima, así que se pueden conectar varios sin necesitar fuentes de alimentación extra. La mayoría de los concentradores incluyen fuentes de alimentación que brindan energía a los dispositivos conectados a ellos, pero algunos dispositivos consumen tanta energía que necesitan su propia fuente de alimentación. Los concentradores con fuente de alimentación pueden proporcionarle corriente eléctrica a otros dispositivos sin quitarle corriente al resto de la conexión.
El diseño del USB tenía en mente eliminar la necesidad de adquirir tarjetas separadas para poner en los puertos bus ISA o PCI, y mejorar las capacidades plug-and-play permitiendo a esos dispositivos ser conectados o desconectados al sistema sin necesidad de reiniciar. Cuando se conecta un nuevo dispositivo, el servidor lo enumera y agrega el software necesario para que pueda funcionar.
El USB puede conectar periféricos como ratones, teclados, escáneres, cámaras digitales, impresoras, discos duros, tarjetas de sonido y componentes de red. Para dispositivos multimedia como escáneres y cámaras digitales, el USB se ha convertido en el método estándar de conexión. Para impresoras, el USB ha crecido tanto en popularidad que ha empezado a desplazar a los puertos paralelos porque el USB hace sencillo el poder agregar más de una impresora a un ordenador personal.
En el caso de los discos duros, el USB es poco probable que reemplace completamente a los buses como el ATA (IDE) y el SCSI porque el USB tiene un rendimiento un poco más lento que esos otros estándares. El nuevo estándar Serial ATA permite tasas de transferencia de hasta aproximadamente 150 MB por segundo. Sin embargo, el USB tiene una importante ventaja en su habilidad de poder instalar y desinstalar dispositivos sin tener que abrir el sistema, lo cual es útil para dispositivos de almacenamiento desinstalables. Hoy en día, una gran parte de los fabricantes ofrece dispositivos USB portátiles que ofrecen un rendimiento casi indistinguible en comparación con los ATA (IDE).
El USB no ha remplazado completamente a los teclados AT y ratones PS/2, pero virtualmente todas las placas base de PC traen uno o más puertos USB.

SOFTWARE LIBRE

``Software Libre'' se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:
La libertad de usar el programa, con cualquier propósito (libertad 0).
La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.
La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.
Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.

SQL:
El Lenguaje de Consulta Estructurado (Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas.
Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de interés de una base de datos, de una forma sencilla. Es un lenguaje de cuarta generación (4GL).

Orígenes y evolución:
Los orígenes del SQL están ligados a los de las bases de datos relacionales.. En 1970 E.F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también adoptado por la ISO .
Sin embargo este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado SQL-92 o SQL2.
En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.

Características generales:
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos. Es un lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizasen un lenguaje de bajo nivel orientado a registro.

Optimización
Como ya se dijo arriba, y como suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de la ejecución de la misma. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos, dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores. Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente.

Lenguaje de Definición de datos (LDD):
El lenguaje de Definición de datos, en inglés Data Definition Language (DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos.

Existen cuatro operaciones básicas:
CREATE, ALTER, DROP y TRUNCATE.

CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.

Ejemplo 1 (creación de una tabla):
CREATE TABLE TABLA_NOMBRE (
my_field1 INT UNSIGNED,
my_field2 VARCHAR (50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)
)

ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.

Ejemplo 1 (agregar columna a una tabla):
ALTER TABLE TABLA_NOMBRE (
ADD NUEVO_CAMPO INT UNSIGNED
)

DROP
Este comando elimina un objeto de la base de datos.Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo 1:
DROP TABLE TABLA_NOMBREEjemplo 2:
ALTER TABLE TABLA_NOMBRE
(
DROP COLUMN CAMPO_NOMBRE1
)

TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo 1:

TRUNCATE TABLE TABLA_NOMBRE

MySQL:
Concepto
MySQL es un sistema de administración de bases de datos. Una base de datos es una colección estructurada de datos. Esta puede ser desde una simple lista de compras a una galería de pinturas o el vasto monto de información en una red corporativa. Para agregar, accesar y procesar datos guardados en un computador, usted necesita un administrador como MySQL Server. Dado que los computadores son muy buenos manejando grandes cantidades de información, los administradores de bases de datos juegan un papel central en computación, como aplicaciones independientes o como parte de otras aplicaciones.
Es un sistema de administración relacional de bases de datos. Una base de datos relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones definidas que hacen posible combinar datos de diferentes tablas sobre pedido.
MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus necesidades. MySQL usa el GPL (GNU General Public License) para definir que puede hacer y que no puede hacer con el software en diferentes situaciones.
MySQL Database Server es la base de datos de código fuente abierto más usada del mundo. Su ingeniosa arquitectura lo hace extremadamente rápido y fácil de personalizar. La extensiva reutilización del código dentro del software y una aproximación minimalística para producir características funcionalmente ricas, ha dado lugar a un sistema de administración de la base de datos incomparable en velocidad, compactación, estabilidad y facilidad de despliegue. La exclusiva separación del core server del manejador de tablas, permite funcionar a MyQSL bajo control estricto de transacciones o con acceso a disco no transaccional ultrarrápido.



Ejemplo de programación en MySQL:
Para crear nuestra BD, debemos ser el administrador de MySQL o el root,para ello haremos lo siguiente:
mysqladmin create mybd

Ya hemos creado una BD, ahora le añadiremos una tabla y algunos registros, para lo cual copia el siguiente texto y sálvalo en un archivo, que podríamos llamar mybd.dump.
Crear tabla mybd
CREATE TABLE agenda (id INT NOT NULL AUTO_INCREMENT, nombre CHAR(50),
direccion CHAR(50), telefono CHAR(15), email CHAR(30), KEY (id) )\g

INSERT INTO agenda VALUES (0, 'Juan Pérez', 'C/ Laguna, 15. Sevilla',
'95.455.55.55', 'juan@agenda.com' )\g

INSERT INTO agenda VALUES (1, 'Luis García', 'C/ Betis, 22. Cádiz',
'95.655.66.33', 'luis@agenda.com' )\g

INSERT INTO agenda VALUES (2, 'Carlos Rodríguez', 'C/ Sevilla, 6. Huelva',
'95.113.22.77', 'carlos@agenda.com' )\g

Debemos tener en cuenta que los comandos de arriba debe escribirse cada uno en una sola línea. Se han separado para aumentar la legibilidad del código.
Ahora desde la línea de comandos ejecuta:
cat mybd.dump mysql mybd
Cabe destacar el campo id, que no puede estar vacio, y además es autoincrementable, lo cuál deberemos tener en cuenta a la hora de actualizar y añadir registros. Si no hemos cometido ningún error, ya tenemos nuestra base de datos de ejemplo en el servidor MySQL.