Professional Documents
Culture Documents
22 de abril de 2017
Rafael Ignacio Zurita <rafa@fi.uncoma.edu.ar>
●
El sistema operativo es el conjunto de programas (software) que hacen que su
computadora funcione (para editar documentos, ejecutar aplicaciones de negocios,
jugar, etc).
●
El "Proyecto Debian" es una asociación de personas que han hecho causa común
para crear un sistema operativo (SO) libre.
●
Funciona unicamente en Pcs (arquitecturas i386 y amd64).
Letra chiquita: “No darás falsos testimonios ni mentiras. TODOS DICEN LO MISMO!”
●
2010/2011 : se reemplaza Ubuntu 2007 por Ubuntu 10.
GNOME 2 en una etapa madura. Ubuntu era el
preferido entre los usuarios.
●
2013: ubuntu deja de dar soporte y se debe cambiar a
ubuntu 2011/2012. UNITY!
[1] CUIDADO: las necesidades pueden ser incompatibles (ejemplo: algunos usuarios quieren KDE de manera predeterminada, y otros
GNOME).
[2] El proyecto FiDebian es una contribución a la Facultad de Informática, y fue llevado a cabo por fuera de los horarios laborales
(aunque tuvo la aceptación y el soporte desde la facultad en equipamiento, testers, documentacion y promocion).
●
Fedora conducido por una comunidad.
●
Red Hat mas profesional y comercial. Desarrollo norteamericano.
●
Suse al igual que Red Hat, y orientado al mercado europeo.
●
Slackware: for nerds, geeks y hackers. Necesitamos un Linux para PERSONAS.
●
Huayra: habíamos encontrado que los repositorios no eran totalmente compatibles.
“Amaras a todas las distribuciones GNU/Linux por sobre todas las otras”
●
Desarrollador de Gamerunner http://gamerunner.sf.net
●
Desarrollador de Jlime para HP Palmtops 620lx
●
Desarrollador de ZONBU Linux (Gentoo)
●
Desarrollador de JLIME Muffinman para maquinas Ben Nanonotes.
●
Usuario avanzado de Debian GNU/Linux
●
Repositorio de paquetes TESTING (rolling release).
●
Sistema de desarrollo de sistemas LIVE
(http://livedebian.net).
●
Red de servidores distribuidos siempre disponible.
●
Entorno predeterminado MATE Desktop.
●
Instalador sencillo.
●
Documentación actualizada, básica.
●
Soporte, espacio web, promoción.
# cat /etc/apt/source.list
deb http://ftp.us.debian.org/debian/ testing main contrib nonfree
●
crear-fidebian-aula.sh (2)
●
crear-fidebian-live-instalador.sh (3)
●
crear-fidebian-live.sh (3)
●
crear-fidebian-mate-base.sh (1)
●
FIDebian se utiliza en 4 laboratorios de la Facultad de Informática. (aproximadamente en 100
Pcs),
●
en estaciones de trabajo del personal administrativo y docentes;
●
en muchas portátiles de los alumnos debido a la sugerencia vertida por los docentes:
●
Alrededor de 100 instalaciones fuera de la Facultad. Publico en general.
●
Se logra hacer funcionar en maquinas sin disco, utilizando un único servidor de arranque
y una única imagen NFS readonly. Administración de sistemas sencilla de ~100 Pcs!! [1]
●
Unas ~300 instalaciones.
[1] Técnicamente esto fue posible gracias a un hack, que modifica el modo de arranque del sistema, utilizando una capa de un
sistema de archivos en RAM RD/RW montado sobre el sistema de archivos / RO. Trabajo no documentado pero existente en el
initrd modificado.
●
IMPORTANTE: En 2013 se contaba con un solo
recurso de trabajo.
●
MAS IMPORTANTE: En 2016 el sistema tenia
varios voluntarios.
●
Proyecto huérfano. Se necesita de desarrolladores.
●
¿Hay algún desafío o simplemente se debe actualizar
la imagen existente?
●
Habilidades con la programación de scripts (shell y python
minimamente). Si ademas conocen Perl y Ruby busquen un
laburo que se llenan de plata.
●
Manejo del sistema de paquetes de Debian.
●
Conocer/aprender como verificar lo que se desarrolla
(idealmente uso de qemu/kvm y automatización de tests).
●
Manejo de algún sistema de control de versiones (svn/git/etc).
●
Problema nro. 1: el instalador de Debian es for hackers, crackers, y
gente con demencia. Hay que continuar el uso del instalador del
proyecto Linux Mint.
●
Problema nro. 2: apareció un nuevo sistema de elaboración de
imágenes de instalación de Debian. Un revuelo bárbaro. Parecía un
grupo de whatsap del colegio de los hijos.
https://debian-live.alioth.debian.org/live-manual/stable/manual/html/live-manual.en.html
●
Problema nro. 3: el script que genera la imagen live con el
instalador no está actualizado a la ultima versión.
●
Problema nro. 4: el instalador es la llave al éxito o fracaso.
Es ahora fácil de usar? NO!: pide particionar. QUEE???!!!
No tiene que hacer preguntas.
Tiene que decir el tiempo exacto que falta
Debe solo preguntar:
Modo automático? (instala fidebian en su maquina)
Modo experto (el actual)
Hay que quitar los "hacks" al instalador. Si hay que configurar el instalador para nuestro ambiente
local hay que hacerlo bien.
El instalador debe ser desarrollado como si lo hiciese Apple cuando Steve Jobs tenia 25 años. Instalar
sin preguntar. Hacerlo bien. Punto.
●
Desafío nro. 5: Se necesita evaluar el estado de Mate
Desktop. El proyecto pensaba migrar a las nuevas
versiones de la biblioteca de GNOME3.
●
Hay que analizar si Debian tiene aun Mate Desktop
en sus planes.
●
Desafío nro. 6: La guía de instalación tuvo buena
repercusión, porque mostraba un ejemplo de
particionado completo difícil.
Debe estar actualizada.
●
Desafío nro. 7: Falta un instalador de paquetes DECENTE. Si quiero un
programa para mantener el inventario de una despensa es imposible encontrar
uno fácilmente desde Synaptic.
●
Muchos desafios y problemas, pero siempre hay que tener
presente el objetivo principal:
Un ejemplo y mil palabras: Problema de Subsecuencia Común mas Larga. Algoritmo posible
for i = 1 to n do c[i,0] = 0
for j = 1 to m do c[0,j] = 0
for i = 1 to n do
for j = 1 to m do
if x[i]=y[j] then c[i,j] = c[i1,j1] +1
else c[i,j] = max(c[i,j1], c[i1,j])
El algoritmo devuelve una matriz con la longitud de cada subsecuencia, para todo i y todo j
El algoritmo devuelve una matriz con la longitud de cada subsecuencia, para todo i y
todo j
●
El tiempo de ejecución es O(n*m)
●
El espacio utilizado es O(n*m)
●
Se debe recorrer la matriz para encontra la subsecuencia mas larga común.
●
Es el problema del software diff (es el programa mas utilizado en el desarrollo de
software colaborativo a través de git y parches).
●
Si un alumno desarrolla el algoritmo observará que para entradas grandes es
algoritmo es muuuuuy lento, y utiliza mucha memoria.
●
¿Pero cómo si el diff funciona velozmente y de manera eficiente? No puede
ser!
●
GNU diffutils. Software Libre. Parte del proyecto GNU
https://ftp.gnu.org/gnu/diffutils/
Descargamos: https://ftp.gnu.org/gnu/diffutils/diffutils-2.8.tar.gz
Descargamos: https://ftp.gnu.org/gnu/diffutils/diffutils-2.8.tar.gz
/* The basic algorithm is described in:
"An O(ND) Difference Algorithm and its Variations", Eugene Myers,
Algorithmica Vol. 1 No. 2, 1986, pp. 251266;
see especially section 4.2, which describes the variation used below.
Unless the minimal option is specified, this code uses the TOO_EXPENSIVE
heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N)
at the price of producing suboptimal output for large inputs with
many differences.
The basic algorithm was independently discovered as described in:
"Algorithms for Approximate String Matching", E. Ukkonen,
Information and Control Vol. 64, 1985, pp. 100118. */
AJA! Por lo que el algoritmo utilizado en diff no es el que se estudia comunmente en las clases de algoritmia. Es uno
mejor adaptado al caso mas comun de archivos con pequeñas diferencias. Lo cual es cierto para el uso comun de diff en
donde se requiere obtener unicamente las diferencias entre archivos similares.
El software libre permite ESTUDIAR el código fuente real, que generalmente difiere
de la teoría conceptual (para una mayor eficiencia).
¿Preguntas?