Gestión del sistema de archivos en Unix

Tabla de descritores de archivos, tabla de archivos y tabla de inodos

15 años de Sistemas Operativos

Historia de la evolución de los Sistemas Operativos en estos últimos 15 años

Importar música local en Spotify con Ubuntu

En unos pocos pasos podrás escuchar la música alojada en tu equipo por Spotify

Notificador de Tuenti para Ubuntu

Este pequeño script te avisara en pantalla de las alertas mas importantes de tu tuenti.

martes, 2 de octubre de 2012

Quinta Generación de Sistemas Operativos (1996-Actualidad)



Quinta Generación de Sistemas Operativos (1996-Actualidad)

Hay personas que prefieren mezclar la Cuarta Generación con la Quinta Generación, donde nos habla de los sistemas operativos de red y sistemas operativos distribuidos que como hemos hablado en clase y lo estamos viendo lo hemos situado en la Cuarta Generación. Por lo cual a partir de estos avances en los Sistemas Operativos vendrá en la Quinta Generación que abarca desde 1996 hasta la actualidad.
Los Sistemas Operativos junto con el hardware, van caminando hacia adelante cogidos de la mano. Ya que en cualquier avance del Sistema Operativo necesitará de una máquina que lo soporte, eso junto con el monopolio de las grandes empresas del sector, hemos pasado a tener el Windows 95, al 98, del 98 al XP, pasamos al Vista y por último al Windows 7 sin apenas darnos cuenta.

Poco a poco esto está desapareciendo con el crecimiento del software libre y gracias a últimas noticias como esta: “La próxima versión de Ubuntu (12.10) llevará una versión del Grub2 para evitar el Secure Boot de Microsoft “ o “El fabricante de tarjetas gráficas aportará su tecnología de Optimus a los equipos que incorporen el sistema operativo de software libre”  Donde cada vez más las empresas están apostando por este tipo de software.

Otros de los últimos avances de los sistemas operativos de nuestra generación son con los que nos relacionamos más en el día y día, los teléfonos móviles y tablets. Estos sistemas han conseguido satisfacer cualquier necesidad del usuario en el instante gracias a la conexión constante a Internet. Sistemas que están avanzando facilitando el uso, como ejemplo lo último de iOS, “Siri“ aplicación que obedece todo lo que le ordena el usuario con la voz. 

 Nosotros como estudiantes de informática no podemos aparcar el pequeño boom de nuestra generación, como es el Cloud Computing. Esta tecnología es una extensión del paradigma de los sistemas distribuidos y los sistemas operativos en red y hace que el usuario olvide totalmente la infraestructura física que hay detrás de la pantalla y suponer que los recursos para el son ilimitados. Gracias a la virtualización podemos presentar al usuario todas las necesidades físicas y software que necesite en el momento donde todo queda alojado en la “nube”

Lo último y que esta esperando el mercado son las Project Glass, este programa es una investigación de Google para desarollarar unas gafas de realidad aumentada que si tiene el éxito que se espera dentro de unos 5 años no será tan fácil verlas por las calles como cualquier smartphone. Estas gafas incorporarán un Sistema Operativo conectado a la nube y podrá realizar desde videoconferencias hasta capturar el momento realizando fotografías o vídeos.

 Da miedo pensar cual puede ser el siguiente avance de este mundo, pero como dijo Isaac Asimov “No temo a los ordenadores; lo que temo es quedarme sin ellos”

miércoles, 4 de enero de 2012

Gestión del sistema de archivos UNIX

