viernes, 26 de febrero de 2016

Arquitectura del Sistema Operativo Android



Android es una plataforma para dispositivos móviles que contiene una pila de software donde se incluye un sistema operativo, middleware y aplicaciones básicas para el usuario. 

En las siguientes líneas se dará una visión global por capas de cuál es la arquitectura empleada en Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores, tal como muestra la siguiente figura ((c) Google): 

  •  Aplicaciones: Este nivel contiene, tanto las incluidas por defecto de Android como aquellas que el usuario vaya añadiendo posteriormente, ya sean de terceras empresas o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios, las API y librerías de los niveles anteriores.
  • Framework de Aplicaciones: Representa fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicación. Toda aplicación que se desarrolle para Android, ya sean las propias del dispositivo, las desarrolladas por Google o terceras compañías, o incluso las que el propio usuario cree, utilizan el mismo conjunto de API y el mismo "framework", representado por este nivel.
        Entre las API más importantes ubicadas aquí, se pueden encontrar las siguientes:
·         Activity Manager: Conjunto de API que gestiona el ciclo de vida de las aplicaciones en Android.
·        Window ManagerGestiona las ventanas de las aplicaciones y utiliza la librería Surface Manager.
·        Telephone Manager: Incluye todas las API vinculadas a las funcionalidades propias del teléfono (llamadas, mensajes, etc.).
·        Content Provider: Permite a cualquier aplicación compartir sus datos con las demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de contactos, agenda, mensajes, etc. será accesible para otras aplicaciones.
·        View System: Proporciona un gran número de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes", tamaño de ventanas, control de las interfaces mediante teclado, etc. Incluye también algunas vistas estándar para las funcionalidades más frecuentes.
                  ·          Location Manager: Posibilita a las aplicaciones la obtención de información de localización y                                     posicionamiento.
·         Notification Manager: Mediante el cual las aplicaciones, usando un mismo formato, comunican al usuario eventos que ocurran durante su ejecución: una llamada entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en un punto determinado, etc. Si llevan asociada alguna acción, en Android denominada Intent, (por ejemplo, atender una llamada recibida) ésta se activa mediante un simple clic.
·         XMPP Service: Colección de API para utilizar este protocolo de intercambio de mensajes basado en XML.
  • Librerías: La siguiente capa se corresponde con las librerías utilizadas por Android. Éstas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de sus capacidades más características. Junto al núcleo basado en Linux, estas librerías constituyen el corazón de Android.
              Entre las librerías más importantes ubicadas aquí, se pueden encontrar las siguientes:
·         Librería libc: Incluye todas las cabeceras y funciones según el estándar del lenguaje C. Todas las demás librerías se definen en este lenguaje.
·        Librería Surface Manager: Es la encargada de componer los diferentes elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes a las distintas aplicaciones activas en cada momento.
·        OpenGL/SL y SGL: Representan las librerías gráficas y, por tanto, sustentan la capacidad gráfica de Android. OpenGL/SL maneja gráficos en 3D y permite utilizar, en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado de proporcionar gráficos 3D. Por otro lado, SGL proporciona gráficos en 2D, por lo que será la librería más habitualmente utilizada por la mayoría de las aplicaciones. Una característica importante de la capacidad gráfica de Android es que es posible desarrollar aplicaciones que combinen gráficos en 3D y 2D.
·        Librería Media Libraries: Proporciona todos los códecs necesarios para el contenido multimedia soportado en Android (vídeo, audio, imágenes estáticas y animadas, etc.)
·         FreeType: Permite trabajar de forma rápida  y sencilla con distintos tipos de fuentes.
·        Librería SSL: Posibilita la utilización de dicho protocolo para establecer comunicaciones seguras.
·         Librería SQLiteCreación y gestión de bases de datos relacionales. 
·        Librería WebKit: Proporciona un motor para las aplicaciones de tipo navegador y forma el núcleo del actual navegador incluido por defecto en la plataforma Android.
  • Tiempo de ejecución de AndroidAl mismo nivel que las librerias de Android se sitúa el entorno de ejecución. Éste lo constituyen las Core Libraries, que son librerias con mulititud de clases Java y la máquina vistual Dalvik.
  • Núcleo LinuxAndroid utiliza el núcleo de Linux 2.6 como una capa de abstracción para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers necesarios para que cualquier componente hardware pueda ser utilizado mediante las llamadas correspondientes. Siempre que un fabricante incluye un nuevo elemento de hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android es crear las librerias de control o drivers necesarios dentro de este kernel de Linux embebido en el propio Android.

