3.3 Identificar los candidatos (distribuciones)

Se presentan en esta sección los resultados del relevamiento de distintas distribuciones con sus principales características, sus semejanzas y diferencias. Así mismo, sirve de base para la elección del sistema operativo que emplearemos en este proyecto.

3.3.0.1 Algunos Hechos

Se acostumbra llamar una distribución de GNU/Linux a un conjunto de programas1 que junto al kernel constituyen un sistema operativo. A fines de 2004 existían más de 300 distribuciones de GNU/Linux hechas en 51 países diferentes [41], recopilando miles de proyectos de software, algunas de ellas pensadas para un fin específico: escritorio, laptop, servidor, firewall, dispositivos embebidos, recuperación de sistemas, terminales, etc. Se distribuyen en distintos formatos: DVD, CD Rom, disquetes, instalación vía una red, USB y Flash cards. Aunque la mayoría de estas se instala en el disco duro de una computadora, existen varias que pueden ejecutarse desde un CD, p.ej. Knoppix2, lo que es muy útil para hacer mantenimientos de máquinas que se han desconfigurado, y para probar Linux sin tener que hacer modificaciones en la propia computadora. Knoppix en particular permite grabar y recuperar información de un dispositivo de almacenamiento USB y grabar la configuración y recuperarla en un disquete.

Hay versiones de GNU/Linux generadas (“portes”) para distintas arquitecturas: Intel compatible 32 bit (ix86) y 64 bit (ia64, AMD64), PowerPC, IBM Power5, Sparc, Alpha, Motorola 68000, IBM Z-Series, etc. Solamente vamos a considerar las distribuciones para arquitecturas ix86 de 32bits por ser las que más probablemente se encuentren en las PyMEs y las que tenemos a nuestro alcance.

Hay unas pocas distribuciones principales3, de las cuales derivan las demás: Debian, RedHat, Knoppix, Slackware, Mandrake, SUSE, Gentoo. Estas distribuciones usan el mismo conjunto de herramientas y software Open Free de GNU. Según el conjunto de programas que se instalen y se configuren de determinada manera, una máquina se puede constituir tanto como cliente como servidor.

La Linux Standard Base (LSB) [42] y el Filesystem Hierarchy Standard (FHS4) [43] son especificaciones aceptadas como estándar que cumplen la mayoría de las distribuciones de Linux. Por ejemplo, algunas compañías como Novell que mantiene la distribución SUSE, exige que todos los socios de negocios adhieran también a estos estándares.

El objetivo de la LSB es desarrollar y promocionar un conjunto de estándares para aumentar la compatibilidad entre distribuciones y así permitir a los programas correr en cualquier distribución.

El FHS, que está incluido en la LSB es anterior a ésta y no es específico de Linux. Es un estándar aplicable a todos los Unixes5. El FHS se creó para evitar que aplicaciones escritas por terceros remplacen archivos del sistema operativo; para evitar que actualizaciones del sistema operativo remplacen archivos de aplicaciones de terceros; para promover organización y consistencia para los usuarios finales y para mantener datos estáticos separados de datos que cambian con frecuencia, de modo de que los directorios que contengan datos estáticos sean solamente de lectura.

Las aplicaciones que cumplen con ambos estándares supuestamente son compatibles a nivel binario y se instalan correctamente en cualquier distribución que adhiera a dichos estándares. Una de las principales ventajas de la compatibilidad binaria entre distribuciones es el empleo de drivers estándares para dispositivos.

No todas las distribuciones adhieren a estos estándares en su totalidad y, por ejemplo RedHat que es uno de los líderes en el mercado de distribuciones Linux, rechaza las mismas. El mismo Linus Torvalds se opone a la LSB argumentando que para asegurar compatibilidad binaria entre distribuciones se deberían 'congelar' las API del sistema operativo, impidiendo la incorporación de innovaciones.

Por otro lado, es interesante mencionar que Solaris y FreeBSD permite ejecutar binarios de Linux en forma nativa6.