Para poder administrar este sistema de archivos se crean tres tablas de datos, la tabla de descriptores de archivo, la tabla de ficheros y la tabla de nodos i.



  • Nivel Usuario 


  1. Tabla de descriptores de archivo. Esta tabla identifica todos los archivos abiertos por un proceso. Se encuentra en el espacio de memoria del usuario. El usuario cada vez que proceda a abrir un archivo se devuelve un puntero a la entrada correspondiente en la tabla de archivos. Cada vez que se abra un archivo este devolverá un puntero diferente y así no se podrá abrir este fichero en modos diferentes o acceder al mismo desde diferentes puntos. El tamaño de esta tabla tiene un valor limitado para cada proceso, este valor depende de la configuración del sistema, aunque normalmente suele ser 20. Si algún proceso desea manipular mas de 20 archivos, será necesario que alguno de los otros se cierre.

  • Nivel de Kernel

  1. Tabla de ficheros. Esta se encuentra en el área de memoria del sistema.  Cada vez que se crea o abre un archivo se reserva una nueva entrada en la tabla. Hay una entrada por cada archivo distinto que los procesos kernel o del usuario tengan abiertos, donde indica el punto actual del archivo, el tipo de apertura, un puntero al inodo y el numero de descriptores que apuntan a esa entrada. 
  2. Tabla de inodos. Es una copia en memoria de la lista de inodos que hay en el disco, a la que se le añade información adicional. Esta tabla se copia en el disco para conseguir un acceso mas rápido. Además incluye un contador que indica el número de entradas en la tabla de archivos que apuntan al inodo. Cuando se abre el fichero por segunda vez se utiliza la misma entrada al inodo, incrementando su contador. Cada vez que se cierra, disminuye el contador, hasta que llega a 0 entonces se elimina esa entrada en la tabla de inodos


lunes, 5 de diciembre de 2011

Ejercicio 2 Problemas Voluntarios Sistemas Operativos

Ejercicios realizado por Jose Maria Moyano Murillo, Juan Antonio Martinez Arboledas y Sergio Pino Márquez



2 Un grupo de electrones y positrones están celebrando una fiesta de partículas en una caja virtual. En la fiesta sólo puede haber a la vez electrones o positrones porque la materia y la antimateria no pueden estar juntas. La capacidad de la caja es de 5 partículas, para evitar las colisiones. Programar los procesos electrón y positrón.

• NOTA: evitar inanición, por ejemplo, si hay tres electrones en la fiesta y llega un positrón, el positrón habrá de esperar. Si justo a continuación llega un electrón esperará detrás del positrón (aunque hubiese hueco para él en la caja, se respeta el turno).

• Necesitarás contabilizar localmente el número de electrones y el de positrones.
semaforo hayPositron=0, hayElectron=0, max_capacity=5, esperando=0;

void Electron ()
{  while(true)
   {  wait(esperando); //espera hasta que no haya nadie esperando por delante suya
      wait(hayPositron); //espera a que no haya positrones
      wait(max_capacity); //espera a que no esté lleno
      signal(hayElectron); //dice que dentro hay electrones
      signal(esperando);
       //está en la fiesta
      signal(max_capacity); //cuando va a salir -> incrementa para decir que hay un hueco más
      if(max_capacity==5) //si hay 5 huecos
         hayElectron=0; //ya no hay electron
   }
}


void Positron()
{  while(true)
   {  wait(esperando); //espera hasta que no haya nadie esperando por delante suya
      wait(hayElectron); //espera a que no haya electrones
      wait(max_capacity); //espera a que no esté lleno
      signal(hayPositron); //dice que dentro hay positrones
      signal(esperando);
       //está en la fiesta
      signal(max_capacity); //cuando va a salir -> incrementa para decir que hay un hueco más
      if(max_capacity==5) //si hay 5 huecos
         hayPositron=0; //ya no hay positron
   }
}

2.1 En la solución del barbero dormilón vista en clase, ¿qué problema identificas y describe cómo lo solucionarías (sin especificar todo el código)?
 En el caso de que los clientes entran sin ningun orden y el barbero les corta el pelo sin ningun orden, hemos visto que puede ser un problema para los clientes que entren al principio ya que pueden tardar en contarse el pelo basta tiempo o incluso los últimos.

Para ello nos hemos imaginado una cola FIFO, donde el primero que entra, es el primero que sale, por lo cual debe ser pelado antes que los que han llegado últimos. Por lo tanto en cuanto entre un cliente, se le asignará un número, que sera el orden de entrada.

jueves, 13 de octubre de 2011

15 años de Sistemas Operativos