Una aplicación Android corre dentro de su propio proceso Linux, por tanto, una característica fundamental de Android es que el tiempo y ciclo de vida de una aplicación no está controlado por la misma aplicación sino que lo determina el sistema a partir de una combinación de estados como pueden ser qué aplicaciones están funcionando, qué prioridad tienen para el usuario y cuánta memoria queda disponible en el sistema.

    Una aplicación en Android debe declarar todas sus actividades, los puntos de entrada, la comunicación, las capas, los permisos, y las intenciones a través de AndroidManifest.xml (ver punto 3.2 Interfaces de Usuario).  Es muy importante tener en consideración cómo estos componentes impactan en el tiempo de vida del proceso asociado con una aplicación, porque si no son empleados de manera apropiada, el sistema detendrá el proceso de la aplicación aún cuando se esté haciendo algo importante.

jueves, 25 de febrero de 2016

Sistemas Operativos Emergentes

Resultado de imagen para sistemas operativos}  emergentes definicion
Sistemas emergentes son sistemas complejos de adaptación que despliegan comportamientos emergentes. Se caracterizan por resolver problemas, al menos en apariencia,espontáneamente; es decir, sin recurrir a una inteligencia de tipo centralizado o jerarquizado (descendente), sino de forma ascendente, desde la base, a partir de masas de elementos  relativamente no inteligentes. El comportamiento separado, individual, de cada uno de los agentes, al aumentar la escala comienza a producir un comportamiento colectivo propio de un nivel de organización superior, a pesar de la aparente carencia de organización en forma de leyes o instrucciones provenientes de una autoridad superior.
Ejemplos de estos sistemas de auto-organización, sorprendente mente parecidos entre sí, se están analizando en las ciencias naturales y sociales desde finales del siglo XX: las colonias del moho del fango (Dictyostelium discoideum) estudiadas por Evelyn Fox Keller y Lee Segel (biomatemáticos inspirados en Alan Turing), los barrios urbanos estudiados por Jane Jacobs o las redes del cerebro humano estudiadas por Marvin Minsky. El software y las redes sociales de reciente creación se desarrollaron siguiendo los mismos patrones. Todos ellos son citados por Steven Johnson en el libro que popularizó el concepto desde 2001 (Sistemas emergentes. O qué tienen en común hormigas, neuronas, ciudades y software).

miércoles, 17 de febrero de 2016

Sistemas Operativos Libres

Existen algunos Sistemas Operativos libres que tienen más años de vida que el grupo de S.O. que hoy conocemos como GNU/Linux.

 En la actualidad, casi todos los usuarios de computadoras han escuchado hablar de “Software Libre” o de “Software de Código Abierto”. Aunque existen diferencias sutiles entre uno y otro concepto, para la gran mayoría son prácticamente sinónimos. De igual manera, pocos son los que ignoran a esta altura el término “Linux”, que se refiere al Kernel empleado por una familia de Sistemas Operativos de código abierto, casi siempre utilizado en conjunto con las herramientas y librerías del Proyecto GNU. Sin embargo, hay otros Sistemas Operativos libres, no tan populares para el público en general, aunque algunos, incluso, tienen más años de vida que el grupo de S.O. que hoy conocemos como GNU/Linux. Aquí les presentamos a los más destacados. 
                                        Resultado de imagen para sistemas operativos libres
Es un hecho paradojal que el primer Sistema Operativo Libre de los tiempos modernos en comenzar su desarrollo se halle aún incompleto. El Proyecto GNU, concebido en 1983 por Richard M. Stallman, empezó a escribirse en 1984. Hace más de una década que el Sistema Operativo GNU se encuentra finalizado casi en su totalidad, excepto por un único y vital componente: el Kernel, que es el “cerebro” de todo Sistema Operativo, encargado de administrar los recursos que necesitan todos los demás programas para ejecutarse. Hurd, el Kernel de GNU, fue concebido con una arquitectura extremadamente ambiciosa, consistente en un microkernel que trabaja en conjunto con una gran cantidad de programas-servidores conocidos como “demonios” (es decir, que se ejecutan permanentemente). Esta arquitectura es muy estable, segura y eficiente, pero posee una gran contra: es extremadamente difícil de programar, particularmente por el enorme desafío que implica debuguear (detectar y corregir errores de programación) un programa que no es un único y gran bloque de código (como sí sucede en los kernels “monolíticos”) sino que está conformado por una enorme cantidad de programas más pequeños interactuando entre sí. A tal punto es complejo el desarrollo de un Kernel de estas características que los programadores de GNU llevan más de diez años trabajando en Hurd, sin lograr todavía una versión lo suficientemente estable como para ser liberada al público en general. Es por ello que cuando en 1991 Linus Torvalds dio origen al Kernel Linux, el Sistema Operativo GNU cobró vida finalmente, pero no con su Kernel original, sino con Linux, creado por un desarrollador (Torvalds) totalmente ajeno a GNU y la fundación que respalda su desarrollo, la Free Sofware Foundation (FSF). Esta situación perdura en nuestros días. Sin embargo, existen unas pocas versiones disponibles al público del S.O. GNU completo tal cual fue concebido, con su Kernel “nativo”. Un buen ejemplo es Debian GNU/Hurd, un proyecto alternativo a Debian GNU/Linux, que corre con el Kernel de GNU; no obstante, aún se lo considera “experimental” y no se ha liberado una versión estable, por lo que se desaconseja su uso para ambientes de producción. Esto no ha impedido que el 60% de los paquetes de software disponibles para Debian GNU/Linux se hayan migrado y corran sin problemas sobre Debian GNU/Hurd, que, por el momento, se puede utilizar solamente con arquitecturas de hardware x86, tanto en versiones de 32 como de 64 bits. Debian GNU/Hurd está disponible en formato de LiveCD, que permite probarlo sin modificar la configuración del equipo

