lunes, 20 de marzo de 2017

2.1 SISTEMAS OPERATIVOS PARA DISPOSITIVOS LIGEROS



Android es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes, tablets o tablefonos, relojes inteligentes, televisores y automóviles. Inicialmente fue desarrollado por Android Inc. Empresa que Google respaldo económicamente y más tarde en 2005 compro. Los dispositivos de Android venden más que las ventas combinadas de Windows Phone e IOS. El éxito del sistema operativo se ha convertido en objeto de litigios sobre patentes en el marco de las llamadas “guerras por patentes de teléfonos inteligentes” en ingles “Smartphone patent wars” entre las empresas de tecnología.
La versión más conocida es Android Open Source Project (AOSP).


Historia:


En octubre de 2003 en la localidad de Palo Alto fue  fundado por Andy Rubin, Rich Miner, Nick Sears, Chris White. El sistema operativo Android fue desarrollado por la compañía Android Inc.,  en el año  2003 que fue adquirida por Google unos años después, la fecha exacta fue en JULIO-2005.
Las unidades vendidas de teléfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,con una cuota de mercado de 43,6% en el tercer trimestre. A escala mundial alcanzó una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, más del doble que el segundo sistema operativo (iOS de Apple, Inc.).
Tiene una gran comunidad de desarrolladores creando aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se ha llegado ya al 1,000,000 de aplicaciones disponibles para la tienda oficial de Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales como la tienda  de Aplicaciones Samsung Apps de Samsung.

Características:
  • Código Abierto
  • Núcleo Basado en el Kernel Linux
  • Adaptable a muchas pantallas y resoluciones
  • Multitarea real de aplicaciones
  • Ofrece diferentes formas de mensajería.
Ventajas:

1. El código de Android es abierto: 
Google liberó Android bajo licencia Apache. 
Cualquier persona puede realizar una aplicación para Android.
2. Hoy día hay más de 650.000 aplicaciones disponibles para teléfonos Android, aproximadamente 2/3 son gratis. Además la libertad de código permite adaptar Android a bastantes otros dispositivos además de teléfonos celulares. Está implantado en Tablets, GPS, relojes, microondas… incluso hay por internet una versión de Android para PC.
3. El sistema Android es capaz de hacer funcionar a la vez varias aplicaciones y además se encarga de gestionarlas, dejarlas en modo suspensión si no se utilizan e incluso cerrarlas si llevan un periodo determinado de inactividad.

Desventajas:
1. A pesar de ser una ventaja el ser un sistema multitarea: 

El hecho de tener varias aplicaciones abiertas hacen que el consumo de la batería aumente y como no todas las aplicaciones Android las cierra hay que instalar una aplicación para que las cierre. En la Market de Android hay una buena cantidad de aplicaciones para este fin, así que el problema es solucionable pero debería venir pre instalado de fábrica.
2. Duración de la batería: 

La batería en un celular Android se agota muy rápido. Utilizando las aplicaciones de manera moderada la batería puede llegar a durar más, pero para un usuario que usa mucho sus aplicaciones la batería no tiende a durar, lo que se puede solucionar con algunas aplicaciones, pero volvemos a lo mismo no viene pre instalada de fábrica, hace falta una aplicación externa al sistema Android para optimizar mejor la batería.




iOS es un sistema operativo móvil de la multinacional Apple Inc. Originalmente desarrollado para Iphone (iPhone OS), después se ha usado en dispositivos como el iPod Touch y el iPad.
Tenía el 26 % de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Android y Windows Phone. Actualmente su sistema operativo se encuentra en la décima versión, mejor conocida como iOS 10.
Apple anunció el lunes 21 de Septiembre  de 201 que su nuevo sistema operativo iOS 9 ya ha superado el 70 % de adopción dentro de sus dispositivos compatibles. Según la marca de Cupertino, 2 de cada 3 dispositivos tienen iOS 9 instalado.