El software que acompaña al kernel, junto al que forma la distribución, se agrupa en paquetes. Los paquetes muchas veces exigen la instalación previa de versiones específicas de otros paquetes (dependencias). Tanto cuando se migra a una nueva versión de la distribución de Linux como cuando se instala un paquete de software que no venía incluido en la distribución (o una versión nueva de un paquete de software que sí venía con la distribución) se presentan problemas de dependencia.

A veces, un paquete de software está compilado de una forma determinada, para un determinado sistema (por ejemplo, usando un manejador u otro de bases de datos) y en ese caso basta con obtener los fuentes y compilarlos para el sistema donde se lo va a instalar y otras veces las dependencias son respecto de funcionalidades que existen solamente en las versiones más recientes. Pueden presentarse dependencias de ambas tipos.

Existen diversas soluciones, que van desde la instalación y configuración manual de las dependencias a herramientas y metodologías para la automatización de la administración de dependencias. Hay distintas clases de paquetes de software que se caracterizan por el grado de automatización para la administración de dependencias, como ser tgz, deb y rpm.

Los archivos .tgz contienen el conjunto de archivos que constituyen el software empaquetados (mediante tar) y comprimidos (mediante gzip). La distribución Slackware [55], una de las primeras, siempre ha usado este tipo de archivo lo que requiere una planificación cuidadosa previa a la instalación a la vez que otorga mucho más control al administrador del sistema.

Los archivos .deb son característicos de la distribución Debian y contienen información sobre las dependencias que debe satisfacer el sistema y donde se va a instalar. Esto permite a herramientas automáticas detectar si se cumplen las dependencias y, en ciertos casos, obtener los paquetes complementarios.

Otro tanto sucede con los archivos .rpm. Originados en la distribución RedHat, también contienen información sobre donde y como deben instalarse, así como los paquetes que deben estar instalados previamente. Esto permite mantener el sistema o un conjunto de paquetes de software actualizados de manera sencilla.

Otra característica útil de este sistema de paquetes es que se puede obtener paquetes con los fuentes y recompilarlos automáticamente, generando el paquete binario adecuado al sistema y la arquitectura deseada.7

Desde hace años existen programas que permiten convertir entre estos formatos de archivos. Aunque cada distribución incluye un sistema para la instalación y administración de dependencias, es posible instalar paquetes creados para otras distribuciones. A veces, sin embargo, esto no es posible debido a variaciones en la estructura de directorios: recordamos que no todas las distribuciones adhieren en un 100% a la LSB.

Dentro de las propias distribuciones existen diferencias respecto a quien estén dirigidas. Por ejemplo SUSE Personal Edition 9.1 vs SUSE Professional o Mandrake Corporate Desktop vs Mandrake Corporate Server. Las versiones de escritorio o personales incluyen un conjunto limitado de los paquetes que vienen con la distribución completa. Por lo general, estas distribuciones orientadas a la empresa solamente están disponibles a través de contratos anuales de soporte.

Como vimos anteriormente esta distinción entre cliente y servidor es relativamente reciente, y es un indicador de que existe una tendencia a desarrollar distribuciones especializadas en las aplicaciones de escritorio y herramientas de productividad (p.ej. navegadores, aplicaciones de ofimática, clientes de correo electrónico, aplicaciones gráficas y multimedia, etc.).

En ocasiones se puede oír hablar de distribuciones o aplicaciones 'estables' y aplicaciones 'en desarrollo'. Aunque a primera vista la distinción parecería la misma que hay entre una versión final y una beta, en realidad esto no es así.

Una aplicación se sigue manteniendo, p.ej. se siguen corrigiendo bugs y aplicando parches para corregir problemas de seguridad tanto si es estable como si está en desarrollo. La palabra estabilidad hace referencia al código.

La diferencia radica en que las versiones estables no incorporan código nuevo, mientras que las que están en desarrollo siguen modificándose, agregando nuevas funcionalidades, etc.

Y si bien es cierto que una versión estable de una aplicación suele ser más segura, esto no tiene por que ser siempre el caso; como tampoco que la versión en desarrollo sea la que tenga mejor desempeño (performance).

