jueves, 23 de marzo de 2017

DB-Engines Ranking of Relational DBMS


El DB-Engines Ranking clasifica los sistemas de gestión de bases de datos de acuerdo con su popularidad. El ranking se actualiza mensualmente.



Unidad#2: 2.1 Características del DBMS


2.1  Características del DBMS

  • Control de la redundancia de datos
Este consiste en lograr una mínima cantidad de espacio de almacenamiento para almacenar los datos evitando la duplicación de la información. De esta manera se logran ahorros en el tiempo de procesamiento de la información, se tendrán menos inconsistencias, menores costos operativos y hará el mantenimiento más fácil.
  • Compartimiento de datos
Una de las principales características de las bases de datos, es que los datos pueden ser compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima eficiencia.
  • Mantenimiento de la integridad
La integridad de los datos es la que garantiza la precisión o exactitud de la información contenida en una base de datos. Los datos interrelacionados deben siempre representar información correcta a los usuarios.
  • Soporte para control de transacciones y recuperación de fallas
Se conoce como transacción toda operación que se haga sobre la base de datos. Las transacciones deben por lo tanto ser controladas de manera que no alteren la integridad de la base de datos. La recuperación de fallas tiene que ver con la capacidad de un sistema DBMS de recuperar la información que se haya perdido durante una falla en el software o en el hardware.
  • Independencia de los datos.
En las aplicaciones basadas en archivos, el programa de aplicación debe conocer tanto la organización de los datos como las técnicas que el permiten acceder a los datos. En los sistemas DBMS los programas de aplicación no necesitan conocer la organización de los datos en el disco duro. Este totalmente independiente de ello.
  • Seguridad
La disponibilidad de los datos puede ser restringida a ciertos usuarios. Según los privilegios que posea cada usuario de la base de datos, podrá acceder a mayor información que otros.
  • Velocidad
Los sistemas DBMS modernos poseen altas velocidades de respuesta y proceso.
  • Independencia del hardware
La mayoría de los sistemas DBMS están disponibles para ser instalados en múltiples plataformas de hardware.


2.1.1 Estructura de memoria y procesos de la instancia


Área Global del sistema (SGA): Es un grupo de estructuras de la memoria compartida que contiene datos e información de control de una instancia de una BD. Si varios usuarios se conectan de forma concurrente a la misma instancia, entonces los datos se comparten en el SGA, por lo que también se llama Shared Global Area.

Estructura de Datos del SGA:
  • Caché de los Buffers
  • Buffer del registro de Redo
  • El Pool compartido
  • Large Pool
  • Java Pool
  • Streams Pool
  • Caché de diccionario
v  Caché de los Buffers (Database Buffer Cache): Contiene copias de los bloques de datos de lectura de las páginas. Todos los procesos de los usuarios conectados concurrentemente a la instancia comparten el acceso a ella.

v  Buffer del registro del Rehacer (Redo Log Buffer): Contiene información sobre cambios hechos a la base de datos, la cual se almacena en las ‘entradas redo’. Estas entradas contienen la información necesaria para reconstruir, o rehacer cambios hechos en la base de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se usan para la recuperación de la base de datos, si fuera necesario.

v  El Pool Compartido: Es la parte del SGA que contiene la cache de biblioteca, la cache de diccionario, los buffers para los mensajes de ejecución paralela y las estructuras de control.

v  Large Pool: El administrador de la base de datos puede configurar un área de memoria opcional llamado large pool que proporciona grandes cantidades de memoria para asignar:
  • Memoria de la sesión para el servidor compartido y el Oracle XA interface (usado donde las transacciones interactúan con más de una base de datos)
  •  Procesamiento de E/S
  •  Copias de seguridad y operaciones de recuperación
v  Java Pool: Se usa en la memoria del servidor para almacenar todo el código y datos del JVM en las sesiones.

v  Streams Pool: En una única base de datos, se puede especificar que los flujos de memoria se asignen desde un pool en el SGA llamado Streams pool.

v  Cache de diccionario (Dictionary Cache): El diccionario de datos es una colección de tablas y vistas de la base de datos que contienen información sobre la base de datos (sus estructuras y sus usuarios).



Áreas globales de programas (PGA):
  • Es privada para cada servidor y son procesos en segundo plano; a cada proceso se asigna un PGA.
  •  El contenido de su memoria varia dependiendo donde se este ejecutando la instancia y de si el servidor es compartido.
  • Se clasifica en memoria de sección y área de SQL privada.

Área de Ordenaciones (Sort Areas):
  • Son las zonas de memoria en las que se ordenan los datos, es decir el espacio en memoria necesita la organización y ordenación de las filas.
  • Existen muchas razones importantes por las que este tamaño influye en el rendimiento.

Memoria Virtual: La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo disponga, tanto para el software de usuario como para si mismo, de mayor cantidad de memoria que este disponible físicamente.

Área de código de Software (SCA):
  • Son zonas de memoria destinadas a almacenar el código de Oracle en ejecución o que puede ejecutarse.
  • Es almacenada en una zona distinta, y mas protegida que las zonas dedicadas a almacenar los códigos de programas de usuarios.
  •  La SCA suele ser de tamaño estático, cambiando únicamente cuando el software se instala o actualiza.

¿Qué es una instancia?

Una instancia de BDD es el conjunto de estructuras de memoria y de procesos que acceden a los ficheros de datos. Cada instancia está asociada a una base de datos. Cuando se inicia una base de datos en un servidor (independientemente del tipo de computadora), se le asigna un área de memoria (SGA) y lanza uno o más procesos.

A la combinación del SGA y de los procesos es lo que se llama instancia. La memoria y los procesos de una instancia gestionan los datos de la base de datos asociada de forma eficiente y sirven a uno o varios usuarios.

Cuando se inicia una instancia El DBMS monta la base de datos, es decir, asocia dicha instancia a su base de datos correspondiente. En una misma computadora pueden ejecutarse varias instancias simultáneamente, accediendo cada una a su propia base de datos física.

Únicamente el administrador de la base de datos puede iniciar una instancia y abrir una base de datos. Si una base de datos está abierta, entonces el administrador puede cerrarla y, cuando esto ocurre, los usuarios no pueden acceder a la información que contiene.

