martes, 27 de septiembre de 2011

POSIX

¿Qué es?

POSIX es el acrónimo de Portable Operating System Interface; la X viene de UNIX como seña de identidad de la API(es la abreviatura de Aplication Programming Interface. Un API no es más que una serie de servicios o funciones que el Sistema Operativo ofrece al programador, como por ejemplo, imprimir un carácter en pantalla, leer el teclado, escribir en un fichero de disco, etc.).

El POSIX Se trata de un estándar que intenta asegurar la portabilidad entre diferentes sistemas operativos. Dentro del estándar se especifica el comportamiento de las expresiones regulares y de las herramientas más comunes que las usan.

Así mismo define un estándar de llamadas al sistema operativo. La librería estándar de C define unas funciones que deben estar en cualquier entorno de desarrollo de C.

El término fue sugerido por Richard Stallman en respuesta a la demanda de la IEEE, que buscaba un nombre fácil de recordar. Una traducción aproximada del acrónimo podría ser “Interfaz para Sistemas Operativos migrables basados en UNIX”.
 
Pequeña Introducción

Estos son una familia de estándares de llamadas al sistema operativo definido por el IEEE y especificado formalmente en el IEEE 1003. Persiguen generalizar las interfaces de los sistemas operativos para que una misma aplicación pueda ejecutarse en distintas plataformas. Estos estándares surgieron de un proyecto de normalización de las API y describen un conjunto de interfaces de aplicación adaptables a una gran variedad de implementaciones de sistemas operativos.

Especifica las interfaces de usuario y software al sistema operativo en 15 documentos diferentes. La línea de comandos estándar y las interfaces de scripting se basaron en Korn Shell. Otros programas a nivel de usuario (user-level), servicios y utilidades incluyen AWK, echo, ed y cientos de otras. Los servicios a nivel de programa requeridos incluyen definición de estándares básicos de I/O, (file, terminal, y servicios de red). También especifican una API para las bibliotecas de threading, que es muy utilizada en una gran variedad de sistemas operativos.

Una serie de pruebas acompañan al estándar POSIX. Son llamadas “PCTS” en alusión al acrónimo “Posix Conformance Test Suite”. Desde que la IEEE empezó a cobrar altos precios por la documentación de POSIX y se ha negado a publicar los estándares, ha aumentado el uso del modelo Single Unix Specification. Este modelo es abierto, acepta entradas de todo el mundo y está libremente disponible en Internet. Fue creado por The Open Group.

¿Dónde se ocupa?

Sincronización de procesos. Define funciones para permitir la sincronización de procesos a través de semáforos contadores.

Memoria compartida. Tienen espacios de direccionamiento que son independientes entre sí. Sin embargo, muchas aplicaciones de tiempo real (y también muchas que no son de tiempo real) necesitan compartir grandes cantidades de datos de una manera eficiente.

Señales de tiempo real. Permite notificar eventos que ocurren en el sistema, pero no es completamente satisfactorio para aplicaciones de tiempo real. Las señales no se almacenan en colas y, por tanto, algunos eventos se pueden perder. Las señales no están priorizadas, y esto implica tiempos de respuesta más largos para eventos urgentes.

Comunicación de procesos. Se especifica un mecanismo sencillo de colas de mensajes para la comunicación entre procesos. Las colas de mensajes están identificadas por un nombre perteneciente a un espacio de nombres dependiente de la implementación.

Entrada/Salida Asíncrona. Define funciones que permiten solapar el procesado de aplicaciones con las operaciones de entrada/salida iniciadas por la aplicación. Una operación de entrada/salida asíncrona es similar a las operaciones de entrada/salida normales, con la excepción de que una vez que la operación asíncrona ha sido iniciada por un proceso, este proceso no se suspende y puede continuar ejecutando instrucciones, en paralelo con la operación de entrada/salida

Extensión de threads. Define interfaces para soportar múltiples actividades concurrentes, denominadas threads, dentro de cada proceso POSIX. Los threads definidos en el POSIX  tienen un estado asociado más pequeño que el de un proceso. Todos los threads que pertenecen al mismo proceso comparten el mismo espacio de direccionamiento. Pueden ser implementados con tiempos de cambio de contexto y de creación y destrucción más bajos que los de los procesos. El POSIX.4a ha sido específicamente desarrollado para abordar las necesidades de los sistemas multiprocesadores de memoria compartida.