Un ejemplo es el kernel. Siempre hay dos versiones, la estable y la que está en desarrollo, que se distinguen por el número, p.ej. un kernel 2.4 es estable y también lo es un kernel 2.6, pero un kernel 2.5 o uno 2.7 no. Sin embargo se liberan parches de seguridad para ambos tipos.

El ejemplo paradigmático de una distribución que adhiere a esta política es Debian, que tiene tres distribuciones disponibles: Sid (inestable), Sarge (para testeo) y Woody (estable). En Woody están las versiones más antiguas de los programas, que tienen instaladas todas los parches de seguridad. En Sid están todas las últimas funcionalidades de las aplicaciones, es la distribución que se usa para desarrollo activo. En Sarge están los paquetes que no han sido testeados completamente como para incorporarse a la versión estable. En general Sarge se usa en producción. Vale la pena destacar que no todas las distribuciones y aplicaciones siguen esta política.

Las distribuciones más recientes (primer semestre 2004) son las siguientes:

3.3.1 Instalación

Instalar GNU/Linux puede ser muy simple y automático o muy complejo y manual. Sin importar la distribución, el procedimiento general es similar en todas las distribuciones. Se bootea un kernel Linux del medio de instalación (CD ROM/Floppy/Network/USB) y arranca un sistema GNU/Linux limitado al programa instalador y una o dos terminales con un shell y algunos logs desplegados en consolas virtuales.

El programa instalador arranca y guía al usuario en la definición de algunos parámetros: el lenguaje, la hora y huso horario, la clave del usuario root (administrador), los parámetros de la red, los paquetes de software a ser instalados, los nombres de usuario y las claves de los demás usuarios, etc.

Una parte crítica del proceso de instalación es el de crear las particiones del espacio de disco. Por lo general hay una interfaz gráfica que permite crear nuevas particiones (o incluso modificar el tamaño de las particiones presentes). Luego las particiones seleccionadas para la instalación se crean, se formatean y se montan en un subdirectorio.

El sistema hace chroot a las nuevas particiones creadas o sea, las identifica como directorio raíz del sistema el punto de montaje de dichas particiones y los paquetes seleccionados se instalan.

Los dispositivos de hardware se detectan y configuran y usualmente en este punto es donde se diferencian las distribuciones ya que cada una utiliza su propia herramienta para esta tarea. Generalmente un kernel modular capaz de reconocer diferente hardware (eventualmente optimizado para el procesador subyacente) se instala por defecto.

Un cargador de Linux (p.ej. lilo o grub) se instala en el primer sector de la partición seleccionada o por lo general en el Master Boot Record. Este cargador permite también la carga de otros sistemas operativos tales como Microsoft Windows, OS/2, etc en un proceso denominado “arranque dual”.

La instalación puede tomar de 10 minutos (p.ej. Linspire) a varias horas (p.ej. Gentoo, donde todo debe ser compilado de los fuentes).

Después de reiniciar la computadora por primera vez, el sistema está pronto con suficiente software instalado y la capacidad de actualizarlo automáticamente vía la red.

Comentamos a continuación los instaladores de las distribuciones principales.

3.3.2 Administración y actualización de paquetes

Si el software está hecho por varias personas u organizaciones, existe una lógica de las dependencias respecto a bibliotecas que hace posible la coexistencia de programas heterogéneos. Los formatos usados más frecuentemente son para empaquetar el software son rpm, deb, tgz, portage, y aunque se basan en herramientas de línea de comando suelen existir interfaces gráficas.

La actualización automática de paquetes está presente en todas las distribuciones principales. Se hacen actualizaciones planificadas mediante crontab, se bajan los paquetes de distintos sitios espejo (mirror), y se actualiza el paquete correspondiente en el sistema con la herramienta de administración de paquetes.

Por lo general el kernel nunca se actualiza de forma automática para permitir más control.

La siguiente tabla resume los formatos de archivo de cada distribución y las distintas herramientas utilizadas para instalación y actualización.

Distribución

Formato de Archivo

Herramientas

Tipo de Herramienta

Debian

deb

Dpkg, apt-get, dselect, aptitude synaptic

línea de comando

Red Hat

rpm

rpm,up2date,yum

apt-get,autorpm,

redhat-config-packages

línea de comando y visual

SlackWare