Para permitir el acceso a los datos, Oracle utiliza un conjunto de procesos que son compartidos por todos los usuarios. Además, existen estructuras de memoria que son utilizadas para almacenar los datos más recientemente solicitados a la BDD.

2.1.2 Estructuras físicas de la base de datos


En una base de datos almacenamos información relevante para nuestro negocio u organización y desde el punto de vista físico, la base de datos está conformada por dos tipos de archivos:


Archivos de datos: contiene los datos de la base de datos internamente, está compuesto por páginas enumeradas secuencialmente que representa la unidad mínima de almacenamiento. Cada página tiene un tamaño de 8kb de información. Existen diferentes tipos de páginas, a tener en cuenta:
  • Páginas de datos: es el tipo principal de páginas y son las que almacenan los registros de datos.
  • Páginas de espacio libre (PFS Page Free Space): almacenan información sobre la ubicación y el tamaño del espacio libre.
  • Paginas GAM and SGAM: utilizadas para ubicar extensiones.
  • Páginas de Mapa de Ubicaciones de índices (IAM – Index Allocation Map): contiene información sobre el almacenamiento de páginas de una tabla o índice en particular.
  • Páginas Índices: Utilizada para almacenar registros de índices.
Archivo de Registro de Transacciones: El propósito principal del registro de transacciones es la recuperación de datos a un momento en el tiempo o complementar una restauración de copia de respaldo completa (full backup). El registro de transacciones no contiene páginas, sino entradas con todos los cambios realizados en la base de datos, como son las modificaciones de datos, modificaciones de la base de datos y eventos de copia de seguridad y restauración. El acceso a datos es secuencial, ya que el registro de transacciones se actualiza en el mismo orden cronológico en el que se hacen las modificaciones.

Este archivo no puede ser leído por herramientas de usuario de SQL auqnue existen herramientas de terceros que leen este archivo para recuperar los cambios efectuados. Dependiendo de la versión el registro de transacciones se utiliza para otros propósitos como por ejemplo bases de datos espejo (mirror) y transporte remoto de transacciones (log shipping).

Para muchos de los administradores de bases de datos, la imagen anterior representa la parte lógica y la parte física, donde:

Data File: Los datafiles son los archivos físicos en los que se almacenan los objetos que forman parte de un tablespace. Un datafile pertenece solamente a un tablespace y a una instancia de base de datos. Un tablespace puede estar formado por uno o varios datafiles. Cuando se crea un datafile, se debe indicar su nombre, su ubicación o directorio, el tamaño que va a tener y el tablespace al que va a pertenecer. Además, al crearlos, ocupan ya ese espacio aunque se encuentran totalmente vacíos, es decir, Oracle reserva el espacio para poder ir llenándolo poco a poco con posterioridad. Por supuesto, si no hay sitio suficiente para crear un archivo físico del tamaño indicado, se producirá un error y no se creará dicho archivo.

Cuando se van creando objetos en un tablespace, éstos físicamente se van almacenando en los datafiles asignados a dicho tablespace, es decir, cuando creamos una tabla y vamos insertando datos en ella, estos datos realmente se reparten por los archivos físicos o datafiles que forman parte del tablespace. No se puede controlar en qué archivo físico se almacenan los datos de un tablespace. Si un tablespace está formado por 2 datafiles y tenemos una tabla en ese tablespace, a medida que vamos insertando filas éstas se almacenarán en cualquiera de los dos datafiles indistintamente, es decir, unas pueden estar en un datafile y otras en otro.

El espacio total disponible en un tablespace es lógicamente la suma de los tamaños que ocupan los archivos físicos o datafiles que lo forman. Como hemos indicado estos datafiles, al crearlos, están totalmente vacíos, simplemente es un espacio reservado y formateado por Oracle para su uso. A medida que se van creando objetos en ellos como tablas, índices, etc. y se van insertando registros en estas tablas, los datafiles se van llenando o, lo que es lo mismo, el tablespace se va llenando.

Tienen las siguientes características:


Ø Un archivo sólo puede estar asociado con una base de datos.
Ø Los archivos de datos tienen atributos que permiten reservar automáticamente para ellos extensiones cuando se acaba el espacio.
Ø Uno o más archivos de datos forman una unidad lógica de almacenamiento llamada tablespace.

Os Block: Conocidos como Disk Block, estos mapean a los data blocks. A la hora de crear una nueva base de datos se debe indicar cuántos bloques de sistema operativo formarán un bloque de datos.


2.1.3 Requerimientos para la instalación

Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP y la modificación de los tipos archivos HTML para los diversos navegadores.

Se presenta a continuación una serie de requerimientos mínimos de hardware y software para instalar oracle 11g Express y MySQL estándar versión 5.1. En Windows Seven y Ubuntu 10.

Requerimiento
Oracle
MySQL
RAM
512 MB
512 MB
Memoria virtual1
1024 MB
1024 MB
Espacio disco duro
1.5 GB
1 GB
Tamaño máximo de la base de datos
4 GB
Sin limite
Sistema Operativo: Windows Server, Windows Seven, Linux, Unix
  

Arquitectura del Sistema 32/64-bit


Protocolo de red TCP/IP


Protocolo de red TCP/IP con SSL



miércoles, 22 de marzo de 2017

Apuntes de Lenguajes de Interfaz 2017


GUI Turbo Assembler (TASM) a 64bit MuItilingual IDE

Programas en lenguaje ensamblador 


Unidad#1: 1.4 Nuevas tecnologías y aplicaciones de los sistemas de bases de datos


1.4 Nuevas tecnologías y aplicaciones de los sistemas de bases de datos

Los sistemas orientados a los datos se caracterizan porque los datos no son de una aplicación sino de una Organización entera que los va a utilizar; se integran las aplicaciones, se diferencian las estructuras lógicas y físicas. El concepto de relación cobra importancia. Originalmente las aplicaciones cubrían necesidades muy específicas de procesamiento, se centraban en una tarea específica. Las bases de datos evitan las inconsistencias que se producían por la utilización de los mismos datos lógicos desde distintos archivos a través de procesos independientes.

  • El mundo real considera interrelaciones entre datos y restricciones semánticas que deben estar presentes en una base de datos. No solo debe almacenar entidades y atributos, sino que también debe almacenar interrelaciones entre datos.
  • La redundancia de datos debe ser controlada, pero si se admite cierta redundancia física por motivos de eficiencia.
  • Pretenden servir a toda la organización.
  • La independencia de los tratamientos sobre los datos y estos mismos, ha tenido una enorme influencia en la arquitectura de los SGBD.
  • La definición y descripción del conjunto de datos contenido en la base debe ser única e integrada con los mismos datos.
  • La actualización y recuperación de las bases de datos debe realizarse mediante procesos incluidos en SGBD, de modo que se mantenga la integridad, seguridad y confidencialidad de la base.