El 23 de septiembre de 2015 (tan solo una semana después de la salida de iOS 9), Apple saca iOS 9.0.1 para solucionar problemas relacionados con las alarmas y temporizadores.

Historia:

ERIK reveló la existencia de iPhone OS en la Macworld Conference & Expo el 9 de enero del 2007, aunque el sistema no tuvo un nombre oficial hasta que salio la primera versión beta del iPhone SDK un año mas tarde el 6 de marzo de 2008.
El 27 de enero de 2010 Steve Jobs, CEO de Apple, anuncio el iPad, un dispositivo muy similar al iPod Touch pero con un propósito orientado hacia la industria de contenidos. Este dispositivo, apoyado en una pantalla táctil de mayor dimensión, compartiría sistema operativo con sus dos exitosos hermanos, y vendría acompañado de una aplicación oficial para la compra y lectura de libros electrónicos, iBooks.
Características:

Pantalla Principal: Es donde se encuentran los iconos de las aplicaciones y el Dock en la parte inferior de la pantalla donde se pueden anclar aplicaciones de uso frecuente, aparece al desbloquear el dispositivo o presionar el botón de inicio.

Carpetas: Con iOS 4 se introdujo un sistema simple de carpetas en el sistema. Se puede mover una aplicación sobre otra y se creara una carpeta, y así se pueden agregar más aplicaciones a esta mediante el mismo procedimiento. Pueden entrar hasta 12 y 20 aplicaciones en el iPhone y iPad respectivamente. El título de la carpeta es seleccionando automáticamente por el tipo de aplicaciones dentro de ella, pero puede ser editado por el usuario.

Seguridad: Antes de la salida de iOS 7 al mercado, existía un enorme índice de robos de los diversos modelos de iPhone, lo que provocó que el gobierno estadounidense solicitara a Apple diseñar un sistema de seguridad infalible que inutilizara los equipos en caso de robo. Fue creada entonces la activación por iCloud, la cual solicita los datos de acceso de la cuenta del usuario original, lo que permite bloquear e inutilizar el equipo al perderlo o ser víctima de robo del mismo.



Es un Sistema Operativo Movil desarrollado por Microsoft,  como sucesor de Windows Mobile.  A diferencia de su predecesor está enfocado en el mercado de consumo en lugar del mercado empresarial. Con Windows Phone; Microsoft ofrece una nueva interfaz de usuario que integra varios de sus servicios. Compite directamente contra Android de Google de iOS Apple. Su última versión 8.1 lanzado el 14 de abril de 2014. 
Debido a la evidente fragmentación de sus sistemas operativos, Microsoft anuncio en enero de 2015 que dará de baja a Windows Phone, para enfocarse en un único sistema más versátil denominado Windows 10 Mobile, disponible para todo tipo de plataformas (teléfonos inteligentes, tabletas y computadoras).

Historia:

Windows Phone, cuyo nombre en clave durante su desarrollo era "Photon", es el sucesor de Windows Mobile,  desarrollado por Microsoft y basado en el núcleo Windows Embedded CE 6.0. Microsoft mostró Windows Phone por primera vez el 15 de febrero de 2010, en el Mobile World de Barcelona y reveló más detalles del sistema en el MIX 2010 el 15 de marzo. La versión final de Windows Phone 7 se lanzó el 21 de octubre de 2010 en Europa y el 8 de noviembre en Estados Unidos. Inicialmente, Windows Phone estaba destinado para ser lanzado durante el 2009, pero varios retrasos provocaron que Microsoft desarrollara Windows Mobile 6.5 como una versión de transición. La interfaz fue revisada en su totalidad y comparte características visuales con la interfaz del dispositivo Zune HD y además utilizaba el Zune Software para gestión de contenidos, Apps, y actualizaciones en la séptima versión.
Versiones:

7.0
Nombre en clave “Photon”. Versión inicial de Windows Phone, con bastantes carencias.

