martes, 24 de noviembre de 2015

Secuencial Vs Distribuido [page rank]

Secuencial Vs Distribuido [page rank]

El algoritmo a usar es page rank, resultados obtenidos: 







centralizado
distribuido
1 seg
7 seg
39 seg
22 seg





Captura de pantalla de 2015-11-24 21:29:16.png 


source code: github.com/c4rlosc7

martes, 17 de noviembre de 2015

[00] - Software Freedom (software libre)

Software Freedom (software libre)


Captura de pantalla de 2015-10-11 11:21:24.png


¿ Que es software libre ?


Los usuarios tienen las cuatro libertades:


  1. La libertad de ejecutar el programa como se desea, con cualquier propósito.

  1. La libertad de estudiar cómo funciona el programa, y cambiarlo o modificarlo para que haga lo que usted quiera.

  1. La libertad de redistribuir copias.

  1. La libertad de mejorar el programa y poder distribuir copias de sus versiones modificadas a terceros.

  • El acceso al código fuente es una condición necesaria para el software libre.
  • Los manuales son parte del software y deben ser libres.



¿ Que es código abierto ?

  • Es el nombre comercial del software libre. Casi todo el software libre es de código abierto, y casi todo el software de código abierto es libre.

  • Es importante conocer ambos términos pues mucha de la literatura disponible hace alusión solo a uno de ellos.

  • Excepcionalmente se hace mal uso del término para indicar que el programa solo puede ser visto y no modificado.

  • Microsoft ofrece ver el supuesto código de algunos productos, pero entrega un ejecutable donde no se puede verificar.

  • Bajo la definición de código abierto se aceptan algunas licencias que Free Software Foundation considera demasiado restrictivas, y hay licencias de software libre que no se han aceptado como código abierto.




Software de dominio público


  • El software de dominio público no tiene derechos de autor. Si el código fuente es de dominio público, se trata de un caso especial de software libre sin copyleft.

  • En algunos casos, un programa ejecutable puede ser de dominio público pero no disponer libremente del código fuente. En ese caso no es software libre.



Copyleft


  • El software con copyleft es software libre cuyos términos de distribución garantizan que todas las copias de todas las versiones derivadas tengan aproximadamente los mismos términos de distribución. Ejemplo: GPL

  • Software libre con copyleft: Los programas publicados con permiso de redistribución y modificación, como así también con el permiso de agregar restricciones. Ejemplo: Apple, basado en FreeBSD.




GPL

La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License (o simplemente sus siglas del inglés GNU GPL) es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios. Esta licencia fue creada originalmente por Richard Stallman fundador de la Free Software Foundation (FSF) para el proyecto GNU.


gplv3.png


Freeware


El término freeware se usa generalmente para referirse a paquetes en los cuales se permite la redistribución gratuita pero no la pero no la modificación (y su código fuente no está disponible).



Shareware


El término shareware se refiere al software del que se permite redistribuir copias, pero quien continúa a utilizar una copia debe pagar para obtener la licencia.







Ejemplos de software libre:

  • VLC
  • Apache
  • Mozilla
  • LibreOffice

linux kernel.png

linux used everywhere.png










"Registrar a Linux bajo la GPL fue definitivamente la mejor cosa que alguna vez hice " -Linus Torvalds-



lunes, 16 de noviembre de 2015

[00] Linux

Linux


Unix fue uno de los primeros sistemas operativos de éxito en el año 1969. Linux fue creado por Linus B. Torvalds. A comienzos de la década de los 90 basados en una versión educativa de UNIX(MINX).


En 1992, Linux se integra en el proyecto GNU (Con licencia GPL) y nace Slakeware (version mas antigua). Fue compartido por FTP. A partir de ese momento se empieza a compartir su código hasta llegar a los niveles de desarrollo actuales.


En el 2007 Google presenta Android el sistema operativo para Smartphones, el cual es basado en Linux. En 2013 Linux es el sistema base mas usando en todo el mundo. 





Tux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en 1996, es un pequeño pingüino de aspecto risueño y cómico. La idea de que la mascota de kernel Linux fuera un pingüino provino del mismo Linus Torvalds, creador de kernel Linux. Según se cuenta, cuando era niño le picó un pingüino; además desde pequeño mostró una gran simpatía por estos animales. No tiene un significado en específico.