tgz

installpkg,pkgtool, slackupdate,slaptget

línea de comando

Mandrake

rpm

rpm, urpmi, drakrpm

línea de comando y visual

Gentoo

portage

ebuild,emerge, portage,kportage

línea de comando

SuSE

rpm

rpm,yast2

línea de comando y visual



Una observación importante es que, si bien el formato rpm es utilizado por varias distribuciones puede no ser compatible de un sistema a otro. Esto se debe a pequeñas diferencias en la estructura de directorios de cada distribución. Afortunadamente gracias al esfuerzo de Linux Standard Base y de Filesystem Hierarchy Standard , estas diferencias van disminuyendo.

3.3.2.1 Software común

Mientras que Linux es el kernel, todos los sistemas GNU/Linux emplean utilidades desarrolladas por el proyecto GNU. Las mismas son reimplementaciones de los comandos básicos de UNIX licenciadas vía la GPL:

Además de las bibliotecas básicas y los programas y herramientas de línea de comando, las distribuciones de GNU/Linux proveen software para diferentes usos. El código, la sintaxis de los archivos de configuración y la lógica de funcionamiento de esos paquetes de software es la misma, pero según la distribución pueden venir diferentes versiones, estar ubicadas en distintos directorios e integrarse al sistema de manera distinta. A continuación mencionamos algunos de los más comunes:

3.3.3 Proceso de booteo y gestión de servicios

El programa que carga Linux en las arquitecturas compatibles con Intel puede ser LiLo o Grub.

Los archivos de configuración generalmente están en /etc/lilo.conf y /boot/grub/grub.conf. En estos se define donde ubicar el cargador (si en el Master Boot Record o en el boot record de una partición), cual es la partición a montar como root (/), el path para la imagen del kernel a bootear y para el initrd.

En cada distribución el kernel deriva del kernel original (Vanilla) hecho por Linux Torvalds, pero puede tener parches que no provengan de Linux sino de quien mantiene la distribución. Siempre es posible recompilar el kernel de los fuentes oficiales o del fuente que viene con la distribución.

Init es el primer proceso que se ejecuta en todos los sistema tipo Unix. Su archivo de configuración es /etc/inittab. Analizando ese archivo y todos los scripts invocados allí permite reconstruir lo que ocurre en el proceso de booteo.

El método de booteo del Unix System V, basado en scripts rc es usado por todos los sistemas Linux y define que scripts (de los ubicados en /etc/init.d) se ejecutan para cada diferente nivel de ejecución o runlevel. Los scripts de booteo de las principales distribuciones son los siguientes:

Distribución

Ubicación

Descripción

Debian

/etc/init.d/rcS

El script de inicialización del sistema ejecuta todos los scripts para los que exista un link

simbólico en /etc/rcS.d/. El directorio