7.1
Nombre en clave “Nodo”. Fue la primera actualización de Windows Phone. Trajo soporte para copiar y pegar, un menor tiempo de arranque, mejor rendimiento y mejoras en la sincronización con Facebook.

7.5.0
Nombre en clave “Mango”. Fue anunciada el 25 de mayo de 2011 y lanzada el 27 de septiembre del mismo año. Trajo más de 500 nuevas características como multitarea, un nuevo sistema de búsqueda, integración con Twitter, LinkedIn, Office y SkyDrive; grupos de contactos, mejoras en el GPS e Internet Explorer 9.

7.5.1
Nombre en clave “Tango” o “Refresh”. Fue uno de los requisitos de Nokia en su acuerdo con Microsoft. Está enfocada a minimizar los requisitos del sistema operativo para adaptarlo a terminales de menor coste. Anunciada en el MWC 2012 de Barcelona, trae nuevas funciones pero también limitaciones (para los terminales de gama baja).
7.8
Desplegada en enero del 20139 se ofrece como actualización sustituta de Windows Phone 8. Trae mejoras como la nueva interfaz de usuario y fondos personalizados para la pantalla de bloqueo. Fue la última gran actualización de Windows Phone 7, ya que Microsoft se centró en Windows Phone 8.
8.0.0
Nueva versión de WP presentada a finales de 2012 y disponible únicamente para nuevos dispositivos debido a un cambio de Kernel (de Windows CE a Windows NT). Entre las nuevas características se incluyen:
  • Nuevas pantallas de inicio y de bloqueo, más personalizables
  • Rincón infantil: un espacio exclusivo y controlado para los niños, independiente del resto del móvil.
  • Cartera: para almacenar tus tarjetas de fidelización y de crédito
  • NFC
  • Internet Explorer 10
  • Skype integrado
  • Nuevo núcleo Windows NT, con soporte para procesadores de varios núcleos
  • Tarjeta de memoria microSD.
  • Actualizaciones directamente en el teléfono (sin usar el PC)
  • Captura de pantalla
8.0.1
Se incluye la posibilidad de mantener encendido el Wi-Fi aún con la pantalla bloqueada.
8.0.2
Se comenzó a distribuir a finales de agosto de 2013. Incluye Radio FM (en todos los modelos excepto en los Nokia Lumia 620 y Samsung Ativ S), soporte para los nuevos protocolos CardDAV y CalDAV de Google, mejoras del HTML5 en Internet Explorer 10 y la solución al problema de la carpeta “Otros”, que hasta ese momento podía llegar a ocupar varios gigabytes en los modelos con más memoria interna.

8.0.3
Comienza a desplegarse en enero de 2014. Trae soporte para procesadores quad-core, para pantallas FullHD 1080p con una nueva fila de Live Tiles, modo de conducción, nuevas funciones de accesibilidad, mejoras en la función “compartir conexión”, tonos personalizados, bloqueo de rotación de pantalla, más mejoras relacionadas con el almacenamiento y la carpeta “Otros”, cierre de aplicaciones desde la vista de multitarea y mejoras en las conexiones Wi-Fi y Bluetooth.

2.2 ARQUITECTURAS

ARQUITECTURA 32 BITS

Este término se usa para micro arquitectura de CPU y ALU para describir registros, bus de datos, bus de direcciones o instrucciones.
En la arquitectura de las computadoras se ocupa describir enteros, direcciones de memoria, sistemas operativos u otras unidades de este.
Los buses de datos y de direcciones son usualmente más anchos que 32 bits, a pesar de que éstas se almacenen y manipulen internamente en el procesador como cantidades de 32 bits.


Arquitectura de 64 bits
Micro arquitectura de CPU Y ALU para describir anchura de registros, bus de direcciones, bus de datos, o instrucciones de 64 bits (8 octetos).
Arquitectura de computadoras para describir datapath, enteros, direcciones de memoria, u otras unidades de datos de 64 bits (8 octetos).
Desde la perspectiva de software, la computación de 64 bits significa el uso de código con direcciones de memoria virtuales de 64-bits.