El mundo de los sistemas operativos ha ido dando saltos agigantados en estos últimos 15 años, compañías que triunfan, otras que pierden, facilitan la vida al usuario que utiliza la maquina pero una característica en común, es que todas copian.
Son 2 compañías importantes las que apostaron por este mundo, y en la que os hablare en este articulo, Apple y Microsoft aunque en una lucha paralela GNU Linux empieza a comer terreno entre los mas curiosos. De este último hablaremos de los avances en su núcleo y de las apariciones mas importantes de algunas distribuciones. 

MAC OS 8
En el año 1996 por fin se libera el núcleo de Linux ya es liberado desde 1994 que fue lanzado, lo cual es tenido en cuenta para muchas empresas la efectividad de este. Microsoft lanza el Windows NT 4.0, un sistema capaz de trabajar a 32 bits pero con un interfaz grafica igual que el Windows 95, entre las novedades de este sistema se encuentra la versión 2.0 de IIS. Por otro lado en 1997 Apple después de 6 años sin sacar nada nuevo, sorprende al mundo con Mac OS 8, con una nueva interfaz increíble por aquellos tiempos y un sistema de archivos totalmente diferente a lo que había en ese momento en el mercado, HFS Extended. Este sistema consiguió el record de ventas en sus 2 primeras semanas.


Windows 98
La lucha entre compañías para que los usuarios utilizaran su SO hizo que Windows en Junio de 1998, sacara un sistema donde incluyo lectura de DVD, USB. Este sistema se llamó Windows 98, capaz de soportar particiones mayores de 2GB pero además de estas novedades el cambio mas significativo fue el gran cambio en su núcleo.

(Ver video presentación Windows 98, Bill Gates y el pantallazo azul)


Ya en 1999 Apple lanza Mac OS X, con su primera versión Mac OS X Server 1.0, con una nueva interfaz grafica que ya adelantaba al usuario como serian en el futuro los sistemas Mac OS X.


En Agosto de 1999 Redhat salio a bolsa consiguiendo la octava mejor ganancia del primer día en la historia de Wall Street, esta empresa famosa por apoyar el software libre siendo unos de sus mayores éxitos la creación el sistema de empaquetación (RPM). Y una de sus distribuciones mas populares fue Mandriva nacida en 2005.
El 17 de Febrero de 2000,  Microsoft lanzo Windows 2000, una de sus características mas importantes fue la incorporación del emulador DOS para ejecutar aplicaciones ya existentes sobre el, ademas de ser ideal para instalar servidores, web, FTP, DNS, etc.

Windows Millennium
A finales del 2000, en Septiembre, Microsoft vuelve a sacar un nuevo SO, Windows Me (o Windows Millennium Edition), uno de los mayores fracasos de esta compañía, ya que a la hora de la instalación y utilización este sistema cometía muchos fallos y eso hizo que esta compañía intentara solucionar todos estos problemas y al año siguiente lo sustituyeron por uno nuevo, Windows XP

(Ver video promocional de Windows Me)



Windows XP
Lanzado el 25 de Octubre del 2001 y con solo un tiempo de desarrollo de 18 meses, este sistema fue uno con el mayor éxito en la historia, con mejor estabilidad y rendimiento que el anterior, se dice que es el sistema mas utilizado en el mundo (se estima que hay mas de 400 millones de copias funcionando). Una de sus novedades fue la activación del producto, para detectar las copias piratas. Un entorno gráfico mucho mas agradable que los anteriores,  interfaz intuitiva para el usuario, escritorio remoto, etc.

En el mismo año Apple comienza a cambiar el nombre a sus sistemas operativos en vez de nombrarlos con un simple numero, Mac OS X 10.0, llamandolo Cheetah, este sistema fue el cambio a la nueva generación de SO de esta empresa. 
En 2003 lanza Windows Server 2003, lo que seria un Windows XP modificado para trabajar como servidor y labores empresariales, con mucho mas rendimiento que el mismo XP. Tambien en 2003 Suse libera su código y pasa a llamarse OpenSuse pasando a ser un proyecto totalmente de código abierto e involucrando a la comunidad en el proceso de desarrollo.
Ubuntu