Ejemplo

El ejemplo es un sistema productor-consumidor con búfer circular utilizando hilos, semáforos POSIX binarios y semáforos POSIX genérico

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <semaphore.h>
#include <pthread.h>
#define TAMBUF 8     // Tamaño del búfer circular
#define NUMDATOS 100 // Número de datos a enviar
// El buffer circular y los correspondientes punteros
int buffer[TAMBUF];
int bufin = 0;
int bufout = 0;
// Semaforo binario
pthread_mutex_t buffer_lock = PTHREAD_MUTEX_INITIALIZER;
// Variable suma
int sum = 0;
// Semaforos generales
sem_t hay_datos;
sem_t hay_sitio;
// Funciones de escritura y lectura del buffer circular
void obten_dato(int *itemp)
{
  pthread_mutex_lock(&buffer_lock);
  *itemp = buffer[bufout];
  bufout = (bufout + 1) % TAMBUF;
  pthread_mutex_unlock(&buffer_lock);
  return;
}
void pon_dato(int item)
{
  pthread_mutex_lock(&buffer_lock);
  buffer[bufin] = item;
  bufin = (bufin + 1) % TAMBUF;
  pthread_mutex_unlock(&buffer_lock);
  return;
}
// Funciones productor-consumidor
void *productor(void *arg1)
{
  int i;
  for (i = 1; i <= NUMDATOS; i++)
  {
    sem_wait(&hay_sitio);
    pon_dato(i*i);
    sem_post(&hay_datos);
  }
  pthread_exit( NULL );
}
void *consumidor(void *arg2)
{
  int i, midato;
  for (i = 1; i<= NUMDATOS; i++)
  {
    sem_wait(&hay_datos);
    obten_dato(&midato);
    sem_post(&hay_sitio);
    sum += midato;
  }
  pthread_exit( NULL );
}
// Funcion principal
void main(void)
{
  pthread_t tidprod, tidcons;
  int i, total;
  total = 0;
  for (i = 1; i <= NUMDATOS; i++)
    total += i*i;
  printf("El resultado deberia ser %d\n", total);
// Inicializacion de semaforos
  sem_init(&hay_datos, 0, 0);
  sem_init(&hay_sitio, 0, TAMBUF);
// Se crean los hilos
  pthread_create(&tidprod, NULL, productor, NULL);
  pthread_create(&tidcons, NULL, consumidor, NULL);
// Se espera a que los hilos terminen
  pthread_join(tidprod, NULL);
  pthread_join(tidcons, NULL);
  printf("Los hilos produjeron el valor %d\n", sum);
}





Fuentes.
 
http://infogeekcatamarca.wordpress.com/2010/07/26/%C2%BFque-es-posix/
http://isa.umh.es/asignaturas/sitr/TraspSITR_POSIX1_procesos.pdf
http://www.infor.uva.es/~benja/apuntes-semaforos-POSIX.html

jueves, 22 de septiembre de 2011

****Selecciono el numero****

Quiero el numero

13

Practica 3 y 4 Configuracion de Procesos en C

A Continuacion  se muestran los resultados de las prácticas 3 y 4

PRÁCTICA 3

include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>//Define macros que presentan informe de error a través de códigos.