En el mundo de la imagen digital, para referirse a imágenes de 48 bits, 16 bits por color = 48 + 16 bit de canal Alpha cuando es utilizado.




Tipos de Procesadores




Procesadores tipo Atom:  Los procesadores Intel Atom son procesadores de bajo consumo energético y están diseñados para usarse en netbooks y otros dispositivos de cómputo especializados en redes, es decir, en máquinas en donde la vida útil de la batería, así como el consumo de energía, son más importantes que el poder de procesamiento en sí.






Celeron: Estos procesadores están diseñados para su uso en computadoras de escritorio o P.C. de escritorio, enfocadas al uso familiar principalmente para actividades de navegación web y cómputo básico o no especializado.



Pentium: Pentium ha sido usado como nombre para varias generaciones diferentes de procesadores. Los procesadores Pentium de la generación actual son procesadores de doble núcleo energéticamente eficiente y diseñado para computadoras de escritorio. Los procesadores Pentium tienen indicadores numéricos que, al igual que otros procesadores Intel, indican niveles más altos de características con números de series superiores.

Procesadores Core: Son todos los procesadores que poseen más de un núcleo, el cual se denomina Core, existen dos clases, mismas que se denominan Core i7 y Core 2 Dúo, que varían en la cantidad de Cores o núcleos de procesamiento. Los procesadores Core de más de un núcleo comenzaron a comercializarse a partir del año 2005, popularizándose desde ese entonces gracias a sus diversas propiedades que han ido evolucionando. En la actualidad ya existen procesadores Core de 12 y hasta 16 núcleos, pero aún no han sido comercializados a gran escala, siendo únicamente distribuidos para grandes empresas que necesitan velocidades y volúmenes de procesamiento mayores, como bancos, financieras, empresas contables, y empresas especializadas en el manejo de datos a gran escala como las telefónicas, etc.

Xeon e Itanium: Son procesadores especializados en máquinas que su trabajo principal es la red, son especiales para uso de servidores. Estos procesadores se identifican por tener tres indicadores especiales la letra X, (para especificar que se trata de un procesador de alto desempeño), la letra E (indicando que es un procesador de rack optimizado, y la letra L (que indica que se trata de un CPU optimizado al uso de energía). De estos procesadores especializados en servidores existen de un núcleo, dos núcleos y varios núcleos, aumentando las capacidades de procesamiento de datos.

Tipos de procesador según la cantidad de núcleos o procesadores Core

Procesadores de un solo núcleo:  Los procesadores de un solo núcleo, son ejemplo los procesadores 286, 486, Pentium, Pentium II, Pentium III.


Procesadores de dos núcleos: Los procesadores de dos núcleos actúan cooperando en cierta medida al distribuirse los diversos procesos entre cada uno de los dos núcleos, agilizando el rendimiento del procesador. Un ejemplo es el Core 2 dúo.


Procesadores de 4 núcleos: Son procesadores que en un solo Kit de procesador, poseen cuatro unidades físicas de procesamiento de datos, lo que agiliza los trabajos.


Procesadores multinúcleos.- En esta categoría entran procesadores tales como los de 12 y 16 núcleos, que gracias a la combinación de estos núcleos de procesamiento se distribuyen entre sí, la carga del trabajo.

Tipos de procesadores según la marca

Procesadores INTEL.- La marca de procesadores que domina el mercado mundial en este ramo, es Intel, que posee una gran gama de procesadores de diversos tipos, mismos que poseen características y especificaciones, para cierto tipo de equipos. Son ejemplo de esta marca los procesadores, Pentium, Pentium II, Pentium III, Pentium IV, Pentium D, Core, Core 2 Dúo, Core 2 Quad, Celeron, Xeon e Itanium.



Procesadores AMD: Es la segunda empresa en cuanto a mercado en el ramo de los procesadores, teniendo una gama de procesadores de varios tipos con especificaciones para equipos de cómputo portátiles de oficina, servidores, y para empresas especializadas. Tales como los procesadores Athlon, Athlon XP, Athlon XP, Athlon X2, Sempron, Athlon FX, Phenom, Phenom 2 y Opteron.


Procesadores VIA: VIA es una empresa especializada en fabricar procesadores de bajo consumo de energía y miniaturización para equipos portátiles.




Máquinas Virtuales

En informática una maquina virtual es:
Es un software que simula a un ordenador y puede ejecutar programas como si fuese un ordenador real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.
Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".

Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Windows por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.


Virtual Box: 
Es un software de virtualización para arquitecturas (x86,x64), creado por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualizacion. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como "sistemas invitados".

VMware:
Un software de virtualizacion  creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualizacion. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual.

jueves, 16 de marzo de 2017

2.3 ENTORNO DE DESARROLLO

Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes.

Carbide.c++ 


Es una herramienta para el desarrollo de software en lenguaje C++ destinado a dispositivos que funcionan bajo Symbian OS. Se usa tanto para desarrollar los teléfonos que incorporan dicho OS como para las aplicaciones que ejecutan estos.Está formada por una familia de IDEs desarrollada por Nokia, basada en Eclipse, al que se han incorporado plug-ins para el desarrollo de Symbian OS. Reemplazó a CodeWarrior como primer entorno de desarrollo para Symbian OS.Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM).