En 2004 nació una de las distribuciones mas populares que utiliza el nucleo Linux, Ubuntu. Basado en Debian, esta distribución cada 6 meses se actualiza, cambiando también el nombre de la versión.






Apple en paralelo con Microsoft actualizaban sus sistemas operativo, pasando por Puma (2001), Jaguar (2002), Panther (2003), Tiger(2004) y Leopard en 2006.


Windows Vista
El 30 de Enero Microsoft lanza 2006 Windows Vista, un sistema que llega después de un largo periodo de dominio del XP. Con muchas mejoras desde el anterior, incluyendo nueva interfaz gráfica. Aunque también recibió muchas criticas, por el  mal rendimiento del sistema, las restricciones, su incompatibilidad con hardware y hasta por su precio.





El 22 de Octubre de 2009 Microsoft intenta mejorar el fatídico Windows Vista, y lanza al mercado Windows 7, es la versión mas reciente, mejorando la interfaz mas accesible, mas ligero, estable y rápido.

Mac OS X Lion
En la Conferencia Mundial de desarrolladores (WWDC) Apple presento su nuevo sistema, llamado Mac OS Lion (10.7) incluyendo utilidades de su sistema operativo móvil IOS, incorporando novedades sorprendentes como gestos Multi-Touch, Airdrop, etc.





En relación con el artículo, tambien te puede interesar:

jueves, 30 de junio de 2011

Google+ (Google Plus) Lo nuevo del gigante

Hoy gracias a @jose87 ( www.alcanjo.com ) he recibido una invitación para probar y/o participar en esta nueva red social creada por Google.

He decir que no tengo muchos ánimos y tiempo de poder seguir con otra red social mas, pero la verdad que cuando he entrado, me encanto, ya que la interfaz es increíble, y el concepto de los círculos muy muy bueno. Seria una pena que se echara a perder este proyecto, ya que la verdad esta muy currado. Os dejo un vídeo presentación, y por lo demás solo tenéis que probarlo

Trabajando con archivos binarios en C


Lo primero que debes de saber, que para entender un poco este pequeño manual, debes de tener unas nociones básicas sobre programación en C.

Hacer cualquier operación ficheros binarios en este lenguaje es mas facil que lo puede parecer a vista, ya que con unos mismos pasos podremos realizar desde una lectura, modificacion, borrado, etc del archivo en cuestión

El primer paso para trabajar con el fichero sera abrirlo para escribir, por lo cual crearemos un puntero a fichero y comprobamos al abrirlo si nos dio un error  


FILE *f;
if((f=fopen(nombreArchivo,"ab"))==NULL)
{
printf("No se puede abrir el archivo, ERROR \n");
}
else
{
//CODIGO
}
fclose(f);
Si te has fijado, si existe algo en el archivo lo añadirá después, todo esto gracias a la opción "ab".
En el else puedes trabajar ya sea pidiendo datos al usuario o obteniéndolos desde teclado, yo en este caso siempre trabajo con estructuras e iré introduciendo registro a registro. Ejemplo:

else
{
fwrite(&p,sizeof(struct piloto),1,f);
}
P es una estructura que recibió la función del tipo piloto. Es una estructura inventada de ejemplo, donde contendrá el nombre de un piloto, equipo, clasificación. Con fwrite introduciremos en el fichero que hemos abierto anteriormente, f, un registro de la estructura p de tamaño de una estructura de tipo piloto.

miércoles, 6 de abril de 2011

Notificador Tuenti en Ubuntu

Gracias a Monzi's blog podemos tener un notificador de Tuenti en Ubuntu. Este nos avisara de todas las alertas, como comentarios, mensajes, eventos, etc. Lo llevo probando mucho tiempo y la verdad que esta bastante bien ya que no tenemos que estar metidos en Tuenti las 24h, podemos estar haciendo otras cosas y este avisarnos de cuando tengamos algo importante.


Dirección descarga y explicación: http://monzisez.blogspot.com/2010/05/notificador-de-tuenti-para-ubuntu.html