martes, 27 de septiembre de 2011

POSIX

POSIX
 
 


¿QUÉ ES?
(Portable Operating System Interface Para UNIX). Familia de estándares relacionados especificados por la IEEE para definir APIs para la compatibilidad de software entre los diferentes sistemas operativosUnix. El término "POSIX" fue sugerido por Richard Stallman en respuesta a un requerimiento de la IEEE, que deseaba un nombre memorable.

DONDE SE OCUPA
Son una familia de estándares de llamadas al sistema operativo definidos por el IEEE y especificados 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 deI/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.

EJEMPLO

*NO TODOS LO SISTEMAS SON COMPATIBLES CON ESTE PROCESO YA QUE SON SELECCIONADAS LAS APLICACIONES DONDE SE PUEDEN EJECUTAR


/* hola.c
Programa que que genera 2 hilos POXIS para
imprimir a pantalla "hola mundo".
compilar:
*/
#include <pthread.h>
#include <stdio.h>
void* imprime_mensaje( void *ptr );
main()
{
pthread_t hilo1, hilo2;
char *mensaje1 = "hola";
char *mensaje2 = "mundo";
/* se generan 2 hilos que se ejecutaran en paralelo con el padre */
pthread_create(&hilo1, NULL, imprime_mensaje, (void*) mensaje1);
/* aquí el hilo padre puede estar haciendo otra cosa en paralelo con 
los 2 hilos POSIX hijos */
/* por ejemplo: */
printf("A lo mejor esto se imprime primero... \n");
pthread_create(&hilo2, NULL, imprime_mensaje, (void*) mensaje2);
sleep(1);
exit(0);
}
void* imprime_mensaje( void *ptr )
{
char *mensaje;
mensaje = (char *) ptr;
printf("%s \n", mensaje);
pthread_exit(0);



miércoles, 21 de septiembre de 2011

ARBOL DE PROCESOS DEL PID

ÁRBOL DE PROCESOS DEL PID





¿Qué observas?

Que el proceso tiene un identificador mayor que al del padre,  asi mismo vemos que los procesos son mostrados en un arbol con numeración ascendente en lineas de 3 procesos.  

¿Por qué aparecen mensajes repetidos?

Se debe aque creando un procesos se desencadena asi mismo termina la repeticion del procesos cuando el proceso padre acepte su valor de retorno.

¿Porqué?

Porque dentro de la sintaxis se procede a crear un hijo para poder generar el arbol de prcesos y sea mostardo en pantalla, asi mismo el pipe (tuberia) crea un flujo encadenado de procesos estandares de modo que la salida en este caso de acada hijo se alimenta directamente de la entrada del siguiente.




martes, 20 de septiembre de 2011

PRACTICA CON EL PROCESO PID EN LINUX

PRACTICA CON EL PROCESO PID EN LINUX







¿Por qué aparecen mensajes repetidos?
Primero porque lo declaramos en la funcion for con un valor a 3 por lo que se imprimiran en pantalla 3 mensajes iguales pero con diferentes valores con un breve pausanya que agregamos un sleep que se la da, Si fork() es exitoso, retorna el PID del hijo al proceso padre y 0 al proceso hijo. Si falla retorna -1 al padre y el proceso hijo no se crea por eso se repiten varias veces el primer mensaje dando como resultado 6 procesos y 3 hijos usando el wait podría decirse que no deja huérfano a ningún hijo.
¿Qué observas?
Que aparece el mensaje Soy el proceso PID 6 veces y fin del procesos 3 veces, asi como dentro de esos mensajes un numero aleatorio mayor a 0.
¿Porqué?
Dentro de la entructura del programa aparecen funciones que mas adelante explicare, en si la estructura del programa llama a un proceso generando un numero aleatorio junto con un mensaje el numero de vesces que se repite son declaradas en el programa y la funcion srandom le da un valor aleatorio al mensaje siempre teniendo el padre un valor mayor al hijo.

SINTAXIS INVESTIGADAS POR DUDAS QUE ME CAUSARON

pid_t: Se utiliza para los identificadores de proceso y los ID de proceso del grupo, crea un proceso hijo que difiere del proceso padre sólo en su PID y PPID.
PID identificador de procesos es un número entero usado por el kernel
Fork es una llamada a el sistema
argc es un entero que dice cuántos argumentos tienes, argv es un vector que guarda los argumentos.

domingo, 11 de septiembre de 2011

SISTEMAS OPERATIVOS ANDROID Y CHROME OS

SISTEMAS OPERATIVOS ANDROID Y CHROME OS

SISTEMA OPERATIVO ANDROID
Android es un sistema operativo basado en GNU/Linux diseñado originalmente para dispositivos móviles, tales como teléfonos inteligentes, pero que posteriormente se expandió su desarrollo para soportar otros dispositivos tales como tablets, reproductores MP3, netbooks, PCs, televisores, lectores de e-books e incluso, se han llegado a ver en el CES, microondas y lavadoras.
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. 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.

Desarrollador
Información general
Lanzamiento inicial
2.3.6 Gingerbread 1(Teléfonos)
3.2 Honeycomb (Tablets)
14 de julio de 2011; hace 56 días y liberado
2
C (núcleo),3 C++ (algunas bibliotecas de terceros), Java(UI)
Tipo denúcleo
Apache 2.0 y GNU GPL 28
Estado actual
En desarrollo
Multilingüe
Descripción: Sí. 

ARQUITECTURA
Los componentes principales del sistema operativo de Android (cada sección se describe en detalle):
§  Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.
§  Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.

§  Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.
§  Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato .dex por la herramienta incluida "dx".
§  Núcleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software.



SISTEMA OPERATIVO 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.3 Funcionará sobre microprocesadores con tecnologíax86 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.
Desarrollador
Información general
0.12.433.114 (Beta)
14 de junio de 2011; hace 2 meses
CC++
Tipo de núcleo
$28,00 ($20,00 Instituciones Gubernamentales y Educativas)
Descripción: Sí. 

 

CARACTERÍSTICAS FUNDAMENTALES

Interfaz de usuario

Chrome OS está diseñado de una forma minimalista, debido a que su principal herramienta es el navegador web Google Chrome. De esta forma, la compañía planea mover gran parte de la interfaz de usuario desde un entorno de escritorio hacia Internet. De hecho, Google se refiere a su proyecto Chrome OS como una extensión natural del navegador Chrome. En otras declaraciones para una audiencia de desarrolladores, Google enfatiza que la web es la plataforma, destacando que las aplicaciones basadas en web funcionarán en Chrome y viceversa.
Las principales características de la interfaz de usuario son:
§  Paneles: Los paneles son pequeñas ventanas inferiores que se utilizan para diferentes tareas, tales como la descarga de archivos, navegador de archivos, mensajería instantánea en Gtalk, tomar notas, o notificadores de eventos como Google Calendar, Gmail, y actualizaciones del sistema. Los paneles también permiten ser minimizados para ocultarse, y también se pueden utilizar mientras se navega en diferentes sitios al permanecer estáticos.
§  Indicadores: Los indicadores se encuentran en la parte superior derecha, e indican procesos como la hora, batería, conexión y selector Wi-fi, y conexión 3G.
§  Pestañas: Las pestañas son lo más utilizado en el sistema, se utilizan para abrir las aplicaciones y sitios, y permiten abrir opciones del sistema. Las pestañas también se pueden "fijar" y disminuir su tamaño para quedar ancladas en la parte superior izquierda.
§  Lanzadores: Los lanzadores aparecen en la página principal, y son iconos grandes que se utilizan para abrir aplicaciones web, también ver los sitios más visitados, y ver los marcadores en una barra superior.

 

Velocidad

Uno de los puntos que más destaca Google es la velocidad del sistema, con un tiempo de arranque de 8 segundos y un tiempo apagado bastante pequeño, además de la rapidez que abre sus aplicaciones web.

 

Sincronización

Todos los documentos, aplicaciones, extensiones, y configuraciones, son respaldados en línea bajo el concepto de computación en nube. Así que si el usuario pierde su máquina, puede obtener otra o acceder desde otra máquina, y obtener exactamente los mismos datos que mantenía anteriormente.

Siempre conectado

Chrome OS solamente se podrá obtener por medio de la compra directa de un notebook, y cada notebook cuenta con conexión 3G siempre en línea. La promesa de Google es que Chrome OS siempre esté conectado, no importa dónde. Además, en las versiones de desarrollo de Chromium OS, ya se están probando las conexiones 4G (LTE) con otros dispositivos.

Aplicaciones Web

Chrome OS no utiliza el típico sistema de aplicaciones, las aplicaciones se utilizan dentro del navegador web Google Chrome, y pueden ser utilizadas en línea o ser instaladas para poder utilizarse sin la necesidad de una conexión a Internet. El principal medio para obtener estas aplicaciones web es la tienda en línea Chrome Web Store, la cual permite adquirir aplicaciones, extensiones y temas para el navegador Google Chrome en un solo lugar. La tienda también permite comprar aplicaciones, y que los desarrolladores publiquen sus aplicaciones basadas en lenguaje web actual.

Seguridad

También contará con una arquitectura de seguridad actualizada. Google enfatiza el hecho de que Chrome no sufrirá de virus o programas maliciosos. Debido a que muchos sistemas operativos actuales fueron diseñados en épocas en las que Internet no era predominante, Chrome se diseña teniendo muy en cuenta esto, por ende eliminando riesgos de seguridad comunes arraigados.
Los puntos más importantes con respecto a la seguridad de Chrome OS son:22
§  Actualizaciones automáticas: Las aplicaciones webs instaladas, extensiones, temas, el navegador, y el sistema operativo se mantendrá al día con actualizaciones automáticas.
§  Aislamiento de procesos: Aislar procesos que puedan comprometer la seguridad del sistema, tales como Flash Player, extensiones o aplicaciones instaladas.
§  Verificación de arranque: Monitorea si el sistema ha sido manipulado por entes externos antes de que el sistema parta, y vuelve a una versión de respaldo si esto ha sucedido.
§  Cifrado de datos: Todos los datos descargados en el disco son cifrados.
§  Modo visita: Parecido a la cuenta de «invitado» presente en sistemas operativos Windows y GNU/Linux, y al modo Safari en Mac OS X Lion. En este modo el usuario puede pasar la máquina a conocidos para que utilicen una cuenta de visita sin que sus datos se vean comprometidos.