XCODE

Es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.Xcode incluye la colección de compiladores del proyecto GNU (GCC), y puede compilar código C, C++, Objective-C, Objective-C++, Java y AppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.
XCODEXcode: está diseñado especialmente para desarrollo en Cocoa. Cuando creamos un proyecto, Xcode configura su ambiente de desarrollo inicial usando plantillas de proyectos correspondientes a tipos de proyectos Cocoa: aplicación, aplicación basada en documentos, aplicación Core Data, herramienta, colección, marco de trabajo, y otros. Para compilar software Cocoa para Mac OS X, Xcode usa el compilador GNU (gcc), y para depurar ese software, usa el depurador de nivel fuente GNU. Ambos gcc y gdb han sido usados en el desarrollo Cocoa desde que Cocoa era NeXTSTEP, y a lo largo de los años ha sido refinado, extendido, y afinado para soportar la compilación y la depuración de binarios Cocoa.
NETBEANS: es un entorno de desarrollo - una herramienta para que los programadores puedan escribir, compilar, depurar y ejecutar programas. Está escrito en Java - pero puede servir para cualquier otro lenguaje de programación- J2ME- Android7
ECLIPSE: Es un entorno de desarrollo Integrado de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. - J2ME-Android8

2.4 REQUERIMIENTOS DE DISPOSITIVOS LIGEROS




• Un servidor remoto es una combinación de hardware 
y software que permite el acceso remoto a herramientas o información que residen en una red de dispositivos.
• Menores costos administrativos de IT: Los clientes ligeros son manejados casi enteramente en el servidor. El hardware tiene menos lugares donde puede fallar, el entorno local es altamente restringido, proporcionando protección contra el malware.
• Información centralizada. Como la información se encuentra en un solo lugar facilita la realización de backups .
• Más fácil de asegurar. Los clientes livianos pueden ser diseñados de modo que ni siquiera los datos de aplicación residan en el cliente (apenas son exhibidos en la pantalla), centralizando la protección contra el malware y reduciendo los riesgos de hurto de los datos físicos.
• Bajos costos de hardware. El hardware del cliente liviano es generalmente más barato porque no contiene disco duro, memoria de aplicaciones, o un procesador poderoso. Con los clientes livianos, los ciclos del CPU son compartidos. Si varios usuarios están corriendo la misma aplicación, solo necesita ser cargada una sola vez en un servidor.
• Uso más eficiente de los recursos de computación. Los clientes livianos usan solamente la cantidad exacta de recursos de computación requeridos para la tarea actual. 