Las limitaciones de los sistemas orientados a archivos puramente secuenciales no los privaron de ser herramientas eficaces para producir pagos, facturas y otros informes una o dos veces al mes. Sin embargo, para ejecutar muchas tareas rutinarias en los negocios se necesita el acceso directo a los datos -La capacidad de tener acceso y procesar directamente un registro dado sin ordenar primero el archivo o leer los registros en secuencia.

Los archivos de acceso directo permiten la recuperación de los registros aleatoriamente, a diferencia de los de acceso secuencial. Sin embargo, los archivos de acceso directo solamente proporcionaron una solución parcial. Para lograr una solución más completa a estos problemas fue necesario introducir los sistemas de gestión de bases de datos.

Los usuarios cada vez necesitamos más recursos en tecnología, es por eso que surgen las evoluciones de sistemas, y por ende de las bases de datos, es impresionante ver como la información se procesa en microsegundos, mientras se realizan transacciones al mismo tiempo en la misma base de datos en lugares y estados diferentes, la importancia de la información es lo que ha llevado a que las empresas y otras instituciones inviertan para la seguridad de sus datos, el futuro de la tecnología es incierto debido a que algunas proyecciones de tecnología estimadas hace 5 años y proyectadas hasta los próximos 10 años ya son una realidad, la tecnología avanza a pasos agigantados es por eso que no debemos quedarnos atrás y apostar a las nuevas tecnologías que sin duda harán más fácil la vida de las personas que tratamos con la administración y seguridad de la información. 

Tanto en uno como en otro papel, la tecnología de bases de datos se ve sometida a numerosos cambios tanto desde el punto de vista empresarial como tecnológico. Las nuevas aplicaciones están llevando hasta el límite a los sistemas de bases de datos disponibles, al incorporar documentos multimedia. Imágenes, series temporales, datos activos, grandes cantidades de información (no olvidemos que los datos se expanden hasta llenar el espacio disponible), etc. Por otro lado la mejora espectacular en el número de instrucciones de máquina ejecutables en un segundo, coste de procesador, coste de la unidad de memoria secundaria y de memoria principal, numero de bits transmitidos por unidad de coste y por segundo, obligan a los SGBD a evolucionar para aprovechar estos avances en el hardware y las comunicaciones. En este sentido la explosión de Internet, el World Wide Web, y las “autopistas de la información” (informationhighWay), cuya utilización crece a un ritmo vertiginoso, están imponiendo un nuevo escenario para el desarrollo de los sistemas de información. 

Los sistemas de bases de datos, como elemento clave de los sistemas de información. Deben jugar un papel fundamental en esta explosión de información, si no quieren "ser arrollados en /as autopistas de la información”, como advertía David De Witt. En el VLDB de 1995.Las bases de datos terminarán siendo como el teléfono: fáciles de usar (en cuanto interfaces, rendimiento, etc.), conectado con cualquier otra cosa alrededor del mundo, con estándares reconocidos en todas partes, consistentes y fiables y con mayores funcionalidades. Las nuevas tecnologías de bases de datos permitirán hacer realidad aplicaciones hoy en día inimaginables tanto por el volumen de datos que manejarán (serán auténticasVLDB2) como por las facilidades para su explotación.



Unidad#1: 1.3 Consideraciones para elegir un buen DBMS


1.3 Consideraciones para elegir un buen DBMS 

Debido a que en el mercado mundial existen muchos manejadores de bases de datos es importante tomar en cuenta algunas consideraciones de importancia para elegir cuál es el que más conviene a nuestros intereses. Por ejemplo:

  • ¿Cuál es la disponibilidad de soporte de este gestor de bases de datos?


Es factible que encuentre personal capacitado fácilmente para resolver problemas en mi gestor de bases de datos, por ejemplo veamos la capacidad de personas que usan Oracle, SQL Server, PosgreSQL, MySQL, etc., las entidades tienen que ser gestionadas por un Administrador de bases de datos, de igual manera debe considerarse si es posible determinar el costo de un especialista en dicho gestor de base de datos o si el gestor nos brinda soporte en línea o vía remota.




Si las aplicaciones que van a consumir esos datos son de misión critica y se requiere alta disponibilidad y soluciones rápidas, no es recomendable usar un DBMS poco conocido en el mercado y mucho menos que sea nuevo como los gestores non-SQL ya que nadie los conoce y si mi gestor de base de datos sufre una caída, quien, cuándo y cuánto va a costar repararlo ya que a pesar de poseer una muy buena política de backups, puede que el mismo servidor se dañe (hardware) y si no consigo alguien que lo ponga en línea lo mas rápido posible estaré en problemas pues la empresa va a tener una larga caída que se representara en dinero y falta de productividad.

  • ¿Cuál es la carga de transacciones que va a soportar esa base de datos?

Si voy a necesitar una alta carga de transacciones (mayores a 200 usuarios conectados al mismo tiempo) es necesario que se vaya pensando en algo robusto y bien probado en el mercado servidores como cualquier versión express (SQL Servr, DB2, etc.) no es aceptable, si lo que se desea es algo libre pues PostgreSQL es la respuesta .

  • ¿Qué sistema operativo se planea implementar?


Está comprobado que SGBD diseñados en opensource (Código abierto) corren mucho más rápido en entornos operativos basados en UNIX que sobre Windows, así que aquí debería de tenerse en cuenta el sistema operativo, si no se ha tomado la decisión entonces elegir el sistema operativo del servidor dependiendo del SGBD, en foros como los de PosgreSQL, por ejemplo, la gente que ha realizado pruebas de este SGBD indican que se tiene un 25% de optimización corriendo sobre LINUX que sobre Windows.