/etc/default/ contiene los parámetros de la configuración (similar a /etc/sysconfig/ de otras distribuciones). Después de la inicialización básica, el sistema entra en el runlevel por defecto (Debian usa el nivel 2, modo texto en red, ejecutando los scripts que inician los servicios.

RedHat

/etc/rc.d/rc.sysinit

Es un script grande, ejecutado directamente por init, que configura y ejecuta todas las funciones de inicialización del sistema. Los archivos de configuración están en /etc/sysconfig/* donde tanto usuarios como herramientas de configuración guardan varios valores del sistema.

/etc/rc.d/functions

Contiene funciones de propósito general usadas por cada script del sistema.

/etc/init.d/*

Contiene los scripts de inicio y finalización mediante links simbólicos en los directorios

/etc/rc#.d/

SlackWare

/etc/rc.d/rc.S

Contiene la inicialización del sistema

/etc/rc.d/rc.modules

Módulos del kernel

/etc/rc.d/rc.pcmcia, rc.serial

Testeo y configuración de varios dispositivos de hardware

/etc/rc.d/rc.sysvinit

Ejecuta los archivos de inicialización de acuerdo al runlevel

/etc/rc.d/rc.local

Reservado para booteo especificado por el usuario

Mandrake

/etc/init.d/rc.sysinit

Es un script grande, ejecutado directamente por init, que configura y ejecuta todas las funciones de inicialización. Los archivos de configuración están en /etc/sysconfig/* donde tanto usuarios como herramientas de configuración guardan varios valores del sistema.

/etc/rc.d/functions

Contiene funciones de propósito general usadas por cada script del sistema.

/etc/init.d/*


Gentoo

/sbin/rc

Maneja todo y realiza acciones diferentes de acuerdo a los argumentos recibidos como parámetro. El inittab de Gentoo ejecuta

/sbin/rc sysinit para inicialización general del sistema.

/sbin/rc boot

Para más comandos genéricos de booteo y

/sbin/rc default para entrar en el runlevel por defecto. Para iniciar los servicios ejecuta los scripts en /etc/init.d/.

SuSE

/etc/init.d/boot

Es el primer script ejecutado por init, y maneja los siguientes scripts:

/etc/init.d/boot.* varios archivos de booteo para diferentes propósitos; se ejecutan los que tienen links simbólicos en

/etc/init.d/boot.d/

/etc/init.d/boot.local

Es el último archivo antes de entrar en la fase de rc, reservado para los comandos de booteo del usuario.

/etc/init.d/*

Son scripts de inicio de servicios ejecutados si existen links simbólicos en

/etc/init.d/rc#.d/ rc symlinks


3.3.4 Jerarquía del sistema de archivos

La ubicación de los archivos del sistema (binarios, configuración, logs, dispositivos, documentos, etc) representan un problema para el usuario novicio en Unix. Hay estándares para saber donde se ubican estos archivos, el Filesystem Hierarchy Standard por ejemplo es uno de ellos, aunque pueden variar ligeramente de una distribución a otra.

Para ubicar un archivo están las utilidades which, locate, whereis, whatis, apropos, find, etc.

Algunos directorios importantes y su uso, son:

/bin

Comandos esenciales para todos los usuarios.

/boot

Archivos estáticos para el cargador de inicio (boot loader).

/dev

Archivos de dispositivos.

/etc

Configuración específica para cada host.

/home

Directorio donde se ubican los directorios de los usuarios.

/lib

Bibliotecas compartidas esenciales y módulos del kernel.

/media

Puntos de montaje para medios removibles.

/mnt

Puntos de montaje para sistemas de archivos montados temporalmente.

/opt

Paquetes de software de aplicación agregados.

/root

Directorio hogar para el administrador.

/sbin

Binarios del sistema.

/srv

Datos para servicios provistos por el sistema.

/tmp

Archivos temporarios.

/proc

Sistema de archivo virtual con información sobre el kernel y los procesos.

/var

Archivos variables que cambian su tamaño.

/usr

Comandos y herramientas de usuarios.

/var/account

Process accounting logs.

/var/cache

Cache de datos de las aplicaciones.

/var/crash

Volcados (dumps) ante caídas del sistema (opcional).

/var/lib

Información temporal de las aplicaciones en ejecución.

/var/lock

Archivos de bloqueo.

/var/log

Archivos y directorios de log.

/var/mail

Archivos de mailbox de usuario.

/var/opt

Datos variables para /opt.

/var/run

Datos variables de tiempo de ejecución.

/var/spool

Spool” de datos para las aplicaciones.

/var/tmp

Archivos temporarios preservados entre reinicios.

/usr/X11R6

Sistema X Window, versión 11 Release 6.

/usr/bin

La mayoría de los comandos (y aplicaciones) de usuarios.

/usr/include

Directorio para los archivos de inclusión de cabecera estándar

/usr/lib

Bibliotecas para programación.

/usr/local

Jerarquía local, para software instalado localmente y no vía la distribución.

/usr/sbin

Binarios estándar del sistema que no son esenciales.

/usr/share

Datos independientes de la arquitectura.

/usr/src

Código fuente.


3.3.5 Configuración de la red

Los comandos básicos usados en Linux son comunes a todas las distribuciones: ifconfig, route, hostname, netstat, arp, mii-tool. Muchas distribuciones están incluyendo las herramientas iproute2 con ruteo mejorado y utilidades como ip y tc.

Cada distribución provee su propia herramienta de configuración que opera sobre archivos de configuración comunes, p.ej. /etc/resolv.conf, /etc/nsswitch.conf, /etc/hosts, /etc/services, /etc/protocols, etc.

Algunos, típicamente aquellos en los que se definen direcciones IP y rutas, cambian. A continuación se mencionan archivos relevantes, ordenados por distribución. Observar que la sintaxis cambia de acuerdo a los scripts que hacen uso de dichos archivos de configuración.

Distribución

Script

Descripción

Debian

/etc/network/interfaces

Interfaces y parámetros de red

RedHat

/etc/sysconfig/network-scripts/ifcfg-*

Archivos de configuración para cada interfase. El mismo archivo se encuentra dividido por perfil en

/etc/sysconfig/networking/devices/*


/etc/sysconfig/network

Hostname, default gateway, configuración general


/etc/sysconfig/static-routes

rutas estáticas

Slackware

/etc/rc.d/rc.inet1

IP y parámetros de red


/etc/rc.d/rc.inet2

Servicios de red

Mandrake

/etc/sysconfig/network-scripts/ifcfg-*

Archivos de configuración para cada interfase. El mismo archivo se encuentra dividido por perfil en

/etc/sysconfig/networking/devices/*


/etc/sysconfig/network

Hostname, default gateway, configuración general


/etc/sysconfig/static-routes

rutas estáticas

Gentoo

/etc/conf.d/net

Parámetros de la red IP y de las interfases


/etc/conf.d/routes

Rutas estáticas

SuSE

/etc/sysconfig/network/ifcfg-*

Archivos de configuración para cada interfase.


/etc/sysconfig/network/config

Configuración general de la red

3.3.6 Logs, planificación de tareas y administración de usuarios

3.3.6.1 Logging System

Las aplicaciones pueden generar logs de dos maneras: mediante una lógica propia y autónoma, o a través del demonio de log del sistema: syslog. El demonio syslog tiene como archivo de configuración a /etc/syslog.conf, el cual se puede analizar para saber donde se almacenan los logs (en general se usa /var/log/ para los logs del sistema).

3.3.6.2 Planificación de tareas

Las dos maneras más frecuentes de planificar la ejecución de programas no interactivos son mediante at y cron. Por lo general se instala sin ninguna regla por defecto. En cambio cron se instala y se requiere para la ejecución de varios eventos del sistema.

El archivo de configuración de cron es /etc/crontab; los usuarios pueden crear sus propios trabajos para cron en /var/spool/cron.

Muchas distribuciones proveen (o requieren) anacron para ejecutar cron jobs 'perdidos', p.ej. planificados a una hora en que el sistema estaba apagado.

Administración de usuarios

Un sistema GNU/Linux es un sistema operativo multiusuario con un usuario privilegiado (root), usuarios de sistema que se emplean para ejecutar comandos del sistema y demonios (lp, nobody, mail, news, uucp ...) y usuarios humanos, es decir, interactivos.

La base de usuarios es /etc/passwd, cuya lógica y sintaxis es común a todos los sistemas GNU/Linux. Cada uno de ellos almacena los datos y las contraseñas de los usuarios en /etc/shadow. Los usuarios pueden ser organizados en grupos, definidos en /etc/group.

La configuración del sistema para políticas UID/GID, contraseñas y administración de login suelen almacenarse en /etc/login.defs.

Los archivos estándar de los usuarios, p.ej. los que se copian al directorio hogar de un usuario cuando éste es creado, se almacenan en /etc/skel/.

Los comandos useradd, userdel, usermod son los más básicos para manejar usuarios. El comando passwd se usa para cambiar la contraseña.

Todas las distribuciones proveen su propia interfase de texto o gráfica para administración de usuarios, a veces, hasta más de una.

3.3.7 La elección del sistema operativo: ¿Por qué Mandrake?

La naturaleza del proyecto requiere el empleo de herramientas Open Source, incluyendo el sistema operativo. A continuación, resumimos los argumentos que nos inclinaron a emplear la distribución Mandrake 10.0 como sistema operativo y a la vez ver la problemática de la introducción del software libre en las pequeñas y medianas empresas.

Evitamos las distribuciones que apuntan a necesidades específicas y nos concentramos en distribuciones genéricas, o sea, distribuciones que pueden utilizarse para múltiples propósitos, a fin de poder abordar la mayor cantidad de empresas posibles.

Nos guiamos por el índice de popularidad de las distribuciones, pensando que una distribución popular tiene más garantías de continuidad.

Distribución

Sitios Activos

Julio 2004

Mercado compartido (distribuciones conocidas)

Taza de crecimiento en 6 meses

Enero 04

Julio 04

Linux – RedHat

1465310

50,8

49,8

10,1

Linux - Cobalt

596743

20,8

20,3

13,3

Linux – Debian

468502

15,5

15,9

14,5

Linux - SuSE

347326

10,9

11,8

15,6

Linux - Mandrake

37186

1,3

1,3

15,3

Linux - Gentoo

29912

0,7

1

49,5

    Estos datos fueron obtenidos de NetCraft.[44] http://news.netcraft.com/archives/2004/07/12/slight_linux_market_share_loss_for_red_hat.html.

Mandrake además es considerada la distribución GNU/Linux más amigable con el usuario y más fácil de usar. Encontramos también que la distribución de Mandrake es apta tanto para servidores como para desktop. Si bien existen distribuciones específicas para desktop como SUSE 9.1 Personal Edition, encontramos inclusive que Mandrake es tanto o más amigable y fácil de utilizar para un usuario final que esta. Además, no encontramos una manera fácil ni inmediata para conseguir la distribución de SuSE Enterprise (servidores), excepto comprándola.

Estas son algunas de las características de Mandrake 10.0

3.3.8 Conclusiones

Para elegir la distribución a usar, primero se seleccionaron las distribuciones de propósito general más populares, después se seleccionaron aquellas con menor costo de adquisición.

Es deseable que la distribución sea de propósito general para que pueda abarcar la mayor cantidad de empresas posibles. Por otro lado, la popularidad ofrece cierta garantía de continuidad.

La siguiente tabla incluye las principales características de las tres distribuciones de propósito general más populares. [47]


Fedora RC2

Mandrake 10

SuSE 9.1

Instalación

Modo gráfico, sin herramienta de reparticionamiento.

Modo gráfico, herramienta de reparticionamiento, actualización online.

Modo gráfico, herramienta de reparticionamiento, actualización online.

Booteo

GDM login manager, mensajes del kernel.

MDM login manager, mensajes del kernel opcionales.

KDM login manager, mensajes del kernel opcionales.

Configura-ción del sistema

Detección y configuración durante el booteo. Panel de control gráfico. Varias aplicaciones. No permite configuración avanzada.

Detección y configuración durante el booteo. Panel de control gráfico: una aplicación varios módulos.

Detección y configuración durante el booteo. Panel de control gráfico: una aplicación, YaST, varios módulos.

Software

1600 paquetes con las últimas versiones; herramienta básica de instalación/desinstalación de paquetes.

3172 + 1998 (por ftp) paquetes con las versiones más viejas; herramienta avanzada de administración de paquetes.

3475 paquetes + subdirectorio para actualizar principales secciones; herramienta avanzada de administración de paquetes.

Escritorio

GNOME 2.6, KDE 3.2.2

GNOME 2.4, KDE 3.2

GNOME 2.4 + Ximian Evolution, KDE 3.2.1

Multimedia

ALSA u OSS recopilando el kernel. No incluye reproductor de MP3. K3B para grabar Cds. Problemas para instalar drivers de NVIDIA.

ALSA u OSS. Reproducción de MP3 pero no encodificación. Encodificación OGG. K3B para grabar Cds.

ALSA u OSS recompilando el kernel. Reproducción de MP3 pero no encodificación. Encodificación OGG. K3B para grabar Cds.

Soporte

Para soporte corporativo de RedHat hay que instalar RedHat Desktop.

Mandrake Club

Enterprise level support respaldo de Novell.

Conclusión

Lista para escritorio en empresas.

Lista para escritorio en empresas. Aplicaciones de uso frecuente. Herramientas de administración amigables.

Lista para escritorio en empresas. Aplicaciones de uso frecuente. Herramientas de administración amigables. Soporte corporativo.


A continuación se incluye una tabla comparativa sobre el tiempo de instalación en una máquina AMD Athlon XP 2600+ con un disco duro 7200rpm Seagate.

Distribución

Tamaño de Instalación

De comienzo de instalación hasta el Login Manager

Fedora Linux RC2

2.07 Gb

13 minutos

Mandrake Linux 10

1.20 Gb

8.5 minutos

SuSE Linux 9.1

1.49 Gb

19.5 minutos

Microsoft XP Pro

1.03 Gb

22 minutos, sin drivers



La tabla siguiente establece una comparación de los tiempos de booteo de los sistemas anteriores en el mismo equipo. La fuente de los datos es la misma que en el caso anterior.


Distribución

Tiempo de booteo por defecto

Tiempo de booteo de servicios

Fedora Linux RC2

43 segundos

38 segundos

Mandrake Linux 10

30 segundos

28 segundos

SuSE Linux 9.1

42 segundos

39 segundos

Microsoft XP Pro

54 segundos

N/A


Se puso interés exclusivamente en arquitectura Intel por entenderse que es la más popular en las PyMEs.

Si bien otra opción válida de implementación de una plataforma empresarial basada en GNU/Linux a considerar es SUSE 9.2 Professional Edition para equipos servidores y SUSE 9.1 Personal Edition para desktops encontramos que para la Professional Edition no es fácilmente accesible y se encontraron problemas en la utilización de la versión desktop resultando no tan amigable como se lo promociona.

Entre otras distribuciones a considerar, nos quedan Debian, Gentoo y Mandrake. Por un lado, Debian, si bien es popular es difícil de instalar. Por otro, Gentoo tiene la filosofía de instalarse en forma remota y requiere una infraestructura específica en la empresa (p.ej. ADSL).

Observar que Mandrake cumple con LSB 1 (Linux Standard Base, iniciativa para aumentar compatibilidad a nivel binario y correr software en distintas distribuciones sin tener que recompilarlo), está libre de las restricciones legales que impone Estados Unidos al software criptográfico (asociado a una baja seguridad) y además se puede instalar en español.

Y dada la facilidad de acceso a la distribución de Mandrake, la completitud de paquetes (tanto servidor como desktop), facilidad de uso al usuario final, ventaja de tener una versión completa y de descarga gratuita (Community Edition) encontramos a Mandrake como el candidato para utilizar durante todo el Proyecto.

La distribución se obtuvo a través de LinuxIso.org. Se bajaron los 3 ISO con las imágenes de los primeros 3 CDs de la distribución en marzo.

1Observar que en general estos programas son licenciados vía la GPL, debido a las restricciones de GPL que impone al uso del kernel junto a otras aplicaciones.

2Basado en la distribución Debian.

3Existen otras distribuciones, las que tienen un fin específico, como Coyote. Coyote Linux implementa un firewall y cabe en un CD.

4La versión actual de la LSB es la 2.1 de enero de 2005 y se puede obtener de la página http://www.linuxbase.org/spec/. La versión actual del FHS es la 2.3 de enero de 2004 y se puede obtener de la página http://www.pathname.com/fhs/

5Unix es un trademark de Bell Labs y SCO es titular de los fuentes, pero diremos Unixes o “sistemas tipo-Unix” para referirnos a sistemas operativos que cumplen con Posix y System V, como GNU/Linux y FreeBSD.

6FreeBSD lo hace a través de un módulo del kernel. Esto ha permitido instalar la versión para GNU/Linux de SAP R/3 sobre FreeBSD, aunque SAP AG no da soporte para ese tipo de instalación.

7Por ejemplo con rpm –rebuild paq.src.rpm obtengo el paquete paq.rpm. Si yo ya tenía instalada una versión anterior, puedo actualizarla con rpm -Uvh paq.rpm.

Estudio del Open/Free (GNU/Linux) como plataforma de servicios de red en entornos empresariales
Daniel Caraballo - Mario Madera - Marcelo Odin
Tutor: Ariel Sabiguero Yawelak
2004 - 2005.