Los Clientes Ligeros son claramente diferentes a las computadoras de escritorio comunes no solo por su forma peso y tamaño. Un cliente Ligero es una pequeña computadora de escritorio que posee las siguientes propiedades: 
• Usualmente los clientes ligeros no poseen dispositivos de almacenamiento. 
• Ausencia de ruido, son totalmente silencioso. 
• Su procesador y sus componentes son de bajo consumo energético. 
• No requiere ventiladores, la disipación de calor es mínima. 
• Son de tamaño reducido. 
• Son ligeras, su peso es reducido

2.5 LENGUAJES DE PROGRAMACION

JAVA

Java es un lenguaje de programación orientado a objetos cuya sintaxis deriva de C y C++, pero que provee un modelo de objetos más simple que C++. Java fue creado por James Gosling  y por la empresa SUN en el año 1995, como parte de una plataforma llamada Java Virtual Machine o Máquina Virtual Java. Desde entonces ha evolucionado hasta su versión 6. La máquina virtual permite que un programa escrito y compilado en Java pueda ejecutarse en cualquier sistema operativo y arquitectura sin ser modificado. El sistema operativo requiere tener una implementación de la máquina virtual instalada. Java se compila en código de bytes o bytecode, y no en código binario. El bytecode es la representación interna que entiende la máquina virtual, y es lo que permite la independencia de arquitectura y sistema operativo.

Una de las características principales de Java y que lo diferencian fundamentalmente de C++, es el manejo de memoria. Java provee manejo automático de memoria, lo que implica que el programador no debe encargarse de pedir y liberar la memoria necesaria para la creación y destrucción de los objetos.

Esta característica se implementa por medio de “automatic garbage collection” o recolección automática de basura mecanismo permite que un objeto sea eliminado cuando no existan referencias accesibles a él desde los objetos activos. La máquina virtual es la encargada de llevar el control de las referencias a los objetos y de administrar la memoria utilizada.

Existen algunas otras diferencias importantes con C++, Java no permite herencia múltiple de clases, aunque si permite herencia múltiple de interfaces. Las interfaces son definiciones de comportamientos que pueden tener o implementar las clases, pero sin su implementación. Son análogas a las clases abstractas con todos sus métodos abstractos de C++. En Java todos los métodos son potencialmente polimórficos, mientras que en C++, un método debe ser declarado virtual para que pueda comportarse en forma polimórfica. Java no posee destructores ni operadores re definibles por el programador. En Java las clases son definidas en paquetes y un paquete puede contener múltiples clases y sub paquetes.




PHP

PHP es un lenguaje de programación interpretado (Lenguaje de alto rendimiento), diseñado originalmente para la creación de páginas web dinámicas. Se usa principalmente para la interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.



El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones.
Aunque todo en su diseño está orientado a facilitar la creación de sitios webs, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo; a esta versión de PHP se la llama PHP-CLI (Command Line Interface).



Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.
PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un entorno de desarrollo integrado comercial llamado Zend Studio. CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. También existen al menos un par de módulos para Eclipse, uno de los entornos más populares.