Si no se tiene un sistema operativo en el servidor sería recomendable elegirlo en base al SGBD y esto también tendría consideraciones como la operatividad y la capacidad de administración de un servidor en tal o cual SO y los gastos que implicarían su mantenimiento.

◘ Número de Usuarios: Cantidad máxima de personas que tengan todo tipo de contacto con el sistema de base de datos desde que éste se diseña, elabora, termina y se usa.

◘ Número de Transacciones: Son las cantidades de transacciones reales promovidas por eventos como la compra de un producto, la inscripción a un curso o la realización de un depósito.

◘ Cantidad de Datos para Almacenar: Hace referencia a la capacidad de registros que se puede almacenar o de recuperar su estado en un momento previo a la pérdida de datos.

◘ Consistencia de la Información: Impedir que exista información inconsistente o contradictoria en la BD. Surge cuando existen varias copias del mismo dato y tras la modificación de una de ellas, las demás no son actualizadas, o lo son pero de forma incorrecta.

◘ Experiencia Propia o Externa: Contar con el conocimiento necesario para la interacción con el BDSM y de esa manera poder realizar las tareas que se nos han presupuesto.


  • Responsabilidades del Sistema Gestor de la Base de Datos.

◘ Gestor de autorización e integridad, comprueba que se satisfagan las restricciones de integridad y la autorización de los usuarios para acceder a los datos.
◘ Gestor de transacciones, asegura que la base de datos quede en un estado consistente (correcto) a pesar de los fallos del sistema, y que las ejecuciones de transacciones concurrentes ocurran si conflictos.
◘ Gestor de archivos, gestiona la reserva de espacio de almacenamiento de disco y las estructuras de datos usadas para representar la información almacenada en disco.
◘ Gestor de memoria intermedia, es responsable de traer los datos del disco de almacenamiento a memoria principal y decidir qué datos tratar en memoria caché.
◘  Respaldo y recuperación, constantemente saca respaldos para en dado caso en que la bd sea dañada o alterada puedan recuperarse los datos.



jueves, 16 de marzo de 2017

IDE's para trabajar con lenguaje ensamblador


A continuación se dara una breve descripcion de algunos IDE's accesibles para trabajar con lenguaje ensamblador:


  • Software gratuito:


Macroensamblador: Programa que permite la codificación de multiples códigos assembler formando una única instrucción compacta. Permite generar macroinstrucciones de forma similar a las llamadas a subrutina. Proporcionando una mayor compacidad y reutilización de los programas, debido a que permite programar de forma modular.




Flat assembler (FASM): es un ensamblador libre, multi-paso, con el estilo de la sintaxis de Intel que soporta las arquitecturas IA-32 y x86-64. El FASM está escrito en lenguaje ensamblador, viene con el código fuente completo, y fue capaz de ensamblarse a sí mismo (bootstrapping) desde la versión 0.90 del 4 de mayo de 1999. 

Es notable por su velocidad rápida, optimizaciones de tamaño, portabilidad, poderosas capacidades de macro, y la comunidad del foro en línea. Sin embargo, casi no usa opciones en la línea de comandos. Hay disponibles archivos binarios y de código fuente para Linux, Windows(incluyendo un IDE de desarrollo), DOS, OpenBSD, MenuetOS, OctaOS, y DexOS. FASM contiene vínculos (bindings) para la GUI de Windows yOpenGL.



Turbo assembler (TASM): es un equipo ensamblador (software para el desarrollo del programa) desarrollado porBorland que se ejecuta en generar código de 16 o 32 bits x86 MS-DOS o Microsoft Windows . Se puede utilizar con de Borland lenguaje de alto nivel compiladores , como  Turbo Pascal, Turbo Basic, Turbo C and Turbo C++. 

TASM puede montar Microsoft Macro Assembler fuente (MASM) utilizando su modo de MASM y tiene un modo de ideales con algunas mejoras. Programación orientada a objetos ha sido apoyada desde la versión 3.0. La última versión de Turbo Assembler es de 5,4, con los archivos de fecha 1996 y parches hasta 2010.



WinAsm Studio: es una aplicación de interfaz de usuario multilingüe (MUI) lo que significa que se puede configurar todo de su interfaz gráfica de usuario que se mostrará en el idioma de su elección. Es un entorno de desarrollo integrado (IDE) gratuito para desarrollar programas en Windows 32-bit y DOS 16-bit utilizando Microsoft Macro Assembler MASM y FASM utilizando el Add-In para FASM. Ha sido escrito por Antonis Kyprianou (akyprian).

 

Easy Code: Entorno visual de desarrollo en lenguaje ensamblador. Easy Code es el entorno visual de programación en ensamblador hecho para generar aplicaciones de 32 bits para Windows. La interfaz de Easy Code, muy parecida a la de Visual Basic, le permite programar una aplicación en ensamblador de manera rápida y fácil como nunca antes había sido posible.



RadASM: es un IDE gratuito para ensambladores de 32 bits para Windows. Soporta MASM, TASM, FASM, NASM, GoASM y HLA.



Fresh IDE: Es un IDE visual para el lenguaje ensamblador con un compilador integrado Flat assembler (FASM). Está escrito en Fresh IDE y es una aplicación independiente compilable. Es totalmente compatible con FASM y puede ser compilado también con todas las versiones de FASM. El objetivo principal de Fresh IDE es hacer la programación en ensamblador tan rápido y eficiente como en los lenguajes de alto nivel, sin sacrificar el tamaño de una pequeña aplicación que potencia el lenguaje ensamblador. Se trata de una aplicación Windows, pero se ejecuta en Wine muy bien y puede crear, compilar, depurar y ejecutar aplicaciones para Windows y Linux en Windows y Linux. 



Assembler IDE: Se trata de un entorno de desarrollo para código ensamblador, cuyo propósito es automatizar al máximo este proceso integrando el editor de código, el depurador (debugger) y el desensamblador. Entre las posibilidades que nos ofrece el entorno Assembler IDE, destacan la depuración de código (debugging), el editor de código, el desensamblador o la compilación con NASM, TASM/MASM y FASM.}