Distribución GNU/Linux

Una distribución Linux, es una distribución de software basada en el núcleo de Linux. Por lo general están compuestas, total o mayoritariamente, de software libre.

Algunas distribuciones más conocidas:

distros_linux.jpg


Objetivos de una distribución Linux

  • Libertad de distribución.
  • Código libre.
  • No discriminación para grupos o personas.
  • No discriminación para actividad o propósito.
  • Distribución de la licencia.
  • La licencia no debe ser específica.
  • La licencia no debe contaminar otros programas.

Linux desde la perspectiva de un usuario sin experiencia

¿ Por qué GNU/Linux ?

  • Es un SO libre y gratuito
  • Es muy robusto
  • En determinadas tareas es más cómodo que windows u otros sistemas
  • En ciertas aplicaciones es mucho más potente que otros sistemas


Sistema de usuarios

  • Sistema multiusuario y multitarea.
  • Identificación de usuario.
  • Cada usuario tiene su espacio personal en disco.
  • Cada usuario pertenece a un grupo de usuarios.
  • Dispone de un superusuario.
  • Entrada al sistema.
  • Desde entorno gráfico.
  • Desde consola.





Sistema de archivos

  • Por lo general se utiliza Ext-FAT, Ext2, Ext3, Ext4 (SWAP para memoria virtual).
  • Sistema raíz representado por /
  • Por lo general cuelgan
  • bin
  • dev
  • etc
  • home
  • lib
  • root
  • tmp
  • usr




Estructura de directorios

  • Directorio raíz  /
  • Archivos binarios para ejecución  /bin
  • Archivos para inicio del sistema  /boot
  • Archivos de dispositivos  /dev
  • Archivos de configuración  /etc
  • Archivos de usuario  /home
  • Librerías compartidas  /lib
  • Punto de montaje CD/DVD's o USB   /media
  • Archivos independientes   /opt
 




Entorno gráfico

GNOME, KDE, XFCE…Entre otros, similares a windows en muchos aspectos

  • Panel
  • Menú de programas
  • Manejo de ventanas
  • Centro de control
  • Administrador de archivos


Extensiones de archivos en Linux

Ejecutables:

  • elf: Formato binario estándar en GNU/Linux
  • jar: Aplicaciones escritas en lenguaje Java
  • pl: Script en lenguaje Perl
  • py: Script en lenguaje Python
  • sh: Script de Shell, utilizado para crear pequeños programas

Códigos fuentes y librerías:

  • a: Librerías estáticas
  • c: Código del lenguaje C
  • cpp: Código del lenguaje C++
  • diff: Conjunto de instrucciones que definen los cambios al aplicarse un parche
  • h: Cabecera de archivos programados en C
  • lo: Archivo temporal creado en la compilación de una librería
  • o: Archivo temporal creado al compilar un programa
  • so:Librerías compartidas, equivalentes a DLL en Windows

Comprimidos y empaquetados:

  • arj: Formato de compresión muy habitual hace unos años
  • bz2: Archivo comprimido con la herramienta BZIP2
  • gz: Fichero generado mediante la herramienta GZIP, sustituta de la ya anticuada “compress”
  • rar: Sustituto natural de ARJ
  • tar: Archivo empaquetado sin comprimir, habitualmente comprimido con GZIP o BZIP2, formando extensiones dobles. (ej. tar.gz)
  • tbz2: Archivo resultante de comprimir en BZIP2 un archivo TAR
  • tgz:Resultado de comprimir en GZIP un archivo TAR
  • z: Fichero comprimido con la herramienta compress
  • zip: Es el formato de compresión más utilizado en internet, aunque en GNU/Linux no es muy común usarlo debido al uso extendido y casi exclusivo de gzip y bzip2

Archivos del Sistema:

  • conf: Archivo de configuración de un programa. Almacenados en su mayoría en el directorio /etc/
  • ko: Módulos del núcleo
  • lock: Indica el bloqueo de un servicio, proceso o programa. Se suelen guardar en /tmp borrándose con cada inicio
  • log: Archivo de información, generados por el propio núcleo y los programas y servicios instalados
  • pid: Ficheros identificadores de procesos, necesarios para el correcto funcionamiento de los servicios en ejecución
  • socket: Medio de comunicación entre dos programas situados habitualmente en equipos distintos
  • tmp: Archivos temporales creado por un programa para almacenar información