Características
·         Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos.
·         El código fuente escrito en PHP es invisible al navegador web y al cliente ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. Esto hace que la programación en PHP sea segura y confiable.
·         Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL.
·         Capacidad de expandir su potencial utilizando módulos (llamados ext's o extensiones).
·         Posee una amplia documentación en su sitio web oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
·         Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
·         Permite aplicar técnicas de programación orientada a objetos. Incluso aplicaciones como Zend framework, empresa que desarra PHP, están totalmente desarrolladas mediante esta metodología.
·         Biblioteca nativa de funciones sumamente amplia e incluida.
·         No requiere definición de tipos de variables aunque sus variables se pueden evaluar también por el tipo que estén manejando en tiempo de ejecución.
·         Tiene manejo de excepciones (desde PHP5).
·         Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun haciéndolo, el programador puede aplicar en su trabajo cualquier técnica de programación o de desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador(MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes.
 AJAX

Ajax, acrónimo de Asynchronous JavaScript And XML (Java Script asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.
Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. Java Script es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores, dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

Ajax es una combinación de cuatro tecnologías ya existentes:
·         XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que acompaña a la información.
·         Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, especialmente implementaciones ECMAScript como JavaScript y JScript, para mostrar e interactuar dinámicamente con la información presentada.
·         El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web. En algunos frameworks y en algunas situaciones concretas, se usa un objeto iframe en lugar del XMLHttpRequest para realizar dichos intercambios.
·         XML es el formato usado generalmente para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano, JSON y hasta EBML.
Ajax no constituye una tecnología en sí, sino que es un término que engloba a un grupo de éstas que trabajan conjuntamente.

2.6 CONFIGURACIONES

2.6 CONFIGURACIONES.

La configuración es un conjunto de datos que determinan el valor de algunas
 variables de un programa o de un sistema Operativo, estas opciones generalmente son
 cargadas en su inicio y en algunos casos se debe reiniciar para poder ver los cambios.
 Los programas por lo general tienen una configuración preestablecida o predeterminada
 para que funcionen de cierta forma. La configuración puede ser modificada por el usuario
 (personalizada).
  • La correcta configuración le permitirá que la aplicación funcione como el usuario lo quiere.
  • Le permitirá definir que características requiere su aplicación, que formatos, 
  • resoluciones, tipografía, versiones, etc..
  • Le permite conocer las formas de operar de la aplicación de acuerdo a cierta configuración dada.
Emuladores


Un emulador es un software que permite ejecutar programas o videojuegos en 
una plataforma (sea una arquitectura de hardware o un sistema operativo) diferente 
de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, 
que solo trata de reproducir el comportamiento del programa, un emulador trata de
 modelar de forma precisa el dispositivo de manera que este funcione como si estuviese 
siendo usado en el aparato original.

Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos de 
máquinas recreativas o videoconsolas en computadoras personales, o el poder ser jugados
 en otras videoconsolas. La emulación de videojuegos de sistemas antiguos 
(abandonware) en las modernas computadoras personales y videoconsolas de hoy día 
resulta generalmente más cómoda y práctico que en los dispositivos originales. 
Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software 
para escribir programas originales que dupliquen la
funcionabilidad de la ROM y BIOS del hardware original, lo que comúnmente se conoce
 como high-level emulation o emulación de alto nivel.

Otro uso común es el de emular sistemas operativos obsoletos, o vigentes para otra máquina
 o dispositivo, para utilizar programas compatibles con estos sistemas operativos.

Simulador







Un simulador es un aparato, por lo general informático, que permite la reproducción de 
un sistema. Los simuladores reproducen sensaciones y experiencias que en la realidad 
pueden llegar a suceder en realidad.
Un simulador pretende reproducir tanto las sensaciones físicas (velocidad, aceleración, 
percepción del entorno) como el comportamiento de los equipos de la máquina que
 se pretende simular. Para simular las sensaciones físicas se puede recurrir a complejos
 mecanismos hidráulicos comandados por potentes ordenadores que mediante
 modelos matemáticos consiguen reproducir sensaciones de velocidad y aceleración.
 Para reproducir el entorno exterior se emplean proyecciones de bases de datos de 
terreno. A este entorno se le conoce como "entorno sintético",

Para simular el comportamiento de los equipos de la máquina simulada se
puede recurrir varias técnicas. Se puede elaborar un modelo de cada equipo y 
virtualizarlo por hardware con el equipo real o bien se puede utilizar el mismo 
software que corre en el equipo real pero haciéndolo correr en un ordenador más 
convencional (y por lo tanto más barato). A esta última opción se la conoce como
 "software rehosteado".