Visual Studio Code: es un editor de código fuente desarrollado por Microsoft para los de Windows , Linux y macOS . Incluye soporte para la depuración , embebido Git control, resaltado de sintaxis , completado de código inteligente , fragmentos , y refactorización de código . También es adaptable, así los usuarios pueden cambiar el editor de tema , atajos de teclado , y las preferencias. Es gratuita y de código abierto , aunque la descarga oficial está bajo una licencia propietaria. Cuenta con un paquete descargable (x86 and x86_64 Assembly) TextMate / Sublime / VS Código / Atom que proporciona soporte de idioma para el lenguaje ensamblador x86_64 en una variedad de dialectos (nasm / yasm principalmente, pero podría destacar TASM / gas hasta cierto punto).



Codelite: Existen muchos entornos de desarrollo dedicados a C/C++, pero este por un motivo u otro no es tan conocido como otras opciones libres como Codeblocks o Dev-C++. Hablamos de Codelite: Un IDE multiplataforma para C/C++.

El proyecto codelite ya lleva bastantes años desde que inicio su andadura y cada vez su comunidad es mayor y cuenta con más características. Está escrito en C++ (Como cabe esperar de un IDE para C++) y usa las bibliotecas wxWidgets para la interfaz. Lo que nos asegura un IDE multiplataforma y que se adapta visualmente a todos los sistemas operativos.


  • Software de paga:
Visual Studio 2015: es un completo entorno de desarrollo integrado para crear aplicaciones espectaculares para Windows, Android e iOS, además de aplicaciones web y servicios de nube innovadores.
  1. Herramientas y servicios para proyectos de cualquier tamaño o complejidad.
  2. C#, Visual Basic, F#, C++, Python, Node.js y HTML/JavaScript.
  3. Planificación de sprint.
  4. Depuración y creación de perfiles avanzadas, pruebas automatizadas y manuales.
  5. DevOps con implementaciones automatizadas y supervisión continua.

Los procesadores


Microprocesador (o simplemente procesador) es el circuito integrado central y más complejo de un sistema informático; a modo de ilustración, se le suele asociar por analogía como el «cerebro» de un computador. Es un circuito integrado constituido por millones de componentes electrónicos. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como microcomputador.

Es el encargado de ejecutar los programas; desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar,dividir, las lógicas binarias y accesos a memoria.

◘ 1971: El Intel 4004
El 4004 fue el primer microprocesador del mundo, creado en un simple chip, y desarrollado por Intel. Era un CPU de 4 bits y también fue el primero disponible comercialmente. Este desarrollo impulsó la calculadora de Busicom y dio camino a la manera para dotar de «inteligencia» a objetos inanimados, así como la computadora personal.
◘ 972: El Intel 8008
Codificado inicialmente como 1201, fue pedido a Intel por Computer Terminal Corporation para usarlo en su terminal programable Datapoint 2200, pero debido a que Intel terminó el proyecto tarde y a que no cumplía con la expectativas de Computer Terminal Corporation, finalmente no fue usado en el Datapoint. Posteriormente Computer Terminal Corporation e Intel acordaron que el i8008 pudiera ser vendido a otros clientes.

1974: El SC/MP
El SC/MP desarrollado por National Semiconductor, fue uno de los primeros microprocesadores, y estuvo disponible desde principio de 1974. El nombre SC/MP (popularmente conocido como «Scamp») es el acrónimo de Simple Cost-effective Micro Processor (Microprocesador simple y rentable). Presenta un bus de direcciones de 16 bits y un bus de datos de 8 bits. Una característica, avanzada para su tiempo, es la capacidad de liberar los buses a fin de que puedan ser compartidos por varios procesadores. Este microprocesador fue muy utilizado, por su bajo costo, y provisto en kits, para propósitos educativos, de investigación y para el desarrollo de controladores industriales diversos.

1974: El Intel 8080
EL 8080 se convirtió en la CPU de la primera computadora personal, la Altair 8800 de MITS, según se alega, nombrada en base a un destino de la Nave Espacial «Starship» del programa de televisión Viaje a las Estrellas, y el IMSAI 8080, formando la base para las máquinas que ejecutaban el sistema operativo CP/M-80.

◘ 1975: Motorola 6800
Se fabrica, por parte de Motorola, el Motorola MC6800, más conocido como 6800. Fue lanzado al mercado poco después del Intel 8080. Su nombre proviene de que contenía aproximadamente 6800 transistores. Varios de los primeras microcomputadoras de los años 1970 usaron el 6800 como procesador. Entre ellas se encuentran la SWTPC 6800, que fue la primera en usarlo, y la muy conocida Altair 680. Este microprocesador se utilizó profusamente como parte de un kit para el desarrollo de sistemas controladores en la industria. Partiendo del 6800 se crearon varios procesadores derivados, siendo uno de los más potentes el Motorola 6809

1976: El Z80
La compañía Zilog Inc. crea el Zilog Z80. Es un microprocesador de 8 bits construido en tecnología NMOS, y fue basado en el Intel 8080. Básicamente es una ampliación de éste, con lo que admite todas sus instrucciones. Un año después sale al mercado el primer computador que hace uso del Z80, el Tandy TRS-80Model 1 provisto de un Z80 a 1,77 MHz y 4 KB de RAM. Es uno de los procesadores de más éxito del mercado, del cual se han producido numerosas versiones clónicas, y sigue siendo usado de forma extensiva en la actualidad en multitud de sistemas embebidos.


1978: Los Intel 8086 y 8088
Una venta realizada por Intel a la nueva división de computadoras personales de IBM, hizo que las PC de IBM dieran un gran golpe comercial con el nuevo producto con el 8088, el llamado IBM PC.

1982: El Intel 80286
El 80286, popularmente conocido como 286, fue el primer procesador de Intel que podría ejecutar todo el software escrito para su predecesor. Esta compatibilidad del software sigue siendo un sello de la familia de microprocesadores de Intel. Luego de 6 años de su introducción, había un estimado de 15 millones de PC basadas en el 286, instaladas alrededor del mundo.


1985: El Intel 80386
Este procesador Intel, popularmente llamado 386, se integró con 275000 transistores, más de 100 veces tantos como en el original 4004. El 386 añadió una arquitectura de 32 bits, con capacidad para multitarea y una unidad de traslación de páginas, lo que hizo mucho más sencillo implementar sistemas operativos que usaran memoria virtual.

