BLOGGER TEMPLATES AND TWITTER BACKGROUNDS »

martes, 2 de septiembre de 2008

MANUAL DE CONFIGURACION E INTEGRACIN DE OPENLDAP CON SAMBA, APACHE, PHPLDAPADMIN.



Bueno, este manual servira como referencia para aquellas personas interesadas en instalar OpenLdap sobre Debian.


Vesion de Debian: Debian Etch 4.0.


Software a usar:

Slapd (2.2.23-8).

Samba (3.0.14ª-3).

Phpldapadmin (0.9.5-3).

Libnss-ldap (238-1).

Libpam-ldap (178-1).

Nscd (2.3.2.ds1-22).

Al instalarla deberemos configurar la lista de repositorios de Debian con el fin de obtener las dependencias necesarias para la consecuente ejecución de OpenLdap.


Por lo tanto lo hare paso a paso para aquellos que son rockies en ambientes Linux.


  1. Editando la lista de repositorios de Debian Etch 4.0:

    1. #Nano/pico /etc/apt/sources.list

    2. /*Y al final de la lista, teclearemos:

      1. Deb http://http.us.debian.org/debian etch main contrib non-free

    3. /*Daremos Ctrl + O (para guarder).

    4. /*Daremos Ctrl. + X (para salir).

  2. Ahora, si pertencemos a una LAN deberemos verificar si poseemos la salida a Internet a traves del servicio Proxy, deberemos teclear:

    1. #!export

    2. /*Y nos debera salir algo asi:

      1. http_proxy://172.20.49.51:80”

    3. /*Si no nos sale algo como esto deberemos exportarlo para nuestra maquina, asi:

      1. #Export http_proxy=http://172.20.49.51:80.

  3. Ahora actualizaremos nuestra lista de repositorios para que se puedan obtener los paquetes a usar en la configuración, asi:

    1. #apt-get update.

  4. Para que la configuración de OpenLdap no nos presente problemas mas adelante deberemos instalar unas dependencias necesarias para compilación e instalacion de los otros paquetes.

    1. #apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto.


  1. Ahora instalaremos los paquetes correspondientes al servidor de OpenLdap y sus utilidades.

    1. #apt-get install slapd ldap-utils.

    2. /*Ahora nos debera pedir una serie de datos, para completer la configuracion asica de OpenLdap, tales como:

      1. Contraseña del Administrador de OpenLdap: sena2008 /*es mi contraseña de ejemplo*/.

      2. Verificar la contraseña : sena2008.

    3. Ahora para que quede un poco mas completa la configuración de OpenLdap, deberemos reconfigurar el paquete-servicio, mediante:

      1. #dpkg-reconfigure slapd.

      2. /* Y nos debera pregunta ahora:

        1. Desea omitir la configuracion de ldap : no

        2. Introduzca el nombre de dominio DNS : wodan.net

        3. Instrodusca el nombre de su organizacion : wodan.net

        4. Contraseña del administrador : sena2008

        5. Verificar contraseña : sena2008.

        6. Motor de base de datos a utilizar : BDB./* Es el tipo de la base de datos Berkeley a manejar*/.

        7. Desea que se borre la base de datos cuando purge el paquete slapd :NO

        8. Desea mover la base de datos antigua : SI

        9. Permitir el protocolo LDAPV2 : si

      3. Ahora verificamos la instalacion de slapd, asi:

        1. # ldapsearch -x -b “dc=wodan,dc=net”

        2. /*Y nos debera aparecer los siguinte:

          1. # extended LDIF

          2. #

          3. # LDAPv3

          4. # base <“dc=wodan,dc=net”> with scope subtree

          5. # filter: (objectclass=*)

          6. # requesting: ALL

          7. #

          8. # search result

          9. search: 2

          10. result: 34 Invalid DN syntax

          11. text: invalid DN

          12. # numResponses: 1

  2. Instalando phpldapadmin.

    1. Phpldapadmin requiere un servidor web para funcionar. Si es nueva instalacion necesitaremos instalar Apache. Se usara Apache-ssl ya que no queremos que nuestra clave de administrador sea enviada por la red en texto plano. Por lo cual, teclearemos:

      1. #apt-get install apache-ssl. /* Y deberemos responder lo siguiente:

        1. Habilitar SuExec: no

        2. Pais: CO

        3. Estado : AN

        4. Localidad : ME

        5. Nombre de la Organización : wodan.net

        6. Nombre de la Unidad Organizativa: Users

        7. Nombre de Equipo : serverldap.wodan.net

        8. Email de contacto : admin@wodan.net

      2. /* Luego instalaremos phpldapadmin que provee una interfaz web para administrar información en LDAP:

        1. #apt-get install phpldapadmin.

        2. /* responda las preguntas asi:

          1. Tipo de autenticación: session

          2. Configurar webserver : apache-ssl.

          3. Reiniciar: si

        3. INSTALACION DE SMBLDAP-TOOLS

        4. #apt-get install smbldap-tools

        5. Phpldapadmin requiere una utilidad llamada mkntpwd para crear los hashes de las claves Samba. Esto solía estar incluído en smbldap-tools pero no parece estar en Debian.

        6. Instalacion de Mkntpwd:

          1. $ cd /opt/

          2. $ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz

          3. $ tar -zxf mkntpwd.tar.gz

          4. $ cd mkntpwd

          5. $ make

          6. $ cp mkntpwd /usr/local/bin


        1. Ahora verificamos si realmente esta instalado el paquete, asi: mkntpwd. /* Ynos debera salir:


Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]

mkntpwd password

mkntpwd -f [-] [filename]

-L lanmgrpasswd LanManager cleartextpwd <= 14 chars

-N ntpasswd NT cleartextpwd <=128 chars (usually <=14)

with both options present the encrypted LanManager-Pwd is

printed first, followed by a ‘:’ and the encrypted NT-Pwd.

The second usage behaves like mkntpwd -L pwd -N pwd

The third usage reads the password from STDIN or a File. Printoutis the same as second.

anton@genua.de


  1. INSTALACION DE SAMBA


#apt-get install samba samba-doc. /* Yresponderemos a lo siguiente:

Nombre del dominio o grupo de trabajo : wodan.net

Usar Encriptación de Contraseña: Si

Modificar smb.conf para que use la configuración WINS proveniente de DHCP : no

Como ejecutar Samba: demonios.

    1. Configurando y cargando LDAP, slapd necesita el esquema Samba para trabajar. Haremos lo siguiente:

      1. $ cd /usr/share/doc/samba-doc/examples/LDAP

      2. $ gunzip samba.schema.gz

      3. $ cp samba.schema /etc/ldap/schema

      4. /* Ahora agregamos el esquema de Samba al servicio slapd:

        1. nano/pico /etc/ldap/slapd.conf.

        2. /* despues de los otros incluyes, teclear:

          1. include /etc/ldap/schema/samba.schema

      5. Y reinicie slapd:

        1. $ /etc/init.d/slapd restart

      6. CREACION DE CARPETAS PARA SAMBA

        1. #mkdir /home/samba/

        2. #mkdir /home/samba/netlogon

        3. #mkdir /home/samba/profiles

  1. Necesitamos crear unidades organizativas en LDAP para nuestros usuarios, grupos y maquinas.

    1. Ingresar a phpldapadmin, en nuestro navegador, digitamos:

      1. /* https://serverldap.wodan.net/phpldapadmin/

      2. /* https://localhost/phpldapadmin/

      3. Ingrese con la clave del usuario administrador.

        1. Login DN : cn=admin,dc=wodan,dc=net

        2. Passwod : sena2008.

      4. Expandir la raíz del arbol, y hacer clic en “Create New Entry Here”

      5. Seleccionar “Organizational Unit” (ou):

      6. Nombrar la ou como "users” (para manejar las cuentas de los usuarios).

      7. “machines” (para manejar las cuentas de máquinas).

      8. “groups” (para manejar las cuentas de grupos).

  2. CONFIGURACIÓN DE SAMBA

    1. Es el momento de congfigurar Samba. Haremos una copia del archivo original de samba, asi:

      1. cp /etc/samba/smb.conf /etc/samba/smb.conf.bkp

    2. Ahora removeremos el archivo para dejarlo en blanco, asi:

      1. rm /etc/samba/smb.conf

    3. Y lo crearemos nuevamente:

      1. Touch /etc/samba/smb.conf

    4. Y pasaremos a editarlo:

      1. Nano/pico /etc/samba/smb.conf.

      2. /* y debera quedarnos de esta forma:

        1. Archivo_ejemplo_samba.

      3. si se copia el archivo directamente hay que darle permisos de lectura al grupo y a others, asi:

        1. #chmod u-x smb.conf

        2. #chmod g+r smb.conf

        3. #chmod o+r smb.conf

      4. Ejecute “testparm” para cerciorarse que la configuración de Samba no contiene errores.

        1. #testparm

        2. Indique a Samba la contraseña del administrador LDAP, y nos mostara:


Load smb config files from /etc/samba/smb.conf

Processing section “[netlogon]“

Processing section “[homes]“

Processing section “[profiles]“

Loaded services file OK.

Server role: ROLE_DOMAIN_PDC

Press enter to see a dump of your service definitions

/* si nos responde de esta forma entonces todo esta correcto hasta ahora.

      1. Le damos la contraseña de ldap a samba.

        1. #smbpasswd -w sena2008.

      2. Reiniciar Samba:

        1. $/etc/init.d/samba restart

      3. Si observa el phpldapadmin debería ver que una entrada “sambaDomainName=wodan.net”, ha sido creada.

        1. Copie el valor sambaSID (ej. S-1-5-21-2265827217-4098242790-2717616009), se necesitara en la siguiente sección.


  1. CREACIÓN DE GRUPOS DE DOMINIO

    1. Dentro de Phpldapadmin en Contenedor “groups”, elegir “Create New Samba3 Group Mapping” y crear los siguientes grupos:

Group

Windows_Name

GID

Samba_SID

Sambaadmins

Domain

Admins

20000 512

Sambausers

Domain

Users

20001 513

Sambaguests

Domain

Guests

20002 514

Sambamachines

Domain

Computers

20003 515



  1. INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP

    1. INSTALACIÓN NSS LDAP

      1. #apt-get install libnss-ldap
        #dpkg-reconfigure libnss-ldap

Servidor LDAP : 127.0.0.1
Nombre distintivo (DN) : dc=wodan,dc=net
Vercion de LDAP a utilizar : 3
Hace falta un usuario para acceder a la base de datos ldap : No
Dar privilegios especiales de ldap para root : SI
Desea hacer que la configuracion solo pueda leer o escribir el propietario : SI
Cuenta ldap para root : cn=admin,dc=wodan,dc=net
contraseña ldap para root : sena2008

  1. Edite el archivo /etc/nsswitch.conf, asi:

    1. #pico /etc/nsswitch.conf

    2. /* Debe quedar editado de esta forma:

      1. passwd:         compat ldap
			  group:          compat ldap 			  shadow:         compat ldap 	/* Esto buscará primero en la base de datos local (/etc/passwd), 		luego LDAP. Ud. podría hacerlo a la inversa aunque los 			resultados podrían variar.      13.Para confirmar que los grupos han sido correctamente configurados     	use la utilidad getent de la siguiente forma:     		    $ getent group 		/* Debe mostrar: 			sambaadmins:*:20000:

sambausers:*:20001:
sambaguests:*:20002:
sambamachines:*:20003: NOTA : SI NO MUESTRA ESTO ALGO ESTA MAL 14. Instalacion de PAM LDAP # apt-get install libpam-ldap
# dpkg-reconfigure libpam-ldap

Servidor ldap : 127.0.0.1
Nombre distintivo : dc=wodan,dc=net
Vercion de ldap : 3
Make local root Database admin : si
Hace falta un usuario para la base de datos LDAP : no
Ldap account for root : cn=admin,dc=wodan,dc=net
contraseña para la cuenta ldap de root : sena2008
Local crypt to use when changing passwords : md5



NOTA: Samba requiere un usuario Administrador (con un uidNumber de 0) para agregar las máquinas Windows al dominio. No recomiendo tener un usuario root en LDAP ya que puede ser capaz de abrir una sesión en las estaciones de trabajo Linux, para evitar eso agregamos un filtro en /etc/pam_ldap.conf. Si esto no le importa (o quiere tener una única cuenta root en todas las máquinas) ignore este paso.

Agregar la siguiente linea a “/etc/pam-ldap.conf”:

#pico /etc/pam-ldap.conf:

pam_filter !(uidNumber=0)

/* Esto impedirá que un usuario con uidNumber 0 pueda ingresar usando LDAP.



/* Es necesario editar los siguientes archivos para configurar PAM para LDAP:

#pico /etc/pam.d/common-account

# comente la siguiente linea

		#account        required        pam_unix.so 		# y agregue estas dos 		account         sufficient      pam_ldap.so 		account         required        pam_unix.so try_first_pass 



#pico /etc/pam.d/common-auth:

# comente la siguiente linea

		#auth   required        pam_unix.so nullok_secure 		# y agregue estas dos 		auth    sufficient      pam_ldap.so 		auth    required        pam_unix.so nullok_secure 					use_first_pass  	#pico /etc/pam.d/common-password: 		# comente la siguiente linea 		#password   required   pam_unix.so nullok obscure min=4 max=8 			md5 		# y agregue estas dos 		password   sufficient pam_ldap.so 		password   required   pam_unix.so nullok obscure min=4 max=8 			md5 use_first_pass  	#pico /etc/pam.d/common-session 		# para que cuando se registre un usuario en ldap se cree el  		# directorio home respectivo agregar como primera linea 		session    required    pam_mkhomedir.so skel=/etc/skel/ 				umask=0022  	       Ahora reiniciaremos el servicio Samba: 		$ /etc/init.d/ssh restart 		$ /etc/init.d/samba restart  	15. Finalmente instalar el Demonio de caché del servicio de      		 nombres: 		$apt-get install nscd   	16. AGREGAR USUARIOS   		Ahora finalmente podemos agregar algunos usuarios. Necesitará un Administrador (uid=0) y varios usuarios. Creelos bajo “ou=users” de la siguiente manera: USUARIO_1

First_Name

Administrador

Last_Name

Global

Common_Name

Administrador

UID_Number

0

Samba_SID

512

Password

Sena2008

Verify_Password

Sena2008

Home_Directory

/home/administrador

USUARIO_2

First_Name

richar

Last_Name

User

Common_Name

richar

User_ID

richar

UID_Number

10000

Samba_SID

512

Password

Sena.2008

Verify_Password

Sena.2008

Home_Directory

/home/richar

USUARIO_3

First_Name

Daniel

Last_Name

User

Common_Name

Daniel

User_ID

10001

Samba_SID

513

Password

Sena_2008

Verify_Password

Sena_2008

GID_Number

Sambausers

Primary_Group_ID

Sambausers

Home_Directory

/home/daniel



En este punto podemos utilizar getent para verificar que nss está trabajando correctamente en el sistema Linux.

$ getent passwd

		administrador:*:0:20000:administrador:/home/administrador:

richar:*:10000:20000:richar:/home/richar:
daniel:*:10001:20001:daniel:/home/daniel:



Finalmente necesitamos agregar los directorios iniciales para nuestros usuarios:

# mkdir /home/richar
# cp /etc/skel/.* /home/richar/
# chown -R juan /home/richar
# chgrp -R sambaadmins /home/richar



# mkdir /home/daniel

# cp /etc/skel/.* /home/daniel/
# chown -R juan /home/daniel
# chgrp -R sambaadmins /home/daniel

PRUEBAS

Primero intente ingresar (a la consola o via ssh) con el usuario LDAP.

Luego trate de conectarse al servidor Samba. Si tiene problemas examine los registros en /var/log/samba (/var/log/samba/log.nombredemaquina sería un buen lugar para empezar).

lunes, 9 de junio de 2008

PERSONALIZAR SOLARIS

Instalación de pkg-get

Primero que nada vamos a necesitar agregar software a nuestro Solaris que no viene en el DVD de serie. El software para Solaris se puede obtener ya compilado en formato de paquetes.

La herramienta para instalar paquetes en este sistema es pkgadd, que vendría a ser como el dpkg de Debian o el rpm de otras distros de Linux. Pero como usamos Debian y amamos apt-get queremos una solución un poco más cómoda e inteligente. La respuesta es pkg-get, que es el equivalente a apt-get pero para Solaris. pkg-get resuelve las dependencias automáticamente y descarga e instala los paquetes directo desde un repositorio por la red.

Para instalarlo obviamente vamos a necesitar de pkgadd

# pkgadd -d http://www.blastwave.org/pkg_get.pkg

Luego de aceptar todas las preguntas que nos hace pkgadd, tenemos que definir los repositorios desde los cuales vamos a descargar el software.

La opción más recomendable son los repositorios de www.blastwave.org, que contiene mas de 1700 paquetes de software en su mayoría open source. Todo el software de este repositorio se instala bajo /opt/csw. Por lo tanto modificamos el fichero de configuración de pkg-get:

#nano /opt/csw/etc/pkg-get.conf

Usamos nano, no porque nos guste, sino porque el vi que viene por defecto en Solaris es a mi gusto inusable. Luego lo arreglaremos.

Buscamos en www.blastwave.org/mirrors.php un mirror que este cerca o que sea rápido y lo definimos como sigue:

url=http://mirrors.sunsite.dk/csw/stable

Podemos usar la rama stable y la unstable, dependiendo de para qué vayamos a usar el equipo. Solo es necesario agregar una línea más con unstable o stable al final de la url.

Si estamos detrás de un proxy, lo configuramos:

http_proxy=http://proxy.mi.red.com:8080
export http_proxy ftp_proxy

Por último, podemos deshabilitar el chequeo de firmas y sumas md5, si nos sentimos confiados. Aunque nunca nadie sabe…

use_gpg=false
use_md5=false

Instalación de Vi mejorado

Ahora que tenemos pkg-get configuado lo podemos usar para instalar software. Lo primero que hacemos es instalar vi-enhanced, o vim.

# pkg-get install vim

Ahora bien si corremos vim nos daremos cuenta de que funciona igual que el vi que trae por defecto Solaris. Entre otras cosas la tecla backspace no funciona bien y las teclas de dirección (las de las flechas) no nos permiten movernos por el texto sino que imprimen caracteres en la pantalla. Para solucionarlo debemos crear un archivo de configuración para vim en el directorio personal de nuestro usuario. Si el usuario es root, entonces el directorio de usuario es “/” (Sí, “/”, Solaris no pone un “/root” para el superusuario).

# cd
# nano .vimrc

Y en .vimrc ponemos las siguientes líneas que solucionan los problemas anteriores del vim. Además activamos el coloreado de la sintaxis que es muy útil:

set nocp
set backspace=2
syntax on

Y listo, ya podemos usar vim como en Linux.

Cambiar la shell de root

Una de las cosas más molestas de Solaris cuando recién se instala es la shell. Por defecto Solaris no trae una shell moderna como bash sino la típica shell de Bourne o sencillamente “sh”. Esta shell no tiene ni histórico ni autocompletado y es bastante dura de usar.

¿Por qué viene por defecto? La razón es que es un ejecutable pequeño que no está enlazado dinámicamente con ninguna librería. De forma que si el sistema se vuelve inestable y no se puede montar alguna partición donde se alojan las librerías, lo mismo tendríamos una shell para acceder al sistema.

Nosotros vamos a hacer que se cargue bash como shell por defecto de root, siempre y cuando esté disponible, de manera que el sistema seguirá siendo a prueba de fallos. No tendremos que cambiar la shell en /etc/passwd, el valor lo dejaremos como está.

Para hacer el cambio, dentro del directorio del usuario editamos el archivo .profile, que es el archivo que lee la shell sh cuando se ejecuta. Será esta shell la que cargue bash de forma automática. Creamos el archivo con este contenido:

if [ -x /usr/bin/bash ]; then
SHELL=/usr/bin/bash
export SHELL
exec /usr/bin/bash
else
echo /usr/bin/bash not found using default shell of $SHELL
fi

Si salimos de la sesión y volvemos a entrar veremos que bash se carga automáticamente.

Un último detalle un tanto lamentable es que definiendo bash como shell para el entorno, no se puede iniciar el entorno gráfico. Cuando tratamos de ingresar desde el inicio gráfico de Solaris, este ser reinicia y no podemos acceder a Gnome o a CDE. Si definimos Bash para el usuario root, esto no es problema ya que usar el entorno gráfico con root no es buena opción; pero no deja de ser una solución poco elegante. Seguiré investigando para ver como solucionarlo.

Modificación del entorno de bash.

Hay algunas variables de entorno que controlan como funciona bash y que es muy útil definir.

En primer lugar debemos crear los archivos de configuración de bash, que son dos. En primer lugar .bash_profile, con el siguiente contenido:

source ~/.bashrc

Esto hace que se cargue el contenido de .bashrc que es el archivo donde guardamos las configuraciones personales para bash.

De seguro la más importante es el path, o sea los directorios donde la shell buscará los programas que se pueden ejecutar. Por defecto el path de Solaris es el siguiente:

/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb

Que nos sirve si usamos el software oficial de Solaris. Pero como vamos a instalar software de blastware y también software libre que Sun provee que no se encuentra dentro de ese path, entonces tendremos que modificarlo. Ponemos:

export PATH=’/usr/bin:/usr/sbin:/usr/openwin/bin:/usr/ucb:/opt/csw/bin:/usr/sfw/bin’

  • /opt/csw/bin es el directorio donde están los binarios del software que instalamos con pkg-get, desde los repositorios de blastwave.
  • /usr/sfw/bin es el directorio donde se ubican los binarios de software libre provisto por Sun como samba y wget.

ls en colores

El comando ls que provee Solaris no nos permite colorear la salida, así que vamos a solucionarlo de nuevo con una opción libre. Instalamos el paquete fileutils que nos provee un ls con colores.

# pkg-get install fileutils

Fileutils nos instalará el comando gdir que no es otra cosa que el ls que usamos en bash. Modificamos .bashrc para crear un alias de ls a gdir y habilitamos los colores. Agregamos lo siguiente:

export LS_OPTIONS='--color'
eval “`gdircolors`”
alias ls=’gdir $LS_OPTIONS’
alias ll=’gdir $LS_OPTIONS -l’
alias l=’gdir $LS_OPTIONS -lA’

Bash Completion

Aunque bash nos completa de forma muy útil los paths y los nombres de los programas por defecto, hay algunas cosas que no nos completa como por ejemplo los argumentos de ciertos programas. Bash Completion viene a solucionar esto, y es muy útil con comandos como pkg-get o svcadm. Lo instlamos con pkg-get:

# pkg-get install bash-completion

Para que el autocompletado se cargue de forma automática, debemos agregarlo también en .bashrc:

source /opt/csw/etc/bash_completion

Cambio del paginador y alias para vi

Las páginas del manual son paginadas por defecto con more que es bastante molesto de usar. Lo cambiamos por less, modificando lo siguiente en .bashrc:

export PAGER=less

Creamos un alias para vi en .bashrc para que se llame automáticamente a vim:

alias vi='/opt/csw/bin/vim'

Prompt descriptivo y en color

Como último paso vamos a modificar el prompt para que entregue más imformación. Además le vamos a poner color para visualizarlo mejor. Agregamos a .bashrc:

export PS1="\[33[0;32m\][\u@\h:\W]\$\[33[0m\] “

explicamos qué es cada cosa:

  • \[33[0;32m\] Es un carácter no imprimible que cambia el color del terminal a verde, así el prompt adquiere este color.
  • \u Imprime el nombre del usuario logueado
  • \h imprime el nombre de la maquina o hostname
  • \W Imprime el nombre del directorio en el que estamos parado.
  • \$ Si el usuario es root, imprime un “#”, de lo contrario imprime un “$”
  • \[33[0m\] Con esta secuencia volvemos al color original de la shell para que no siga en color verde.

Nuestro prompt quedaría de la siguiente manera:

[root@servidor:etc]#

Esto es todo, ya tenemos un entorno en Solaris bastante más familiar y agradable que nos hace la vida más sencilla.

miércoles, 4 de junio de 2008

QUE ES DEBIAN?

Debian o Proyecto Debian[1] (en inglés Debian Project[2] ) es una comunidad conformada por desarrolladores y usuarios, que pretende crear y mantener un sistema operativo GNU basado en software libre mal precompilado y empaquetado, en un formato sencillo en múltiples arquitecturas de computador y en varios núcleos.
Debian nace como una apuesta por separar en sus versiones el software libre del software no libre. El modelo de desarrollo del proyecto es ajeno a motivos empresariales o comerciales, siendo llevado adelante por los propios usuarios, aunque cuenta con el apoyo de varias empresas en forma de infraestructuras. Debian no vende directamente su software, lo pone a disposición de cualquiera en Internet, aunque sí permite a personas o empresas distribuir comercialmente este software mientras se respete su licencia.
La comunidad de desarrolladores de Debian cuenta con la representación de Software in the Public Interest,[3] una organización sin ánimo de lucro que da cobertura legal a varios proyectos de software libre.
La primera adaptación del sistema Debian, siendo también la más desarrollada, es Debian GNU/Linux, basada en el núcleo Linux, y como siempre utilizando herramientas de GNU. Existen también otras adaptaciones con diversos núcleos: Hurd (Debian GNU/Hurd); NetBSD (Debian GNU/NetBSD) y FreeBSD (Debian GNU/kFreeBSD).
Organización del proyecto
El proyecto Debian es una organización voluntaria con tres documentos fundadores:
El Contrato Social de Debian, define un sistema de base por los cuales el proyecto y sus desarrolladores tratan los asuntos.
Las Directrices de software libre de Debian, definen los criterios del Software libre y dictan qué software es aceptable para la distribución, según lo referido al contrato social. Éstas pautas también se han adoptado como base de la definición del Open Source.
La Constitución de Debian, describe la estructura de la organización para la toma de decisiones de manera formal dentro del proyecto. Enumera el poder y las responsabilidades del Líder de proyecto Debian, de la secretaría, y de los desarrolladores en general.
Actualmente, el proyecto incluye más de mil desarrolladores. Cada uno de ellos posee algún lugar en el proyecto ya sea relacionado con los paquetes: mantenimiento, documentación, control de calidad o relacionado con la infraestructura del proyecto: coordinación de lanzamientos, traducciones de web, etc. Los mantenedores de paquetes tienen un excedente de la jurisdicción los mismos, aunque los paquetes se están mantienendo cada vez más seguido. Otras tareas son generalmente el dominio de grupos reducidos, más que de la colaboración de desarrolladores.
El proyecto mantiene listas de correo. Para las conferencias se envía un representante para la comunicación y la coordinación entre los desarrolladores. Para las ediciones con los paquetes, un sistema que sigue los bugs, informa toda la comunidad que utiliza la distribución, es utilizada por los desarrolladores. Trabajan de manera conjunta desarrolladores y usuarios.
Existen otros medios de comunicación con colaboradores y usuarios, principalmente por medio del IRC, sobre todo en el servidor Freenode. Todos estos medios poseen una gran concurrencia, siendo frecuentados por multitud de usuarios y desarrolladores.
Además, los desarrolladores pueden tomar decisiones generales obligatorias para una resolución o una elección general. Toda votación es realizada por el método Schulze, un método de Condorcet de votación.
Líder del Proyecto Debian
El voto de los desarrolladores elige a un Líder de proyecto Debian una vez al año. Éste posee varias atribuciones especiales, pero estas están lejos de ser una decisión absoluta y se utiliza raramente. Bajo resolución general, los desarrolladores pueden, entre otras cosas, reelegir al líder, invertir una decisión de éste o de sus delegados, o enmendar la constitución y otros documentos fundacionales.
El líder delega a veces autoridad a otros desarrolladores, para que realicen tareas especializadas. Esto significa generalmente que un líder delega a alguien a crear un nuevo grupo de trabajo para realizar nuevas tareas y así conseguir gradualmente un equipo formado que continúe el trabajo y regularmente amplía o reduce sus filas según convenga en cada circunstancia.
Quizás una persona más importante que el líder en el proyecto Debian es el encargado del lanzamiento, que fija las metas para el lanzamiento "estable" siguiente, supervisa el proceso, y toma la decisión final en cuanto a cuándo se va a lanzar.
Una lista de las posiciones importantes en el proyecto Debian está disponible en la página web de la organización de Debian.
Líder
Desde
Hasta
Ian Murdock
agosto de 1993
marzo de 1996
Bruce Perens
abril de 1996
diciembre de 1997
Ian Jackson
enero de 1998
diciembre de 1998
Ben Collins
abril de 2001
abril de 2002
Bdale Garbee
abril de 2002
abril de 2003
Martin Michlmayr
marzo de 2003
abril de 2005
Branden Robinson
abril de 2005
abril de 2006
Anthony Towns
abril de 2006
abril de 2007
Sam Hocevar
abril de 2007
abril de 2008
Steve McIntyre
abril de 2008
actualidad









Modelo de desarrollo
Reclutamiento, motivación y renuncia de los desarrolladores


Usuaria/Colaboradora de Debian
El proyecto Debian goza de un flujo permanente de gente que quiere ser desarrollador. Esta gente debe pasar un elaborado proceso de examen que establece su identidad, motivación, entendimiento de los objetivos del proyecto (agrupados en el Contrato Social de Debian) y competencia técnica.[4]
Los desarrolladores de Debian se unen al proyecto por muchas razones; algunas de ellas son:
· El deseo de contribuir a la comunidad del software libre (prácticamente todos los candidatos utilizan software libre).
· El deseo de ver que algún programa cumpla una tarea determinada (hay quienes ven la comunidad de Debian como un buen campo para testear o probar nuevo software).
· El deseo de que el software libre sea una alternativa válida frente al software no libre.
· El deseo de trabajar cerca de gente con la que se comparten actitudes, intereses y objetivos (hay un gran sentimiento de comunidad dentro del proyecto Debian que algunos candidatos no experimentan en sus trabajos remunerados).
· El simple gozo del proceso iterativo del desarrollo de software y su mantenimiento (algunos desarrolladores tienen un nivel de dedicación casi obsesivo al refinamiento y mejora del software).
Los desarrolladores de Debian pueden renunciar a su posición en cualquier momento dejando libres los paquetes de los que eran responsables y enviando un informe a los desarrolladores y al grupo de mantenedores (para que su autorización de subida sea revocada).
Ramas de desarrollo de Debian
Estable [
Debian estable (o en inglés stable), es la versión estabilizada de Debian. Esta versión cuenta con el apoyo del Equipo de seguridad de Debian y es la recomendada para un uso en producción.
Se pueden instalar a través de la herramienta APT paquetes de binarios (deb) y código fuente, escribiendo las siguientes líneas en el archivo /etc/apt/sources.list:
# Repositorio para la versión estable

deb http://ftp.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.debian.org/debian/ stable main contrib non-free
De pruebas
Debian en pruebas (o en inglés testing), es la versión en pruebas de Debian. En esta versión se encuentran paquetes que han estado previamente en la versión Inestable, pero que contienen muchos menos fallos. Además, deben de poder instalarse en todas las arquitecturas para las cuales fueron construidas. Es la versión más recomendada para ser usarla como sistema de escritorio. De aquí saldrá la futura versión Estable.
# Repositorio para la versión en pruebas

deb http://ftp.debian.org/debian/ testing main
deb-src http://ftp.debian.org/debian/ testing main
Inestable
En Debian inestable, (o en inglés unstable), o en nombre código sid, es donde tiene lugar el desarrollo activo de Debian. Es la distribución que usan los desarrolladores del proyecto.
# Repositorio para la versión inestable

deb http://ftp.debian.org/debian/ unstable main
deb-src http://ftp.debian.org/debian/ unstable main
Congelada
Cuando la versión de pruebas llega a un nivel aceptable de fallos, entonces se "congela", lo que significa que ya no se aceptan más paquetes. A continuación se trabaja para pulir el mayor número de bugs posibles, para así liberar la versión Estable. Ese periodo puede durar un mes o más, dependiendo del registro de errores de software. Cuando éstos son muy pocos, entonces se libera como versión estable, y la que era la anterior estable se archiva.
Experimental
No se trata de una rama de desarrollo de distribución, sino de que es un repositorio de paquetes:
deb http://ftp.debian.org/debian/../project/experimental main
deb-src http://ftp.debian.org/debian/..project/experimental main
Historial de lanzamientos
Debian toma el nombre en clave de sus distintas versiones de los personajes de la película de animación Toy Story, del estudio Pixar. Todos los nombres son asignados cuando se crea una nueva versión de pruebas (Testing), y se conservan cuando ésta pasa a ser estable (Stable). La única excepción a dicha norma es la versión inestable (Unstable), cuyo nombre en clave es Sid de forma fija, en honor al vecino torturador de juguetes de dicha película.
Versión
Nombre en clave
Fecha
1.1
Buzz
17 de junio de 1996
1.2
Rex
12 de diciembre de 1996
1.3
Bo
2 de junio de 1997
2.0
Hamm
24 de julio de 1998
2.1
Slink
9 de marzo de 1999
2.2
Potato
15 de agosto de 2000
3.0
Woody
19 de julio de 2002
3.1
Sarge
6 de junio de 2005
4.0
Etch
8 de abril de 2007
5.0
Lenny
Se espera para finales del 2008









Historia de Debian
El proyecto Debian fue fundado en el año 1993 por Ian Murdock, después de haber estudiado en la Universidad de Purdue. Él escribió el manifiesto de Debian que utilizó como base para la creación de la distribución Linux Debian. Dentro de este texto los puntos destacables son: tener de la distribución de manera abierta, coherente al espíritu de Linux (núcleo) y de GNU.
El nombre del proyecto se basa en la combinación del nombre de su entonces novia (actual esposa) Deborah con su propio nombre Ian, formando el portmanteau Debian, pronunciado como las sílabas correspondientes de estos nombres, en inglés estadounidense: /dɛbˈiːjən/.
El proyecto creció lentamente al principio y lanzó sus primeras versiones 0.9x en 1994 y 1995. Las primeras portabilidades a otras arquitecturas fueron a comienzos de 1995, siendo la primera versión 1.x de Debian lanzada en 1996.
En 1996, Bruce Perens substituyó a Ian Murdock como el líder de proyecto. Por sugerencia del desarrollador Ean Schuessler, dirigió el proceso de actualización del Contrato Social de Debian y de las pautas del software de Debian libremente, definiendo los puntos fundamentales para el desarrollo de la distribución. También inició la creación de la licencia de software legal de la organización.
Bruce Perens se retiró en 1998, antes del lanzamiento del primer glibc-based Debian, 2.0. El proyecto procedió a elegir a nuevos líderes y a hacer dos revisiones de la versión 2.x, cada uno incluyendo más portabilidades a otras arquitecturas y más paquetes. Coveniente fue lanzada durante este período y la primera portabilidad a un núcleo no basado en el núcleo de Linux, así naciendo Debian GNU/Hurd, utilizando el núcleo de Hurd proveniente del proyecto GNU. Las primeras distribuciones Linux basadas en Debian (Corel Linux y la Stormix's Linux de Stormix), fueron comenzadas en 1999. Aunque estuvieron desarrolladas no por mucho tiempo, estas distribuciones eran las primeras de muchas que se basarían en Debian.
A finales de 2000, el proyecto realizó el mayor cambio a la estructura de los archivos y la organización de la versiones, reorganizando procesos de liberación de paquetes del software con el nuevo "package pools" (del inglés piscina de paquetes), y creando un rama de prueba, relativamente estable para el lanzamiento siguiente. En 2001, los desarrolladores comenzaron a llevar a cabo una conferencia anual llamada Debconf con negociaciones y los talleres para los desarrolladores y los usuarios técnicos.
Distribuciones basadas en Debian
En la actualidad, como Debian es una distro que ha probado su estabilidad y utilidad, muchos desarrolladores la han tomado para crear nuevas distribuciones, como es el caso de:
· Knoppix - distribución liveCD con muchos derivados (tales como Morphix, Damn Small Linux, Kanotix, y KnoppMyth).
· Linspire y Freespire - distribuciones diseñadas específicamente para usuarios sin experiencia técnica.
· MEPIS - distribución liveCD para novatos, que se puede también instalar.
· Ubuntu - disponible también como liveCD y en muchas versiones, entre ellas Kubuntu, Xubuntu, Edubuntu, y gNewSense(apoyada por la FSF, Free Software Fundation/Fundación del Software Libre).
· Xandros - un derivado de Corel Linux con asistencia comercial.
· RXART - Desarrollada en Argentina especial para iniciarse, distribución comercial.
· Nexenta OS - un sistema operativo utilizando el núcleo de OpenSolaris con las librerías GNU.(Alpha)
· Sidux Version liveCd de una version testing de debian.
Hasta Enero de 2007 se reportaron 129 distribuciones basadas en Debian; dicha lista puede ser vista en DistroWatch, además Debian posee su sitio una lista oficial de sus distribuciones descendientes.[5]
Comunidades
Existen muchas y variadas comunidades relacionadas al Proyecto Debian. Algunas de ellas, en España,[6] México,[7] Nicaragua,[8] Brasil,[9] Chile,[10] Colombia,[11] Costa Rica,[12] Cuba,[13] El Salvador,[14] Perú,[15] Uruguay,[16] Venezuela,[17] Argentina.[18]
FAQ anarquista
El conocido FAQ, Una FAQ anarquista, ha sido incluido en todas las versiones estables de Debian desde 1999.[19] Se asocia a que la filosofía de intercambio libre, la cooperación voluntaria y la estructura en red son aspectos comunes del software libre y el anarquismo.

QUE ES LINUX?

Linux es un sistema operativo tipo Unix (también conocido como GNU/Linux) que se distribuye bajo la Licencia Pública General de GNU o GPL, es decir que es software libre. Su nombre proviene del Núcleo de Linux, desarrollado en 1991 por Linus Torvalds. Es usado ampliamente en servidores y super-computadores,[1] y cuenta con el respaldo de corporaciones como Dell, Hewlett-Packard, IBM, Novell, Oracle, Red Hat y Sun Microsystems.Puede ser instalado en gran variedad de hardware, incluyendo computadores de escritorio y portátiles (PCs x86 y x86-64 así como Macintosh y PowerPC), computadores de bolsillo, teléfonos celulares, dispositivos empotrados, videoconsolas (Xbox, PlayStation 3, PlayStation Portable, Dreamcast, GP2X...) y otros (como juegos arcade, enrutadores y algunos modelos de iPod).Las variantes de estos sistemas se denominan "distribuciones" y su objetivo es ofrecer una edición que cumpla con las necesidades de determinado grupo de usuarios. De esta forma existen distribuciones para hogares, empresas y servidores. Algunas son gratuitas y otras de pago, algunas insertan software no libre y otras contienen solo software libre.La marca registrada Linux (Número de serie: 1916230[cita requerida]) pertenece a Linus Torvalds y se define como "un sistema operativo para computadoras que facilita su uso y operación". Existen grupos de usuarios del sistema Linux en casi todas las áreas del planeta.Etimología [editar]Linux se refiere estrictamente al núcleo Linux, pero es comúnmente utilizado para describir al sistema operativo tipo Unix (que implementa el estándar POSIX), que utiliza primordialmente filosofía y metodologías libres (también conocido como GNU/Linux) y que está formado mediante la combinación del núcleo Linux con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software (libre o no libre).La expresión "Linux" es utilizada para referirse a las distribuciones GNU/Linux, colecciones de software que suelen contener grandes cantidades de paquetes además del núcleo. El software que suelen incluir consta de una enorme variedad de aplicaciones, como: entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera. Coloquialmente se aplica el término "Linux" a éstas. Algunas personas opinan que es incorrecto denominarlas distribuciones Linux, y proponen llamarlas sistema GNU/Linux. Otras personas opinan que los programas incluidos proceden de fuentes tan variadas que proponen simplificarlo denominándolo simplemente a "Linux".La pronunciación correcta (para cualquier idioma), según palabras de su autor,[2] es muy cercana a como se pronuncia en español: /lí.nux/ o /lnəks/ (Alfabeto Fonético Internacional).Historia Linus Torvalds, creador del núcleo LinuxLinux nació gracias a la idea de Linus Torvalds de crear un sistema basado en Unix para máquinas i386. En más de una ocasión, Linus Torvalds ha afirmado que si hubiera sabido de la existencia de los sistemas BSD que ya cumplían lo que hacía Linux, no se habría molestado en modificar Minix. La historia de Linux está fuertemente vinculada a la del proyecto GNU. El proyecto GNU, iniciado en 1983, tiene como objetivo el desarrollo de un sistema Unix completo compuesto enteramente de software libre. Hacia 1991, cuando la primera versión del núcleo Linux fue liberada, el proyecto GNU había producido varios de los componentes del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero aún no contaba con el núcleo que permitiera completar el sistema operativo.Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el hueco final que el sistema operativo GNU exigía. Subsecuentemente, miles de programadores voluntarios alrededor del mundo han participado en el proyecto, mejorándolo continuamente. Torvalds y otros desarrolladores de los primeros días de Linux adaptaron los componentes de GNU y de BSD, así como de otros muchos proyectos como Perl, Apache, Python, etc. para trabajar con el núcleo Linux, creando un sistema operativo completamente funcional procedente de muchísimas fuentes diferentes, la mayoría libres.Apoyo [editar]Desde finales del 2000 se ha incrementado el apoyo y respaldo de parte de fabricantes de hardware como IBM,[3] Sun Microsystems,[4] Hewlett-Packard,[5] y Novell.[6] Algunos de ellos (como Dell,[7] Hewlett-Packard,[8] [9] Lenovo[10] [11] [12] y Acer[13] ) lo incluyen pre-instalado en algunos modelos de computadoras portátiles y de escritorio para el usuario final. El respaldo de las compañías de software también está presente, ya que -entre otras aplicaciones- Nero, Java, Google Earth, Google Desktop, Adobe Reader, Adobe Flash, RealPlayer, Silverlight y Yahoo! Messenger están disponibles para Linux.Distribuciones de Linux Sharp Zaurus, un computador de bolsillo con Linux.Una distribución es una variante del sistema Linux que se enfoca a satisfacer las necesidades de un grupo especifico de usuarios. De este modo hay distribuciones para hogares, empresas y servidores. Algunas incorporan programas comerciales (como Mandriva PowerPack) o solamente software libre (como Debian).Las distribuciones son ensambladas por individuos, empresas y otros organismos. Cada distribución puede incluir cualquier número de software adicional, incluyendo software que facilite la instalación del sistema. La base del software incluido con cada distribución incluye el núcleo Linux y las herramientas GNU, al que suelen adicionarse también varios paquetes de software.Las herramientas que suelen incluirse en la distribución de este sistema operativo se obtienen de diversas fuentes, incluyendo de manera importante proyectos de código abierto o libre, como el GNU y el BSD o el KDE. Debido a que las herramientas de software libre que en primera instancia volvieron funcional al núcleo de Linux provienen del proyecto GNU que desde 1983 había liberado software que pudo ser usado en el proyecto de Linux de 1991, Richard Stallman (fundador del proyecto GNU) pide a los usuarios que se refieran a dicho sistema como GNU/Linux. A pesar de esto, la mayoría de los usuarios continúan llamando al sistema simplemente "Linux" y las razones expuestas por Richard Stallman son eterno motivo de controversia. La mayoría de los sistemas "Linux" incluyen también herramientas procedentes de BSD y de muchos otros proyectos como Mozilla, Perl, Ruby, Python, PostgreSQL, MySQL, Xorg, casi todas con licencia GPL o compatibles con ésta (LGPL, MPL) otro aporte fundamental del proyecto GNU.Usualmente se utiliza la plataforma XFree86 o la X.Org Server para sostener interfaces gráficas.Instalación [La instalación de Linux es muy sencilla, lo único requerido es tener conocimientos previos respecto a las particiones del disco duro. Muchas variantes (como openSUSE) se distribuyen en un disco vivo (en inglés LiveCD o LiveDVD), que permite que el sistema se ejecute en el computador sin tocar el disco duro.Basta con descargar la imagen ISO de una distribución, grabarla en un CD o DVD e iniciar la computadora utilizando dicho disco. Algunas distribuciones muy utilizadas son SuSE, Debian, Ubuntu o YellowDog (esta última es la más común en la plataforma PlayStation 3). La mayoría de las distribuciones son gratuitas y pueden conseguirse fácilmente a través de las páginas web de sus fabricantes o a través de archivos torrent.Existen versiones linux para máquinas x86 (abarca desde computadoras 386, Pentium I, Celeron, hasta Pentium IV), también para 64 bits (los nuevos procesadores, aunque también trabajan con linux para x86), y para procesadores PowerPC (PPC) de las computadoras Apple Macintosh.Escala de desarrollo Un estudio sobre la distribución Red Hat 7.1 reveló que ésta en particular posee más de 30 millones de líneas de código real. Utilizando el modelo de cálculo de costos COCOMO, puede estimarse que esta distribución requeriría 8.000 programadores por año para su desarrollo. De haber sido desarrollado por medios convencionales de código cerrado, hubiera costado más de mil millones de dólares en los Estados Unidos.[14]La mayor parte de su código (71%) pertenecía al lenguaje C, pero fueron utilizados muchos otros lenguajes para su desarrollo, incluyendo C++, Bash, Lisp, Ensamblador, Perl, Fortran y Python.Alrededor de la mitad de su código total (contado en líneas de código) fue liberado bajo la licencia GPL en su versión 2.El núcleo Linux contenía entonces 2,4 millones de líneas de código, correspondiente al 8% del total, demostrando que la vasta mayoría del sistema operativo no pertenece al núcleo del mismo.En un estudio posterior[15] se realizó el mismo análisis para Debian GNU/Linux versión 2.2. Esta distribución contenía más de 55 millones de líneas de código fuente, y habría costado 1.900 millones de dólares (año 2000) el desarrollo por medios convencionales (no libres); el núcleo Linux en octubre de 2003 tiene unas 5,5 millones de líneas.Por otro lado, cada vez existen más controladores de dispositivos para Linux, incluso creados por terceros desarrolladores.[16]Mercado y uso [ Escritorio KDE 3.4.2 corriendo sobre Gentoo Linux (2.6.13-r9) corriendo un cliente IRC Konversation, un cliente p2p aMule y un reproductor musical Amarok.Con la adopción por numerosas empresas fabricantes de PCs, muchas computadoras son vendidas con distribuciones GNU/Linux pre-instaladas, y "GNU/Linux" ha comenzado a tomar su lugar en el vasto mercado de las computadoras de escritorio.Con entornos de escritorio, "GNU/Linux" ofrece una interfaz gráfica alternativa a la tradicional interfaz de línea de comandos de Unix. Existen en la actualidad numerosas aplicaciones gráficas, ya sean libres o no, que ofrecen funcionalidad que está permitiendo que GNU\Linux se adapte como herramienta de escritorio.Algunas distribuciones permiten el arranque de Linux directamente desde un disco compacto (llamados LiveCDs) sin modificar en absoluto el disco duro de la computadora en la que se ejecuta Linux. Para este tipo de distribuciones, en general, los archivos de imagen (archivos ISO) están disponibles en Internet para su descarga.Otras posibilidades incluyen iniciar el arranque desde una red (ideal para sistemas con requerimientos mínimos) o desde un disco flexible o disquete o de unidades de almacenamiento USB.Mercado Numerosos estudios cuantitativos sobre software de código abierto están orientados a tópicos como la cuota de mercado y la fiabilidad, muchos de estos estudios examinan específicamente a Linux.[17] El mercado de Linux crece rapidamente, y los ingresos por software de servidores, escritorios, y empaquetados, que corren bajo Linux, se estima que llegarán a $35.7 billones en 2008.[18]La creciente popularidad de Linux se debe a las ventajas que presenta ante otros tipos de software. Entre otras razones se debe a su estabilidad, al acceso a las fuentes (lo que permite personalizar el funcionamiento y auditar la seguridad y privacidad de los datos tratados), a la independencia de proveedor, a la seguridad, a la rapidez con que incorpora los nuevos adelantos tecnológicos (IPv6, microprocesadores de 64 bits), a la escalabilidad (se pueden crear clusters de cientos de computadoras), a la activa comunidad de desarrollo que hay a su alrededor, a su interoperatibilidad y a la abundancia de documentación relativa a los procedimientos. Richard Stallman, creador del proyecto GNUHay varias empresas que comercializan soluciones basadas en Linux: IBM, Novell, Red Hat, Rxart, Canonical Ltd. (Ubuntu), así como miles de PYMES que ofrecen productos o servicios basados en esta tecnología. Servidores basados en Linux.Dentro del segmento de supercomputadoras, la 9ª más potente del mundo y primera más potente fuera de EE.UU a Junio de 2007,[19] denominada MareNostrum, fue desarrollada por IBM y está basada en un cluster Linux.[20] Se encuentra alojada en Barcelona y es gestionada por la Universidad Politécnica de Cataluña (UPC). A fines de 2006, de acuerdo al TOP500.org, encargado de monitorear las 500 principales supercomputadoras del mundo: 371 usaban una distribución basada en GNU/Linux, 81 Unix, 32 SLES (una variante de Unix), 13 únicos con Linux y 3 Mac. Ninguna usaba Windows.Linux, además de tener una amplia cuota en el mercado de servidores de internet, debido entre otras cosas a la gran cantidad de soluciones que tiene para este segmento, tiene un creciente campo en computadoras de escritorio y portátiles. Prueba de ello es que es el sistema base que se ha elegido para el proyecto OLPC: One Laptop Per Child (en español: Una Computadora Portátil por Niño), que tiene como objetivo llevar una computadora portátil a cada niño de países como China, Brasil, Argentina, Uruguay y Perú y está patrocinado por la iniciativa del MIT y firmas como AMD, Google y Sun Microsystems.Entre las entidades más destacadas que usan Linux se encuentra la Bolsa de Nueva York.Administración Pública Hay una serie de administraciones públicas que han mostrado su apoyo al software libre, sea migrando total o parcialmente sus servidores y sistemas de escritorio, sea subvencionándolo. Como ejemplos se tiene a:Alemania pagando por el desarrollo del Kroupware. Además ciudades como Múnich, que migró sus sistemas a SuSE Linux, una distribución alemana especialmente orientada a KDE. Brasil, con una actitud generalmente positiva, y, por ejemplo, con el desarrollo de los telecentros En España, algunos gobiernos autonómicos están desarrollando sus propias distribuciones no sólo para uso administrativo sino también académico. Así tenemos LinEx en Extremadura, Augustux en Aragón, GuadaLinex en Andalucía, LliureX en La Comunidad Valenciana, Molinux en Castilla-La Mancha, MAX en La Comunidad de Madrid, Linkat en Cataluña, Trisquel en la Comunidad de Galicia, LinuxGlobal en Cantabria, EHUX en el País Vasco, mEDUXa en la comunidad Canaria , Silu en la Provincia de Las Palmas en Canarias como proyecto de la ULPGC y Melinux en la Ciudad Autónoma de Melilla, por el momento. Todas estas distribuciones (a excepción de Linkat) tienen en común el hecho de estar basadas en Debian, o alguno de sus derivados, como Ubuntu. Chile, donde el Ministerio de Educación y la Universidad de la Frontera (ubicada en Temuco) crearon EduLinux, una distribución que hoy está en más de 1500 escuelas chilenas y funcionando en más de un 90% de las bibliotecas chilenas. Actualmente las Fuerzas Armadas chilenas están planificando la creación de una distribución militar que interconecte a las ramas de la defensa chilena. El gobierno de ese país aprobó el uso del software libre en la administración pública, anulando así un contrato previo con Microsoft para el mantenimiento de las redes y de los equipos en escuelas y bibliotecas chilenas. China, con su acuerdo con Sun Microsystems para distribuir millones de Java Desktop (una distribución de GNU/Linux basada en GNOME y especialmente bien integrada con java) Cuba donde el gobierno ha establecido una indicación oficial para introducir de manera progresiva el software libre y en particular GNU/Linux y en el que la red de Salud Pública, Infomed, fue pionera en su uso. México el Gobierno del Distrito Federal dentro de sus políticas y lineamientos en materia de informática da preferencia al uso del Software Libre.[ La Delegación Tlalpan personaliza y adapta a sus necesidades la distribución Fedora dándole el nombre de GDF/Linux[22] y la UNAM creadora de el sistema operativo de Linux 100% mexicano llamado Jarro Negro el cual puede instalarse o usarse en Live cd. Perú donde se desarrolló TumiX, es una distribución GNU/Linux del tipo LiveCD, está desarrollada en el Perú por iniciativa del grupo de usuarios de software libre Somos Libres. República Dominicana promociona el uso y proliferación del Software libre en el campo educativo y científico. Dispone de dos fundaciones, una en la capital de Santo Domingo y la otra en la ciudad de Santiago Venezuela donde por decreto, se estableció el uso preferente del software libre y GNU/Linux en toda la administración pública, incluyendo ministerios y oficinas gubernamentales y se está fomentando la investigación y el desarrollo de software libre. Actualmente la Universidad de Los Andes desarrolla una distribución linux llamada ULAnix basada en Debian y que es la primera creada en ambiente universitario venezolano. Existe una nueva distribución desarrollada por el Ministerio del Poder Popular para las Telecomunicaciones y la Informática, la misma está basada en Debian y se encuentra disponible en un sitio mantenido por el Centro Nacional de Tecnologías de Información.Como sistema de programación La colección de utilidades para la programación de GNU es con diferencia la familia de compiladores más utilizada en Linux. Tiene capacidad para compilar C, C++, Java, Ada, entre otros muchos lenguajes. Además soporta diversas arquitecturas mediante la compilación cruzada, lo que hace que sea un entorno adecuado para desarrollos heterogéneos.Hay varios IDEs disponibles para Linux incluyendo, Anjuta, KDevelop, Ultimate++, Code::Blocks, NetBeans IDE y Eclipse. Además existen editores extensibles como pueda ser Emacs que hoy en día siguen siendo ampliamente utilizados. GNU/Linux también dispone de capacidades para lenguajes de guión (script), aparte de los clásicos lenguajes de programación de shell, la mayoría de las distribuciones tienen instalado Python, Perl, PHP y Ruby.