Distribuciones de paquetes binarios:

  • deb: Usado por Debian y distros derivadas, entre las que destaca Ubuntu o Linux Mint como más conocidas
  • dsc: Archivo de información del código fuente de un paquete en Debian
  • ebuild: Script utilizado por Gentoo para compilar e instalar paquetes a partir de su código fuente
  • rpm: Usado por Red Hat, Fedora, CentOS, SUSE, Mandriva y derivados
  • slp: Distribución Stampede
  • tgz: Archivos TAR.GZ ya compilados para Slackware
  • Estoy convencido que no he listado todas las extensiones presentes en nuestros sistemas GNU/Linux, pero tal vez en tus comentarios me ayudas a conocer otras que en esta visita relámpago al interior de mi Linux no pude encontrar.


Terminal

  • Intérprete de comandos que permite ejecutar órdenes desde el teclado.
  • Resulta más rápido que el entorno gráfico.
  • Primordial su uso para una correcta configuración.
  • Más potente que cualquier GUI.
















Comandos básicos

  • $ ls Lista los archivos y directorios.
ls.png
  • $ ls -l Muestra atributos.
ls -l.png
  • $ ls-a Muestra archivos ocultos.
ls -a.png



  • $ ls-t Ordena por fecha.
ls -t.png
  • $ ls-r Lista en orden inverso.
ls -r.png

  • $ cd
  • $ cd ..
  • $ subl filename.cc
  • $pwd /Escritorio/cs$ pwd -> /home/carlos/Escritorio/cs
  • $ mkdir
  • $ vi
  • $ vim
  • $ nano
  • $ chmod permisos fich
  • $ mv fich1 ...fich N di
  • $ rm  borra fichero
  • $ cat [fichero] Muestra el contenido de un fichero
  • $ cat -n [fichero] Muestra el contenido de un fichero enumerando sus líneas
  • $ stat [fichero] Muestra el estado de un fichero
  • $ history Muestra los comandos utilizados por el usuario en orden cronológico.
  • $ fc -l  Muestra los últimos comandos usados por el usuario
  • $ eject -t [unidad] Cierra la bandeja de la unidad óptica(cd rom,dvd ...)
  • $ cp [origen] [destino] Copia el archivo origen al directorio destino
  • $ cp -R [origen] [destino] Copia un directorio recursivamente
  • $ cp -p [origen] [destino] Copia preservando los permisos y las fechas
  • $ cp [archivo] [archivo nombre cambiado] Copia el archivo y lo cambia de nombre
  • $ mv [origen] [destino] Mueve al archivo origen al directorio destino
  • $ mkdir [directorio] Crea una nueva carpeta dentro del directorio.
  • $ rmdir [directorio vacío] Elimina el directorio vacio
  • $ rm [archivo] Elimina un archivo completamente
  • $ rm -r [directorio] Elimina un directorio recursivamente
  • $ clear Limpia la pantalla
  • $ reset Reinicia la terminal
  • $ date Muestra la hora y la fecha en formato completo
  • $ passwd Permite al usuario cambiar su contraseña

COMPRIMIR Y DESCOMPRIMIR:

  • $ zip -r fichero.zip ficheros Comprime en formato .zip
  • $ unzip archivo.zip Descomprime un .zip
  • $ unzip -v archivo.zip Muestra el contenido de un .zip sin descomprimirlo

  • $ rar a -r0 fichero.rar ficheros Comprime los ficheros en formato .rar
  • $ unrar e -r archivo.rar Descomprime el fichero.rar en el directorio actual
  • $ unrar x -r archivo.rar ruta destino Extrae el fichero.rar en la ruta especificada.
  • $ unrar v archivo.rar Muestra el contenido del fichero.rar sin descomprimir.

  • $ gzip -r ficheros Comprime ficheros a gz
  • $ gzip -d fichero.gz Descomprime un fichero.gz
  • $ gzip -c fichero.gz Muestra el contenido de un fichero.gz sin descomprimirlo.




"Registrar a Linux bajo la GPL fue definitivamente la mejor cosa que alguna vez hice " -Linus Torvalds-