1985: El VAX 78032
El microprocesador VAX 78032 (también conocido como DC333), es de único chip y de 32 bits, y fue desarrollado y fabricado por Digital Equipment Corporation(DEC); instalado en los equipos MicroVAX II, en conjunto con su ship coprocesador de coma flotante separado, el 78132, tenían una potencia cercana al 90% de la que podía entregar el minicomputador VAX 11/780 que fuera presentado en 1977. Este microprocesador contenía 125000 transistores, fue fabricado en tecnologóa ZMOS de DEC. Los sistemas VAX y los basados en este procesador fueron los preferidos por la comunidad científica y de ingeniería durante la década del 1980.

1989: El Intel 80486
La generación 486 realmente significó contar con una computadora personal de prestaciones avanzadas, entre ellas,un conjunto de instrucciones optimizado, una unidad de coma flotante o FPU, una unidad de interfaz de bus mejorada y una memoria caché unificada, todo ello integrado en el propio chip del microprocesador. Estas mejoras hicieron que los i486 fueran el doble de rápidos que el par i386 - i387 operando a la misma frecuencia de reloj. El procesador Intel 486 fue el primero en ofrecer un coprocesador matemático o FPU integrado; con él que se aceleraron notablemente las operaciones de cálculo. Usando una unidad FPU las operaciones matemáticas más complejas son realizadas por el coprocesador de manera prácticamente independiente a la función del procesador principal.


1991: El AMD AMx86
Procesadores fabricados por AMD 100% compatible con los códigos de Intel de ese momento, llamados «clones» de Intel, llegaron incluso a superar la frecuencia de reloj de los procesadores de Intel y a precios significativamente menores. Aquí se incluyen las series Am286, Am386, Am486 y Am586.

1993: PowerPC 601
Es un procesador de tecnología RISC de 32 bits, en 50 y 66MHz. En su diseño utilizaron la interfaz de bus del Motorola 88110. En 1991, IBM busca una alianza con Apple y Motorola para impulsar la creación de este microprocesador, surge la alianza AIM (Apple, IBM y Motorola) cuyo objetivo fue quitar el dominio que Microsoft e Intel tenían en sistemas basados en los 80386 y 80486. PowerPC (abreviada PPC o MPC) es el nombre original de la familia de procesadores de arquitectura de tipo RISC, que fue desarrollada por la alinza AIM. Los procesadores de esta familia son utilizados principalmente en computadores Macintosh de Apple Computer y su alto rendimiento se debe fuertemente a su arquitectura tipo RISC.

◘ 1993: El Intel Pentium
El microprocesador de Pentium poseía una arquitectura capaz de ejecutar dos operaciones a la vez, gracias a sus dos pipeline de datos de 32bits cada uno, uno equivalente al 486DX(u) y el otro equivalente a 486SX(u). Además, estaba dotado de un bus de datos de 64 bits, y permitía un acceso a memoria de 64 bits (aunque el procesador seguía manteniendo compatibilidad de 32 bits para las operaciones internas, y los registros también eran de 32 bits). Las versiones que incluían instrucciones MMX no sólo brindaban al usuario un más eficiente manejo de aplicaciones multimedia, como por ejemplo, la lectura de películas en DVD, sino que también se ofrecían en velocidades de hasta 233 MHz. Se incluyó una versión de 200 MHz y la más básica trabajaba a alrededor de 166 MHz de frecuencia de reloj.

◘ 1994: EL PowerPC 620
En este año IBM y Motorola desarrollan el primer prototipo del procesador PowerPC de 64 bit, la implementación más avanzada de la arquitectura PowerPC, que estuvo disponible al año próximo. El 620 fue diseñado para su utilización en servidores, y especialmente optimizado para usarlo en configuraciones de cuatro y hasta ocho procesadores en servidores de aplicaciones de base de datos y vídeo. Este procesador incorpora siete millones de transistores y corre a 133 MHz. Es ofrecido como un puente de migración para aquellos usuarios que quieren utilizar aplicaciones de 64 bits, sin tener que renunciar a ejecutar aplicaciones de 32 bits.

◘ 1995: EL Intel Pentium Pro
Lanzado al mercado para el otoño de 1995, el procesador Pentium Pro (profesional) se diseñó con una arquitectura de 32 bits. Se usó en servidores y los programas y aplicaciones para estaciones de trabajo (de redes) impulsaron rápidamente su integración en las computadoras. El rendimiento del código de 32 bits era excelente, pero el Pentium Pro a menudo era más lento que un Pentium cuando ejecutaba código o sistemas operativos de 16 bits. El procesador Pentium Pro estaba compuesto por alrededor de 5,5 millones de transistores.

◘ 1996: El AMD K5
Habiendo abandonado los clones, AMD fabricada con tecnologías análogas a Intel. AMD sacó al mercado su primer procesador propio, el K5, rival del Pentium. La arquitectura RISC86 del AMD K5 era más semejante a la arquitectura del Intel Pentium Pro que a la del Pentium. El K5 es internamente un procesador RISC con una Unidad x86- decodificadora, transforma todos los comandos x86 (de la aplicación en curso) en comandos RISC. Este principio se usa hasta hoy en todas las CPU x86. En la mayoría de los aspectos era superior el K5 al Pentium, incluso de inferior precio, sin embargo AMD tenía poca experiencia en el desarrollo de microprocesadores y los diferentes hitos de producción marcados se fueron superando con poco éxito, se retrasó 1 año de su salida al mercado, a razón de ello sus frecuencias de trabajo eran inferiores a las de la competencia, y por tanto, los fabricantes de PC dieron por sentado que era inferior.

§  1996: Los AMD K6 y AMD K6-2
Con el K6, AMD no sólo consiguió hacerle seriamente la competencia a los Pentium MMX de Intel, sino que además amargó lo que de otra forma hubiese sido un plácido dominio del mercado, ofreciendo un procesador casi a la altura del Pentium II pero por un precio muy inferior. En cálculos en coma flotante, el K6 también quedó por debajo del Pentium II, pero por encima del Pentium MMX y del Pro. El K6 contó con una gama que va desde los 166 hasta los más de 500 Mhz y con el juego de instrucciones MMX, que ya se han convertido en estándares.
Más adelante se lanzó una mejora de los K6, los K6-2 de 250 nanómetros, para seguir compitiendo con los Pentium II, siendo éste último superior en tareas de coma flotante, pero inferior en tareas de uso general.