#define NUM_HIJOS 3
int main(void)
{
 int ret,i;
 for(i=0;i<NUM_HIJOS;i++)
 {
  ret=fork();
  if(ret==0)
  {
   printf("Yo soy el hijo %d mi padre es PId= %d, Yo soy PID=%d\n",i,getppid(),getpid());
  }
  else if(ret>0)
  {
   ret=wait(NULL);
   while(ret>0)
   {
    ret=wait(NULL);
   }
   if (ret==-1 && errno !=ECHILD)
   {
    perror("fallo en wait");
    exit (EXIT_FAILURE);
   }
   exit(EXIT_SUCCESS);
  }
  else if(ret==-1)
  {
  perror("fallo el fork");
  exit(EXIT_FAILURE);
  }
 }




#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<errno.h>

#define NUM_HIJOS 2
int main(void)
{
 int ret,i;
 for(i=1;i<=NUM_HIJOS;i++)
 {
  ret=fork();
  if(ret==0)
  {
   printf("Yo soy el hijo %d mi padre es PID= %d, Yo soy PID=%d\n",i,getpid(),getppid());
  
  }
  else if(ret>0)
  {
   ret=wait(NULL);
   while(ret>0)
   {
    ret=wait(NULL);
   }
   if (ret==-1 && errno !=ECHILD)
   {
    perror("fallo en wait");
    exit (EXIT_FAILURE);
   }
   exit(EXIT_SUCCESS);
  }
  else if(ret==-1)
  {
  perror("fallo el fork");
  exit(EXIT_FAILURE);
  }
 }
}




Practica 2 : Procesos En C

A Continuacion se muestran 3 resultados sobre l ejecucion de programa.








Pipe. es un m etodo de conexi on de que une la salida est andar  de un proceso a la entrada est andar de otro. Cuando un proceso crea una tuber a, el n ucleo instala dos descriptores de cheros para que los use la tuber a. Un descriptor se usa para permitir un camino de entrada a la tuber a (write), mientras que la otra se usa para obtener los datos de la tuber a (read). A estas alturas, la tuber a tiene un peque~no uso pr actico, ya que la creaci on del proceso s olo usa la tuber a para comunicarse consigo mismo.

pstree . Muestra los procesos en forma de árbol


Preguntas

1.¿Por que aparecen mensajes repetidos?

Los mensajes salen "repetidos pero con ID de proceso diferente y esto se lleva  a cabo por el for en el cual se le dan ciertas iteraciones pero por el fork() que se le anexa se realizan mas iteraciones. 

2.¿Que observas?
Se observan los id de los procesos (padres e hijos) asi como estos en forma de arbol

3.¿Porqué?
Esto se lleva a cabo por que el proceso y el nucleo se esta llevando acabo la comunicacion por medio de tuberias y esto se lleva a cabo por medio del comando fpipe y los procesos se presentan en forma de arbol por medio del comando pstree.





lunes, 19 de septiembre de 2011

Practica de Identificador de Procesos.

En la siguiente practica se identifico que...

getpid. Devuelve el identificador de proceso del proceso actual. Esto es usando normalmente por rutinas que generan nombres únicos de ficheros temporales.
 
getppid. Devuelve el identificador de proceso del padre del proceso actual.

PID. Process IDentification. Numero que identifica un proceso en el sistema, este numero es unico para cada proceso.

El fork() hace que el proceso actual se duplique
A continuacion se muestra el codigo de la practica con algunos comentarios sobre lo que hace cada linea...

#include<sys/types.h>//Libreria que contiene funciones de busqueda y ordenamiento de directorios y manipulacion de archivos
#include<sys/wait.h>//Libreria se definen las siguientes constantes simbólicas para su uso con waitpid () :
#include<unistd.h>//Libreria que contiene funciones para el manejo de directorios y archivos.
#include<stdio.h> //Libreria que contiene funciones de cabeceras de entrada y salida
#include<stdlib.h> //Libreria que contiene los prototipos de funciones de C para gestión de memoria dinámica, control de procesos y otras

int main (int argc, char * argv [])
{

 int num;//declaracion de una variable de tipo entero ; por lo tanto es un entero para usarlo como contador del for
pid_t pid;// un entero capaz de contener un pid ; definimos un tipo de dato para contener un pid
for(num=0;num<3;num ++) // Ciclo el cual indica 3 iteraciones
{ //inicia el ciclo
pid=fork();// llamamos a la función fork, la cual devolverá cero al programa ejecutado en el proceso hijo y el pid del proceso hijo al padre
printf("soy el proceso PID %d,y mi padre tiene %d de PID \n",getpid(),getppid());//Manda un mensaje en pantalla en donde se muestra lo escrito y lo que contiene getpid y getppid
if(pid!=0) break;//sirve también para terminar loops producidos por FOR antes que se cumpla la condición normal de terminación
srandom(getpid());
sleep(random()%3);//Insertando un retraso aleatorio antes de cada llamada a printf, por lo que el efecto visual de la multitarea: lo hacemos con las funciones sleep y random.
} //fin del ciclo
if(pid!=0) printf("fin del proceso de PID %d\n",wait(NULL));//Manda un mensaje en pantalla y con el wait(NULL) espera que finalice cualquier proceso
return 0;
}

Preguntas

 
1.¿Por que aparecen mensajes repetidos?
Aparecen 6 mensajes con la frase "soy el proceso PID # ,y mi padre tiene # de PID" y  es por que esta frase esta dentro de un ciclo de 3 iteraciones pero como dentro de ese  ciclo tambien esta un fork () las iteraciones se duplican. y en los numeros # son identificadores de los procesos hijo y padre.

2. ¿Que observas?
Que se muestra varias veces el mensaje para ser exactos 6 veces y en esas 6 veces los numeros de los procesos cambian o a veces son los mismos numeros. Y despues te muestra que los procesos han terminado. Tambien se muestra que en la primera iteracio se muestra el mensaje  "soy el proceso PID (con Cierto numero de proceso),y mi padre tiene (pero en esta parte en las 3 corridas del programa salio el siguiente numero 1697) de PID"

3.¿Porqué?
En el codigo se muestra que solo se tiene que mostrar 3 iteraciones pero como dentro del codigo se se manda a llamr un fork las iteraciones se duplican por lo tanto ahora son 6 iteraciones y en los numeros de los procesos son la identificacion de cada proceso y varia dependiendo del proceso. por ejemplo en la pantalla se muestra que se ha corrido el proceso 1766, 1767, 1768 y 1769 pero los que se terminan son solo los ultimos 3 procesos que son los 1767, 1768 y 1769. Y el numero que aparece en la primera itraracion (1697) podria ser por que es en donde se inicializa el proceso.

Resultado del programa la primera imagen muestra la ejecucion de una sola vez del programa y la segunda muestra que se ejecutaron en dos ocaciones el programa.



lunes, 12 de septiembre de 2011

Sistema Operativo Android y Google Chrome OS

Android

Hoy en día Android es uno de los sistemas operativos más conocidos a nivel mundial que ha salido en los últimos tiempos, pero este sistema operativo no es para computadoras de mesa ni computadoras portátiles, ya que este Android es para ser utilizado en dispositivos móviles y tablet permitiéndole al usuario contar con juegos Android de manera gratuita como por ejemplo Angry Birds que es un juego en el que se permite pasar buenos momentos de diversión sin importar la edad de los jugadores ya que cuenta con un número muy grande en lo que respecta a niveles con diversas dificultades.

Android en un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux. Diseñada en un principio para dispositivos móviles, Android permite controlar dispositivos por medio de bibliotecas desarrolladlas o adaptados por Google mediante el lenguaje de programación Java.
 
Android es una plataforma de código abierto. Esto quiere decir, que cualquier desarrollador puede crear y desarrollar aplicaciones escritas con lenguaje C u otros lenguajes y compilarlas a código nativo de ARM (API de Android).

  
Historia...

La historia de Android  se remonta a el lanzamiento inicial del Android Software Development Kit apareció en noviembre de 2007 y ya bastante tiempo después  a mediados de agosto de 2008  apareció el Android 0.9 SDK en beta. Al otro mes -fines de septiembre 2008, finalmente lanzaron Android 1.0 SDK (Release 1). Seis meses después -principios de marzo 2009-, Google presentó la versión 1.1 de Android para el “dev phone” y la actualización incluía algunos cambios estéticos menores además de soporte para “búsquedas por voz”, aplicaciones pagas en Android Market , arreglos en el reloj alarma, mejoras en Gmail y demás.

A mediados de mayo 2009, Google lanza la versión 1.5 de Android OS (llamada Cupcake) con su respectivo SDK que incluía nuevas features como: grabación de video, soporte para stereo Bluetooth, sistema de teclado personalizable en pantalla, reconocimiento de voz y el AppWidget framework que permitió que los desarrolladores puedan crear sus propios widgets para la página principal. Android 1.5 fue la versión que más personas usaron para iniciarse en Android (con el T-Mobile G1 y HTC Dream en USA) y sigue siendo actualmente una versión que se encuentra disponible en muchos móviles Android como el HTC Hero o varios de los nuevos MOTOBLUR como el Motorola Backflip o Motorola Dext .

Luego apareció Android 1.6 “Donut” en septiembre de 2009 con mejoras en las búsquedas, indicador de uso de batería y hasta el VPN control applet. De hecho, esta versión fue tan buena que todos los Android que no tienen una interfaz personalizada como HTC Sense o Motoblur ahora corren 1.6, incluyendo el T-Mobile G1, y en la actualidad sigue siendo la versión más popular.

Para llevar las cosas más alla, el Motorola Droid (Motorola Milestone para nosotros) fue lanzado con Android 2.0 “Eclair” que incluía varias nuevas features y hasta aplicaciones precargadas que requerían un hardware mucho más rápido que la generación anterior de celulares con Android (un mes luego, salió 2.0.1, una pequeña actualización).

Poco después, el Google Nexus One (al cuál marcó un antes y un después ya que Google trató de venderlo por su cuenta y liberado, además de en algunas operadoras) llegó con Android 2.1 (el cual algunos llamaron “Flan” pero Google sigue considerándolo parte de “Eclair”) con nuevas capacidades 3D, live wallpapers y lo que significó la gran mejora de la plataforma desde 1.6. De hecho, todos están pidiendo que les actualicen a 2.1 sus propios dispositivos con Android pero es probable que en algunos no funcionen bien todas las features de la versión.

Si miramos al futuro de la plataforma, por un lado Android Market es la tienda de aplicaciones que más crece ya llegando a las 40 mil aplicaciones, Android es el sistema operativo que más está creciendo en Estados Unidos casi por superar a iPhone, Motorola junto con algunos otros fabricantes están propulsando el desembarco en América Latina de Android con equipos económicos, y por el otro algunos se quejan de la fragmentación de la plataforma debido a las diferentes versiones pero lo cierto es que ya se está empezando a desarrollar el know how para brindar las actualizaciones a los usuarios 2.1 y en el futuro a las siguientes además de que la fragmentación es algo que en el mundo móvil es casi inevitable.

Google sin embargo, ha sido quien ha publicado la mayoría del código fuente de Android bajo la licencia de Software Apache, una licencia de software libre y de código abierto a cualquier desarrollador.

Este sistema operativo también cuenta con un gran número de aplicaciones Android ya que al permitir que cualquier persona pueda crear y compartir sus aplicaciones de manera gratuita o paga, dependiendo de las características y funcionalidades de la misma el creador puede decidir si colocarla a la venta o no.

En lo que se refiere a las aplicaciones para Android hay muchas empresas que brindan sus servicios web con aplicaciones creadas a medidas como por ejemplo la aplicación de correo Hotmail para Android.

Dentro de las características  que presenta Android esta…  
  • Framework de aplicaciones. Permite el reemplazo y la reutilización de los componentes.
  • Navegador integrado. Basado en los motores open Source Webkit.
  • SQlite. Base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones.
  • Multimedia. Soporte para medios con formatos comunes de audio, video e imágenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
  • Máquina virtual Dalvik: Base de llamadas de instancias muy similar a Java.
  • Telefonía GSM. Dependiente del terminal.
  • Bluetooth, EDGE, 3g y Wifi. Dependiente del terminal.
  • Cámara, GPS, brújula y acelerómetro: Dependiente del terminal
  • Pantalla Táctil.
  • Que posee un navegador integrado, el cual esta basado en el motor de código abierto WebKit.
  • Contiene gráficos optimizados, como lo son los gráficos 2D y 3D.
  • Almacenamiento de datos estructurados.
  • Tecnología GSM, la cual es dependiente del Hardware
También nos da la posibilidad de ingresar, desde nuestro teléfono y programar distintas utilidades y herramientas. Para tener una idea, algunos de los dispositivos que ya te vienen con Android son: Samsung i7500 Galaxy, Lg Gt360, Motorola Dext, Sci Phone n19 , entre muchísimos otros.

Arquitectura Android
La arquitectura interna de la plataforma Android, está básicamente formada por 4 componentes:
 
1. APLICACIONES: Todas las aplicaciones creadas con la plataforma Android, incluirán como base un cliente de email (correo electrónico), calendario, programa de SMS, mapas, navegador, contactos, y algunos otros servicios mínimos. Todas ellas escritas en el lenguaje de programación Java.
 
2. FRAMEWORK DE APLICACIONES: Todos los desarrolladores de aplicaciones Android, tienen acceso total al código fuente usado en las aplicaciones base. Esto ha sido diseñado de esta forma, para que no se generen cientos de componentes de aplicaciones distintas, que respondan a la misma acción, dando la posibilidad de que los programas sean modificados o reemplazados por cualquier usuario sin tener que empezar a programar sus aplicaciones desde el principio.
 
3. LIBRERIAS: Android incluye en su base de datos un set de librerías C/C++ , que son expuestas a todos los desarrolladores a través del framework de las aplicaciones Android System C library, librerías de medios, librerías de gráficos, 3D, SQlite, etc.

4. RUNTIME DE ANDROID: Android incorpora un set de librerías que aportan la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que anteriormente han sido transformadas al formato .dex (Dalvik Executable) por la herramienta ''dx''.

Android podría ser una competencia directa a los sistemas operativos móviles como Windows Mobile, Symbian, iPhone OS 3.0, etc. aunque también podría aminorizar o reducir la situación actual de Microsoft y sus Sistemas Operativos Windows.

Lo anterior se deduce ya que  HP Inc. uno de los gigantes en la fabricación y desarrollo de Ordenadores más importantes del mundo, ha declarado que se están planteando la implantación del Sistema Operativo Android en Ultraportátiles o Netbooks, además, se habla de que pronto podremos ver un PC de sobremesa con Android de manos de HP.

La posibilidad de que esto ocurra, depende de los resultados que obtengan en las pruebas de rendimiento y prestaciones de Android en estos equipos.
 
10 razones para usar Android
 
1.    Los teléfonos más avanzados. Dada la posibilidad de que Android pueda instalarse prácticamente en todo tipo de dispositivos, sean móviles, portátiles e incluso microondas, hace que Android siempre esté presente en los terminales más potentes del mercado siendo una apuesta importante por fabricantes y operadoras por la posibilidad de que independientemente del potencial, gama o prestaciones del dispositivo, Android podrá adaptarse a la perfección a todo tipo de necesidades.

Por otra parte, otro tipo de sistemas operativos se ven obligados a estar rezagados a terminales más obsoletos o estar limitados a una determinada marca de fabricante.

2.    Código abierto. El hecho de que Android esté liberado con licencia Apache y código abierto lo convierte en un sistema operativo totalmente libre para que un desarrollador no solo pueda modificar su código sino también mejorarlo. A través de esas mejoras puede publicar el nuevo código y con el ayudar a mejorar el sistema operativo para futuras versiones sin depender de fabricantes u operadoras para ver si se libera o no dicha mejora. Del mismo modo, al ser código abierto garantiza que, en caso de haber un bug o error, sea detectado y reparado con mayor presteza al no existir ninguna traba legal para indagar en su interior ni depender de nadie para pedir autorización a su cambio.

3.    Libertad. Android da completa libertad al propietario de un terminal a instalar lo que le venga en gana, sea desde Android Market como un ejecutable aparte (apk) no limitando la libertad del usuario ni imponiendo software propietario para poder instalar música, archivos, documentos directamente desde el cable USB como si de un disco externo se tratara.

La misma libertad tienen los desarrolladores o empresas pudiendo realizar aplicaciones o complementos como Flash, Opera o cualquier otro software sin tener que pedir permiso a nadie para ofrecerlo a los usuarios que libremente podrán instalarlo.

4.    Sin fronteras. El desarrollo de Android no está apadrinado por determinadas operadoras, fabricantes o proveedores. Android es libertad en todos los aspectos permitiendo que todos puedan disfrutar del siendo la operadora que sea.

Android no se reservará nunca el derecho a escoger una determinada operadora para imponer al usuario el hecho de contratarla para poder disfrutar de él así como sistema operativo que es, permite indagar en su código a través del SDK o desde el propio terminal así como modificar su Firmware de manera extraoficial (aunque esté permitido y no sea ilegal, en ocasiones conlleva a la perdida de la garantía del teléfono)

5.   Comunidad. Android no solo cuenta con la comunidad más grande mundial de desarrolladores sino también el mayor movimiento de estos con multitud de eventos, concursos, competiciones y reuniones así como múltiples vías de comunicación como foros y chats oficiales para fomentar la participación y la colaboración para encontrar mejoras e ideas para futuras versiones.

Por otro lado, las modificaciones o mejoras no dependerán de un limitado equipo de desarrolladores de una empresa sino contarán con el apoyo, respaldo y participación de todos los desarrolladores del mundo.

6.   Coste y gustos. Precisamente por el hecho de que Android puede ser instalado en teléfonos de cualquier fabricante o incluso en otros dispositivos, esto permite poder disfrutar de una amplia gama de terminales de diferentes precios y gamas para determinados poderes adquisitivos sin tener que forzar o limitar un sistema operativo o terminal a determinadas clases dando la opción de que toda persona pueda adquirir el terminal que más le guste así como de diferentes características o costes o incluso fabricantes.

7.   Batería. Todos los terminales de Android deben tener siempre una batería extraíble dando la opción al usuario a poder sustituirla o llevar recargables en caso de que su batería se agote. De este modo se evita que el usuario tenga problemas en cuanto a su autonomía permitiendo que, aunque la batería haya acabado con su vida útil o considere que su batería es excesivamente pequeña pueda adquirir otra más potente o de reserva.

8.   Personalizable. Al ser abierto y libre, Android es completamente personalizable tanto por usuarios instalando fondos de pantalla, animaciones, widgets, skins o temas como para fabricantes con la posibilidad de crear sus propias capas como MotoBlu o HTC Sense permitiendo a unos y a otros poder customizar o personalizar sus teléfonos de la mejor manera posible y dando a elegir al usuario la interfaz más adecuada para su gusto evitando imponer un determinado estilo o interfaz.

9.   Multitarea. Por suerte, ni hombres ni mujeres están limitados a hacer una cosa a la vez sino que somos capaces de hacer múltiples cosas siendo algo indispensable y casi impensable pensar de otra manera. Android con su sistema de multitarea inteligente es capaz de gestionar varias aplicaciones abiertas a la vez dejando en suspensión aquellas que no se utilicen y cerrarlas en caso de resultar ya inútiles para evitar un consumo de memoria. Del mismo modo que en nuestra vida cotidiana nos vemos obligados a hacer varias cosas a la vez, no podemos permitirnos el lujo de que nuestro compañero de fatigas no tenga esta función tan básica.

10. No solo móviles. La libertad del código de Android ha hecho que en poco tiempo se implante en multitud de dispositivos electrónicos, desde móviles hasta ordenadores portátiles, netbooks, microondas, lavadoras, marcos digitales, navegadores GPS, relojes e incluso en navegadores de abordo de coches.

Esto convierte a Android en un sistema operativo multifunción y completamente escalable que garantizará su crecimiento y expansión así como ayudará a fabricantes a tener un motor inteligente para sus fabricaciones.

A continuacion se muestran videos relacionados con el sistema operativo Android el primer video muestra algunos celulares con este sistema operativo que estan en Mexico y el segundo video muestra detalles precisos de lo que es Android





Google Chrome OS

Google Chrome OS es un proyecto llevado a cabo por la compañía Google para desarrollar un sistema operativo basado en web . A través de su blog oficial, Google anunció el 7 de julio de 2009 que Google Chrome OS será un sistema realizado con base en código abierto (Núcleo Linux ) y orientado inicialmente para miniportátiles , estando disponible en junio de 2011. Funcionará sobre microprocesadores con tecnología x86 o ARM .

Google ha declarado que el
código fuente del proyecto Google Chrome OS fue liberado en noviembre de 2009 bajo el proyecto «Chromium OS », para incorporar la colaboración de la comunidad de software libre y ayudar en el desarrollo del proyecto.


“Velocidad, simplicidad y seguridad son los aspectos clave de Google Chrome OS”… “Estamos diseñando el SO para ser rápido y liviando, arrancar y ponerte en la web en pocos segundos”


El objetivo de este sistema es mejorar la velocidad y la seguridad, por lo que van a replantear algunos conceptos de la arquitectura de seguridad, igual que hicieron con Chrome (donde han separado las pestañas en distintos procesos). El interfaz de usuario será mínimo y no sería de extrañar que al arrancar el ordenador lo primero que veamos sea el navegador.

 En el blog oficial de Google Chrome Os publicaron...

“Nosotros diseñamos Google Chrome para gente que vive en la Web, buscando información, leyendo sus correos, informándose con las noticias, comprando en línea o que simplemente que se mantiene en contacto con amigos. Sin embargo, el sistema operativo sobre el que corre Chrome fue diseñado en una era donde no había web.”, se lee en el blog oficial de Google. “Así que hoy estamos anunciando un nuevo proyecto que es la extensión natural de Google Chrome, el Sistema Operativo de Google Chrome. Es nuestro intento de repensar lo que los sistemas operativos deben ser.” Y Microsoft se fue a llorar a un rincón.

¿Y Android no servía para lo mismo? Pues, más o menos. Google Chrome OS es un proyecto separado de Android, como se encargó de asegurar Google. “Android fue diseñado desde el comienzo para trabajar en una variedad de aparatos, desde teléfonos hasta netbooks. Google Chrome OS está siendo creado para gente que pasa la mayor parte del tiempo en la Web, y diseñado para ordenadores que van desde los pequeños netbooks hasta los ordenadores de escritorio. Aunque hay áreas en donde Google Chrome OS y Android se superponen, creemos que la elección es lo que motiva a la innovación para el beneficio de todos, incluyendo el de Google.", dijeron los responsables.

sus principales caracteristicas.
  • Codigo Abierto: Google liberará el código a finales de este año, eso facilitará el desarrollo de software para funcionar con el, no creo que haya gran cantidad de software preparado para su lanzamiento, habla que trabajar “en la nube”.
  • Nucleo Linux: El nucleo o kernel del S.O. estara basado en Linux.
  • Entorno Grafico (GUI) Chrome: La interfaz gráfica por defecto será el mismo navegador Chrome.
  • Seguridad: Segun Google, los usuarios no tendran que verse las caras con malware, virus o actualizaciones de seguridad… personalmente no lo tengo tan claro.
  • Multiplataforma: Funcionara tanto con Procesadores ARM (para dispositivos moviles) como en los X86 (para ordenadores estándar). Su diseño permitirá que funciona correctamente tanto en netbooks como en PCs de escritorio.
  • Rapidez: Elproceso de carga será rapido, en unos segundos el ordenador estará conectado a internet.
  • Trabajo en la nube: las aplicaciones y programas con los que se podrá trabajar serán aplicaciones basadas en web siguiendo los estandares. Funcionara correctamente desde el principio con Gmail, Google Docs, Calendar… Sin una conexión a internet no valdrá para mucho.
  • Almacenamiento reducido: Estara pensado para guardar los datos en la web, no obstante tendrá la posibilidad de trabajar con carpetas en el disco duro, así como una capacidad de almacenamiento más reducida que a la que estamos acostumbrados.
  • Acuerdo con fabricantes: Google esta llegando a acuerdos con fabricantes de la talla de HP Toshiba, Lenovo, Asus y Acer para que los equipos que salgan a la venta a finales del año que viene vengan con este SO cargado de fabrica.
  • Gratis: Sera totalmente gratuito.

Google Chrome OS funcionará en maquinas x86, así como los chips ARM y se esta trabajando con varios fabricantes de equipos originales para presentar una serie de netbooks al mercado el próximo año.

La Arquitectura del software es simple, Google Chrome tiene un innovador sistema de ventanas superior al Kernel de Linux.
Google Chrome OS correrá una versión del navegador sobre un kernel de Linux. De arquitectura simple (y con un enfoque para el usuario medio).

Correrá todo tipo de tecnologías Web, por lo que los programadores de aplicaciones online estarán de parabienes y la nube se sigue fortaleciendo. Lo mejor es que estas aplicaciones, al usar la capa del navegador, serán compatibles con cualquier navegador, en cualquier sistema operativo.


El siguiente video muestra a grandes rasgos lo que es Google Chrome Os



  
Fuentes:
http://www.descargaloaca.com/caracteristicas-de-sistemas-operativos-android/
http://www.vinagreasesino.com/articulos/sistema-operativo-android.php
http://www.configurarequipos.com/doc1107.html
http://www.celularis.com/software/historia-android.php#ixzz1XmNkqcE1
http://www.genbeta.com/sistemas-operativos/google-chrome-os-sistema-operativo-para-ultraportatiles
http://www.infortecnic.com/2009/07/10/caracteristicas-de-chrome-os/