Entornos de Desarrollo para Dispositivos Móviles

  1. 1. Entornos De Desarrollo Para Móviles<br />1<br />
  2. 2. 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.<br />2<br />¿Que es un Entornos De Desarrollo Para Móviles(IDE)?<br />
  3. 3. Carbide.c++<br /> 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.<br />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.<br />Desde la versión 2.0, Carbide.c++ es gratuito y se ofrece en tres versiones (Developer, Professional, y OEM).1<br />3<br />
  4. 4. XCODE<br />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.<br />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.<br />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.<br />4<br />
  5. 5. XCODE<br />Xcode 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, <br />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.<br />5<br />
  6. 6. Microsoft Visual Studio<br />Microsoft Visual StudioDesarrollador MicrosoftMicrosoft Visual Studio 2010- E general Lanzamiento inicial30 de julio de 1998; hace 12 años Última versión estable10.0.30319.1 RTM (Visual Studio 2010) (Microsoft Visual Studio 2010- El sitio oficial de Visual Studio 2010 info)<br />Es un entorno de desarrollo integrado (IDE) para sistemas operativos Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros.<br />Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, así como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versión net 2002). Así se pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.<br />-Symbian<br />6<br />
  7. 7. NETBEANS<br />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<br />- J2ME<br />- Android<br />7<br />
  8. 8. ECLIPSE<br />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. 
  9.                                  

jueves, 11 de febrero de 2016

Sistema Operativo Comercial.

Sistema Operativo Comercial.

 Los sistemas operativos comerciales son los de paga, es decir tienes que tener una licencia legal del sistema operativo que hayas adquirido. Veamos algunos ejemplos: de la familia de Windows y todos comerciales entre otros están Windows 95, Windows 98, Windows Me, Windows 2000 Profesional, Windows Nt, Windows Server, Windows Xp profesional y Home, Windows Vista Basic, Premium, Bussines, Ultimate, y Ms dos entre otro Otro sistema operativo comercial es Mac os, utilizado por las computadoras Mac. Todos los anteriores son ejemplos de sistemas operativos comerciales ya que se pagó por ellos. En la Mayoría de las computadoras de marca ya viene instalado, pero el precio de la PC viene incluido el cobro del sistema operativo. Un sistema operativo no comercial es Linux por ejemplo, no es comercial ya que no se paga una licencia por obtenerlo. A su vez Linux tiene diferentes versiones de su sistema operativo que también se les suele llamar sistemas operativos libres.

Resultado de imagen para sistemas operativos comerciales

Procesadores para Dispositivos Moviles

El acercamiento a los smartphones con el ánimo de tomar una decisión de compra que no se base únicamente en el precio, pasa por conocer cómo están construidos. Vistos desde fuera, todos los terminales son parecidos: tienen una pantalla, iconos en el escritorio, algunos teclado, funcionan con una batería… Pero hay otras características que no se ven tanto, y que empiezan a cobrar relevancia a medida que la tecnología progresa. Son las relacionadas con «las tripas» de los dispositivos móviles, sobre todo de los smartphones, pero también se aplica a las tabletas y por extensión a los Ultrabooks y portátiles.
En los primeros teléfonos inteligentes, ya fueran Android, Symbian, BlackBerry, Windows Mobile o iOS, el procesador o las tecnologías aceleradoras de gráficos empleadas en su construcción apenas sí suscitaban interés. La tecnología se ocultaba tras la mera funcionalidad. Además, la escasez de terminales, junto con la falta de información que se tenía de los primeros procesadores ARM y de los pocos fabricantes que los firmaban, contribuían a ocultar los detalles tecnológicos.

Apple A5X

El interés por los procesadores en movilidad

A medida que el negocio de la movilidad ha ido cobrando forma y el ecosistema de aplicaciones y servicios creciendo, la tecnología va ofreciendo más y más posibilidades tanto para los desarrolladores de aplicaciones como para los de sistemas operativos. Un teléfono móvil no se aleja demasiado (conceptualmente hablando) de un portátil o de un ordenador. Funciona gracias a que hay un sistema operativo que se ejecuta sobre una plataforma de hardware compuesta por un procesador (CPU), un acelerador gráfico (GPU), memoria, comunicaciones, la pantalla y una interfaz con métodos para la entrada de datos mediante teclado o usando los dedos o la voz. Pero, a diferencia de los sistemas de sobremesa, donde muchos de estos componentes están perfectamente diferenciados, en los móviles lo que se hace es integrarlos todos en los SoC (System On a Chip).Al principio eran populares los feature phones, que no permitían la descarga de aplicaciones, sino que dependían de las que tuviera preinstaladas el propio sistema operativo cerrado,o de las que el fabricante incluyera con carácter excepcional posteriormente. Ya entonces se empezaba a hablar del procesador como elemento diferenciador, con ejemplos como el Samsung Jet. Con Apple, con el iPhone original, la llegada de su tienda de aplicaciones en 2008 y meses después la de Google, todo cambió: las aplicaciones precisaban de un buen hardware para funcionar, por supuesto. Su evolución ha atraído la atención de los principales fabricantes de procesadores; desde Intel hasta NVIDIA, pasando por Qualcomm, Samsung, Texas Instruments o Apple, entre otros.

Apple iPhone 5 mapas

miércoles, 10 de febrero de 2016

Evolución de los Dispositivos Móviles

  • 1. 1977 1979 • Se crea la primera red celular en chicago, EUA. • Comenzó a funcionar bien en 1978 en 1300 clientes aproximadamente. • Una red celular fue creada en Japón por NNT. Esta red cubría toda el área de Tokio con 23 estaciones base a las que se comunicaba. 1980 • Se creó la compañía Psion. La cual en 1992 lanzo el PsionOrganizer y Psion Series 5mx. 1983 • Motorola lanza al mercado el primer móvil DynaTac 8000X. Nombre: Mayra Alejandra Díaz Rodríguez. Carrera: Ing. En Sistemas Computacionales. Materia: Desarrollo de Aplicaciones para Dispositivos Móviles.
    1. 2. 1984 1989 • Nokia lanza al mercado el Mobira Talkman. • El diseño de los móviles comienza a ser más pequeños. 1990 • Se implementa la tecnología GSM. 1992 • Se presenta el Appel Newton.
    2. 3. 1992 1994 • Se mandó el primer SMS por Brit Neil Papworth. Su primer texto fue “Feliz Navidad”, este mensaje fue enviado al director de Vodafone Richard Jarvis. • Motorola lanza un móvil capaz de ser utilizado en vehículos el Handie Talkie. 1996 • Motorola lanza el StarTack el primer móvil en formato clamshell. 1996 • Nokia saca al mercado el Nokia Communicator, este usaba el GEOS. • Se comienza a usar la palabra Smartphone.
    3. 4. 1998 2001 • Se unieron las compañías Psion y Nokia, Ericsson y Motorola para crear Symbian LTD, la cual se creó el Symbian 0S. • El primer móvil en utilizar este sistema fue el Ericsson R380. • Se crea la primera red 3G. • Primer móvil con pantalla a color. 2002 • RIM introduce su primer Blackberry. • Microsoft lanza su primer smartphone con Windows. • Se lanzó el primer móvil con cámara integrada. 2003 • Se crea Android.
    4. 5. 2004 2006 • Se lanza al mercado el primer móvil con acceso a internet. • Los smartphone más pequeños dominan el mercado. • Con sistema operativo Symbian, este modelo fue uno de los mejores en su época y uno de los últimos golpes de Nokia antes de la era de los dispositivos táctiles. 2007 • Appel saco al mercado el iPhone, con pantalla táctil, Wi-fi, OS y red 3G 2010 • Se presenta la red 4G.
    5. 6. 2011 2012 • Es el primer smartphone corriendo Windows Phone de Nokia, tiene 16GB de memoria interna, Wi-Fi, GPS. Es el Nokia Lumia 800. • Este smartphone fue la perfecta evolución de dos buenos dispositivos anteriores. Fue el primero en robarle el liderato al iPhone, por lo menos en varios mercados. Es el Samsung Galaxy SIII. Actualmente • En la época actual los dispositivos móvilesevolucionando han cambiado mucho, y seguiran evolucionando. 
    6. Resultado de imagen para evolucion de los dispositivos moviles marcas de celulares