◘ 1997: El Intel Pentium II
Un procesador de 7,5 millones de transistores, se busca entre los cambios fundamentales con respecto a su predecesor, mejorar el rendimiento en la ejecución de código de 16 bits, añadir el conjunto de instrucciones MMX y eliminar la memoria caché de segundo nivel del núcleo del procesador, colocándola en una tarjeta de circuito impreso junto a éste. Gracias al nuevo diseño de este procesador, los usuarios de PC pueden capturar, revisar y compartir fotografías digitales con amigos y familia vía Internet; revisar y agregar texto, música y otros; con una línea telefónica; el enviar vídeo a través de las líneas normales del teléfono mediante Internet se convierte en algo cotidiano.


◘  1998: El Intel Pentium II Xeon
Los procesadores Pentium II Xeon se diseñan para cumplir con los requisitos de desempeño en computadoras de medio-rango, servidores más potentes y estaciones de trabajo (workstations). Consistente con la estrategia de Intel para diseñar productos de procesadores con el objetivo de llenar segmentos de los mercados específicos, el procesador Pentium II Xeon ofrece innovaciones técnicas diseñadas para las estaciones de trabajo y servidores que utilizan aplicaciones comerciales exigentes, como servicios de Internet, almacenamiento de datos corporativos, creaciones digitales y otros. Pueden configurarse sistemas basados en este procesador para integrar de cuatro o ocho procesadores trabajando en paralelo, también más allá de esa cantidad.

◘  1999: El Intel Celeron
Continuando la estrategia, Intel, en el desarrollo de procesadores para los segmentos del mercado específicos, el procesador Celeron es el nombre que lleva la línea de de bajo costo de Intel. El objetivo fue poder, mediante ésta segunda marca, penetrar en los mercados impedidos a los Pentium, de mayor rendimiento y precio. Se diseña para el añadir valor al segmento del mercado de los PC. Proporcionó a los consumidores una gran actuación a un bajo coste, y entregó un desempeño destacado para usos como juegos y el software educativo.


◘  1999: El AMD Athlon K7 (Classic y Thunderbird)
Procesador totalmente compatible con la arquitectura x86. Internamente el Athlon es un rediseño de su antecesor, pero se le mejoró substancialmente el sistema de coma flotante (ahora con 3 unidades de coma flotante que pueden trabajar simultáneamente) y se le incrementó la memoria caché de primer nivel (L1) a 128 KiB (64 KiB para datos y 64 KiB para instrucciones). Además incluye 512 KiB de caché de segundo nivel (L2). El resultado fue el procesador x86 más potente del momento.
El procesador Athlon con núcleo Thunderbird apareció como la evolución del Athlon Classic. Al igual que su predecesor, también se basa en la arquitectura x86 y usa el bus EV6. El proceso de fabricación usado para todos estos microprocesadores es de 180 nanómetros. El Athlon Thunderbird consolidó a AMD como la segunda mayor compañía de fabricación de microprocesadores, ya que gracias a su excelente rendimiento (superando siempre al Pentium III y a los primeros Pentium IV de Intel a la misma frecuencia de reloj) y bajo precio, la hicieron muy popular tanto entre los entendidos como en los iniciados en la informática.

◘  1999: El Intel Pentium III
El procesador Pentium III ofrece 70 nuevas instrucciones Internet Streaming, las extensiones de SIMD que refuerzan dramáticamente el desempeño con imágenes avanzadas, 3D, añadiendo una mejor calidad de audio, video y desempeño en aplicaciones de reconocimiento de voz. Fue diseñado para reforzar el área del desempeño en el Internet, le permite a los usuarios hacer cosas, tales como, navegar a través de páginas pesadas (con muchos gráficos), tiendas virtuales y transmitir archivos video de alta calidad. El procesador se integra con 9,5 millones de transistores, y se introdujo usando en él tecnología 250 nanómetros.


◘ 1999: El Intel Pentium III Xeon
El procesador Pentium III Xeon amplia las fortalezas de Intel en cuanto a las estaciones de trabajo (workstation) y segmentos de mercado de servidores, y añade una actuación mejorada en las aplicaciones del comercio electrónico e informática comercial avanzada. Los procesadores incorporan mejoras que refuerzan el procesamiento multimedia, particularmente las aplicaciones de vídeo. La tecnología del procesador III Xeon acelera la transmisión de información a través del bus del sistema al procesador, mejorando el desempeño significativamente. Se diseña pensando principalmente en los sistemas con configuraciones de multiprocesador.

◘ 2000: EL Intel Pentium 4
Este es un microprocesador de séptima generación basado en la arquitectura x86 y fabricado por Intel. Es el primero con un diseño completamente nuevo desde el Pentium Pro. Se estrenó la arquitectura NetBurst, la cual no daba mejoras considerables respecto a la anterior P6. Intel sacrificó el rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por segundo y una mejora en las instrucciones SSE.

◘ 2001: El AMD Athlon XP
Cuando Intel sacó el Pentium 4 a 1,7 GHz en abril de 2001 se vio que el Athlon Thunderbird no estaba a su nivel. Además no era práctico para el overclocking, entonces para seguir estando a la cabeza en cuanto a rendimiento de los procesadores x86, AMD tuvo que diseñar un nuevo núcleo, y sacó el Athlon XP. Este compatibilizaba las instrucciones SSE y las 3DNow! Entre las mejoras respecto al Thunderbird se puede mencionar la prerrecuperación de datos por hardware, conocida en inglés como prefetch, y el aumento de las entradas TLB, de 24 a 32.

◘ 2004: El Intel Pentium 4 (Prescott)
A principios de febrero de 2004, Intel introdujo una nueva versión de Pentium 4 denominada 'Prescott'. Primero se utilizó en su manufactura un proceso de fabricación de 90 nm y luego se cambió a 65nm. Su diferencia con los anteriores es que éstos poseen 1 MiB o 2 MiB de caché L2 y 16 KiB de caché L1 (el doble que los Northwood), prevención de ejecución, SpeedStep, C1E State, un HyperThreading mejorado, instrucciones SSE3, manejo de instrucciones AMD64, de 64 bits creadas por AMD, pero denominadas EM64T por Intel, sin embargo por graves problemas de temperatura y consumo, resultaron un fracaso frente a los Athlon 64.

◘ 2004: El AMD Athlon 64
El AMD Athlon 64 es un microprocesador x86 de octava generación que implementa el conjunto de instrucciones AMD64, que fueron introducidas con el procesador Opteron. El Athlon 64 presenta un controlador de memoria en el propio circuito integrado del microprocesador y otras mejoras de arquitectura que le dan un mejor rendimiento que los anteriores Athlon y que el Athlon XP funcionando a la misma velocidad, incluso ejecutando código heredado de 32 bits.El Athlon 64 también presenta una tecnología de reducción de la velocidad del procesador llamada Cool'n'Quiet,: cuando el usuario está ejecutando aplicaciones que requieren poco uso del procesador, baja la velocidad del mismo y su tensión se reduce.

◘  2006: EL Intel Core Duo
Intel lanzó ésta gama de procesadores de doble núcleo y CPUs 2x2 MCM (módulo Multi-Chip) de cuatro núcleos con el conjunto de instrucciones x86-64, basado en el la nueva arquitectura Core de Intel. La microarquitectura Core regresó a velocidades de CPU bajas y mejoró el uso del procesador de ambos ciclos de velocidad y energía comparados con anteriores NetBurst de los CPU Pentium 4/D2. La microarquitectura Core provee etapas de decodificación, unidades de ejecución, caché y buses más eficientes, reduciendo el consumo de energía de CPU Core 2, mientras se incrementa la capacidad de procesamiento. Los CPU de Intel han variado muy bruscamente en consumo de energía de acuerdo a velocidad de procesador, arquitectura y procesos de semiconductor, mostrado en las tablas de disipación de energía del CPU. Esta gama de procesadores fueron fabricados de 65 a 45 nanómetros.

◘ 2007: El AMD Phenom
Phenom fue el nombre dado por Advanced Micro Devices (AMD) a la primera generación de procesadores de tres y cuatro núcleos basados en la microarquitectura K10. Como característica común todos los Phenom tienen tecnología de 65 nanómetros lograda a través de tecnología de fabricación Silicon on insulator (SOI). No obstante, Intel, ya se encontraba fabricando mediante la más avanzada tecnología de proceso de 45 nm en 2008. Los procesadores Phenom están diseñados para facilitar el uso inteligente de energía y recursos del sistema, listos para la virtualización, generando un óptimo rendimiento por vatio. Todas las CPU Phenom poseen características tales como controlador de memoria DDR2 integrado, tecnología HyperTransport y unidades de coma flotante de 128 bits, para incrementar la velocidad y el rendimiento de los cálculos de coma flotante. La arquitectura Direct Connect asegura que los cuatro núcleos tengan un óptimo acceso al controlador integrado de memoria, logrando un ancho de banda de 16 Gb/s para intercomunicación de los núcleos del microprocesador y la tecnología HyperTransport, de manera que las escalas de rendimiento mejoren con el número de núcleos. Tiene caché L3 compartida para un acceso más rápido a los datos (y así no depende tanto del tiempo de latencia de la RAM), además de compatibilidad de infraestructura de los zócalos AM2, AM2+ y AM3 para permitir un camino de actualización sin sobresaltos. A pesar de todo, no llegaron a igualar el rendimiento de la serie Core 2 Duo.

◘ 2008: El Intel Core Nehalem
Intel Core i7 es una familia de procesadores de cuatro núcleos de la arquitectura Intel x86-64. Los Core i7 son los primeros procesadores que usan la microarquitectura Nehalem de Intel y es el sucesor de la familia Intel Core 2. FSB es reemplazado por la interfaz QuickPath en i7 e i5 (zócalo 1366), y sustituido a su vez en i7, i5 e i3 (zócalo 1156) por el DMI eliminado el northBrige e implementando puertos PCI Express directamente. Memoria de tres canales (ancho de datos de 192 bits): cada canal puede soportar una o dos memorias DIMM DDR3. Las placa base compatibles con Core i7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las DIMMs deben ser instaladas en grupos de tres, no dos. El Hyperthreading fue reimplementado creando núcleos lógicos. Está fabricado a arquitecturas de 45 nm y 32 nm y posee 731 millones de transistores su versión más potente. Se volvió a usar frecuencias altas, aunque a contrapartida los consumos se dispararon.

2008: Los AMD Phenom II y Athlon II
Phenom II es el nombre dado por AMD a una familia de microprocesadores o CPUs multinúcleo (multicore) fabricados en 45 nm, la cual sucede al Phenom original y dieron soporte a DDR3. Una de las ventajas del paso de los 65 nm a los 45 nm, es que permitió aumentar la cantidad de cache L3. De hecho, ésta se incrementó de una manera generosa, pasando de los 2 MiB del Phenom original a 6 MiB.

◘  2011: El Intel Core Sandy Bridge
Llegan para remplazar los chips Nehalem, con Intel Core i3, Intel Core i5 e Intel Core i7 serie 2000 y Pentium G. Intel lanzó sus procesadores que se conocen con el nombre en clave Sandy Bridge. Estos procesadores Intel Core que no tienen sustanciales cambios en arquitectura respecto a nehalem, pero si los necesarios para hacerlos más eficientes y rápidos que los modelos anteriores. Es la segunda generación de los Intel Core con nuevas instrucciones de 256 bits, duplicando el rendimiento, mejorando el desempeño en 3D y todo lo que se relacione con operación en multimedia. Llegaron la primera semana de Enero del 2011. Incluye nuevo conjunto de instrucciones denominado AVX y una GPU integrada de hasta 12 unidades de ejecución

2011: El AMD Fusion
AMD Fusion es el nombre clave para un diseño futuro de microprocesadores Turion, producto de la fusión entre AMD y ATI, combinando con la ejecución general del procesador, el proceso de la geometría 3D y otras funciones de GPUs actuales. La GPU (procesador gráfico) estará integrada en el propio microprocesador. Se espera la salida progresiva de esta tecnología a lo largo del 2011; estando disponibles los primeros modelos (Ontaro y Zacate) para ordenadores de bajo consumo entre últimos meses de 2010 y primeros de 2011, dejando el legado de las gamas medias y altas (Llano, Brazos y Bulldozer para mediados o finales del 2011).


◘ Aquí una lista de algunos otros procesadores recientes (año pasado) de la marca Intel para pc: